X-Git-Url: https://pere.pagekite.me/gitweb/text-mekanikerord.git/blobdiff_plain/13c141fddb6b161439ca5b834d7d6fa61afdd7d3..12a067ccfcabccc21ce08af04e2e50b927f79c58:/make-glossary?ds=inline diff --git a/make-glossary b/make-glossary index a3f9149..bc353f8 100755 --- a/make-glossary +++ b/make-glossary @@ -1,5 +1,7 @@ #!/usr/bin/python3 +import locale + from lxml import etree from lxml.etree import tostring @@ -55,11 +57,11 @@ for row in resultset.getchildren(): words.append(d) def langsort(lang, e): if lang in e: - return e[lang] + return locale.strxfrm(e[lang]) else: - return e['sme'] + return locale.strxfrm(e['sme']) -def make_glossary_docbook(lang, langcodes, output='glossary.xml'): +def make_glossary_docbook(lang, desccodes, langcodes, output='glossary.xml'): import lxml.builder E = lxml.builder.ElementMaker( nsmap={ @@ -96,8 +98,11 @@ def make_glossary_docbook(lang, langcodes, output='glossary.xml'): indexit(entry, e[l], l) if "" != lstr: entry.append(E.glossdef(E.para(lstr))) - if ldesc in e: - entry.append(E.glossdef(E.para(e[ldesc]))) + for desccode in desccodes: + codestr = 'desc-%s' % desccode + if codestr in e: + entry.append(E.glossdef(E.para("%s: %s" % (desccode, + e[codestr])))) glossary.append(entry) if False: # failed to set docbook glossary like xmlto and lint want it... @@ -120,17 +125,25 @@ parser.add_argument("langcode", help="language code to generate glossary for") parser.add_argument("--output", help="where to store the glossary") args = parser.parse_args() +locale.setlocale(locale.LC_ALL, '') + if 'nb' == args.langcode: print("Norsk/bokmål") print() - make_glossary_docbook(lang='nb', langcodes=('en', 'sme', 'sv', 'da', 'fi', 'is',), output=args.output) + make_glossary_docbook(lang='nb', desccodes=('nb',), + langcodes=('en', 'sme', 'sv', 'da', 'fi', 'is',), + output=args.output) elif 'sme' == args.langcode: print("Nordsamisk") print() - make_glossary_docbook(lang='sme', langcodes=('nb', 'en', 'sv', 'da', 'fi', 'is',), output=args.output) + make_glossary_docbook(lang='sme', desccodes=('sme', 'nb'), + langcodes=('nb', 'en', 'sv', 'da', 'fi', 'is',), + output=args.output) elif 'en' == args.langcode: print("Engelsk") print() - make_glossary_docbook(lang='en', langcodes=('en', 'nb', 'sme', 'sv', 'da', 'fi', 'is',), output=args.output) + make_glossary_docbook(lang='en', desccodes=('en', 'nb'), + langcodes=('en', 'nb', 'sme', 'sv', 'da', 'fi', 'is',), + output=args.output) else: print("error: Unknown language code %s" % args.langcode)