From: Petter Reinholdtsen Date: Mon, 17 Aug 2020 23:17:13 +0000 (+0200) Subject: Implement locale specific sorting of glossary. X-Git-Tag: published-en-nb-2021-07-17~57 X-Git-Url: https://pere.pagekite.me/gitweb/text-mekanikerord.git/commitdiff_plain/c36c2159197553210a34ee90bb1150e6af78edba?hp=48ee9a3f7d79ab05de7d327c94c84e1e7767c247 Implement locale specific sorting of glossary. --- diff --git a/Makefile b/Makefile index 8dcd6b9..fa7a21c 100644 --- a/Makefile +++ b/Makefile @@ -24,10 +24,10 @@ epubcheck: book.epub check: lint epubcheck glossary-nb.xml: make-glossary meksme-utf8.xml - ./make-glossary --output $@ nb + LC_COLLATE=nb_NO.UTF-8 ./make-glossary --output $@ nb glossary-sme.xml: make-glossary meksme-utf8.xml - ./make-glossary --output $@ sme + LC_COLLATE=nb_NO.UTF-8 ./make-glossary --output $@ sme DBLATEX_OPTS = \ -b xetex \ diff --git a/make-glossary b/make-glossary index a3f9149..d12d3a3 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,9 +57,9 @@ 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'): import lxml.builder @@ -120,6 +122,8 @@ 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()