Skip to content

Commit 812a2b6

Browse files
authored
formatted
1 parent a340086 commit 812a2b6

File tree

1 file changed

+62
-36
lines changed

1 file changed

+62
-36
lines changed

chromium/utils/translate-en-messages.py

Lines changed: 62 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,59 @@
77
'''
88

99
import os, json
10-
from sys import stdout # for dynamic prints
10+
from sys import stdout # for dynamic prints
1111
from translate import Translator
1212

13-
locales_folder = '_locales' ; provider = ''
13+
locales_folder = '_locales'
14+
provider = ''
1415
target_langs = ['af', 'am', 'ar', 'az', 'be', 'bem', 'bg', 'bn', 'bo', 'bs', 'ca', 'ceb', 'cs', 'cy', 'da', 'de', 'dv', 'dz', 'el', 'en', 'en-GB', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fo', 'fr', 'gd', 'gl', 'gu', 'haw', 'he', 'hi', 'hr', 'ht', 'hu', 'hy', 'id', 'is', 'it', 'ja', 'ka', 'kab', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'la', 'lb', 'lo', 'lt', 'lv', 'mg', 'mi', 'mk', 'ml', 'mn', 'ms', 'mt', 'my', 'ne', 'nl', 'no', 'ny', 'pa', 'pap', 'pl', 'ps', 'pt', 'ro', 'ru', 'rw', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tn', 'to', 'tpi', 'tr', 'uk', 'ur', 'uz', 'vi', 'xh', 'yi', 'zh', 'zh-CN', 'zh-HK', 'zh-SG', 'zh-TW', 'zu']
1516

1617
# UI initializations
1718
terminal_width = os.get_terminal_size()[0]
18-
def print_trunc(msg, end='\n') : print(msg if len(msg) < terminal_width else msg[0:terminal_width-4] + '...', end=end)
19-
def overwrite_print(msg) : stdout.write('\r' + msg.ljust(terminal_width)[:terminal_width])
19+
20+
def print_trunc(msg, end='\n'):
21+
print(msg if len(msg) < terminal_width else msg[0 : terminal_width - 4] + '...', end=end)
22+
23+
def overwrite_print(msg):
24+
stdout.write('\r' + msg.ljust(terminal_width)[:terminal_width])
2025

2126
print('')
2227

2328
# Prompt user for keys to ignore
2429
keys_to_ignore = []
2530
while True:
2631
key = input('Enter key to ignore (or ENTER if done): ')
27-
if not key : break
32+
if not key:
33+
break
2834
keys_to_ignore.append(key)
2935

3036
# Determine closest locales dir
3137
print_trunc(f'\nSearching for { locales_folder }...')
3238
script_dir = os.path.abspath(os.path.dirname(__file__))
3339
locales_dir = None
34-
for root, dirs, files in os.walk(script_dir): # search script dir recursively
40+
for root, dirs, files in os.walk(script_dir): # search script dir recursively
3541
if locales_folder in dirs:
36-
locales_dir = os.path.join(root, locales_folder) ; break
37-
else: # search script parent dirs recursively
42+
locales_dir = os.path.join(root, locales_folder)
43+
break
44+
else: # search script parent dirs recursively
3845
parent_dir = os.path.dirname(script_dir)
3946
while parent_dir and parent_dir != script_dir:
4047
for root, dirs, files in os.walk(parent_dir):
4148
if locales_folder in dirs:
42-
locales_dir = os.path.join(root, locales_folder) ; break
43-
if locales_dir : break
49+
locales_dir = os.path.join(root, locales_folder)
50+
break
51+
if locales_dir:
52+
break
4453
parent_dir = os.path.dirname(parent_dir)
45-
else : locales_dir = None
54+
else:
55+
locales_dir = None
4656

4757
# Print result
48-
if locales_dir : print_trunc(f'_locales directory found!\n\n>> { locales_dir }\n')
49-
else : print_trunc(f'Unable to locate a { locales_folder } directory.') ; exit()
58+
if locales_dir:
59+
print_trunc(f'_locales directory found!\n\n>> { locales_dir }\n')
60+
else:
61+
print_trunc(f'Unable to locate a { locales_folder } directory.')
62+
exit()
5063

5164
# Load en/messages.json
5265
msgs_filename = 'messages.json'
@@ -55,39 +68,47 @@ def overwrite_print(msg) : stdout.write('\r' + msg.ljust(terminal_width)[:termin
5568
en_messages = json.load(en_file)
5669

5770
# Combine [target_langs] w/ languages discovered in _locales
58-
output_langs = list(set(target_langs)) # remove duplicates
71+
output_langs = list(set(target_langs)) # remove duplicates
5972
for root, dirs, files in os.walk(locales_dir):
6073
for folder in dirs:
6174
folder_path = os.path.join(root, folder)
6275
msgs_path = os.path.join(folder_path, msgs_filename)
6376
discovered_lang = folder.replace('_', '-')
64-
if os.path.exists(msgs_path) and discovered_lang not in output_langs : output_langs.append(discovered_lang)
65-
output_langs.sort() # alphabetize languages
77+
if os.path.exists(msgs_path) and discovered_lang not in output_langs:
78+
output_langs.append(discovered_lang)
79+
output_langs.sort() # alphabetize languages
6680

6781
# Create/update/translate [[output_langs]/messages.json]
6882
langs_added, langs_skipped, langs_translated, langs_not_translated = [], [], [], []
6983
for lang_code in output_langs:
7084
lang_added, lang_skipped, lang_translated = False, False, False
71-
folder = lang_code.replace('-', '_') ; translated_msgs = {}
72-
if '-' in lang_code: # cap suffix
85+
folder = lang_code.replace('-', '_')
86+
translated_msgs = {}
87+
if '-' in lang_code: # cap suffix
7388
sep_index = folder.index('_')
74-
folder = folder[:sep_index] + '_' + folder[sep_index+1:].upper()
89+
folder = folder[:sep_index] + '_' + folder[sep_index + 1 :].upper()
7590

7691
# Skip English locales
7792
if lang_code.startswith('en'):
7893
print_trunc(f'Skipped {folder}/messages.json...')
79-
langs_skipped.append(lang_code) ; langs_not_translated.append(lang_code) ; continue
94+
langs_skipped.append(lang_code)
95+
langs_not_translated.append(lang_code)
96+
continue
8097

8198
# Initialize target locale folder
8299
folder_path = os.path.join(locales_dir, folder)
83-
if not os.path.exists(folder_path): # if missing, create folder
84-
os.makedirs(folder_path) ; langs_added.append(lang_code) ; lang_added = True
100+
if not os.path.exists(folder_path): # if missing, create folder
101+
os.makedirs(folder_path)
102+
langs_added.append(lang_code)
103+
lang_added = True
85104

86105
# Initialize target messages
87106
msgs_path = os.path.join(folder_path, msgs_filename)
88107
if os.path.exists(msgs_path):
89-
with open(msgs_path, 'r', encoding='utf-8') as messages_file : messages = json.load(messages_file)
90-
else : messages = {}
108+
with open(msgs_path, 'r', encoding='utf-8') as messages_file:
109+
messages = json.load(messages_file)
110+
else:
111+
messages = {}
91112

92113
# Attempt translations
93114
print_trunc(f"{ 'Adding' if not messages else 'Updating' } { folder }/messages.json...", end='')
@@ -97,7 +118,7 @@ def overwrite_print(msg) : stdout.write('\r' + msg.ljust(terminal_width)[:termin
97118
for key in en_keys:
98119
if key in keys_to_ignore:
99120
translated_msg = en_messages[key]['message']
100-
translated_msgs[key] = { 'message': translated_msg }
121+
translated_msgs[key] = {'message': translated_msg}
101122
continue
102123
if key not in messages:
103124
original_msg = translated_msg = en_messages[key]['message']
@@ -109,23 +130,28 @@ def overwrite_print(msg) : stdout.write('\r' + msg.ljust(terminal_width)[:termin
109130
except Exception as e:
110131
print_trunc(f'Translation failed for key "{key}" in {lang_code}/messages.json: {e}')
111132
translated_msg = original_msg
112-
translated_msgs[key] = { 'message': translated_msg }
113-
else : translated_msgs[key] = messages[key]
133+
translated_msgs[key] = {'message': translated_msg}
134+
else:
135+
translated_msgs[key] = messages[key]
114136

115137
# Format messages
116138
formatted_msgs = '{\n'
117139
for index, (key, message_data) in enumerate(translated_msgs.items()):
118-
formatted_msg = json.dumps(message_data, ensure_ascii=False) \
119-
.replace('{', '{ ').replace('}', ' }') # add spacing
120-
formatted_msgs += ( f' "{key}": {formatted_msg}'
121-
+ ( ',\n' if index < len(translated_msgs) - 1 else '\n' )) # terminate line
140+
formatted_msg = json.dumps(message_data, ensure_ascii=False).replace('{', '{ ').replace('}', ' }') # add spacing
141+
formatted_msgs += f' "{key}": {formatted_msg}' + (',\n' if index < len(translated_msgs) - 1 else '\n') # terminate line
122142
formatted_msgs += '}'
123-
with open(msgs_path, 'w', encoding='utf-8') as output_file : output_file.write(formatted_msgs + '\n')
143+
with open(msgs_path, 'w', encoding='utf-8') as output_file:
144+
output_file.write(formatted_msgs + '\n')
124145

125146
# Print file summary
126-
if translated_msgs == messages : langs_skipped.append(lang_code) ; lang_skipped = True
127-
elif translated_msgs != messages : langs_translated.append(lang_code) ; lang_translated = True
128-
if not lang_translated : langs_not_translated.append(lang_code)
147+
if translated_msgs == messages:
148+
langs_skipped.append(lang_code)
149+
lang_skipped = True
150+
elif translated_msgs != messages:
151+
langs_translated.append(lang_code)
152+
lang_translated = True
153+
if not lang_translated:
154+
langs_not_translated.append(lang_code)
129155
overwrite_print(f"{ 'Added' if lang_added else 'Skipped' if lang_skipped else 'Updated' } { folder }/messages.json")
130156

131157
# Print final summary
@@ -136,4 +162,4 @@ def overwrite_print(msg) : stdout.write('\r' + msg.ljust(terminal_width)[:termin
136162
list_name = next(name for name, value in globals().items() if value is data)
137163
status = list_name.split('langs_')[-1].replace('_', ' ')
138164
print(f'Languages {status}: {len(data)}\n') # print tally
139-
print('[ ' + ', '.join(data) + ' ]\n') # list languages
165+
print('[ ' + ', '.join(data) + ' ]\n') # list languages

0 commit comments

Comments
 (0)