1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/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()
|