Skip to content

Instantly share code, notes, and snippets.

@sunfkny
Created December 13, 2023 04:38
Show Gist options
  • Save sunfkny/06afbf8e8f25d154eb01f6efbb540062 to your computer and use it in GitHub Desktop.
Save sunfkny/06afbf8e8f25d154eb01f6efbb540062 to your computer and use it in GitHub Desktop.
from urllib.parse import quote
import polib
def google_lang_convert(lang: str):
if lang == "zh_Hant":
return "zh-TW"
if lang.lower().startswith("zh"):
return "zh-CN"
return lang
def process_file(filename, lang):
po = polib.pofile(filename)
untranslated_entries = [entry.msgid.replace("_", " ") for entry in po.untranslated_entries() if not entry.msgstr]
if not untranslated_entries:
return
translate_url = f"https://translate.google.com/?sl=auto&tl={lang}&text=" + quote("|".join(untranslated_entries))
print(translate_url)
translated_entries = input("translated_entries: ").split("|")
assert len(untranslated_entries) == len(translated_entries)
for i, entry in enumerate(po.untranslated_entries()):
if not entry.msgstr:
entry.msgstr = translated_entries[i]
po.save()
if __name__ == "__main__":
"""see django.conf.locale.LANG_INFO"""
langs = [
"es",
"fr",
"id",
"ja",
"ko",
"pt",
"ru",
"th",
"vi",
"zh_Hans",
"zh_Hant",
]
for lang in langs:
print(f"{lang:=^80}")
process_file(
filename=f"locale/{lang}/LC_MESSAGES/django.po",
lang=google_lang_convert(lang),
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment