/
dieoska
/
ddnet
Обзор
Документация
Войти
/
dieoska
/
ddnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
scripts/languages/from_csv.py
40 строк
1 KB
heinrich5991
Format the world with ruff
17 дек 2025, 17:07
17 дек 2025, 17:07
3788112
Код
Авторство
О чём код?
#!/usr/bin/env python3 import argparse import csv import os import twlang def ddnet_entry(source, context, target, **_kwargs): if context != "": return f"""\ [{context}] {source} == {target} """ else: return f"""\ {source} == {target} """ def main(): parser = argparse.ArgumentParser(description="Convert Weblate CSV files in the specified directory into DDNet translation files.") parser.add_argument("in_dir", metavar="IN_DIR", help="Directory with the Weblate CSV files") args = parser.parse_args() prefix = os.path.dirname(__file__) + "/../.." mapping = {f"{rfc3066}.csv": key for key, (_, _, _, rfc3066, _) in twlang.language_index().items() for rfc3066 in rfc3066.split(";")} for entry in sorted(os.scandir(args.in_dir), key=lambda e: e.name): with open(entry.path, encoding="utf-8") as f: out = "\n".join([ddnet_entry(**entry) for entry in csv.DictReader(f)]) key = mapping[entry.name] with open(f"{prefix}/data/languages/{key}.txt", "w", encoding="utf-8") as f: f.write(out) if __name__ == "__main__": main()