66 lines
1.5 KiB
Python
Executable File
66 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
lang-sample-text
|
|
|
|
Adds sample text for a given language using the specified UDHR translation.
|
|
|
|
Usage:
|
|
|
|
lang-sample-text -l ./languages/en.textproto ./udhr_translations/en.xml
|
|
|
|
"""
|
|
|
|
from gflanguages import LoadLanguages, languages_public_pb2
|
|
from gftools.util.google_fonts import ReadProto, WriteProto
|
|
from gflanguages.udhr import Udhr
|
|
from lxml import etree
|
|
import os
|
|
import re
|
|
import argparse
|
|
|
|
|
|
def main(argv=None):
|
|
parser = argparse.ArgumentParser(
|
|
description="Update UDHR sample text for a given language"
|
|
)
|
|
parser.add_argument(
|
|
"-l",
|
|
"--lang",
|
|
help="Language proto file to update",
|
|
required=True,
|
|
)
|
|
parser.add_argument(
|
|
"-u",
|
|
"--udhr",
|
|
help="Path to UDHR translation (XML)",
|
|
required=True,
|
|
)
|
|
args = parser.parse_args(argv)
|
|
|
|
language = ReadProto(languages_public_pb2.LanguageProto(), args.lang)
|
|
|
|
udhr_data = etree.parse(args.udhr)
|
|
head = udhr_data.getroot()
|
|
for name, value in head.attrib.items():
|
|
if re.search(r"\{.*\}lang", name):
|
|
bcp47 = value.replace("-", "_")
|
|
udhr = Udhr(
|
|
key=head.get("key"),
|
|
iso639_3=head.get("iso639-3"),
|
|
iso15924=head.get("iso15924"),
|
|
bcp47=bcp47,
|
|
direction=head.get("dir"),
|
|
ohchr=None,
|
|
stage=4,
|
|
loc=None,
|
|
name=head.get("n"),
|
|
)
|
|
udhr.Parse(udhr_data)
|
|
|
|
language.sample_text.MergeFrom(udhr.GetSampleTexts())
|
|
WriteProto(language, args.lang)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|