ddnet/scripts/reconvert_l10n.py

37 lines
755 B
Python

import json
import polib
JSON_KEY_TRANSL="translated strings"
JSON_KEY_OR="or"
JSON_KEY_TR="tr"
JSON_KEY_CO="context"
def reconvert(filename):
po = polib.pofile(open(filename, encoding='utf-8').read())
translations = []
for entry in po:
if entry.msgstr:
t_entry = {}
t_entry[JSON_KEY_OR] = entry.msgid
t_entry[JSON_KEY_TR] = entry.msgstr
if entry.msgctxt is not None:
t_entry[JSON_KEY_CO] = entry.msgctxt
translations.append(t_entry)
result = {JSON_KEY_TRANSL: translations}
json.dump(
result,
open(filename + '.json', 'w', encoding='utf-8'),
ensure_ascii=False,
indent="\t",
separators=(',', ': '),
sort_keys=True,
)
if __name__ == '__main__':
import sys
for filename in sys.argv[1:]:
reconvert(filename)