0
0
mirror of https://github.com/wagtail/wagtail.git synced 2024-11-25 05:02:57 +01:00
wagtail/scripts/check-translation-strings.py

27 lines
966 B
Python
Raw Normal View History

import re
from pathlib import Path
import polib
2022-02-14 14:25:00 +01:00
placeholder_regexp = re.compile(r"\{[^\}]*?\}")
2022-02-14 14:25:00 +01:00
for path in Path(__file__).parent.resolve().parent.rglob("LC_MESSAGES/*.po"):
po = polib.pofile(path)
for entry in po:
if not entry.msgstr:
continue # ignore untranslated strings
expected_placeholders = set(placeholder_regexp.findall(entry.msgid))
actual_placeholders = set(placeholder_regexp.findall(entry.msgstr))
if expected_placeholders != actual_placeholders:
print("Invalid string at %s line %d:" % (path, entry.linenum)) # noqa: T201
print( # noqa: T201
2022-02-14 14:25:00 +01:00
"\toriginal string %r has placeholders: %r"
% (entry.msgid, expected_placeholders)
)
print( # noqa: T201
2022-02-14 14:25:00 +01:00
"\ttranslated string %r has placeholders: %r"
% (entry.msgstr, actual_placeholders)
)
print() # noqa: T201