parent
6d4f568f7d
commit
deb4239fe6
8 changed files with 90 additions and 19 deletions
@ -0,0 +1,23 @@ |
|||||||
|
#!/usr/bin/env bash |
||||||
|
|
||||||
|
BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
||||||
|
cd "$BASEDIR" |
||||||
|
pwd |
||||||
|
|
||||||
|
PY_FILES=$(git ls-files 'layouts/*.py' 'widgets/*.py') |
||||||
|
|
||||||
|
xgettext -L Python \ |
||||||
|
--keyword=tr \ |
||||||
|
--keyword=trn:1,2 \ |
||||||
|
--keyword=pgettext:1c,2 \ |
||||||
|
--from-code=UTF-8 \ |
||||||
|
--flag=tr:1:python-brace-format \ |
||||||
|
--flag=trn:1:python-brace-format --flag=trn:2:python-brace-format \ |
||||||
|
-o translations/app.pot \ |
||||||
|
$PY_FILES |
||||||
|
|
||||||
|
msginit \ |
||||||
|
-l es \ |
||||||
|
--no-translator \ |
||||||
|
--input translations/app.pot \ |
||||||
|
--output-file translations/app.po |
||||||
@ -0,0 +1,47 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
import argparse |
||||||
|
import json |
||||||
|
import os |
||||||
|
|
||||||
|
from openpilot.common.basedir import BASEDIR |
||||||
|
|
||||||
|
UI_DIR = os.path.join(BASEDIR, "selfdrive", "ui") |
||||||
|
TRANSLATIONS_DIR = os.path.join(UI_DIR, "translations") |
||||||
|
LANGUAGES_FILE = os.path.join(TRANSLATIONS_DIR, "languages.json") |
||||||
|
|
||||||
|
|
||||||
|
def update_translations(): |
||||||
|
files = [] |
||||||
|
for root, _, filenames in os.walk(os.path.join(UI_DIR, "widgets")): |
||||||
|
for filename in filenames: |
||||||
|
if filename.endswith(".py"): |
||||||
|
files.append(os.path.join(root, filename)) |
||||||
|
|
||||||
|
# Create main translation file |
||||||
|
print(files) |
||||||
|
cmd = ("xgettext -L Python --keyword=tr --keyword=trn:1,2 --keyword=pgettext:1c,2 --from-code=UTF-8 " + |
||||||
|
"--flag=tr:1:python-brace-format --flag=trn:1:python-brace-format --flag=trn:2:python-brace-format " + |
||||||
|
"-o translations/app.pot {}").format(" ".join(files)) |
||||||
|
print(cmd) |
||||||
|
|
||||||
|
ret = os.system(cmd) |
||||||
|
assert ret == 0 |
||||||
|
|
||||||
|
# Generate/update translation files for each language |
||||||
|
with open(LANGUAGES_FILE) as f: |
||||||
|
translation_files = json.load(f).values() |
||||||
|
|
||||||
|
for file in translation_files: |
||||||
|
name = file.replace("main_", "") |
||||||
|
if os.path.exists(os.path.join(TRANSLATIONS_DIR, f"app_{name}.po")): |
||||||
|
cmd = "msgmerge --update --backup=none --sort-output translations/app.pot translations/app_{}.po".format(name) |
||||||
|
ret = os.system(cmd) |
||||||
|
assert ret == 0 |
||||||
|
else: |
||||||
|
cmd = "msginit -l es --no-translator --input translations/app.pot --output-file translations/app_{}.po".format(name) |
||||||
|
ret = os.system(cmd) |
||||||
|
assert ret == 0 |
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
update_translations() |
||||||
Loading…
Reference in new issue