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