|
Packit Service |
21c75c |
#!/usr/bin/python3
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
# script to get rid of
|
|
Packit Service |
21c75c |
# "'msgid' and 'msgstr' entries do not both begin/end with '\n'"
|
|
Packit Service |
21c75c |
# error messages during .po to .mo files conversion via msgfmt tool
|
|
Packit Service |
21c75c |
#
|
|
Packit Service |
21c75c |
# 'polib' module is needed for run: https://pypi.python.org/pypi/polib
|
|
Packit Service |
21c75c |
#
|
|
Packit Service |
21c75c |
# usage: python3 sanitize_po_files.py [po_file...]
|
|
Packit Service |
21c75c |
#
|
|
Packit Service |
21c75c |
# in order to update translations from zanata, do:
|
|
Packit Service |
21c75c |
# * cmake .
|
|
Packit Service |
21c75c |
# * make gettext-update
|
|
Packit Service |
21c75c |
# * git add po/*.po
|
|
Packit Service |
21c75c |
# * ./scripts/sanitize_po_files.py po/*.po
|
|
Packit Service |
21c75c |
# * git commit -m "zanata update"
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
import polib
|
|
Packit Service |
21c75c |
import re
|
|
Packit Service |
21c75c |
import sys
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
def sanitize_po_file(po_file):
|
|
Packit Service |
21c75c |
print("Processing", po_file)
|
|
Packit Service |
21c75c |
po = polib.pofile(po_file)
|
|
Packit Service |
21c75c |
for entry in po:
|
|
Packit Service |
21c75c |
msgid_without_indents = entry.msgid.strip()
|
|
Packit Service |
21c75c |
msgstr_without_indents = entry.msgstr.strip()
|
|
Packit Service |
21c75c |
entry.msgstr = entry.msgid.replace(
|
|
Packit Service |
21c75c |
msgid_without_indents, msgstr_without_indents)
|
|
Packit Service |
21c75c |
if re.match(r"^\s+$", entry.msgstr):
|
|
Packit Service |
21c75c |
entry.msgstr = ""
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
if entry.msgid_plural:
|
|
Packit Service |
21c75c |
msgid_plural_without_indents = entry.msgid_plural.strip()
|
|
Packit Service |
21c75c |
for i in entry.msgstr_plural.keys():
|
|
Packit Service |
21c75c |
msgstr_plural_without_indents = entry.msgstr_plural[i].strip()
|
|
Packit Service |
21c75c |
entry.msgstr_plural[i] = entry.msgid_plural.replace(
|
|
Packit Service |
21c75c |
msgid_plural_without_indents,
|
|
Packit Service |
21c75c |
msgstr_plural_without_indents)
|
|
Packit Service |
21c75c |
if re.match(r"^\s+$", entry.msgstr_plural[i]):
|
|
Packit Service |
21c75c |
entry.msgstr_plural[i] = ""
|
|
Packit Service |
21c75c |
po.save()
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
|
|
Packit Service |
21c75c |
if __name__ == "__main__":
|
|
Packit Service |
21c75c |
for po_file in sys.argv[1:]:
|
|
Packit Service |
21c75c |
sanitize_po_file(po_file)
|