11from pathlib import Path
22import re , sys
3+ from types import SimpleNamespace as sn
34
45from translate import Translator
56
@@ -27,14 +28,18 @@ def create_translations(cli, target_msgs, lang_code):
2728 if any (flag in translated_msg for flag in fail_flags ):
2829 translated_msg = original_msg
2930 except Exception as err :
30- log .trunc (f'Translation failed for key "{ key } " in { lang_code } /{ cli .msgs_filename } : { err } ' )
31+ log .trunc (f'{ cli . msgs . err_TRANSLATE_FAILED_FOR_KEY } "{ key } " in { lang_code } /{ cli .msgs_filename } : { err } ' )
3132 translated_msg = original_msg
3233 translated_msgs [key ] = { 'message' : translated_msg }
3334 else :
3435 translated_msgs [key ] = target_msgs [key ]
3536
3637 return translated_msgs
3738
39+ def get_msgs ():
40+ msgs_path = Path (__file__ ).parent .parent / 'assets' / 'data' / 'messages.json'
41+ return sn (** { key :val ['message' ] for key ,val in data .json .read (msgs_path ).items () })
42+
3843def write_translations (cli ):
3944
4045 langs_added , langs_skipped , langs_translated , langs_not_translated = [], [], [], []
@@ -43,7 +48,8 @@ def write_translations(cli):
4348 lang_folder = lang_code .replace ('-' , '_' )
4449
4550 if lang_code .startswith ('en' ): # skip EN locales
46- print (f'\n { log .colors .gry } Skipped { lang_folder } /{ cli .msgs_filename } ...{ log .colors .nc } ' , end = '' )
51+ print (f'\n { log .colors .gry } '
52+ f'{ cli .msgs .log_SKIPPED } { lang_folder } /{ cli .msgs_filename } ...{ log .colors .nc } ' , end = '' )
4753 langs_skipped .append (lang_code ) ; langs_not_translated .append (lang_code )
4854 continue
4955
@@ -60,19 +66,18 @@ def write_translations(cli):
6066 lang_folder_path .mkdir (parents = True , exist_ok = True )
6167 langs_added .append (lang_code ) ; lang_added = True
6268
63- log .info (f"{ 'Adding' if not msgs else 'Updating' } { lang_folder } /{ cli .msgs_filename } ..." , end = '' )
69+ action = cli .msgs .log_ADDING if not msgs else cli .msgs .log_UPDATING
70+ log .info (f'{ action } { lang_folder } /{ cli .msgs_filename } ...' , end = '' )
6471 sys .stdout .flush ()
6572 translated_msgs = create_translations (cli , msgs , lang_code )
6673 data .json .write (msgs_path , translated_msgs )
6774
6875 if translated_msgs == msgs : langs_skipped .append (lang_code ) ; lang_skipped = True
6976 else : langs_translated .append (lang_code ) ; lang_translated = True
7077 if not lang_translated : langs_not_translated .append (lang_code )
71- status = (
72- f'{ log .colors .dg } Added' if lang_added else
73- f'{ log .colors .gry } Skipped' if lang_skipped else
74- f'{ log .colors .dy } Updated'
75- )
78+ status = f'{ log .colors .dg } { cli .msgs .log_ADDED } ' if lang_added else \
79+ f'{ log .colors .gry } { cli .msgs .log_SKIPPED } ' if lang_skipped else \
80+ f'{ log .colors .dy } { cli .msgs .log_UPDATED } '
7681 log .overwrite_print (f'{ status } { lang_folder } /{ cli .msgs_filename } { log .colors .nc } ' )
7782
7883 return langs_translated , langs_skipped , langs_added , langs_not_translated
0 commit comments