mirror of
https://github.com/dzid26/sunnypilot.git
synced 2026-06-08 07:44:55 +08:00
37 lines
1.3 KiB
Python
Executable File
37 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
from itertools import chain
|
|
import os
|
|
from openpilot.common.basedir import BASEDIR
|
|
from openpilot.system.ui.lib.multilang import SYSTEM_UI_DIR, UI_DIR, TRANSLATIONS_DIR, multilang
|
|
from openpilot.selfdrive.ui.translations.potools import extract_strings, generate_pot, merge_po, init_po
|
|
|
|
LANGUAGES_FILE = os.path.join(str(TRANSLATIONS_DIR), "languages.json")
|
|
POT_FILE = os.path.join(str(TRANSLATIONS_DIR), "app.pot")
|
|
|
|
|
|
def update_translations():
|
|
files = []
|
|
for root, _, filenames in chain(os.walk(SYSTEM_UI_DIR),
|
|
os.walk(os.path.join(UI_DIR, "widgets")),
|
|
os.walk(os.path.join(UI_DIR, "layouts")),
|
|
os.walk(os.path.join(UI_DIR, "onroad"))):
|
|
for filename in filenames:
|
|
if filename.endswith(".py"):
|
|
files.append(os.path.relpath(os.path.join(root, filename), BASEDIR))
|
|
|
|
# Extract translatable strings and generate .pot template
|
|
entries = extract_strings(files, BASEDIR)
|
|
generate_pot(entries, POT_FILE)
|
|
|
|
# Generate/update translation files for each language
|
|
for name in multilang.languages.values():
|
|
po_file = os.path.join(TRANSLATIONS_DIR, f"app_{name}.po")
|
|
if os.path.exists(po_file):
|
|
merge_po(po_file, POT_FILE)
|
|
else:
|
|
init_po(POT_FILE, po_file, name)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
update_translations()
|