freezer/translations/crowdin.py

40 lines
909 B
Python

import zipfile
import json
lang_crowdin = {
'ar': 'ar_ar',
'de': 'de_de',
'el': 'el_gr',
'es-ES': 'es_es',
'fa': 'fa_ir',
'fil': 'fil_ph',
'fr': 'fr_fr',
'he': 'he_il',
'hr': 'hr_hr',
'id': 'id_id',
'it': 'it_id',
'ko': 'ko_ko',
'pt-BR': 'pt_br',
'ro': 'ro_ro',
'ru': 'ru_ru',
'tr': 'tr_tr',
'pl': 'pl_pl'
}
def generate_dart():
out = {}
with zipfile.ZipFile('translations.zip') as zip:
for file in zip.namelist():
if 'freezer.json' in file:
data = zip.open(file).read()
lang = file.split('/')[0]
out[lang_crowdin[lang]] = json.loads(data)
with open('crowdin.dart', 'w') as f:
data = json.dumps(out, ensure_ascii=False).replace('$', '\\$')
out = f'const crowdin = {data};'
f.write(out)
if __name__ == '__main__':
generate_dart()