mirror of
https://gh.llkk.cc/https://github.com/WeblateOrg/language-data.git
synced 2025-10-04 15:12:29 +08:00
68 lines
1.6 KiB
Python
Executable file
68 lines
1.6 KiB
Python
Executable file
#! /usr/bin/env python3
|
|
|
|
# Export CLDR language names into po file
|
|
|
|
import glob
|
|
from xml.etree import ElementTree
|
|
|
|
BASE = "cldr-core/common/main/en.xml"
|
|
|
|
# Parse language names
|
|
names = {}
|
|
tree = ElementTree.parse(BASE)
|
|
for item in tree.find("localeDisplayNames").find("languages").iter("language"):
|
|
names[item.get("type")] = item.text
|
|
|
|
# Process translations
|
|
for lang in glob.glob("cldr-core/common/main/*.xml"):
|
|
if lang == BASE:
|
|
continue
|
|
|
|
result = {}
|
|
|
|
tree = ElementTree.parse(lang)
|
|
displaynames = tree.find("localeDisplayNames")
|
|
if displaynames is None:
|
|
continue
|
|
languages = displaynames.find("languages")
|
|
if languages is None:
|
|
continue
|
|
for item in languages.iter("language"):
|
|
try:
|
|
result[names[item.get("type")]] = item.text
|
|
except KeyError:
|
|
continue
|
|
|
|
if not result:
|
|
continue
|
|
|
|
locale = lang.rsplit("/", 1)[1].split(".")[0]
|
|
|
|
with open("languages-po/{}.po".format(locale), "w") as handle:
|
|
handle.write(
|
|
"""# CLDR language names for {0}
|
|
# Automatically generated using tools available at
|
|
# https://github.com/WeblateOrg/language-data
|
|
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: Weblate\\n"
|
|
"Language: {0}\\n"
|
|
"MIME-Version: 1.0\\n"
|
|
"Content-Type: text/plain; charset=UTF-8\\n"
|
|
"Content-Transfer-Encoding: 8bit\\n"
|
|
"X-Generator: Weblate\\n"
|
|
|
|
""".format(
|
|
locale
|
|
)
|
|
)
|
|
for key in sorted(result):
|
|
handle.write(
|
|
"""
|
|
msgid "{}"
|
|
msgstr "{}"
|
|
""".format(
|
|
key, result[key]
|
|
)
|
|
)
|