summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-02-17 20:51:46 +0000
committerKarl Berry <karl@freefriends.org>2024-02-17 20:51:46 +0000
commit0b64aab6016340bb1a2e2186f4892b58ce5aeb06 (patch)
tree3e503f311a4a3093e222faf079840589e54b8dc4
parent7085a7a2895ae17ac23b77bdffdeb8713e5319df (diff)
polyglossia (17feb24)
git-svn-id: svn://tug.org/texlive/trunk@69941 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/README.md6
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdfbin73168 -> 73170 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdfbin42173 -> 42554 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdfbin22815 -> 22800 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/example-korean.pdfbin20173 -> 20205 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/example-thai.pdfbin13360 -> 13943 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/examples.pdfbin148058 -> 147679 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdfbin374493 -> 381896 bytes
-rw-r--r--Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex134
-rw-r--r--Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx2054
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf66
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf4
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf7
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf3
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf (renamed from Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde)4
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua2
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua16
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty1205
260 files changed, 2077 insertions, 1908 deletions
diff --git a/Master/texmf-dist/doc/latex/polyglossia/README.md b/Master/texmf-dist/doc/latex/polyglossia/README.md
index a2f6bf506e8..9d5f0bc58b3 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/README.md
+++ b/Master/texmf-dist/doc/latex/polyglossia/README.md
@@ -1,4 +1,4 @@
-# THE POLYGLOSSIA PACKAGE v1.66
+# THE POLYGLOSSIA PACKAGE v2.0
## Multilingual typesetting with XeLaTeX and LuaLaTeX
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -26,8 +26,8 @@ Polyglossia makes it possible to automate the following tasks:
# LICENCE
-Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2023 Arthur Reutenauer,
-Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel
+Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2024 Arthur Reutenauer,
+Copyright (c) 2019-2023 Bastien Roucariès, 2019-2024 Jürgen Spitzmüller, 2023-2024 Udi Fogiel
Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence
(https://opensource.org/licenses/MIT).
diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
index 0e520c86f31..8b044a6399c 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdf
index 09cea980a42..57915147cdb 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdf
index 29e122b3a4d..dcbbbbf5f96 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
index d5bec5ab845..13c8155d867 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf b/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
index d4930c67d30..129c140403b 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/examples.pdf b/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
index 525213f85e3..66528ec840a 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
index 6d76a007bd9..1050ac71d1a 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
+++ b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
index d8cc59d6593..5f0c1c0d1bf 100644
--- a/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
+++ b/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
@@ -570,11 +570,8 @@ Table~\ref{tab:BCP47-polyglossia} lists the currently supported tags.
\begin{itemize}
\item \xpgboolkeyfalse[1.1.1]{babelshorthands}
- Globally activates \pkg{babel} shorthands whenever available. Such shorthands are
- implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
- Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian,
- Russian, Slovak, and Ukrainian. Please refer to the respective language descriptions
- (sec.~\ref{specific}) for details.
+ Globally activates \pkg{babel} shorthands whenever available.
+ Please refer to sec.~\ref{shorthands} for details.
\item \xpgboolkeyfalse{localmarks} redefines the internal \LaTeX\ macros \cmd\markboth\ and
\cmd\markright\ to the effect that the header text is explicitly set in the currently
@@ -600,6 +597,43 @@ Table~\ref{tab:BCP47-polyglossia} lists the currently supported tags.
by \LaTeX, \pkg{fontspec} and \pkg{polyglossia} are output.
\end{itemize}
+\subsection{Shorthands}\label{shorthands}
+
+\pkg{Babel} has introduced the nifty feature of \enquote{shorthands} for some of the languages
+it supports.
+Shorthands make use of active characters to provide quick access to glyphs and formatting
+peculiarities that are common in a respective language (\eg ¦"a¦ for German umlaut ⟨ä⟩ in case
+this is not available on your keyboard).
+\pkg{Polyglossia} has adopted this feature, we call it \emph{babelshorthands}.
+
+Shorthands need to be activated for the respective language, or can be activated globally, via
+the boolean option \xpgoption{babelshorthands} (either passed globally when loading \pkg{polyglossia}
+or to a specific language when loading it).
+
+Shorthands are implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
+Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian, Occitan,
+Piedmontese, Polish, Portuguese, Russian, Slovak, and Ukrainian, and their number and function
+differs between these languages. Please refer to the respective language descriptions (sec.~\ref{specific})
+for detailed elaborations.
+
+If you want to re-use the shorthands defined for a specific language in a different language,
+you can do so by using in preamble:\new{2.0}
+\displaycmd{\inheritbabelshorthands\marg{source language}\marg{target language}}{\inheritbabelshorthands}
+in order to input and activate the shorthands defined for the \meta{source language} in
+the \meta{target language}. Both languages will be loaded as \enquote{other} languages if they have not
+been loaded yet. If one of the languages does not exist, or if the \meta{source language} does not provide any
+shorthands, you will get an error message.
+
+Note, also, that you can only use \cmd{\inheritbabelshorthands} once per language. Subsequent
+calls will overwrite previous ones (and also the shorthand that might be defined for a
+\meta{target language} in the first place).
+
+If you want to enable the shorthands of a specific language inline, also when the language itself
+is not active (but loaded in the preamble), you can do so by means of\new{2.0}
+\displaycmd{\usebabelshorthands\marg{language}}{\usebabelshorthands}
+The effect of this is local to groups. If you want to disable any active shorthands, you can use
+¦\usebabelshorthands{none}¦.
+
\section{Language-switching commands}\label{languageswitching}
\subsection{Recommended commands}\label{sec:langcmds}
@@ -697,9 +731,11 @@ ought to be mentioned here.
In a similar vein, it is possible to use \Cmd\rmfamilylatin, \Cmd\sffamilylatin,
and \Cmd\ttfamilylatin.
-\item \Cmd\latinalph: Representation of counter as a lower-case letter: 1 = a, 2 = b, etc.
+\item \DescribeMacro{\latinalph}\cmd{\latinalph\marg{counter}}: Representation of counter as a lower-case letter:
+ 1 = a, 2 = b, etc.
-\item \Cmd\latinAlph: Representation of counter as a upper-case letter: 1 = A, 2 = B, etc.
+\item \DescribeMacro{\latinAlph}\cmd{\latinAlph\marg{counter}}: Representation of counter as a upper-case letter:
+ 1 = A, 2 = B, etc.
\end{itemize}
@@ -1139,23 +1175,37 @@ and that passing \xpgvalue{babelshorthands} (without value) is equivalent to pas
If this is turned on, the following shorthands for fine-tuning hyphenation
and micro-typography of Finnish words are activated:
\begin{shorthands}
- \item[¦"-¦] adds a hyphenation point that does still allow for hyphenation at the points preset
- in the hyphenation patterns (as opposed to \cmd\-).
- \item[\texttt{"\textasciitilde}] for a hyphen sign without a breakpoint. Useful for
- cases where the hyphen should stick at the following syllable.
+ \item[¦"-¦] adds an explicit hyphen without a breakpoint, allowing for hyphenation at the
+ other points preset in the hyphenation patterns. Useful for
+ cases where the hyphen should stick at the following syllable
+ (\eg ¦pakastekaapit ja "-arkut¦).
+ \item[\texttt{"=}] for a hyphen sign without a breakpoint that does also remove all other
+ breakpoints in the word (as opposed to ¦"-¦).
+ \item[\texttt{"\textasciitilde}] functionally equivalent to ¦"-¦ (provided for backwards
+ compatibility reasons).
\item[¦"|¦] disables a ligature at this position.
\item[¦""¦] allows for a line break at this position (without hyphenation sign).
\item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash,
hyphenation at the breakpoints preset in the hyphenation patterns is still allowed.
\end{shorthands}
- \item \xpgboolkeyfalse[1.54]{schoolhyphens}
- If this is set to true, alternative (experimental) hyphenation patterns are used rather than the
- default Finnish patterns. These (so-called `School') patterns allow hyphenation at
+ \item \xpgchoicekey[2.0]{hyphens}{\xpgpresetvalue{default}, \xpgvalue{babel}, \xpgvalue{school}}
+ Hyphenation in Finnish is peculiar since there are many rather long words. In order to select a suitable
+ hyphenation pattern, three different options are provided:
+ \begin{itemize}
+ \item The \xpgvalue{default} patterns as used by \LaTeX\ are rather strict and try to prevent hyphenation
+ at points which are valid but considered sub-optimal from an ortho-typographic point of view
+ (\eg hyphenation between two vowels), with the drawback that simple words are sometimes not being
+ hyphenated at points where this would be valid, and lines might become unevenly spaced.
+ \item The \pkg{babel} support for Finnish by default tweaks some hyphenation-related values
+ (such as \cmd\hyphenpenalty) for Finnish. If you want to replicate this with \pkg{polyglossia},
+ select \xpgvalue{babel} (this still uses the default patterns).
+ \item The \xpgvalue{school} setting, finally, employs alternative (experimental) hyphenation patterns
+ rather than the default Finnish patterns. These (so-called `School') patterns allow hyphenation at
all valid points, including hyphenation points that are considered sub-optimal from an
- ortho-typographic point of view (e.\,g., hyphenation between two vowels).
- The default patterns try to prevent such hyphenation, with the drawback that simple words
- are sometimes not being hyphenated at points where this would be valid.
+ ortho-typographic point of view.\footnote{This equals the previous boolean option \xpgoption{schoolhyphens},
+ which is still supported for backwards compatibility.}
See \url{https://github.com/hyphenation/basic-finnish} for details.
+ \end{itemize}
\end{itemize}
\subsection{french}\label{french}
@@ -1313,6 +1363,11 @@ and that passing \xpgvalue{babelshorthands} (without value) is equivalent to pas
\eg ¦(pseudo"~)""wissenschaftlich¦.
\item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash, hyphenation at the breakpoints
preset in the hyphenation patterns is still allowed.
+ \item[¦"*¦]\new{2.0} An asterisk which assures the word can still be hyphenated at its defined breakpoints.
+ Useful if you want to employ gender-sensitive writing (,gender star`).
+ Similar shorthands are available for the alternative gender-sensitive spellings, ¦":¦ and ¦"_¦.
+ \item[¦"x¦]\new{2.0} Inserts a gender mark which assures the word can still be hyphenated at its defined breakpoints.
+ This is predefined to ¦*¦ but can be globally redefined by redefining the macro \cmd\mkgender\ (see below).
\end{shorthands}
There are also four shorthands for quotation signs:
@@ -1323,6 +1378,11 @@ and that passing \xpgvalue{babelshorthands} (without value) is equivalent to pas
\item[¦">¦] for French-style right double quotes (»).
\end{shorthands}
\end{itemize}
+ \paragraph*{Commands:}
+ \begin{itemize}
+ \item \Cmd\mkgender\new{2.0} Defines which gender mark is output by the babelshorthand ¦"x¦.
+ Predefined to ¦\def\mkgender{*}¦.
+ \end{itemize}
\subsection{greek}\label{greek}
\paragraph*{Options:}
@@ -2637,7 +2697,45 @@ where \meta{type} is a supported language id type (such as ¦bcp-47¦) and \meta
\section{Revision history}
\bgroup\footnotesize
-\subsection*{1.66 (2023/12/02)}
+
+\subsection*{2.0 (2024/02/17)}
+
+\subsubsection*{Bug fixes}
+\begin{itemize}
+ \item Fix error with undefined property list that unhides with
+ \pkg{l3kernel} version 2024-02-13 (\TXI{626}).
+ \item Fix \xpgoption{frenchfootnote} option (\TXI{620}).
+ \item The error message on improper font setting is now
+ correct if the main script is non-Latin, for
+ non-Roman fonts (\TXI{571}), and specifically for
+ the CJK case (\TXI{621}).
+ \item Fix expansion of localnumeral (\TXI{622}).
+\end{itemize}
+
+\subsubsection*{New Features}
+\begin{itemize}
+ \item Add \cmd{\inheritbabelshorthands} (\TXI{604}).
+ \item Add \cmd{\usebabelshorthands}.
+ \item Add shorthands for German gender-sensitive writing.
+ \item Implement \pkg{babel}-style hyphenation for Finnish.
+\end{itemize}
+
+\subsubsection*{Documentation improvements}
+\begin{itemize}
+ \item Fix documentation of Finnish shorthands (\TXI{623}).
+\end{itemize}
+
+\subsubsection*{Internal work}
+\begin{itemize}
+ \item The package code has been subjected to a major rewrite.
+ Code has been cleaned up, and in general, \pkg{polyglossia}
+ more consistently employs \pkg{latex3} now. Note that this is
+ an ongoing and yet unfinished project that will continue over
+ the next releases.
+\end{itemize}
+
+
+\subsection*{1.66 (2023/12/11)}
\subsubsection*{Bug fixes}
\begin{itemize}
diff --git a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
index 2adeb09db92..32ca151bc28 100644
--- a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
+++ b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
@@ -8,7 +8,7 @@
\iffalse
%</internal>
%<*README>
-# THE POLYGLOSSIA PACKAGE v1.66
+# THE POLYGLOSSIA PACKAGE v2.0
## Multilingual typesetting with XeLaTeX and LuaLaTeX
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -36,8 +36,8 @@ Polyglossia makes it possible to automate the following tasks:
# LICENCE
-Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2023 Arthur Reutenauer,
-Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel
+Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2024 Arthur Reutenauer,
+Copyright (c) 2019-2023 Bastien Roucariès, 2019-2024 Jürgen Spitzmüller, 2023-2024 Udi Fogiel
Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence
(https://opensource.org/licenses/MIT).
@@ -66,17 +66,17 @@ to track the issues and follow progress.
The polyglossia package
(C) 2008–2010 François Charette
- (C) 2011–2023 Arthur Reutenauer
+ (C) 2011–2024 Arthur Reutenauer
(C) 2013 Elie Roux
(C) 2019 Bastien Roucariès
- (C) 2019–2023 Jürgen Spitzmüller
+ (C) 2019–2024 Jürgen Spitzmüller
License information appended
\endpreamble
\postamble
- Copyright (C) 2023 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
+ Copyright (C) 2024 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -109,7 +109,6 @@ to track the issues and follow progress.
\generate{\file{babelsh.def}{\from{polyglossia.dtx}{babelsh.def}}}
\generate{\file{cal-util.def}{\from{polyglossia.dtx}{cal-util.def}}}
\generate{\file{xgreek-fixes.def}{\from{polyglossia.dtx}{xgreek-fixes.def}}}
-\generate{\file{gloss-latex.lde}{\from{polyglossia.dtx}{gloss-latex.lde}}}
\generate{\file{gloss-acadien.ldf}{\from{polyglossia.dtx}{gloss-acadien.ldf}}}
\generate{\file{gloss-aeb.ldf}{\from{polyglossia.dtx}{gloss-aeb.ldf}}}
\generate{\file{gloss-af.ldf}{\from{polyglossia.dtx}{gloss-af.ldf}}}
@@ -276,6 +275,7 @@ to track the issues and follow progress.
\generate{\file{gloss-la-x-medieval.ldf}{\from{polyglossia.dtx}{gloss-la-x-medieval.ldf}}}
\generate{\file{gloss-la.ldf}{\from{polyglossia.dtx}{gloss-la.ldf}}}
\generate{\file{gloss-lao.ldf}{\from{polyglossia.dtx}{gloss-lao.ldf}}}
+\generate{\file{gloss-latex.ldf}{\from{polyglossia.dtx}{gloss-latex.ldf}}}
\generate{\file{gloss-latin.ldf}{\from{polyglossia.dtx}{gloss-latin.ldf}}}
\generate{\file{gloss-latinclassic.ldf}{\from{polyglossia.dtx}{gloss-latinclassic.ldf}}}
\generate{\file{gloss-latinecclesiastic.ldf}{\from{polyglossia.dtx}{gloss-latinecclesiastic.ldf}}}
@@ -963,11 +963,8 @@ to track the issues and follow progress.
%
% \begin{itemize}
% \item \xpgboolkeyfalse[1.1.1]{babelshorthands}
-% Globally activates \pkg{babel} shorthands whenever available. Such shorthands are
-% implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
-% Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian,
-% Russian, Slovak, and Ukrainian. Please refer to the respective language descriptions
-% (sec.~\ref{specific}) for details.
+% Globally activates \pkg{babel} shorthands whenever available.
+% Please refer to sec.~\ref{shorthands} for details.
%
% \item \xpgboolkeyfalse{localmarks} redefines the internal \LaTeX\ macros \cmd\markboth\ and
% \cmd\markright\ to the effect that the header text is explicitly set in the currently
@@ -993,6 +990,43 @@ to track the issues and follow progress.
% by \LaTeX, \pkg{fontspec} and \pkg{polyglossia} are output.
% \end{itemize}
%
+% \subsection{Shorthands}\label{shorthands}
+%
+% \pkg{Babel} has introduced the nifty feature of \enquote{shorthands} for some of the languages
+% it supports.
+% Shorthands make use of active characters to provide quick access to glyphs and formatting
+% peculiarities that are common in a respective language (\eg ¦"a¦ for German umlaut ⟨ä⟩ in case
+% this is not available on your keyboard).
+% \pkg{Polyglossia} has adopted this feature, we call it \emph{babelshorthands}.
+%
+% Shorthands need to be activated for the respective language, or can be activated globally, via
+% the boolean option \xpgoption{babelshorthands} (either passed globally when loading \pkg{polyglossia}
+% or to a specific language when loading it).
+%
+% Shorthands are implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
+% Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian, Occitan,
+% Piedmontese, Polish, Portuguese, Russian, Slovak, and Ukrainian, and their number and function
+% differs between these languages. Please refer to the respective language descriptions (sec.~\ref{specific})
+% for detailed elaborations.
+%
+% If you want to re-use the shorthands defined for a specific language in a different language,
+% you can do so by using in preamble:\new{2.0}
+% \displaycmd{\inheritbabelshorthands\marg{source language}\marg{target language}}{\inheritbabelshorthands}
+% in order to input and activate the shorthands defined for the \meta{source language} in
+% the \meta{target language}. Both languages will be loaded as \enquote{other} languages if they have not
+% been loaded yet. If one of the languages does not exist, or if the \meta{source language} does not provide any
+% shorthands, you will get an error message.
+%
+% Note, also, that you can only use \cmd{\inheritbabelshorthands} once per language. Subsequent
+% calls will overwrite previous ones (and also the shorthand that might be defined for a
+% \meta{target language} in the first place).
+%
+% If you want to enable the shorthands of a specific language inline, also when the language itself
+% is not active (but loaded in the preamble), you can do so by means of\new{2.0}
+% \displaycmd{\usebabelshorthands\marg{language}}{\usebabelshorthands}
+% The effect of this is local to groups. If you want to disable any active shorthands, you can use
+% ¦\usebabelshorthands{none}¦.
+%
% \section{Language-switching commands}\label{languageswitching}
%
% \subsection{Recommended commands}\label{sec:langcmds}
@@ -1090,9 +1124,11 @@ to track the issues and follow progress.
% In a similar vein, it is possible to use \Cmd\rmfamilylatin, \Cmd\sffamilylatin,
% and \Cmd\ttfamilylatin.
%
-% \item \Cmd\latinalph: Representation of counter as a lower-case letter: 1 = a, 2 = b, etc.
+% \item \DescribeMacro{\latinalph}\cmd{\latinalph\marg{counter}}: Representation of counter as a lower-case letter:
+% 1 = a, 2 = b, etc.
%
-% \item \Cmd\latinAlph: Representation of counter as a upper-case letter: 1 = A, 2 = B, etc.
+% \item \DescribeMacro{\latinAlph}\cmd{\latinAlph\marg{counter}}: Representation of counter as a upper-case letter:
+% 1 = A, 2 = B, etc.
% \end{itemize}
%
%
@@ -1532,23 +1568,37 @@ to track the issues and follow progress.
% If this is turned on, the following shorthands for fine-tuning hyphenation
% and micro-typography of Finnish words are activated:
% \begin{shorthands}
-% \item[¦"-¦] adds a hyphenation point that does still allow for hyphenation at the points preset
-% in the hyphenation patterns (as opposed to \cmd\-).
-% \item[\texttt{"\textasciitilde}] for a hyphen sign without a breakpoint. Useful for
-% cases where the hyphen should stick at the following syllable.
+% \item[¦"-¦] adds an explicit hyphen without a breakpoint, allowing for hyphenation at the
+% other points preset in the hyphenation patterns. Useful for
+% cases where the hyphen should stick at the following syllable
+% (\eg ¦pakastekaapit ja "-arkut¦).
+% \item[\texttt{"=}] for a hyphen sign without a breakpoint that does also remove all other
+% breakpoints in the word (as opposed to ¦"-¦).
+% \item[\texttt{"\textasciitilde}] functionally equivalent to ¦"-¦ (provided for backwards
+% compatibility reasons).
% \item[¦"|¦] disables a ligature at this position.
% \item[¦""¦] allows for a line break at this position (without hyphenation sign).
% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash,
% hyphenation at the breakpoints preset in the hyphenation patterns is still allowed.
% \end{shorthands}
-% \item \xpgboolkeyfalse[1.54]{schoolhyphens}
-% If this is set to true, alternative (experimental) hyphenation patterns are used rather than the
-% default Finnish patterns. These (so-called `School') patterns allow hyphenation at
+% \item \xpgchoicekey[2.0]{hyphens}{\xpgpresetvalue{default}, \xpgvalue{babel}, \xpgvalue{school}}
+% Hyphenation in Finnish is peculiar since there are many rather long words. In order to select a suitable
+% hyphenation pattern, three different options are provided:
+% \begin{itemize}
+% \item The \xpgvalue{default} patterns as used by \LaTeX\ are rather strict and try to prevent hyphenation
+% at points which are valid but considered sub-optimal from an ortho-typographic point of view
+% (\eg hyphenation between two vowels), with the drawback that simple words are sometimes not being
+% hyphenated at points where this would be valid, and lines might become unevenly spaced.
+% \item The \pkg{babel} support for Finnish by default tweaks some hyphenation-related values
+% (such as \cmd\hyphenpenalty) for Finnish. If you want to replicate this with \pkg{polyglossia},
+% select \xpgvalue{babel} (this still uses the default patterns).
+% \item The \xpgvalue{school} setting, finally, employs alternative (experimental) hyphenation patterns
+% rather than the default Finnish patterns. These (so-called `School') patterns allow hyphenation at
% all valid points, including hyphenation points that are considered sub-optimal from an
-% ortho-typographic point of view (e.\,g., hyphenation between two vowels).
-% The default patterns try to prevent such hyphenation, with the drawback that simple words
-% are sometimes not being hyphenated at points where this would be valid.
+% ortho-typographic point of view.\footnote{This equals the previous boolean option \xpgoption{schoolhyphens},
+% which is still supported for backwards compatibility.}
% See \url{https://github.com/hyphenation/basic-finnish} for details.
+% \end{itemize}
% \end{itemize}
%
% \subsection{french}\label{french}
@@ -1706,6 +1756,11 @@ to track the issues and follow progress.
% \eg ¦(pseudo"~)""wissenschaftlich¦.
% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash, hyphenation at the breakpoints
% preset in the hyphenation patterns is still allowed.
+% \item[¦"*¦]\new{2.0} An asterisk which assures the word can still be hyphenated at its defined breakpoints.
+% Useful if you want to employ gender-sensitive writing (,gender star`).
+% Similar shorthands are available for the alternative gender-sensitive spellings, ¦":¦ and ¦"_¦.
+% \item[¦"x¦]\new{2.0} Inserts a gender mark which assures the word can still be hyphenated at its defined breakpoints.
+% This is predefined to ¦*¦ but can be globally redefined by redefining the macro \cmd\mkgender\ (see below).
% \end{shorthands}
%
% There are also four shorthands for quotation signs:
@@ -1716,6 +1771,11 @@ to track the issues and follow progress.
% \item[¦">¦] for French-style right double quotes (»).
% \end{shorthands}
% \end{itemize}
+% \paragraph*{Commands:}
+% \begin{itemize}
+% \item \Cmd\mkgender\new{2.0} Defines which gender mark is output by the babelshorthand ¦"x¦.
+% Predefined to ¦\def\mkgender{*}¦.
+% \end{itemize}
%
% \subsection{greek}\label{greek}
% \paragraph*{Options:}
@@ -3030,7 +3090,45 @@ to track the issues and follow progress.
% \section{Revision history}
%
% \bgroup\footnotesize
-% \subsection*{1.66 (2023/12/02)}
+%
+% \subsection*{2.0 (2024/02/17)}
+%
+% \subsubsection*{Bug fixes}
+% \begin{itemize}
+% \item Fix error with undefined property list that unhides with
+% \pkg{l3kernel} version 2024-02-13 (\TXI{626}).
+% \item Fix \xpgoption{frenchfootnote} option (\TXI{620}).
+% \item The error message on improper font setting is now
+% correct if the main script is non-Latin, for
+% non-Roman fonts (\TXI{571}), and specifically for
+% the CJK case (\TXI{621}).
+% \item Fix expansion of localnumeral (\TXI{622}).
+% \end{itemize}
+%
+% \subsubsection*{New Features}
+% \begin{itemize}
+% \item Add \cmd{\inheritbabelshorthands} (\TXI{604}).
+% \item Add \cmd{\usebabelshorthands}.
+% \item Add shorthands for German gender-sensitive writing.
+% \item Implement \pkg{babel}-style hyphenation for Finnish.
+% \end{itemize}
+%
+% \subsubsection*{Documentation improvements}
+% \begin{itemize}
+% \item Fix documentation of Finnish shorthands (\TXI{623}).
+% \end{itemize}
+%
+% \subsubsection*{Internal work}
+% \begin{itemize}
+% \item The package code has been subjected to a major rewrite.
+% Code has been cleaned up, and in general, \pkg{polyglossia}
+% more consistently employs \pkg{latex3} now. Note that this is
+% an ongoing and yet unfinished project that will continue over
+% the next releases.
+% \end{itemize}
+%
+%
+% \subsection*{1.66 (2023/12/11)}
%
% \subsubsection*{Bug fixes}
% \begin{itemize}
@@ -4102,44 +4200,52 @@ to track the issues and follow progress.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage
- {polyglossia} {2023/12/11} {v1.66}
+ {polyglossia} {2024/02/17} {v2.0}
{Modern multilingual typesetting with XeLaTeX and LuaLaTeX}
+
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}[2008/08/13]
% Will raise error if used with anything else than XeTeX or LuaTeX
\RequirePackage{fontspec}[2010/06/08]% v2.0
\RequirePackage{iftex}
-% Execute code #3 if package #1 has been loaded already, else
-% add to package hook #2
-\cs_new_nopar:Nn \__xpg_at_package_hook:nnn{
- \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}%
-}
-
\prg_generate_conditional_variant:Nnn \clist_if_in:Nn {Ne} {TF, T, F} % check if needed
+
% correct a bug in tracklang
-\__xpg_at_package_hook:nnn{tracklang}{file/tracklang.sty/after}{%
- \@ifpackagelater{tracklang}{2019/08/30}{}{\global\def\AddTrackedLangage{\AddTrackedLanguage}}
+\AddToHook{package/tracklang/after}{%
+ \IfPackageAtLeastTF{tracklang}{2019/08/30}
+ {}
+ {\cs_gset_eq:NN \AddTrackedLangage \AddTrackedLanguage}
}
-%% This is for compatibility with Babel-aware package:
-\def\languageshorthands#1{\relax} % this is for scrlttr2 class
-\def\bbl@cs#1{\csname bbl@#1\endcsname}
+%% The following is for compatibility with Babel-aware package:
+% \languageshorthands is provided by babelsh.def, which is
+% only loaded by some glosses, but some classes presuppose
+% it is there generally. So let's provide a stub:
+\ProvideDocumentCommand \languageshorthands { m } {}
+% These have to be provided at the end of the preamble
\AddToHook{begindocument/before}{
- \let\bbl@set@language\xpg@set@language@aux % for biblatex
- \let\bbl@main@language\xpg@main@language % for biblatex
- \providecommand\texorpdfstring[2]{#1} % dummy command if hyperref is not loaded
+ \cs_gset_eq:NN \bbl@set@language \xpg@set@language@aux % for biblatex
+ \cs_gset_eq:NN \bbl@main@language \xpg@main@language % for biblatex
+ \ProvideDocumentCommand \texorpdfstring { m m } { #1 } % dummy command if hyperref is not loaded
}
-\sys_if_engine_luatex:T{
- \RequirePackage{luatexbase} % already included by fontspec, but needed here
- \RequireLuaModule{polyglossia}
-}
+%% when no patterns are available, we use \l@nohyphenation, assigned to 255
+%% (suggestion by Enrico Gregorio)
+%% \l@nohyphenation is defined in polyglossia.lua
+\sys_if_engine_luatex:TF
+ {
+ \RequirePackage{luatexbase} % already included by fontspec, but needed here
+ \RequireLuaModule{polyglossia}
+ }{
+ \cs_if_free:cT { l@nohyphenation }
+ { \chardef\l@nohyphenation=255 }
+ }
% Which version of XeTeX do we use? What is the boudary class? 4095 or 255
-\@ifundefined{e@alloc@intercharclass@top}
- {\chardef\xpg@boundaryclass=\@cclv}
- {\let\xpg@boundaryclass=\e@alloc@intercharclass@top}
+\cs_if_exist:cTF { e@alloc@intercharclass@top }
+ { \let\xpg@boundaryclass=\e@alloc@intercharclass@top }
+ { \chardef\xpg@boundaryclass=\@cclv }
% Useful for getting list of loaded languages and variants. Like babel's bbl@loaded
% all language loaded
@@ -4153,17 +4259,26 @@ to track the issues and follow progress.
% list of loaded languages (bcp-47 id)
\clist_new:N \xpg@bcp@loaded
-% counter in latin
-\def\latinalph#1{\expandafter\latin@alph\csname c@#1\endcsname}
-\def\latinAlph#1{\expandafter\latin@Alph\csname c@#1\endcsname}
+% output counter as lower-case latin letter
+\DeclareExpandableDocumentCommand \latinalph { m }
+{
+ \exp_args:Nc \latin@alph {c@#1}
+}
+% output counter as upper-case latin letter
+\DeclareExpandableDocumentCommand \latinAlph { m }
+{
+ \exp_args:Nc \latin@Alph {c@#1}
+}
+%% Internal hooks
% select language hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_selectlanguage: {}
% \disablehyphenation hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_hyphenation: {}
% hook to be executed at begin of document
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument: {
+\cs_new_nopar:Nn \__xpg_at_begin_document:
+{
% save various command
\let\latin@alph\@alph % TODO rename when we have the C locale
\let\latin@Alph\@Alph % TODO rename when we have the C locale
@@ -4171,22 +4286,25 @@ to track the issues and follow progress.
\let\polyglossia@Clang@@arabic\@arabic
\let\polyglossia@Clang@arabic\arabic
- \xpg@initial@setup
+ \xpg_initial_setup:
% apply \familydefault changes
\xpg@set@familydefault
}
-\AtBeginDocument{
- \polyglossia@AtBeginDocument:
+\AddToHook{begindocument}{
+ \__xpg_at_begin_document:
}
% The following needs to go after any \AtBeginDocument (also of packages
% loaded after \set[main|other]language
-\AfterEndPreamble{
+% Track whether the main language has been set
+\bool_new:N \g_xpg_main_lang_set_bool
+\AddToHook{begindocument/end}{
% now we have the C locale definition: select the language
- \polyglossia@AtBeginDocument@selectlanguage:
+ \__xpg_at_begin_document_selectlanguage:
+ \bool_gset_true:N \g_xpg_main_lang_set_bool
% If hyphenation disabling has been requested in preamble, do it now
- \polyglossia@AtBeginDocument@hyphenation:
+ \__xpg_at_begin_document_hyphenation:
}
%% custom message macros
@@ -4219,7 +4337,7 @@ to track the issues and follow progress.
\xpg@warning{Illegal~ value~ (#1)~ for~ #2}}
% error out if lang is not loaded
-\cs_new_nopar:Nn \polyglossia@error@iflangnotloaded:n
+\cs_new_nopar:Nn \xpg_error_if_lang_not_loaded:n
{
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
@@ -4239,7 +4357,16 @@ to track the issues and follow progress.
}
\msg_redirect_name:nnn { polyglossia } { languagenolongerloaded } { warning }
-%
+\msg_new:nnn { polyglossia } { unknownlocalnumeral }
+{
+ Unknown~ key~ "#1"~ in~ \string\localnumeral.
+}
+
+\msg_new:nnn { polyglossia } { localnumeralemptyvalue }
+{
+ Keys~ of~ \string\localnumeral~ must~ have~ value.
+}
+
%% use macro if defined, else warn that it is not
\cs_new_nopar:Nn \__xpg_use_or_warn:N
@@ -4257,12 +4384,12 @@ to track the issues and follow progress.
\def\@@ensure@maindir#1{\ifcsundef{@ensure@maindir}{#1}{\@ensure@maindir{#1}}}
%% Used by the language definitions files for right-to-left languages
-\def\RequireBidi
- {
+\NewDocumentCommand \RequireBidi {}
+{
\sys_if_engine_luatex:TF
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{luabidi}\fi}
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{bidi}\fi}
- }
+}
% if #1 is LR run #2 else #3
\prg_set_conditional:Nnn \__xpg_if_LR_str:n {p, T, F, TF}
@@ -4281,20 +4408,23 @@ to track the issues and follow progress.
% (lua)bidi commands to change directionality for paragraphs
% and inline text.
% overwritten with correct package
-\cs_new_nopar:Nn{\polyglossia@setpardirection:n}{
+\cs_new_nopar:Nn \__xpg_set_par_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\cs_new_nopar:Nn{\polyglossia@settextdirection:n}{
+\cs_new_nopar:Nn \__xpg_set_text_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\__xpg_at_package_hook:nnn{bidi}{package/bidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/bidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -4303,7 +4433,8 @@ to track the issues and follow progress.
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -4313,8 +4444,9 @@ to track the issues and follow progress.
}
}
}
-\__xpg_at_package_hook:nnn{luabidi}{package/luabidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/luabidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -4323,7 +4455,8 @@ to track the issues and follow progress.
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -4358,18 +4491,17 @@ to track the issues and follow progress.
%% TODO: localalph = {<alph_csname>,<Alph_csname>}
%% TODO: localnumeral = <csname>
%% or even better localdigits = {0123456789} for fully automatic setup
-\newif\if@xpg@language@really@defined@
\newcommand*\PolyglossiaSetup[2]{
- \polyglossia@keys_define_lang:n{#1}
+ \__xpg_keys_define_lang:n{#1}
\keys_set:nn { polyglossia / #1 } { #2 }
- \polyglossia_setup_hyphen:n {#1}
+ \__xpg_setup_hyphen:n {#1}
%define booleans etoolbox style and set defaults
%% TODO ? \providetoggle{#1@setup@done}%
% we initialize these so that we can use \gappto below
\csgdef{init@extras@#1}{}
\csgdef{init@noextras@#1}{} % we don't use this yet: remove?
% here we do the fontsetup:
- \xpg__auto_setupfont:n { #1 }
+ \__xpg_auto_setupfont:n { #1 }
%% TODO? \toggletrue{#1@setup@done}
% register base alias
\xpg_language_alias { #1 } { #1 }
@@ -4388,15 +4520,16 @@ to track the issues and follow progress.
% setup hyphennames from a str list of hyphen
-\cs_new:Nn \polyglossia_setup_hyphen:n {
- \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \polyglossia@langsetup {#1 / hyphennames}}
+\cs_new:Nn \__xpg_setup_hyphen:n
+{
+ \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphennames}}
\providebool{havehyphen}
\boolfalse{havehyphen}
% for each hyphen in the set until we find one that works
\clist_map_inline:Nn \l_tmpa_clist {
\ifbool{havehyphen}{}{
% check if language hyphenname is defined
- \__xpg_check_if_exist_l@:NF{#1}{
+ \__xpg_check_if_exist_l@:nF{#1}{
% if not, first consider nohyphenation
\str_if_eq:nnTF{##1}{nohyphenation}
{
@@ -4433,7 +4566,7 @@ to track the issues and follow progress.
}
% setup hyphenmins
\clist_set:Ne \l_tmpa_clist
- { \prop_item:Nn \polyglossia@langsetup {#1 / hyphenmins} }
+ { \prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphenmins} }
\cs_if_eq:cNF {l@#1} \l@nohyphenation
{
\use:x
@@ -4446,8 +4579,9 @@ to track the issues and follow progress.
}
\newcommand*\polyglossia@setup@language@patterns[1]{
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\the\csname l@#1\endcsname}
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\the\csname l@#1\endcsname}
}{
% first, test if \l@#1 exists
% without that, \csname l@#1\endcsname will be defined as \relax
@@ -4474,15 +4608,16 @@ to track the issues and follow progress.
}
}
-\prop_new:N \polyglossia@langsetup
+\prop_new:N \g_xpg_langsetup_prop
-\cs_new_protected:Npn \polyglossia@keys_define_lang:n #1 {
+\cs_new_protected:Npn \__xpg_keys_define_lang:n #1
+{
\keys_define:nn {polyglossia}{
% the script font
#1 / script
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/script}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/lcscript}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/script}{##1}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/lcscript}
{\tl_if_empty:nF{##1}{\str_lowercase:n{##1}}}
},
#1 / script
@@ -4491,84 +4626,84 @@ to track the issues and follow progress.
.initial:n = latin,
% the opentype script tag
#1 / scripttag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/scripttag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/scripttag}{##1}},
#1 / scripttag
.default:n = {},
#1 / scripttag
.initial:n = {},
% the language full name
#1 / language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/language}{##1}},
#1 / language
.value_required:n = true,
#1 / language
.initial:x = {\str_uppercase:n#1},
% the language tag
#1 / langtag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/langtag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/langtag}{##1}},
#1 / langtag
.value_required:n = true,
#1 / langtag
.initial:n = {},
% the BCP-47 tag
#1 / bcp47
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47}{##1}},
#1 / bcp47
.value_required:n = true,
#1 / bcp47
.initial:n = {},
% the BCP-47 language tag
#1 / bcp47-language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-language}{##1}},
#1 / bcp47-language
.value_required:n = true,
#1 / bcp47-language
.initial:n = {},
% the BCP-47 region tag
#1 / bcp47-region
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-region}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-region}{##1}},
#1 / bcp47-region
.value_required:n = false,
#1 / bcp47-region
.initial:n = {},
% the BCP-47 script tag
#1 / bcp47-script
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-script}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-script}{##1}},
#1 / bcp47-script
.value_required:n = true,
#1 / bcp47-script
.initial:n = {},
% the BCP-47 variant tag
#1 / bcp47-variant
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-variant}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-variant}{##1}},
#1 / bcp47-variant
.value_required:n = false,
#1 / bcp47-variant
.initial:n = {},
% the BCP-47 extension-t tag
#1 / bcp47-extension-t
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-t}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-t}{##1}},
#1 / bcp47-extension-t
.value_required:n = false,
#1 / bcp47-extension-t
.initial:n = {},
% the BCP-47 extension-u tag
#1 / bcp47-extension-u
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-u}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-u}{##1}},
#1 / bcp47-extension-u
.value_required:n = false,
#1 / bcp47-extension-u
.initial:n = {},
% the BCP-47 extension-x tag
#1 / bcp47-extension-x
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-x}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-x}{##1}},
#1 / bcp47-extension-x
.value_required:n = false,
#1 / bcp47-extension-x
.initial:n = {},
% the BCP-47 casing alias
#1 / bcp47-casing
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-casing}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-casing}{##1}},
#1 / bcp47-casing
.value_required:n = false,
#1 / bcp47-casing
@@ -4577,7 +4712,7 @@ to track the issues and follow progress.
#1 / hyphennames
.code:n = {
\clist_set:Nn{\l_tmpa_clist}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
},
#1 / hyphennames
.value_required:n = true,
@@ -4590,7 +4725,7 @@ to track the issues and follow progress.
{LR}{}
{RL}{\RequireBidi}
}
- {\prop_gput:Nnn{\polyglossia@langsetup}{#1/direction}{##1}}
+ {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/direction}{##1}}
{\xpg@error{Unknown~ direction~ "##1"~ for~ language~ "#1"}}
},
#1 / direction
@@ -4604,7 +4739,7 @@ to track the issues and follow progress.
\int_compare:nNnF { \clist_count:n {##1} } = {2}
{\xpg@error{hypenmins~should~be~a~list~of~two~entries,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/hyphenmins} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/hyphenmins} {##1}
},
#1 / hyphenmins
.value_required:n = true,
@@ -4617,7 +4752,7 @@ to track the issues and follow progress.
\int_compare:nNnF { \clist_count:n {##1} } = {1}
{\xpg@error{totalhyphenhypenmin~should~be~a~single~entry,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/totalhyphenmin} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/totalhyphenmin} {##1}
},
#1 / totalhyphenmin
.value_required:n = false,
@@ -4636,35 +4771,35 @@ to track the issues and follow progress.
% environment name
#1 / envname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/envname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/envname}{##1}
},
#1/ envname.value_required:n = true,
#1/ envname.initial:n = {#1},
% babel name
#1 / babelname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/babelname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/babelname}{##1}
},
#1/ babelname.value_required:n = true,
#1/ babelname.initial:n = {#1},
% default numerals
#1 / localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/localnumeral}{##1}
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / localnumeral.value_required:n = true,
#1 / localnumeral.initial:n = {polyglossia@C@localnumeral},
% uppercased
#1 / Localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / Localnumeral.value_required:n = true,
#1 / Localnumeral.initial:n = {polyglossia@C@localnumeral},
% environment define command (by default create the environment)
#1 / DefineCommandsCmd
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/DefineCommandsCmd}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/DefineCommandsCmd}{##1}},
#1 / DefineCommandsCmd
.value_required:n = true,
#1 / DefineCommandsCmd
@@ -4677,29 +4812,32 @@ to track the issues and follow progress.
\polyglossia@Clang@@arabic{#2}
}
-\tl_new:N \l__xpg_localnumeral_tl
-\bool_new:N \l__xpg_localnumeral_bool
-
-\keys_define:nn { polyglossia / localnumeral }
+\cs_new:Npn \__xpg_localnumeral_parse:nn #1 #2
{
- lang .choice:,
- lang / main .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \mainlanguagename } ,
- lang / local .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \languagename }
- \bool_set_true:N \l__xpg_localnumeral_bool ,
- lang / unknown .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { #1 } ,
+ \str_if_eq:eeF { #1 } { lang } { \msg_error:nnn { polyglossia } { unknownlocalnumeral } { #1 } }
+ \exp_args:Ne \str_case:nnF { #2 }
+ {
+ { local } { }
+ { main } { \foreignlanguage { \mainlanguagename } }
+ }
+ { \foreignlanguage { #2 } }
}
\cs_new:Npn \__xpg_localnumeral:nnn #1 #2 #3
{
- \group_begin:
- \keys_set:ne { polyglossia / localnumeral } { #2 }
- \bool_if:NF \l__xpg_localnumeral_bool { \foreignlanguage { \l__xpg_localnumeral_tl } }
- { \use:c { \prop_item:Ne \polyglossia@langsetup
- { \l__xpg_localnumeral_tl / #3 } } { } { #1 } }
- \group_end:
+ \use:e
+ {
+ \keyval_parse:nnn
+ { \msg_error:nnn { polyglossia } { localnumeralemptyvalue } }
+ {
+ \__xpg_localnumeral_parse:nn
+ } { #2 }
+ }
+ { \use:c { \prop_item:Ne \g_xpg_langsetup_prop
+ { \languagename / #3 } } { } { #1 } }
}
-
-\NewDocumentCommand \localnumeral { s ={ lang } O{ local } m }
+
+\NewExpandableDocumentCommand \localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -4710,7 +4848,7 @@ to track the issues and follow progress.
}
}
-\NewDocumentCommand \Localnumeral { s ={ lang } O{ local } m }
+\NewExpandableDocumentCommand \Localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -4721,86 +4859,90 @@ to track the issues and follow progress.
}
}
-\cs_new_nopar:Npn \xpg__french_spacing:n #1
+\cs_new_nopar:Npn \__xpg_french_spacing:n #1
{
\bool_if:cTF { g__xpg_#1_fs_bool }
{ \frenchspacing } { \nonfrenchspacing }
}
-\cs_new_nopar:Npn \xpg__indent_first:n #1
+\cs_new_nopar:Npn \__xpg_indent_first:n #1
{
\bool_if:cTF { g__xpg_#1_if_bool }
{ \french@indent } { \nofrench@indent }
}
-\cs_new:Nn{\polyglossia@lang@setpardirection:n}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_par_direction:n
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@setpardirection:n{\l_tmpa_tl}
+ \__xpg_set_par_direction:n{\l_tmpa_tl}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\cs_new:Nn{\polyglossia@lang@settextdirection:nn}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_text_direction:nn
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@settextdirection:n{\l_tmpa_tl}{#2}
+ \__xpg_set_text_direction:n{\l_tmpa_tl}{#2}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\def\xpg@lastlanguage{0}
+\tl_new:N \g__xpg_lastlanguage_tl
+\tl_set:Nn \g__xpg_lastlanguage_tl { 0 }
-\providebool{xpg@hyphenation@disabled}
-\boolfalse{xpg@hyphenation@disabled}
+% Track whether hyphenation is disabled
+\bool_new:N \g__xpg_hyphenation_disabled_bool
-\def\xpg@disablehyphenation{
- \ifx\@onlypreamble\@notprerr
- \xpg@@disablehyphenation
- \else
- % if this is used in the preamble, we have to postpone
- % the execution until the main language has been set (#125).
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {
- \xpg@@disablehyphenation
+\DeclareDocumentCommand \disablehyphenation {}
+{
+ \bool_if:NTF \g_xpg_main_lang_set_bool
+ {
+ \__xpg_disable_hyphenation:
+ }
+ {
+ % we have to postpone the execution until the main language
+ % has been set (#125).
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_hyphenation: {
+ \__xpg_disable_hyphenation:
}
- \fi
+ }
}
-\def\xpg@@disablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{}{
- \booltrue{xpg@hyphenation@disabled}
- \xdef\xpg@lastlanguage{\the\language}
+\cs_new:Nn \__xpg_disable_hyphenation:
+{
+ \bool_if:NF \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_true:N \g__xpg_hyphenation_disabled_bool
+ \tl_gset:Ne \g__xpg_lastlanguage_tl { \the\language }
% We do not call \xpg@set@hyphenation@patterns here to avoid a warning message.
% "nohyphenation" is not listed in language.dat.lua.
\language=\l@nohyphenation
}
}
-\def\xpg@enablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{
- \boolfalse{xpg@hyphenation@disabled}
- \language=\csname xpg@lastlanguage\endcsname
- }{}%
+\DeclareDocumentCommand \enablehyphenation {}
+{
+ \bool_if:NT \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_false:N \g__xpg_hyphenation_disabled_bool
+ \language=\tl_use:N{\g__xpg_lastlanguage_tl}
+ }%
}
-\let\disablehyphenation\xpg@disablehyphenation
-\let\enablehyphenation\xpg@enablehyphenation
-
-%\def\xpg@fontsetup#1{\xpg@csifdef@warn{xpg@fontsetup@#1}}
-%\def\xpg@fontsetup@none#1{\csgdef{#1@font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg@fontsetup@custom#1{\csuse{#1@font}}
-
-\cs_new:Npn \xpg__auto_setupfont:n #1 {
+\cs_new:Npn \__xpg_auto_setupfont:n #1
+{
\bool_if:cTF { g__xpg_#1_fontsetup_bool }
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{\xpg@fontsetup@latin{#1}}
{\xpg@fontsetup@nonlatin{#1}}
}
@@ -4812,11 +4954,12 @@ to track the issues and follow progress.
% add fontfeature Language=#2 to langtag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@language:nn {
+\cs_new:Nn \__xpg_add_font_feature_language:nn
+{
\bool_if:nTF{\tl_if_empty_p:n{#1} || \tl_if_empty_p:n{#2}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font~
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font~
(Language="#2"~ to~ langtag~ "#1")}
}
{
@@ -4840,67 +4983,82 @@ to track the issues and follow progress.
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
% add fontfeature Script=#2 to scripttag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@script:nnn {
+\cs_new:Nn \__xpg_add_font_feature_script:nnn
+{
\bool_if:nTF{\tl_if_empty_p:n{#2} || \tl_if_empty_p:n{#3}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font
(Script="#3"~ to~ scripttag~ "#2")}
}
{
\fontspec_if_script:nTF{#2}
{\addfontfeature{Script=#3}}
{
- \tl_set:Nn \l_ffamily_tl {}
- \tl_set:Nn \l_ffamilysh_tl { #1 }
+ \tl_set:Nn \xpg_ffamily_tl {}
+ \tl_set:Nn \xpg_ffamilysh_tl { #1 }
\str_if_eq:nnT { #1 } { rm }
{
- \tl_set:Nn \l_ffamily_tl { roman }
- \tl_set:Nn \l_ffamilysh_tl {}
+ \tl_set:Nn \xpg_ffamily_tl { roman }
+ \tl_set:Nn \xpg_ffamilysh_tl {}
}
\str_if_eq:nnT { #1 } { sf }
{
- \tl_set:Nn \l_ffamily_tl { sans~ serif }
+ \tl_set:Nn \xpg_ffamily_tl { sans~ serif }
}
\str_if_eq:nnT { #1 } { tt }
{
- \tl_set:Nn \l_ffamily_tl { monospace }
+ \tl_set:Nn \xpg_ffamily_tl { monospace }
}
+ % Strip font family name for error message
+ % Courtesy of egreg, https://tex.stackexchange.com/a/613996
+ \str_set:Nx \xpg_fname_str { \fontname\font }
+ % Remove all after :
+ \regex_replace_once:nnN { \:.* } { } \xpg_fname_str
+ % ... and all after /
+ \regex_replace_once:nnN { /.* } { } \xpg_fname_str
+ % ... and brackets
+ \regex_replace_once:nnN { \[ } { } \xpg_fname_str
+ \regex_replace_once:nnN { \] } { } \xpg_fname_str
+ % ... and extensions
+ \regex_replace_once:nnN { \.[^\.]* \Z } { } \xpg_fname_str
+ % ... and, finally, quotation marks
+ \regex_replace_once:nnN { " } { } \xpg_fname_str
\xpg@error{
- The~ current~ latin ~ \l_ffamily_tl\space font~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
- Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n#3}font\l_ffamilysh_tl\endcsname~
+ The~ current~ main ~ \xpg_ffamily_tl\space font,~ \xpg_fname_str,~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
+ Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n{#3}}font\xpg_ffamilysh_tl\endcsname~
with~ \string\newfontfamily\space command
}
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
\def\xpg@fontsetup@latin#1{
\begingroup
\csgdef{#1@font@rm}{
\cs_if_exist_use:cF{#1font}{
\rmfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@sf}{
\cs_if_exist_use:cF{#1fontsf}{
\sffamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@tt}{
\cs_if_exist_use:cF{#1fonttt}{
\ttfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\endgroup
@@ -4912,9 +5070,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1font}
{
\providetoggle{#1@use@script@font}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\rmfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} font}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} font}
{
\toggletrue{#1@use@script@font}
}
@@ -4923,12 +5081,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@font}{}{
- \polyglossia@addfontfeature@script:nxx{rm}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{rm}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{rm}
}%
@@ -4936,9 +5094,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1fontsf}
{
\providetoggle{#1@use@script@fontsf}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\sffamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fontsf}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fontsf}
{
\toggletrue{#1@use@script@fontsf}
}
@@ -4947,12 +5105,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@fontsf}{}{
- \polyglossia@addfontfeature@script:nxx{sf}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{sf}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{sf}
}%
@@ -4960,9 +5118,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1fonttt}
{
\providetoggle{#1@use@script@fonttt}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\ttfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fonttt}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fonttt}
{
\toggletrue{#1@use@script@fonttt}
}
@@ -4971,12 +5129,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@fonttt}{}{
- \polyglossia@addfontfeature@script:nxx{tt}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{tt}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
\def\familytype{tt}
}
@@ -4987,71 +5145,42 @@ to track the issues and follow progress.
%% ensure localization of \markright and \markboth commands
%%% THIS IS NOW DISABLED BY DEFAULT
-\cs_new_nopar:Nn {\polyglossia@local@marks:n} {}
-\cs_new_nopar:Nn {\polyglossia@enable@local@marks:}
+\cs_new_nopar:Nn \__xpg_local_marks:n { }
+\cs_new_nopar:Nn \__xpg_enable_local_marks:
{
- \xpg@info{Option:~ localmarks}
- \cs_gset_nopar:Nn \polyglossia@local@marks:n
- {%
- \def\xpg@tmp@lang{##1}
- \DeclareRobustCommand\markboth[2]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \unrestored@protected@xdef\@themark
- {%
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
- }%
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }%
- \DeclareRobustCommand\markright[1]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }
-% This part seems wrong (see #396 for explanation). Remove after a while.
-% \def\@markright####1####2####3{%
-% \@temptokena{\protect\@@ensure@maindir{####1}}%
-% \unrestored@protected@xdef\@themark{%
-% {\the\@temptokena}%
-% {\protect\@@ensure@maindir{####3}}%
-% }%
-% }%
- }%
+ \xpg@info{Option:~ localmarks}
+ \cs_gset_nopar:Nn \__xpg_local_marks:n
+ {
+ \def\xpg@tmp@lang{##1}
+ \DeclareRobustCommand\markboth[2]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \unrestored@protected@xdef\@themark
+ {
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
+ }
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ \DeclareRobustCommand\markright[1]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ }
}
-
-% Easy way out – Arthur, 2012-08-01
-\ifcsdef{newXeTeXintercharclass}{
-% to reset the intercharclass of a character to "normal"
-\newXeTeXintercharclass\xpg@normalclass %TODO
-}{}
-
-%% when no patterns are available, we use \l@nohyphenation, assigned to 255
-%% (suggestion by Enrico Gregorio)
-\sys_if_engine_luatex:TF
- {
- \@ifundefined{l@nohyphenation}
- {\chardef\l@nohyphenation=\directlua{
- tex.sprint(polyglossia.newloader_loaded_languages.nohyphenation)}\relax
- }
- {}
- }
- {
- \@ifundefined{l@nohyphenation}{\chardef\l@nohyphenation=255 }{}
- }
-
%we call this macro when a gloss file is not found for a given language
\def\xpg@nogloss#1{
- \xpg@warning{Neither~ file~ gloss-#1.ldf~ nor file~ gloss-#1.lde~ exists!\MessageBreak
+ \xpg@warning{File~ gloss-#1.ldf~ do~ not~ exists!\MessageBreak
I~ will~ nevertheless~ try~ to~ use~ hyphenation~ patterns~ for~ #1.}
\PolyglossiaSetup{#1}{hyphenmins={2,3},hyphennames={#1},fontsetup=true}
% the above amounts to:
@@ -5070,96 +5199,39 @@ to track the issues and follow progress.
\catcode`\@=\xpg@saved@at@catcode
}
-%% Load a lde file
-\cs_new_nopar:Nn \__xpg_gloss_ext: {lde}
-\cs_new_nopar:Ne \__xpg_saved_@pkgextension: {\@pkgextension}
-
-\msg_new:nnn { polyglossia } { directloadgloss }
-{
- You~ should~ not~ load~ directly~ the~ gloss~ file. ~
- You~ must~ use~ `\string\setotherlanguage\{#1\}' or `\string\setmainlanguage\{#1\}'.
-}
-\msg_redirect_name:nnn { polyglossia } { directloadgloss } { critical }
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension_error}{m m m m}
-{
- \msg_critical:nn { polyglossia } { directloadgloss }
-}
-% ProvideExplPackage but for language file
-\cs_new_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-\cs_new_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension}{m m m m}
-{
- \__xpg_saved_ProvidesExplPackage{#1}{#2}{#3}{#4}
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-}
-
-
-% wrapper for loading a gle file
-\NewDocumentCommand{\RequireLanguageDefinitionExtension}{O{} m}
-{
- \cs_gset_eq:NN \__xpg_saved_@pkgextension: \@pkgextension
- \cs_gset_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
- \cs_gset_eq:NN \@pkgextension \__xpg_gloss_ext:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension
- \RequirePackage[#1]{gloss-#2}
- % be paranoiac restore
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \__xpg_ProvidesLanguageDefinitionExtension_error \ProvideLanguageDefinitionExtension
-}
-
% try to load a language file
-\cs_new:Nn \polyglossia_load_lang_definition:nn {
- \file_if_exist:nTF{gloss-#2.lde}
- {
- \RequireLanguageDefinitionExtension[#1]{#2}
- \setkeys{#2}{#1}
- }
- {
- \file_if_exist:nTF{gloss-#2.ldf}
- {
- % Temporarily force catcode of ~ to 13 since babelsh.def
- % requires it. This is needed particularly with LaTeX3
- % packages which force \ExplSyntaxOn (#425)
- \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
- \catcode 126 = 13
- \xpg@input{gloss-#2.ldf}
- \setkeys{#2}{#1}
- % restore former ~ catcode
- \xpg@restore@tilde@catcode
- }
- {
- \xpg@nogloss{#2}
- }
- }
-}
-\cs_generate_variant:Nn \polyglossia_load_lang_definition:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_new:Nn \__xpg_load_lang_definition:nn {
+ \file_if_exist:nTF{gloss-#2.ldf}
+ {
+ % Temporarily force catcode of ~ to 13 since babelsh.def
+ % requires it. This is needed particularly with LaTeX3
+ % packages which force \ExplSyntaxOn (#425)
+ \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
+ \catcode 126 = 13
+ \xpg@input{gloss-#2.ldf}
+ \setkeys{#2}{#1}
+ % restore former ~ catcode
+ \xpg@restore@tilde@catcode
+ }
+ {
+ \xpg@nogloss{#2}
+ }
+}
+\cs_generate_variant:Nn \__xpg_load_lang_definition:nn { ee }
% load a master language from an alias file
\newcommand*\xpg@load@master@language[1] {
- \file_if_exist:nTF{gloss-#1.lde}
- {
- \RequireLanguageDefinitionExtension{#1}
- }
- {
- \xpg@input{gloss-#1.ldf}
- }
+ \xpg@input{gloss-#1.ldf}
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1} {
- \use:c{\prop_item:Nn{\polyglossia@langsetup}
+ \use:c{\prop_item:Nn{\g_xpg_langsetup_prop}
{#1/DefineCommandsCmd}}
{#1}
}
}
- \polyglossia@register@language:nn{}{#1}
+ \__xpg_register_language:nn{}{#1}
\seq_gput_right:Nn \__xpg_langs_loaded {#1}
}
@@ -5170,14 +5242,14 @@ to track the issues and follow progress.
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1}
{
\exp_args:Ne
- \newenvironment {\prop_item:Nn{\polyglossia@langsetup}{#1/envname}} [1] []
+ \NewDocumentEnvironment {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/envname}} { O{} }
{
- \begin{otherlanguage}[##1]{#1}
+ \otherlanguage [ ##1 ] { #1 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
- \exp_args:Nc \newcommand {text#1} [2][]
+ \exp_args:Nc \NewDocumentCommand {text#1} { O{} m }
{
\__xpg_textlanguage:een{##1}{#1}{##2}
}
@@ -5198,7 +5270,7 @@ to track the issues and follow progress.
% target to self fall back to language table
\str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
{
- \prop_item:Nn{\polyglossia@langsetup} {#1/#2}
+ \prop_item:Nn{\g_xpg_langsetup_prop} {#1/#2}
}
% load alias by recursion
{
@@ -5232,15 +5304,10 @@ to track the issues and follow progress.
% get base language
-\cs_new:Nn \xpg_alias_base_lang:n {
- \str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
- {
- #1
- }
+\cs_new:Nn \xpg_alias_base_lang:n
{
- \xpg_alias_base_lang:n { \prop_item:Ne \__xpg_alias {#1/target} }
+ \prop_item:Ne \__xpg_alias {#1/target}
}
-}
\cs_generate_variant:Nn \xpg_alias_base_lang:n {e}
\keys_define:nn { polyglossia/alias }
@@ -5302,10 +5369,10 @@ to track the issues and follow progress.
}
\DeclareDocumentEnvironment { #4 } { }
{
- \begin{otherlanguage}{#4}
+ \otherlanguage { #4 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
}
\tl_clear_new:N \__xpg_alias_option_tl
@@ -5321,19 +5388,20 @@ to track the issues and follow progress.
{#4}
}
-\cs_new:Nn \polyglossia@register@language:nn {
+\cs_new:Nn \__xpg_register_language:nn
+{
\clist_if_in:NeF \xpg@loaded {#2}{
\clist_gput_right:Ne \xpg@loaded {#2}
}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
% register babelname
- \prop_get:NeN \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
\clist_if_in:NeF \xpg@bloaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bloaded {\l_tmpa_tl}
}
% register BCP-47 ID
- \prop_get:NeN \polyglossia@langsetup {#2/bcp47} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/bcp47} \l_tmpa_tl
\clist_if_in:NeF \xpg@bcp@loaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bcp@loaded {\l_tmpa_tl}
}
@@ -5350,21 +5418,21 @@ to track the issues and follow progress.
}
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:nn{#1}{#2}
+ \__xpg_load_lang_definition:nn{#1}{#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
- \exp_args:Nee \polyglossia@set@default@language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \exp_args:Nee \__xpg_set_default_language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
-\cs_new:Nn \polyglossia@set@default@language:nn
+\cs_new:Nn \__xpg_set_default_language:nn
{
\gdef\xpg@main@language{#2}
\tl_if_blank:nTF {#1}
@@ -5373,16 +5441,16 @@ to track the issues and follow progress.
}
{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@main@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
}
\csgdef{#2@gvar}{\mainlanguagevariant}
%% The following settings are for the default language and script
% this tells bidi.sty or luabidi.sty that the document is RTL
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{
\__xpg_setRTLmain:
}
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_selectlanguage: {
\selectbackgroundlanguage{#2}
\selectlanguage[#1]{#2}%
}
@@ -5391,24 +5459,24 @@ to track the issues and follow progress.
\cs_gset_nopar:Npn \mainlanguagename {#2}
% Store babelname of main language (for external packages such as biblatex)
- \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \polyglossia@langsetup {#2/babelname} }
+ \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \g_xpg_langsetup_prop {#2/babelname} }
% Store babelname of current language (for external packages such as biblatex)
\cs_gset_eq:NN \babelname \mainbabelname
\cs_gset_eq:cc{#2@gbabelname}{babelname}%
% Store BCP-47 ID and subtags of main language:
% 1. store main.* (sub)tags
- \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47 } }
- \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-language } }
- \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-region } }
- \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-script } }
- \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-variant } }
- \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47extension-t } }
- \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-u } }
- \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-x } }
+ \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47 } }
+ \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-language } }
+ \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-region } }
+ \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-script } }
+ \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-variant } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47extension-t } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-u } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
- { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \polyglossia@langsetup {#2 / bcp47-language} } }
+ { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \g_xpg_langsetup_prop {#2 / bcp47-language} } }
{ \cs_gset_nopar:cpe {bcp47.main.casing} { \tmpcasing } }
% 2. Store lang (sub)tags
\cs_gset_eq:cc {bcp47.tag} {bcp47.main.tag}
@@ -5430,11 +5498,6 @@ to track the issues and follow progress.
\cs_gset_eq:cc{#2@g.bcp47.extension.u}{bcp47.extension.u}
\cs_gset_eq:cc{#2@g.bcp47.extension.x}{bcp47.extension.x}
\cs_gset_eq:cc{#2@g.bcp47.casing}{bcp47.casing}
- % Set luatex main language
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.set_default_language('\luaescapestring{\string#2}')}%
- }
}
\DeclareCommandCopy \setmainlanguage \setdefaultlanguage
@@ -5519,14 +5582,14 @@ to track the issues and follow progress.
\ifcsundef{#2@gvar}{\def\languagevariant{}}{\def\languagevariant{\csuse{#2@gvar}}}
}{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
- \cs_set_eq:cc{#2@gvar}{languagevariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \cs_set_eq:cc{#2@var}{languagevariant}
}%
}
\newcommand*{\resetdefaultlanguage}[2][]{
- \polyglossia@reset@default@language:nn
+ \__xpg_reset_default_language:nn
{\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
@@ -5537,56 +5600,56 @@ to track the issues and follow progress.
\tl_if_blank:nTF {#1}{
% tag (e.g., en-US)
\ifcsundef{#2@g.bcp47.tag}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
}{
\csedef{bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
% language (e.g., en)
\ifcsundef{#2@g.bcp47.language}{
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
}{
\csedef{bcp47.language}{\csuse{#2@g.bcp47.language}}
}
% region (e.g., US)
\ifcsundef{#2@g.bcp47.region}{%
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
}{
\csedef{bcp47.region}{\csuse{#2@g.bcp47.region}}%
}
% script (e.g., Latn)
\ifcsundef{#2@g.bcp47.script}{
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
}{
\csedef{bcp47.script}{\csuse{#2@g.bcp47.script}}
}
% variant (e.g., 1996)
\ifcsundef{#2@g.bcp47.variant}{
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
}{
\csedef{bcp47.variant}{\csuse{#2@g.bcp47.variant}}
}
% extension.t (tranformation)
\ifcsundef{#2@g.bcp47.extension.t}{%
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
}{
\csedef{bcp47.extension.t}{\csuse{#2@g.bcp47.extension.t}}
}
% extension.u (additional locale information)
\ifcsundef{#2@g.bcp47.extension.u}{%
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
}{
\csedef{bcp47.extension.u}{\csuse{#2@g.bcp47.extension.u}}
}
% extension.x (private use area)
\ifcsundef{#2@g.bcp47.extension.x}{
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
}{
\csedef{bcp47.extension.x}{\csuse{#2@g.bcp47.extension.x}}
}
% casing
\ifcsundef{#2@g.bcp47.casing}{
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
@@ -5594,25 +5657,25 @@ to track the issues and follow progress.
\csedef{bcp47.casing}{\csuse{#2@g.bcp47.casing}}
}
}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
}
}
-\cs_new:Nn \polyglossia@reset@default@language:nn
+\cs_new:Nn \__xpg_reset_default_language:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
% disable globalnumbers of previously defined default language
\csuse{no\xpg@main@language @globalnumbers}
\csuse{noextras@\xpg@main@language}%
@@ -5621,7 +5684,7 @@ to track the issues and follow progress.
\cs_if_exist_use:c{noextras@bbl@\mainbabelname}%
\csuse{init@noextras@\xpg@main@language}%
\polyglossia@set@language@name[#1]{#2}%
- \__xpg_if_LR_str:eF{\prop_item:Ne{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Ne{\g_xpg_langsetup_prop}{#2/direction}}
{
\@rlmaintrue\@rl@footnotetrue
}
@@ -5630,23 +5693,26 @@ to track the issues and follow progress.
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{%
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
+ }
+ % Store variant
+ \tl_if_blank:nTF {#1}
+ {
+ \cs_gset_nopar:Npn \mainlanguagevariant {}
}
+ {
+ % Register the language options
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
+ }
+ \csgdef{#2@gvar}{\mainlanguagevariant}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
}
-\cs_generate_variant:Nn \polyglossia@reset@default@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
% This saves the normalfont for the latin script since we may change normalfont in other scripts
\let\normalfontlatin=\normalfont
@@ -5758,56 +5824,51 @@ to track the issues and follow progress.
\@afterindentfalse
}
-\cs_new_nopar:Npn \selectbackgroundlanguage #1
-{%
- \polyglossia@select@background@language:n {\xpg_alias_base_lang:n{#1}}
+\DeclareDocumentCommand \selectbackgroundlanguage { m }
+{
+ \__xpg_select_background_language:n {\xpg_alias_base_lang:n{#1}}
}
-\cs_new:Nn \polyglossia@select@background@language:n
+
+\cs_new:Nn \__xpg_select_background_language:n
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{}
{\xpg@set@normalfont{#1}}
\csuse{#1@globalnumbers}
}
-\cs_generate_variant:Nn \polyglossia@select@background@language:n {e}
+\cs_generate_variant:Nn \__xpg_select_background_language:n {e}
% Declare secondary language #2 with language options #1
\DeclareDocumentCommand \setotherlanguage { O{} m }
{
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:ee {#1} {#2}
+ \__xpg_load_lang_definition:ee {#1} {#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
- \polyglossia@set@other@language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \__xpg_set_otherlanguage:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
}
-\cs_new:Nn \polyglossia@set@other@language:nn
+\cs_new:Nn \__xpg_set_otherlanguage:nn
{
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% If a variant is set, store it.
\gdef\otherlanguagevariant{}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@other@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@other@langvariant}
\csgdef{#2@gvar}{\otherlanguagevariant}
- \prop_get:NeNT \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeNT \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
{ \xdef\otherlanguagebabelname{\l_tmpa_tl} }
\cs_gset_eq:cc{#2@gbabelname}{otherlanguagebabelname}
}
-\cs_generate_variant:Nn \polyglossia@set@other@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_generate_variant:Nn \__xpg_set_otherlanguage:nn { ee }
% Store main language variant for external packages
@@ -5820,17 +5881,20 @@ to track the issues and follow progress.
\clist_map_function:eN { #1 } \setotherlanguage
}
-\def\common@language{% FIXME is this really needed???
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\z@}
+\cs_set:Nn \xpg_common_language:
+{% FIXME is this really needed???
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\z@}
}{
\language=\z@
}
\lefthyphenmin=\tw@
\righthyphenmin=\thr@@}
-\def\xpg@initial@setup{
- \common@language
+\cs_set:Nn \xpg_initial_setup:
+{
+ \xpg_common_language:
}
@@ -5851,27 +5915,21 @@ to track the issues and follow progress.
% for specific (esp. tag-based) aliases
% where {<alias>} would cause clashes
% (e.g., \fi)
-\newenvironment{lang}[2][]{
- \begin{otherlanguage}[#1]{#2}
-}{
- \end{otherlanguage}
-}
-
-\providecommand{\foreignlanguage}{}
+\DeclareEnvironmentCopy { lang } { otherlanguage }
% wrapper for foreignlanguage and otherlanguage*
\newcommand*\polyglossia@setforeignlanguage[2][]{
\select@@language[#1]{#2}
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -5888,7 +5946,7 @@ to track the issues and follow progress.
}
% lowercase options before passing to setkeys
-\cs_new:Nn \polyglossia@set@keys:nn
+\cs_new:Nn \__xpg_set_keys:nn
{
\xpg@str@lowercase{\xpg@tmp@opts}{#2}
\exp_args:Nne \setkeys{#1}{\xpg@tmp@opts}
@@ -5898,10 +5956,10 @@ to track the issues and follow progress.
% and \text<lang>
% #1 option
% #2 language
-\newcommand{\xpg@otherlanguage}[2][]
+\cs_new:Nn \xpg_otherlanguage:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
\polyglossia@setforeignlanguage[#1]{#2}
% Hook for external packages such as biblatex
\polyglossia@language@switched
@@ -5912,10 +5970,13 @@ to track the issues and follow progress.
\cs_if_exist_use:c{inlineextras@bbl@\babelname}
}
-\renewcommand{\foreignlanguage}[3][]
-{
- \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
-}
+\DeclareDocumentCommand { \foreignlanguage } { O{} m m }
+ {
+ \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
+ }
+
+% prevent case changing of language name in \foreignlanguage
+\tl_put_right:Nn \l_text_case_exclude_arg_tl { \foreignlanguage }
% Direct access to polyglossia@setforeignlanguage
% used in captions
@@ -5942,7 +6003,7 @@ to track the issues and follow progress.
{ \cs_set_eq:NN \__xpg_current_matrixlang \l_tmpa_tl }
{ \cs_set_eq:NN \__xpg_current_matrixlang \mainlanguagename }
% Reset the language's/script's font families if the embedding script is latin
- \str_if_eq:eeT{\prop_item:Ne{\polyglossia@langsetup}{\__xpg_current_matrixlang/lcscript}}{latin}
+ \str_if_eq:eeT{\prop_item:Ne{\g_xpg_langsetup_prop}{\__xpg_current_matrixlang/lcscript}}{latin}
{\resetfontlatin}
% In case a \<lang>font is defined, re-activate that
\exp_args:Ne \xpg@set@normalfont{\__xpg_current_matrixlang}
@@ -5961,8 +6022,8 @@ to track the issues and follow progress.
}{
\__xpg_store_matrixlang:
\group_begin:
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -5971,17 +6032,14 @@ to track the issues and follow progress.
% otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
-
-\renewenvironment{otherlanguage*}[2][]
-{%
- \__xpg_store_matrixlang:
- \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
-}
-{
- \egroup
- \__xpg_reset_to_matrixlang:
-}
+\DeclareDocumentEnvironment { otherlanguage* } { O{} m }
+ {
+ \__xpg_store_matrixlang:
+ \__xpg_otherlanguage:eee { #1 } { #2 } { \xpg_alias_base_lang:n { #2 } }
+ }{
+ \group_end:
+ \__xpg_reset_to_matrixlang:
+ }
% internal wrapper
% #1 option
@@ -5993,14 +6051,12 @@ to track the issues and follow progress.
{
\msg_show:nnn { polyglossia } { languagenotloaded } {#2}
}{
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}%
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}%
\bgroup
}
}
-\cs_generate_variant:Nn \__xpg_otherlanguage:nnn {
- eee
-}
+\cs_generate_variant:Nn \__xpg_otherlanguage:nnn { eee }
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -6014,7 +6070,7 @@ to track the issues and follow progress.
\cs_generate_variant:Nn \__xpg_textlanguage:nnn {een}
% Track whether we are in an inline lang (\text...) switch
-\bool_new:N \__xpg_inline_lang
+\bool_new:N \l__xpg_inline_lang_bool
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -6031,13 +6087,13 @@ to track the issues and follow progress.
{
\__xpg_store_matrixlang:
\group_begin:
- \bool_set_true:N \__xpg_inline_lang
- \xpg@otherlanguage[#1]{#3}
+ \bool_set_true:N \l__xpg_inline_lang_bool
+ \xpg_otherlanguage:nn{#1}{#3}
\csuse{date#3}
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -6047,7 +6103,7 @@ to track the issues and follow progress.
% Define language-specific hyphenation exceptions
\newcommand\pghyphenation[3][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
\setkeys{#2}{#1}
\select@@language[#1]{#2}
\hyphenation{#3}
@@ -6057,6 +6113,7 @@ to track the issues and follow progress.
% Hook that other package authors can use
% (for instance biblatex):
+% Do not rename!
\newcommand*{\xpg@hook@setlanguage}{}
\def\xpg@pop@language@i#1#2{
@@ -6064,55 +6121,39 @@ to track the issues and follow progress.
\xpg@hook@setlanguage
\let\emp@langname\@undefined}
-\newif\ifxpginauxfile\xpginauxfilefalse
-
\DeclareDocumentCommand \selectlanguage {s O{} m}
-{
- \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
{
- \ifxpginauxfile
- \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3}
- \else
- \msg_show:nnn { polyglossia } { languagenotloaded } {#3}
- \fi
- }
- {
- \polyglossia@select@language:nee {#1}
- {\xpg_alias_add_to_option_i:nn{#3}{#2}}
- {\xpg_alias_base_lang:n{#3}}
+ \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
+ {
+ \IfBooleanTF { #1 }
+ { \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3} }
+ { \msg_show:nnn { polyglossia } { languagenotloaded } {#3} }
+ }{
+ \__xpg_select_language:nee {#1}
+ { \xpg_alias_add_to_option_i:nn{#3}{#2} }
+ { \xpg_alias_base_lang:n{#3} }
+ }
}
-}
-\cs_new:Nn \polyglossia@select@language:nnn
+\cs_new:Nn \__xpg_select_language:nnn
{
- \IfBooleanF {#1}
- {
- \cs_set_nopar:Npx \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
- \group_insert_after:N \xpg@pop@language
- }
% Register the language options
- \polyglossia@set@lang@options:nnn {#3} {#2} {@xpg@set@langvariant}
- % The starred variant does not write to the aux
- \IfBooleanTF#1{%
- \xpg@set@language@nonaux[#2]{#3}
- }
- {
- \xpg@set@language@aux[#2]{#3}
- }
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.select_language('\luaescapestring{\string#3}',
- \the\csname l@#3\endcsname)}
- }
- \polyglossia@register@language:nn{#2}{#3}
-}
-\cs_generate_variant:Nn \polyglossia@select@language:nnn {
- nee, nne
+ \__xpg_set_language_options:nnn {#3} {#2} {@xpg@set@langvariant}
+ \IfBooleanTF { #1 } % The starred variant does not write to the aux
+ {
+ \xpg@set@language@nonaux[#2]{#3}
+ }{
+ \cs_set_nopar:Npe \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
+ \group_insert_after:N \xpg@pop@language
+ \xpg@set@language@aux[#2]{#3}
+ }
+ \__xpg_register_language:nn{#2}{#3}
}
+\cs_generate_variant:Nn \__xpg_select_language:nnn { nee, nne }
% set lang option #2 for lang #1
-\cs_new:Nn \polyglossia@set@lang@options:nnn
+\cs_new:Nn \__xpg_set_language_options:nnn
{
\tl_if_blank:nF {#2}
{
@@ -6120,7 +6161,7 @@ to track the issues and follow progress.
\clist_map_inline:nn { #2 } {
\xpg@parsevariantkeyvalue##1=#3:#1\relax
}%
- \polyglossia@set@keys:nn{#1}{#2}
+ \__xpg_set_keys:nn{#1}{#2}
}
}
@@ -6128,7 +6169,7 @@ to track the issues and follow progress.
% \iflanguageoption has the info it needs also
% for default settings
\newcommand*\xpg@initialize@gloss@options[2]{
- \polyglossia@set@lang@options:nnn {#1} {#2} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#1} {#2} {@xpg@set@langvariant}
}
% Record synonymous keyvals such as variant=us and variant=american
@@ -6138,6 +6179,8 @@ to track the issues and follow progress.
{ \prop_new:c {xpg@alias@keyvals@#1@#3} }
\prop_put:cnn { xpg@alias@keyvals@#1@#3 }
{#2}{#4}
+ \prop_if_exist:cF { xpg@alias@keyvals@#1@#4 }
+ { \prop_new:c {xpg@alias@keyvals@#1@#4} }
\prop_put:cnn { xpg@alias@keyvals@#1@#4 }
{#2}{#3}
}
@@ -6174,7 +6217,7 @@ to track the issues and follow progress.
}
-\prg_set_conditional:Npnn \polyglossia@check@option@value:NNN #1#2#3 { p , T , F , TF }
+\prg_set_conditional:Npnn \__xpg_check_option_value:NNN #1#2#3 { p , T , F , TF }
{
\prop_get:cnNTF {xpg@current@options@#1} {#2} \l_tmpa_tl
{
@@ -6203,8 +6246,9 @@ to track the issues and follow progress.
}
% Test if option value is set
-\newcommand*\iflanguageoption[5]{
- \polyglossia@check@option@value:NNNTF{#1}{#2}{#3}{#4}{#5}
+\DeclareDocumentCommand \iflanguageoption { m m m m m }
+{
+ \__xpg_check_option_value:NNNTF{#1}{#2}{#3}{#4}{#5}
}
@@ -6216,21 +6260,23 @@ to track the issues and follow progress.
}
% Test if language is loaded
-\newcommand*\iflanguageloaded[3]{
+\DeclareDocumentCommand \iflanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@loaded{#1}{#2}{#3}
}
}
% Same for babellanguage is loaded
-\newcommand*\ifbabellanguageloaded[3]{
+\DeclareDocumentCommand \ifbabellanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@bloaded{#1}{#2}{#3}
}
}
% Same for languageid
-\DeclareDocumentCommand \iflanguageidloaded {mmmm}
+\DeclareDocumentCommand \iflanguageidloaded { m m m m }
{
\AddToHook{begindocument/end}{
\str_case:nnTF {#1}
@@ -6246,7 +6292,7 @@ to track the issues and follow progress.
}
% Check if the current font has a given glyph
-\prg_new_conditional:Npnn \__polyglossia_if_char:N #1 { TF }
+\prg_new_conditional:Npnn \__xpg_if_char:N #1 { TF }
{
\iffontchar\font\int_from_hex:n { #1 }~
\prg_return_true:
@@ -6259,14 +6305,14 @@ to track the issues and follow progress.
% and print it, if so, otherwise print the replacement #2
\NewExpandableDocumentCommand \charifavailable { m m }
{
- \exp_args:Nno \__polyglossia_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
+ \exp_args:Nno \__xpg_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
}
% Test if a char (by char code) is available in the current font
% if so, do #2, else do #3
-\NewDocumentCommand \IfCharIsAvailableTF { m m m }
+\NewExpandableDocumentCommand \IfCharIsAvailableTF { m m m }
{
- \__polyglossia_if_char:NTF{#1}{#2}{#3}
+ \__xpg_if_char:NTF { #1 } { #2 } { #3 }
}
@@ -6279,12 +6325,12 @@ to track the issues and follow progress.
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -6296,29 +6342,14 @@ to track the issues and follow progress.
\newcommand*{\xpg@set@language@only@aux}[2][]{
% Write to the aux (toc files)
\if@filesw
- \ifx#1\\\\
- \addtocontents{toc}{\protect\selectlanguage*{#2}}
- \else
- \addtocontents{toc}{\protect\selectlanguage*[#1]{#2}}
- \fi
+ \addtocontents{toc}{\selectlanguage*[#1]{#2}}
\fi
}
\AtBeginDocument{
- % Tell polyglossia that we are in an aux file
- \if@filesw
- \addtocontents{toc}{\protect\xpginauxfiletrue}
- \addtocontents{lof}{\protect\xpginauxfiletrue}
- \addtocontents{lot}{\protect\xpginauxfiletrue}
- \fi
-}
-
-\AtEndDocument{
- % Tell polyglossia that we are no longer in an aux file
\if@filesw
- \addtocontents{toc}{\protect\xpginauxfilefalse}
- \addtocontents{lof}{\protect\xpginauxfilefalse}
- \addtocontents{lot}{\protect\xpginauxfilefalse}
+ \immediate\write\@mainaux
+ {\ProvideDocumentCommand\selectlanguage{sO{}m}{}}
\fi
}
@@ -6330,49 +6361,22 @@ to track the issues and follow progress.
\addtocontents{lot}{\protect\setforeignlanguage{\languagename}}
}
-% The bidi package swaps the output stream within RTL tables
-% (to get the column order right). This also swaps group
-% delimiters inserted to the aux files via otherlanguage (see #354).
-% We therefore patch bidi and insert a bool that tells us
-% whether we are in such a table.
-\newbool{xpg@inbiditable}
-\AtBeginDocument{
- \@ifpackageloaded{bidi}{
- \patchcmd{\@tabular}
- {\if@RTLtab}
- {\if@RTLtab\booltrue{xpg@inbiditable}}
- {} % success
- {\xpg@warning{Patching bidi table failed!}}
- }{}
-}
-
% check if language is defined
-\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:N #1 { p , T , F , TF }{
- \cs_if_exist:cTF {l@#1}
- {
- \cs_if_eq:cNTF {l@#1} \l@nohyphenation
- {
- \prg_return_false:
- }
- {
- % it's possible that sometimes \csname l@#1\endcsname becomes \relax
- \cs_if_eq:cNTF {l@#1} \relax
- { \prg_return_false: }
- { \prg_return_true: }
- }
- }
- {
- \prg_return_false:
- }
-}
+\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:n #1 { F, TF }
+ {
+ \bool_lazy_and:nnTF
+ { \cs_if_exist_p:c { l@#1 } }
+ { ! (\cs_if_eq_p:cc { l@#1 } { l@nohyphenation }) }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
\def\polyglossia@luatex@load@lang#1{
% if \l@#1 is not properly defined, call lua function newloader(#1),
% and assign the returned number to \l@#1
- \__xpg_check_if_exist_l@:NF {#1}
+ \__xpg_check_if_exist_l@:nF {#1}
{
- \expandafter\chardef\csname l@#1\endcsname=
- \directlua{ tex.sprint(polyglossia.newloader'#1') }\relax
+ \directlua { token.set_char('l@#1', polyglossia.newloader'#1') }
}
}
@@ -6384,7 +6388,7 @@ to track the issues and follow progress.
{
\polyglossia@luatex@load@lang{#1}
}
- \__xpg_check_if_exist_l@:NTF{#1}{#2}{#3}
+ \__xpg_check_if_exist_l@:nTF{#1}{#2}{#3}
}
% Set \bbl@hyphendata@\the\language, which is (lua)babel's
@@ -6410,20 +6414,20 @@ to track the issues and follow progress.
% hook for compatibility with biblatex
\select@language{#2}
\xpg@set@bbl@hyphendata{\the\language}
- \xpg@initial@setup%
+ \xpg_initial_setup:
\select@@language[#1]{#2}%
% Hook for external packages such as biblatex
\polyglossia@language@switched%
- \polyglossia@lang@setpardirection:n{#2}
+ \__xpg_lang_set_par_direction:n{#2}
\csuse{captions#2}%
\csuse{date#2}%
% These are hooks for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{captions@bbl@\babelname}
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@local@marks:n{#2}
+ \__xpg_local_marks:n{#2}
\csuse{init@extras@#2}%
- \xpg__indent_first:n { #2 }
+ \__xpg_indent_first:n { #2 }
\csuse{blockextras@#2}%
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
@@ -6437,6 +6441,7 @@ to track the issues and follow progress.
\def\select@language#1{}
% Hook for external packages such as biblatex
+% do not rename!
\def\polyglossia@language@switched{}
% remove all custumization for language #1
@@ -6456,24 +6461,24 @@ to track the issues and follow progress.
\noextrascurrent{\languagename}
\cs_if_exist_use:c{no\languagename @numbers}
\sys_if_engine_xetex:T{
- \__xpg_if_LR_str:eTF{\prop_item:Ne{\polyglossia@langsetup}{\languagename/direction}}
+ \__xpg_if_LR_str:eTF{\prop_item:Ne{\g_xpg_langsetup_prop}{\languagename/direction}}
{
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setnonlatin} % LTR -> RTL
}
{
- \__xpg_if_LR_str:eT{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setlatin} % RTL -> LTR
}
}
}
\polyglossia@set@language@name[#1]{#2}
% Set the language's/script's font families
- \str_if_eq:eeT{\prop_item:Nn{\polyglossia@langsetup}{#2/lcscript}} {latin}
+ \str_if_eq:eeT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/lcscript}} {latin}
{
\resetfontlatin
}
- \bool_if:NF \__xpg_inline_lang
+ \bool_if:NF \l__xpg_inline_lang_bool
{ % This for non-inline font switches
% in case a \<lang>font is defined
\xpg@set@normalfont{#2}
@@ -6482,7 +6487,7 @@ to track the issues and follow progress.
\__xpg_use_or_warn:c{#2@language}
\cs_if_exist_use:c{#2@numbers}
\use@localhyphenmins[#1]{#2}
- \xpg__french_spacing:n { #2 }
+ \__xpg_french_spacing:n { #2 }
}
@@ -6493,14 +6498,14 @@ to track the issues and follow progress.
%
\clist_new:N \l_xpg_lang_stack
-\cs_new:Nn \polyglossia@stack@language:nn
+\cs_new:Nn \__xpg_stack_language:nn
{
\clist_gpush:Nn \l_xpg_lang_stack {#1:#2}
}
-\cs_generate_variant:Nn \polyglossia@stack@language:nn {nx}
+\cs_generate_variant:Nn \__xpg_stack_language:nn {nx}
-\cs_new:Nn \polyglossia@unstack@language:n
+\cs_new:Nn \__xpg_unstack_language:n
{
\clist_gpop:NNTF \l_xpg_lang_stack \l_tmpa_tl {
% Stored format = options:language => split:
@@ -6510,7 +6515,7 @@ to track the issues and follow progress.
% Execute passed command with language and maybe options
% and re-set stored language's keys
\tl_if_empty:NTF \l_tmpb_tl {\cs_if_exist_use:c{#1}{\l_tmpc_tl}}
- {\polyglossia@set@keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
+ {\__xpg_set_keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
\cs_if_exist_use:c{#1}[\l_tmpb_tl]{\l_tmpc_tl}
}
}
@@ -6521,17 +6526,19 @@ to track the issues and follow progress.
{
% Get real current (pre-switch) options (incl. defaults)
\clist_clear_new:N \l_xpg_current_options
+ \prop_if_exist:cF { xpg@current@options@\languagename }
+ { \prop_new:c {xpg@current@options@\languagename} }
\prop_map_inline:cn {xpg@current@options@\languagename}
{
\clist_put_right:Nn \l_xpg_current_options {##1=##2}
}
% Store current (pre-switch) options and language on stack
- \polyglossia@stack@language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
+ \__xpg_stack_language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
\selectlanguage[#1]{#2}
}
{
% restore previous language in aux file and remove closed one from stack
- \polyglossia@unstack@language:n{xpg@set@language@only@aux}
+ \__xpg_unstack_language:n{xpg@set@language@only@aux}
}
\newcommand{\setlocalhyphenmins}[3]{
@@ -6552,17 +6559,17 @@ to track the issues and follow progress.
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
\bgroup
- \polyglossia@error@iflangnotloaded:n{\xpg@tmp@lang}
- \polyglossia@set@keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
+ \xpg_error_if_lang_not_loaded:n{\xpg@tmp@lang}
+ \__xpg_set_keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
% Store bcp47.tag@hypenmins
\tl_if_blank:nTF {\xpg@tmp@opts}{%
\ifcsundef{\csname xpg@tmp@lang\endcsname @g.bcp47.tag}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}{
\csedef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}
\csgdef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{{#3}{#4}}
\egroup
@@ -6571,17 +6578,17 @@ to track the issues and follow progress.
% \use@localhypenmins[options]{lang}
\newcommand*\use@localhyphenmins[2][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
% Use bcp47.tag@hypenmins
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@g.bcp47.tag}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}{
\csxdef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}
\egroup
\ifcsundef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{
@@ -6595,7 +6602,7 @@ to track the issues and follow progress.
}
\sys_if_engine_luatex:T{
% Set \totalhyphenmin if specified
- \prop_get:NeNTF \polyglossia@langsetup {#2/totalhyphenmin} \l_tmpa_tl
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#2/totalhyphenmin} \l_tmpa_tl
{
\xpg@info{totalhyphenmin: '\l_tmpa_tl'}
\expandafter\hyphenationmin \l_tmpa_tl
@@ -6615,7 +6622,7 @@ to track the issues and follow progress.
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
% Register the language options
- \polyglossia@set@lang@options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
% Now switch patterns
\__xpg_use_or_warn:c{\use:c{xpg@tmp@lang}@language}
% And activate hyphenmins
@@ -6624,10 +6631,10 @@ to track the issues and follow progress.
{ }
\AddToHook{begindocument/before}{
- \@ifpackageloaded{bidi}{
+ \IfPackageLoadedTF{bidi}{
\providecommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}
}{}
- \@ifpackageloaded{luabidi}{
+ \IfPackageLoadedTF{luabidi}{
\providecommand*{\aemph}[1]{$\overline{\hbox{\RL{#1}}}$}
}{}
}
@@ -6636,7 +6643,7 @@ to track the issues and follow progress.
% keys for main package
\keys_define:nn { polyglossia } {
verbose
- .bool_set:N = \l_polyglossia_verbose_bool,
+ .bool_set:N = \g_xpg_verbose_bool,
verbose
.default:n = true,
% compatibility
@@ -6644,7 +6651,7 @@ to track the issues and follow progress.
.meta:n = { verbose = false },
localmarks
- .bool_set:N = \l_polyglossia_localmarks_bool,
+ .bool_set:N = \g_xpg_localmarks_bool,
localmarks
.default:n = true,
% compatibility
@@ -6652,12 +6659,12 @@ to track the issues and follow progress.
.meta:n = { localmarks = false },
babelshorthands
- .bool_set:N = \l_polyglossia_babelshorthands_bool,
+ .legacy_if_set:n = system@babelshorthands, % compatibility
babelshorthands
.default:n = true,
luatexrenderer
- .cs_set:Np = \l_polyglossia_luatex_renderer,
+ .str_set:N = \g_xpg_luatex_renderer_str,
luatexrenderer
.value_required:n = true,
}
@@ -6677,14 +6684,14 @@ to track the issues and follow progress.
% Set the LuaTeX renderer. As opposed to fontspec, we use Harfbuzz by default.
% This can be changed via the luatexrenderer package option.
\sys_if_engine_luatex:T{
- \str_if_eq:eeF{\l_polyglossia_luatex_renderer}{none}
+ \str_if_eq:eeF{\g_xpg_luatex_renderer_str}{none}
{
- \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \l_polyglossia_luatex_renderer}
- \exp_args:Ne \defaultfontfeatures{Renderer=\l_polyglossia_luatex_renderer}
+ \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \g_xpg_luatex_renderer_str}
+ \exp_args:Ne \defaultfontfeatures{Renderer=\g_xpg_luatex_renderer_str}
}
}
-\bool_if:nF \l_polyglossia_verbose_bool {
+\bool_if:nF \g_xpg_verbose_bool {
\gdef\@latex@info#1{\relax} % no latex info
\gdef\@font@info#1{\relax} % no latex font info
\gdef\@font@warning#1{\relax} % no latex font warnings
@@ -6692,47 +6699,93 @@ to track the issues and follow progress.
\gdef\xpg@info#1{\relax} % no polyglossia info
}
-\bool_if:nT \l_polyglossia_localmarks_bool {
- \polyglossia@enable@local@marks:
+\bool_if:nT \g_xpg_localmarks_bool {
+ \__xpg_enable_local_marks:
}
% Control shorthand (de-)activation
% This checks that the shorthand char is only deactivated
% if we have activated it ourselves and hence keeps
% activation of other packages if no shorthands are used.
-\seq_new:N \__xpg_active_shorthands
+\seq_new:N \g__xpg_active_shorthands_seq
\DeclareDocumentCommand \xpg@activate@shorthands { O{"} }
{
- \seq_if_in:NnF \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnF \g__xpg_active_shorthands_seq { #1 }
{
\bbl@activate{#1}
- \seq_gpush:Nn \__xpg_active_shorthands { #1 }
+ \seq_gpush:Nn \g__xpg_active_shorthands_seq { #1 }
}
}
\DeclareDocumentCommand \xpg@deactivate@shorthands { O{"} }
{
- \seq_if_in:NnT \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnT \g__xpg_active_shorthands_seq { #1 }
{
\cs_if_exist:cT{initiate@active@char}{\bbl@deactivate{#1}}
- \seq_remove_all:Nn \__xpg_active_shorthands {#1}
+ \seq_remove_all:Nn \g__xpg_active_shorthands_seq {#1}
}
}
-% compatibility
-\newif\ifsystem@babelshorthands
-\bool_if:nTF \l_polyglossia_babelshorthands_bool {
- \system@babelshorthandstrue
-}{
- \system@babelshorthandsfalse
+% Inherit shorthands in other languages
+\NewDocumentCommand \inheritbabelshorthands { m m }
+{
+ \AddToHook{begindocument/before}{
+ % Load the involved languages if necessary
+ % Error if they do not exist
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpa_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpa_lang_tl .ldf}
+ { \setotherlanguage{#1} }
+ { \xpg@error{ Source~ language~ #1,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ \tl_set:Nn \l__xpg_tmpb_lang_tl { \xpg_alias_base_lang:n{#2} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpb_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpb_lang_tl .ldf}
+ { \setotherlanguage{#2} }
+ { \xpg@error{ Target~ language~ #2,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ % Test whether the requested shorthands exist
+ \bool_if_exist:NF \l__xpg_no_shorthands_bool
+ { \bool_new:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { \l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { no\l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \bool_if:nT { \l__xpg_no_shorthands_bool }
+ {
+ \xpg@error{ No~ babel~ shorthands~ exist~ for~ language~ #1 }
+ }
+ % If so, apply:
+ \bool_if:nF { \l__xpg_no_shorthands_bool }
+ {
+ \exp_args:Ncc \addto { blockextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { inlineextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { noextras@\l__xpg_tmpb_lang_tl } { no\l__xpg_tmpa_lang_tl @shorthands }
+ }
+ }
}
-%
-% FIXME these should also be loaded \AtEndOfPackage !!!
-\def\xpg@option#1#2{
- \ifcsundef{xpg@main@language}{\setdefaultlanguage}{\setotherlanguage}
- [#1]{#2}}
+% Activate shorthands of a (loaded) language inline
+\NewDocumentCommand \usebabelshorthands { m }
+{
+ \str_if_eq:nnTF { #1 } { none }
+ {
+ % "none" deactivates any shorthands
+ \languageshorthands{none}
+ }
+ {
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \iflanguageloaded{\l__xpg_tmpa_lang_tl}{
+ \use:c{\l__xpg_tmpa_lang_tl @shorthands}
+ }{
+ \xpg@error{ Language~ #1,~ requested~ in~
+ \string\startbabelshorthands,~ is~ not~ loaded }
+ }
+ }
+}
% \end{macrocode}
% \iffalse
@@ -7441,7 +7494,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -7508,7 +7561,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct
% \begin{macrocode}
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
@@ -8126,7 +8179,7 @@ prepend_to_callback ("hpack_filter",
% \begin{macrocode}
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -8181,7 +8234,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -8549,7 +8602,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters
% \begin{macrocode}
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -8599,7 +8652,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct
% \begin{macrocode}
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -8702,7 +8755,7 @@ polyglossia.desactivate_tibt_eol = desactivate
% \begin{macrocode}
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -8728,20 +8781,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -8853,14 +8899,9 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
% \end{macrocode}
% \iffalse
%</polyglossia.lua>
@@ -10020,63 +10061,13 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \end{macrocode}
% \iffalse
%</xgreek-fixes.def>
-%<*gloss-latex.lde>
-% \fi
-% \clearpage
-%
-% \subsection{gloss-latex.lde}
-% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
-%
-\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/12/11}{v1.66}{polyglossia: module for default language}
-
-\PolyglossiaSetup{latex}{
- bcp47=en-US,
- bcp47-language=en,
- bcp47-region=US,
- bcp47-script=Latn,
- hyphennames={english},
- hyphenmins={2,3},
- langtag=ENG,
- fontsetup=true,
- % ignore command
- DefineCommandsCmd={use_none:n}
-}
-
-\def\captionslatex{%
- \def\prefacename{Preface}%
- \def\refname{References}%
- \def\abstractname{Abstract}%
- \def\bibname{Bibliography}%
- \def\chaptername{Chapter}%
- \def\appendixname{Appendix}%
- \def\contentsname{Contents}%
- \def\listfigurename{List of Figures}%
- \def\listtablename{List of Tables}%
- \def\indexname{Index}%
- \def\figurename{Figure}%
- \def\tablename{Table}%
- \def\partname{Part}%
- \def\enclname{encl}%
- \def\ccname{cc}%
- \def\headtoname{To}%
- \def\pagename{Page}%
- \def\seename{see}%
- \def\alsoname{see also}%
- \def\proofname{Proof}%
-}
-
-
-% \end{macrocode}
-% \iffalse
-%</gloss-latex.lde>
%<*gloss-acadien.ldf>
% \fi
% \clearpage
%
% \subsection{gloss-acadien.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-acadien.ldf}[polyglossia: module for Canadian (Acadian) French]
@@ -10093,7 +10084,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-aeb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-aeb.ldf}[polyglossia: module for aeb (Arabic)]
@@ -10110,7 +10101,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-af.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-af.ldf}[polyglossia: module for af (Afrikaans)]
@@ -10127,7 +10118,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-afb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afb.ldf}[polyglossia: module for afb (Arabic)]
@@ -10144,7 +10135,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-afrikaans.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afrikaans.ldf}[polyglossia: module for Afrikaans]
@@ -10249,7 +10240,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-albanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-albanian.ldf}[polyglossia: module for Albanian]
@@ -10306,7 +10297,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-am.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-am.ldf}[polyglossia: module for am (Amharic)]
@@ -10323,7 +10314,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-american.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-american.ldf}[polyglossia: module for American English]
@@ -10340,7 +10331,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-amharic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-amharic.ldf}[polyglossia: module for Amharic]
\PolyglossiaSetup{amharic}{
@@ -10560,7 +10551,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-apd.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-apd.ldf}[polyglossia: module for apd (Arabic)]
@@ -10577,7 +10568,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-IQ.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-IQ.ldf}[polyglossia: module for ar-IQ (Arabic)]
@@ -10596,7 +10587,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-JO.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-JO.ldf}[polyglossia: module for ar-JO (Arabic)]
@@ -10615,7 +10606,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-LB.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-LB.ldf}[polyglossia: module for ar-LB (Arabic)]
@@ -10634,7 +10625,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-MR.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-MR.ldf}[polyglossia: module for ar-MR (Arabic)]
@@ -10653,7 +10644,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-PS.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-PS.ldf}[polyglossia: module for ar-PS (Arabic)]
@@ -10672,7 +10663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-SY.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-SY.ldf}[polyglossia: module for ar-SY (Arabic)]
@@ -10691,7 +10682,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-YE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-YE.ldf}[polyglossia: module for ar-YE (Arabic)]
@@ -10710,7 +10701,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar.ldf}[polyglossia: module for ar (Arabic)]
@@ -10727,7 +10718,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arabic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arabic.ldf}[polyglossia: module for Arabic]
\RequireBidi
@@ -11117,7 +11108,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-armenian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-armenian.ldf}[polyglossia: module for Armenian]
@@ -11325,7 +11316,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arq.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arq.ldf}[polyglossia: module for arq (Arabic)]
@@ -11342,7 +11333,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ary.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ary.ldf}[polyglossia: module for ary (Arabic)]
@@ -11359,7 +11350,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arz.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arz.ldf}[polyglossia: module for arz (Arabic)]
@@ -11376,7 +11367,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ast.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ast.ldf}[polyglossia: module for ast (Asturian)]
@@ -11393,7 +11384,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-asturian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Xuacu <xuacusk8 at gmail dot com>
% Contributed by Kevin Godby <godbyk at gmail dot com>
@@ -11453,7 +11444,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-australian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-australian.ldf}[polyglossia: module for Australian English]
@@ -11470,7 +11461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-austrian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-austrian.ldf}[polyglossia: module for Austrian German (old spelling)]
@@ -11487,7 +11478,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ayl.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ayl.ldf}[polyglossia: module for ayl (Arabic)]
@@ -11504,7 +11495,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasa.ldf}[polyglossia: module for Bahasa Indonesia]
@@ -11521,7 +11512,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasai.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasai.ldf}[polyglossia: module for Bahasa Indonesia]
@@ -11539,7 +11530,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasam.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasam.ldf}[polyglossia: module for Bahasa Melayu]
@@ -11557,7 +11548,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-basque.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-basque.ldf}[polyglossia: module for Basque]
\PolyglossiaSetup{basque}{
@@ -11615,7 +11606,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-be-tarask.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be-tarask.ldf}[polyglossia: module for be-tarask (Belarusian)]
@@ -11632,7 +11623,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-be.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be.ldf}[polyglossia: module for be (Belarusian)]
@@ -11649,7 +11640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-belarusian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-belarusian.ldf}[polyglossia: module for Belarusian]
@@ -11977,7 +11968,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bengali.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by সাজেদুর রহিম জোয়ারদার <toshazed@gmail.com>
% TODO implement Bengali calendar
@@ -12118,7 +12109,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bg.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bg.ldf}[polyglossia: module for bg (Bulgarian)]
@@ -12135,7 +12126,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bn.ldf}[polyglossia: module for bn (Bengali)]
@@ -12152,7 +12143,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bo.ldf}[polyglossia: module for bo (Tibetan)]
@@ -12169,7 +12160,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bosnian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bosnian.ldf}[polyglossia: module for Bosnian]
@@ -12233,7 +12224,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-br.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-br.ldf}[polyglossia: module for br (Breton)]
@@ -12250,7 +12241,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-brazil.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-brazil.ldf}[polyglossia: module for Brazilian Portuguese]
@@ -12269,7 +12260,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-breton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-breton.ldf}[polyglossia: module for Breton]
\PolyglossiaSetup{breton}{
@@ -12377,7 +12368,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-british.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-british.ldf}[polyglossia: module for British English]
@@ -12394,7 +12385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bs.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bs.ldf}[polyglossia: module for bs (Bosnian)]
@@ -12411,7 +12402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bulgarian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bulgarian.ldf}[polyglossia: module for Bulgarian]
\PolyglossiaSetup{bulgarian}{
@@ -12513,7 +12504,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ca.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ca.ldf}[polyglossia: module for ca (Catalan)]
@@ -12530,7 +12521,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-canadian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadian.ldf}[polyglossia: module for Canadian English]
@@ -12547,7 +12538,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-canadien.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadien.ldf}[polyglossia: module for Canadian French]
@@ -12564,7 +12555,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-catalan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-catalan.ldf}[polyglossia: module for Catalan]
\PolyglossiaSetup{catalan}{
@@ -12733,7 +12724,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-chinese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-chinese.ldf}[polyglossia: module for Chinese]
@@ -13024,7 +13015,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Arab.ldf}[polyglossia: module for ckb-Arab (Kurdish)]
@@ -13041,7 +13032,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Latn.ldf}[polyglossia: module for ckb-Latn (Kurdish)]
@@ -13058,7 +13049,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb.ldf}[polyglossia: module for ckb (Kurdish)]
@@ -13075,7 +13066,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cop.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cop.ldf}[polyglossia: module for cop (Coptic)]
@@ -13092,7 +13083,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-coptic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-coptic.ldf}[polyglossia: module for Coptic]
\PolyglossiaSetup{coptic}{
@@ -13148,7 +13139,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-croatian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-croatian.ldf}[polyglossia: module for Croatian]
\PolyglossiaSetup{croatian}{
@@ -13424,7 +13415,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cy.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cy.ldf}[polyglossia: module for cy (Welsh)]
@@ -13441,7 +13432,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cz.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cz.ldf}[polyglossia: module for cz (Czech)]
@@ -13458,7 +13449,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-czech.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-czech.ldf}[polyglossia: module for Czech]
@@ -13717,7 +13708,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-da.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-da.ldf}[polyglossia: module for da (Danish)]
@@ -13734,7 +13725,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-danish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-danish.ldf}[polyglossia: module for Danish]
\PolyglossiaSetup{danish}{
@@ -13791,7 +13782,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901.ldf}[polyglossia: module for de-AT-1901 (Austrian German, old spelling)]
@@ -13808,7 +13799,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996.ldf}[polyglossia: module for de-AT-1996 (Austrian German)]
@@ -13825,7 +13816,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT.ldf}[polyglossia: module for de-AT (Austrian German)]
@@ -13842,7 +13833,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901.ldf}[polyglossia: module for de-CH-1901 (Swiss German, old spelling)]
@@ -13859,7 +13850,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996.ldf}[polyglossia: module for de-CH-1996 (Swiss German)]
@@ -13876,7 +13867,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH.ldf}[polyglossia: module for de-CH (Swiss German)]
@@ -13893,7 +13884,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901.ldf}[polyglossia: module for de-DE-1901 (Germany's German, old spelling)]
@@ -13910,7 +13901,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996.ldf}[polyglossia: module for de-DE-1996 (Germany's German)]
@@ -13927,7 +13918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE.ldf}[polyglossia: module for de-DE (Germany's German)]
@@ -13944,7 +13935,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901-Latf.ldf}[polyglossia: module for de-AT-1901-Latf (Austrian German, old spelling)]
@@ -13961,7 +13952,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996-Latf.ldf}[polyglossia: module for de-AT-1996-Latf (Austrian German)]
@@ -13978,7 +13969,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-Latf.ldf}[polyglossia: module for de-AT-Latf (Austrian German)]
@@ -13995,7 +13986,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901-Latf.ldf}[polyglossia: module for de-CH-1901-Latf (Swiss German, old spelling)]
@@ -14012,7 +14003,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996-Latf.ldf}[polyglossia: module for de-CH-1996-Latf (Swiss German)]
@@ -14029,7 +14020,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-Latf.ldf}[polyglossia: module for de-CH-Latf (Swiss German)]
@@ -14046,7 +14037,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901-Latf.ldf}[polyglossia: module for de-DE-1901-Latf (Germany's German, old spelling)]
@@ -14063,7 +14054,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996-Latf.ldf}[polyglossia: module for de-DE-1996-Latf (Germany's German)]
@@ -14080,7 +14071,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-Latf.ldf}[polyglossia: module for de-DE-Latf (Germany's German)]
@@ -14097,7 +14088,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-Latf.ldf}[polyglossia: module for de-Latf (German)]
@@ -14114,7 +14105,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de.ldf}[polyglossia: module for de (German)]
@@ -14131,7 +14122,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-divehi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-divehi.ldf}[polyglossia: module for Divehi]
@@ -14186,7 +14177,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dsb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dsb.ldf}[polyglossia: module for dsb (Sorbian)]
@@ -14203,7 +14194,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dutch.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dutch.ldf}[polyglossia: module for Dutch]
\PolyglossiaSetup{dutch}{
@@ -14413,7 +14404,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dv.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dv.ldf}[polyglossia: module for dv (Divehi)]
@@ -14430,7 +14421,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el-monoton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-monoton.ldf}[polyglossia: module for el-monoton (Greek)]
@@ -14447,7 +14438,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el-polyton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-polyton.ldf}[polyglossia: module for el-polyton (Greek)]
@@ -14464,7 +14455,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el.ldf}[polyglossia: module for el (Greek)]
@@ -14481,7 +14472,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-AU.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-AU.ldf}[polyglossia: module for en-AU (Australian English)]
@@ -14498,7 +14489,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-CA.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-CA.ldf}[polyglossia: module for en-CA (Canadan English)]
@@ -14515,7 +14506,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-GB.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-GB.ldf}[polyglossia: module for en-GB (British English)]
@@ -14532,7 +14523,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-NZ.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-NZ.ldf}[polyglossia: module for en-NZ (Newzealand English)]
@@ -14549,7 +14540,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-US.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-US.ldf}[polyglossia: module for en-US (American English)]
@@ -14566,7 +14557,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en.ldf}[polyglossia: module for en (English)]
@@ -14583,7 +14574,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-english.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-english.ldf}[polyglossia: module for English]
@@ -14794,7 +14785,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-eo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eo.ldf}[polyglossia: module for eo (Esperanto)]
@@ -14811,7 +14802,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es-ES.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-ES.ldf}[polyglossia: module for es-ES (Spain's Spanish)]
@@ -14828,7 +14819,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es-MX.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-MX.ldf}[polyglossia: module for es-MX (Mexican Spanish)]
@@ -14845,7 +14836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es.ldf}[polyglossia: module for es (Spanish)]
@@ -14862,7 +14853,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-esperanto.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-esperanto.ldf}[polyglossia: module for Esperanto]
\PolyglossiaSetup{esperanto}{
@@ -14942,7 +14933,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-estonian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-estonian.ldf}[polyglossia: module for Estonian]
\PolyglossiaSetup{estonian}{
@@ -14999,7 +14990,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-et.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-et.ldf}[polyglossia: module for et (Estonian)]
@@ -15016,7 +15007,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-eu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eu.ldf}[polyglossia: module for eu (Basque)]
@@ -15033,7 +15024,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fa.ldf}[polyglossia: module for fa (Persian)]
@@ -15050,7 +15041,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-farsi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-farsi.ldf}[polyglossia: module for Farsi]
@@ -15068,7 +15059,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fi.ldf}[polyglossia: module for fi (Finnish)]
@@ -15085,7 +15076,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-finnish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for Finnish]
\PolyglossiaSetup{finnish}{
@@ -15105,10 +15096,37 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
-\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{}
+\newif\if@finnish@schoolhyphens
+\newif\if@finnish@babelhyphens
+\define@choicekey*+{finnish}{hyphens}[\xpg@val\xpg@nr]{default,school,babel}[default]{%
+ \ifcase\xpg@nr\relax
+ % default:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphensfalse
+ \or
+ % school:
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \or
+ % babel:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphenstrue
+ \fi
+ \xpg@info{Option: Finnish, hyphens=\xpg@val}%
+}{\xpg@warning{Unknown Finnish hyphens `#1'}}
+
+% backwards compatibility
+\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{%
+ \iffinnish@schoolhyphens
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \else
+ \@finnish@schoolhyphensfalse
+ \fi
+}
% Register default options
-\xpg@initialize@gloss@options{finnish}{babelshorthands=false,schoolhyphens=false}
+\xpg@initialize@gloss@options{finnish}{babelshorthands=false,hyphens=default}
\ifsystem@babelshorthands
\setkeys{finnish}{babelshorthands=true}
@@ -15129,7 +15147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
\declare@shorthand{finnish}{""}{\hskip\z@skip}%
\declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
- \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
+ \declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}%
\declare@shorthand{finnish}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
}
@@ -15164,7 +15182,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
}
\def\finnish@language{%
- \iffinnish@schoolhyphens
+ \if@finnish@schoolhyphens
\xpg@ifdefined{schoolfinnish}{%
\polyglossia@setup@language@patterns{schoolfinnish}%
}{%
@@ -15177,6 +15195,28 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\fi
}
+% activate babel-style hyphen settings if requested
+\AtBeginDocument{%
+ \if@finnish@babelhyphens
+ \let\xpg@save@hyphenpenalty\hyphenpenalty%
+ \let\xpg@save@exhyphenpenalty\exhyphenpenalty%
+ \let\xpg@save@doublehyphendemerits\doublehyphendemerits%
+ \let\xpg@save@finalhyphendemerits\finalhyphendemerits%
+ \addto\blockextras@finnish{%
+ \hyphenpenalty=30%
+ \exhyphenpenalty=30%
+ \doublehyphendemerits=5000%
+ \finalhyphendemerits=5000%
+ }%
+ \addto\noextras@finnish{%
+ \let\hyphenpenalty\xpg@save@hyphenpenalty%
+ \let\exhyphenpenalty\xpg@save@exhyphenpenalty%
+ \let\doublehyphendemerits\xpg@save@doublehyphendemerits%
+ \let\finalhyphendemerits\xpg@save@finalhyphendemerits%
+ }%
+ \fi
+}
+
\def\datefinnish{%
\def\today{\number\day.~\ifcase\month\or
tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
@@ -15205,7 +15245,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CA-u-sd-canb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA-u-sd-canb.ldf}[polyglossia: module for fr-CA-u-sd-canb (Canadian French, Acadian subvariety)]
@@ -15222,7 +15262,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CA.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA.ldf}[polyglossia: module for fr-CA (Canadian French)]
@@ -15239,7 +15279,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CH.ldf}[polyglossia: module for fr-CH (Swiss French)]
@@ -15256,7 +15296,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-FR.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-FR.ldf}[polyglossia: module for fr-FR (France's French)]
@@ -15273,7 +15313,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr.ldf}[polyglossia: module for fr (French)]
@@ -15290,7 +15330,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-french.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-french.ldf}[polyglossia: module for French]
@@ -15765,8 +15805,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\renewcommand{\labelitemiii}{\french@itemiii}%
\renewcommand{\labelitemiv}{\french@itemiv}%
}{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}%
- \else
- \let\@makefntext\xpg@orig@makefntext
\fi
\@xpg@french@itemlabels@settrue%
\fi%
@@ -15836,7 +15874,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-friulan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulan.ldf}[polyglossia: module for Friulian]
@@ -15853,7 +15891,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-friulian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulian.ldf}[polyglossia: module for Friulian]
@@ -15939,7 +15977,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fur.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fur.ldf}[polyglossia: module for fur (Friulian)]
@@ -15956,7 +15994,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ga.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ga.ldf}[polyglossia: module for ga (Gaelic)]
@@ -15973,7 +16011,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gaelic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gaelic.ldf}[polyglossia: module for Gaelic]
@@ -16103,7 +16141,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-galician.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-galician.ldf}[polyglossia: module for Galician]
\PolyglossiaSetup{galician}{
@@ -16160,7 +16198,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gd.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gd.ldf}[polyglossia: module for gd (Gaelic)]
@@ -16177,7 +16215,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-georgian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-georgian.ldf}[polyglossia: module for Georgian]
@@ -16425,7 +16463,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-german.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-german.ldf}[polyglossia: module for German]
@@ -16658,6 +16696,11 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\declare@shorthand{german}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
+ \def\mkgender{*}%
+ \declare@shorthand{german}{":}{\nobreak:\bbl@allowhyphens}%
+ \declare@shorthand{german}{"*}{\nobreak*\bbl@allowhyphens}%
+ \declare@shorthand{german}{"_}{\nobreak\_\bbl@allowhyphens}%
+ \declare@shorthand{german}{"x}{\nobreak\mkgender\bbl@allowhyphens}%
}
\def\nogerman@shorthands{%
@@ -16774,7 +16817,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-germanb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-germanb.ldf}[polyglossia: module for German (old spelling)]
@@ -16791,7 +16834,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gl.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gl.ldf}[polyglossia: module for gl (Galician)]
@@ -16808,7 +16851,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-grc.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-grc.ldf}[polyglossia: module for grc (Greek)]
@@ -16825,7 +16868,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-greek.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-greek.ldf}[polyglossia: module for Greek]
@@ -17293,7 +17336,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-he.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-he.ldf}[polyglossia: module for he (Hebrew)]
@@ -17310,7 +17353,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hebrew.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for Hebrew]
@@ -17484,7 +17527,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hi.ldf}[polyglossia: module for hi (Hindi)]
@@ -17501,7 +17544,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hindi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by Zdenĕk Wagner, 10-03-2008
% with corrections and additional contributions by Anshuman Pandey
@@ -17620,7 +17663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hr.ldf}[polyglossia: module for hr (Croatian)]
@@ -17637,7 +17680,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hsb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hsb.ldf}[polyglossia: module for hsb (Higher Sorbian)]
@@ -17654,7 +17697,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hu.ldf}[polyglossia: module for hu (Hungarian)]
@@ -17671,7 +17714,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hungarian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hungarian.ldf}[polyglossia: module for Hungarian]
@@ -18070,7 +18113,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hy.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hy.ldf}[polyglossia: module for hy (Armenian)]
@@ -18087,7 +18130,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ia.ldf}[polyglossia: module for ia (Interlingua)]
@@ -18104,7 +18147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-icelandic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-icelandic.ldf}[polyglossia: module for Icelandic]
\PolyglossiaSetup{icelandic}{
@@ -18162,7 +18205,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-id.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-id.ldf}[polyglossia: module for id (Malay)]
@@ -18179,7 +18222,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-interlingua.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-interlingua.ldf}[polyglossia: module for Interlingua]
\PolyglossiaSetup{interlingua}{
@@ -18237,7 +18280,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-irish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-irish.ldf}[polyglossia: module for Irish]
@@ -18255,7 +18298,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-is.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-is.ldf}[polyglossia: module for is (Icelandic)]
@@ -18272,7 +18315,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-it.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-it.ldf}[polyglossia: module for it (Italian)]
@@ -18290,7 +18333,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-italian.ldf}
% \begin{macrocode}
% !TEX encoding = UTF-8 Unicode
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian]
\PolyglossiaSetup{italian}{
@@ -18442,7 +18485,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ja.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ja.ldf}[polyglossia: module for ja (Japanese)]
@@ -18459,7 +18502,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-japanese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-japanese.ldf}[polyglossia: module for Japanese]
@@ -18469,6 +18512,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
bcp47-region=JP,
bcp47-script=Hrkt,
script=CJK,
+ scripttag=kana,
language=Japanese,
langtag=JAN,
hyphennames={nohyphenation},
@@ -18697,7 +18741,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ka.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ka.ldf}[polyglossia: module for ka (Georgian)]
@@ -18715,7 +18759,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-kannada.ldf}
% \begin{macrocode}
%% gloss-kannada.ldf
-%% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+%% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%%
%% Copyright 2011 Aravinda VK <hallimanearavind AT gmail.com>,
%% Shankar Prasad <prasad.mvs AT gmail.com>,
@@ -18838,7 +18882,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-khmer.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-khmer.ldf}[polyglossia: module for Khmer]
\PolyglossiaSetup{khmer}{
@@ -19021,7 +19065,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-km.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-km.ldf}[polyglossia: module for km (Khmer)]
@@ -19038,7 +19082,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Arab.ldf}[polyglossia: module for kmr-Arab (Kurdish)]
@@ -19055,7 +19099,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Latn.ldf}[polyglossia: module for kmr-Latn (Kurdish)]
@@ -19072,7 +19116,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr.ldf}[polyglossia: module for kmr (Kurdish)]
@@ -19089,7 +19133,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kn.ldf}[polyglossia: module for kn (Kannada)]
@@ -19106,7 +19150,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ko.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ko.ldf}[polyglossia: module for ko (Korean)]
@@ -19123,7 +19167,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-korean.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean]
@@ -19603,7 +19647,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Arab.ldf}[polyglossia: module for ku-Arab (Kurdish)]
@@ -19620,7 +19664,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Latn.ldf}[polyglossia: module for ku-Latn (Kurdish)]
@@ -19637,7 +19681,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku.ldf}[polyglossia: module for ku (Kurdish)]
@@ -19654,7 +19698,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kurdish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Created on September 1, 2019
% Last updated on May 17, 2020
@@ -20151,7 +20195,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kurmanji.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kurmanji.ldf}[polyglossia: module for Kurmanji Kurdish]
@@ -20168,7 +20212,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-classic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xclassic.ldf}[polyglossia: module for la-xclassic (Latin)]
@@ -20185,7 +20229,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-ecclesia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xecclesiastic.ldf}[polyglossia: module for la-xecclesiastic (Latin)]
@@ -20202,7 +20246,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-medieval.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xmedieval.ldf}[polyglossia: module for la-xmedieval (Latin)]
@@ -20219,7 +20263,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la.ldf}[polyglossia: module for la (Latin)]
@@ -20236,7 +20280,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lao.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao]
@@ -20341,13 +20385,63 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \end{macrocode}
% \iffalse
%</gloss-lao.ldf>
+%<*gloss-latex.ldf>
+% \fi
+% \clearpage
+%
+% \subsection{gloss-latex.ldf}
+% \begin{macrocode}
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
+%
+\ProvidesFile{gloss-latex.ldf}[polyglossia: module for default language]
+
+\PolyglossiaSetup{latex}{
+ bcp47=en-US,
+ bcp47-language=en,
+ bcp47-region=US,
+ bcp47-script=Latn,
+ hyphennames={english},
+ hyphenmins={2,3},
+ langtag=ENG,
+ fontsetup=true,
+ % ignore command
+ DefineCommandsCmd={use_none:n}
+}
+
+\def\captionslatex{%
+ \def\prefacename{Preface}%
+ \def\refname{References}%
+ \def\abstractname{Abstract}%
+ \def\bibname{Bibliography}%
+ \def\chaptername{Chapter}%
+ \def\appendixname{Appendix}%
+ \def\contentsname{Contents}%
+ \def\listfigurename{List of Figures}%
+ \def\listtablename{List of Tables}%
+ \def\indexname{Index}%
+ \def\figurename{Figure}%
+ \def\tablename{Table}%
+ \def\partname{Part}%
+ \def\enclname{encl}%
+ \def\ccname{cc}%
+ \def\headtoname{To}%
+ \def\pagename{Page}%
+ \def\seename{see}%
+ \def\alsoname{see also}%
+ \def\proofname{Proof}%
+}
+
+
+% \end{macrocode}
+% \iffalse
+%</gloss-latex.ldf>
%<*gloss-latin.ldf>
% \fi
% \clearpage
%
% \subsection{gloss-latin.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin]
@@ -21462,7 +21556,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinclassic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinclassic.ldf}[polyglossia: module for classic Latin]
@@ -21479,7 +21573,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinecclesiastic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinecclesiastic.ldf}[polyglossia: module for ecclesiastic Latin]
@@ -21496,7 +21590,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinmedieval.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinmedieval.ldf}[polyglossia: module for medieval Latin]
@@ -21513,7 +21607,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latvian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latvian.ldf}[polyglossia: module for Latvian]
\PolyglossiaSetup{latvian}{
@@ -21571,7 +21665,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lithuanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Paulius Sladkevičius <komsas@gmail.com>
@@ -21653,7 +21747,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lo.ldf}[polyglossia: module for lo (Lao)]
@@ -21670,7 +21764,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lowersorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lowersorbian.ldf}[polyglossia: module for Lower Sorbian]
@@ -21687,7 +21781,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lsorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lsorbian.ldf}[polyglossia: module for Lower Sorbian]
@@ -21705,7 +21799,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lt.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lt.ldf}[polyglossia: module for lt (Lithuanian)]
@@ -21722,7 +21816,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lv.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lv.ldf}[polyglossia: module for lv (Latvian)]
@@ -21739,7 +21833,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-macedonian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-macedonian.ldf}[polyglossia: module for Macedonian]
\PolyglossiaSetup{macedonian}{
@@ -21838,7 +21932,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-magyar.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-magyar.ldf}[polyglossia: module for Hungarian (Magyar)]
@@ -21855,7 +21949,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-malay.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malay.ldf}[polyglossia: module for Malay]
@@ -22054,7 +22148,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-malayalam.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for Malayalam]
@@ -22124,7 +22218,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-marathi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by Abhijit Navale <abhi_navale@live.in>
% Ordinals (1-100) added by Niranjan Tambe <niranjanvikastambe@gmail.com> on 14th December, 2019
@@ -22274,7 +22368,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mk.ldf}[polyglossia: module for mk (Macedonian)]
@@ -22291,7 +22385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ml.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ml.ldf}[polyglossia: module for ml (Malayalam)]
@@ -22308,7 +22402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mn.ldf}[polyglossia: module for mn (Mongolian)]
@@ -22325,7 +22419,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mongolian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mongolian.ldf}[polyglossia: module for Mongolian]
@@ -22564,7 +22658,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mr.ldf}[polyglossia: module for mr (Marathi)]
@@ -22581,7 +22675,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-naustrian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-naustrian.ldf}[polyglossia: module for Austrian German (current spelling)]
@@ -22598,7 +22692,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nb.ldf}[polyglossia: module for nb (Norwegian)]
@@ -22615,7 +22709,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-newzealand.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-newzealand.ldf}[polyglossia: module for Newzealand English]
@@ -22632,7 +22726,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ngerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ngerman.ldf}[polyglossia: module for German (current spelling)]
@@ -22649,7 +22743,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nko.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko]
\PolyglossiaSetup{nko}{%
@@ -22747,7 +22841,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-norsk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norsk.ldf}[polyglossia: module for Norwegian (Bokmal)]
@@ -22765,7 +22859,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-norwegian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norwegian.ldf}[polyglossia: module for Norwegian]
\PolyglossiaSetup{norwegian}{
@@ -22892,7 +22986,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nswissgerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nswissgerman.ldf}[polyglossia: module for Swiss German (current spelling)]
@@ -22909,7 +23003,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nynorsk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nynorsk.ldf}[polyglossia: module for Norwegian (Nynorsk)]
@@ -22927,7 +23021,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-occitan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%
%% This is file `gloss-occitan.ldf',
@@ -23108,7 +23202,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-odia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by ଅଶୋକ ଦାସ୍ <das@pas.rochester.edu> and ଅଭିଷେକ ଜେନା <avisekjena@gmail.com>
% TODO implement Odia calendar
@@ -23268,7 +23362,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-or.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-odia.ldf}[polyglossia: module for or (Odia)]
@@ -23285,7 +23379,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-pa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-pa.ldf}[polyglossia: module for pa (Punjabi)]
@@ -23302,7 +23396,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-persian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-persian.ldf}[polyglossia: module for Persian]
@@ -23543,7 +23637,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-piedmontese.ldf}
% \begin{macrocode}
% !TEX encoding = UTF-8 Unicode
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for Piedmontese]
\makeatletter
@@ -23673,7 +23767,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-polish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polish.ldf}[polyglossia: module for Polish]
@@ -23932,7 +24026,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-polutonikogreek.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polutonikogreek.ldf}[polyglossia: module for polytonic Greek]
@@ -23949,7 +24043,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-portuges.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuges.ldf}[polyglossia: module for Portuguese]
@@ -23969,7 +24063,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-portuguese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuguese.ldf}[polyglossia: module for Portuguese]
@@ -24200,7 +24294,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-punjabi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by
% Arvinder Singh Kang, <17-11-2022>
@@ -24308,7 +24402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-romanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romanian.ldf}[polyglossia: module for Romanian]
@@ -24367,7 +24461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-romansh.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romansh.ldf}[polyglossia: module for Romansh]
\makeatletter
@@ -24425,7 +24519,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-russian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-russian.ldf}[polyglossia: module for Russian]
@@ -24824,7 +24918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sami.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sami.ldf}[polyglossia: module for Sami]
@@ -24928,7 +25022,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-samin.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-samin.ldf}[polyglossia: module for Northern Sami]
@@ -24946,7 +25040,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sanskrit.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sanskrit.ldf}[polyglossia: module for Sanskrit]
@@ -25105,7 +25199,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-scottish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-scottish.ldf}[polyglossia: module for Scottish Gaelic]
@@ -25123,7 +25217,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-serbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbian.ldf}[polyglossia: module for Serbian]
%TODO split into gloss-serbiancyr.ldf and gloss-serbianlat.ldf
@@ -25546,7 +25640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-serbianc.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbianc.ldf}[polyglossia: module for Serbian (cyrillic)]
@@ -25563,7 +25657,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovak.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak]
@@ -25830,7 +25924,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovene.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovene.ldf}[polyglossia: module for Slovenian]
@@ -25847,7 +25941,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovenian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovenian.ldf}[polyglossia: module for Slovenian]
@@ -25939,7 +26033,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sorbian.ldf}[polyglossia: module for Sorbian]
@@ -26130,7 +26224,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-spanish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanish.ldf}[polyglossia: module for Spanish]
@@ -26370,7 +26464,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-spanishmx.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanishmx.ldf}[polyglossia: module for Mexican Spanish]
@@ -26387,7 +26481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-swedish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swedish.ldf}[polyglossia: module for Swedish]
@@ -26452,7 +26546,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-swissgerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swissgerman.ldf}[polyglossia: module for Swiss German (old spelling)]
@@ -26469,7 +26563,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-syriac.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac]
@@ -26742,7 +26836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-tamil.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tamil.ldf}[polyglossia: module for Tamil]
@@ -26812,7 +26906,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-telugu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-telugu.ldf}[polyglossia: module for Telugu]
@@ -26885,7 +26979,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-thai.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-thai.ldf}[polyglossia: module for Thai]
%% This is partly based on thai-latex for Babel:
@@ -27043,7 +27137,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-tibetan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for Tibetan]
%% Copyright 2013 Elie Roux
@@ -27269,7 +27363,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-turkish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkish.ldf}[polyglossia: module for Turkish]
\RequirePackage{hijrical}
@@ -27387,7 +27481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-turkmen.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkmen.ldf}[polyglossia: module for Turkmen]
%% Translations provided by Nazar Annagurban <nazartm at gmail dot com>
@@ -27445,7 +27539,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ug.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ug.ldf}[polyglossia: module for ug (Uyghur)]
% BCP 47 tag for Uyghur
@@ -27461,7 +27555,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ukrainian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ukrainian.ldf}[polyglossia: module for Ukrainian]
% Strings taken from Babel
@@ -27760,7 +27854,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-uppersorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uppersorbian.ldf}[polyglossia: module for Upper Sorbian]
@@ -27777,7 +27871,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-urdu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%% Adapted from a file contributed by Kamal Abdali
\ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu]
@@ -28027,7 +28121,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-usorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-usorbian.ldf}[polyglossia: module for Upper Sorbian]
@@ -28045,7 +28139,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-uyghur.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uyghur.ldf}[polyglossia: module for Uyghur]
%% Translations provided by Osman Tursun (Github Account: neouyghur)
@@ -28486,7 +28580,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-vietnamese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-vietnamese.ldf}[polyglossia: module for Vietnamese]
%% Strings contributed by Daniel Owens < dhowens . pmbx . net >
@@ -28545,7 +28639,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-welsh.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-welsh.ldf}[polyglossia: module for Welsh]
@@ -28645,7 +28739,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-zh-CN.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-CN.ldf}[polyglossia: module for zh-CN (Chinese)]
@@ -28662,7 +28756,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-zh-TW.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-TW.ldf}[polyglossia: module for zh-TW (Chinese)]
@@ -28856,7 +28950,7 @@ U+0039 <> U+0E59 ;
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -28923,7 +29017,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct
% \begin{macrocode}
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
@@ -29541,7 +29635,7 @@ prepend_to_callback ("hpack_filter",
% \begin{macrocode}
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -29596,7 +29690,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -29964,7 +30058,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters
% \begin{macrocode}
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -30014,7 +30108,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct
% \begin{macrocode}
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -30117,7 +30211,7 @@ polyglossia.desactivate_tibt_eol = desactivate
% \begin{macrocode}
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -30143,20 +30237,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -30268,14 +30355,9 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
% \end{macrocode}
% \iffalse
%</polyglossia.lua>
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf
index cbdc35a43da..920b4e7be1b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-acadien.ldf}[polyglossia: module for Canadian (Acadian) French]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf
index bc1e1dc8cde..010a2bbcee1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-aeb.ldf}[polyglossia: module for aeb (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf
index 2d63fee2dd9..482f0bc3659 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-af.ldf}[polyglossia: module for af (Afrikaans)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf
index 1614779feac..9dfbc8bb33d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afb.ldf}[polyglossia: module for afb (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf
index 80e3e1148b3..343f4829bfa 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afrikaans.ldf}[polyglossia: module for Afrikaans]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
index 21df993a19a..003e567fe45 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-albanian.ldf}[polyglossia: module for Albanian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf
index c40820c616e..f066518a653 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-am.ldf}[polyglossia: module for am (Amharic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf
index 2c04cef197f..e85d3b8c902 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-american.ldf}[polyglossia: module for American English]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf
index 54f241e46f7..dc96f89a876 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-amharic.ldf}[polyglossia: module for Amharic]
\PolyglossiaSetup{amharic}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf
index 234bad64dbe..83bcbc38cef 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-apd.ldf}[polyglossia: module for apd (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf
index 4010aedd6a1..72670ba49dd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-IQ.ldf}[polyglossia: module for ar-IQ (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf
index ab3760e75ab..eb3254224a5 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-JO.ldf}[polyglossia: module for ar-JO (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf
index bf52d9a9b51..c5b9b3bcaf6 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-LB.ldf}[polyglossia: module for ar-LB (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf
index 34d951e8875..a8e9cdcc83d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-MR.ldf}[polyglossia: module for ar-MR (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf
index 94c2caaaae9..7d2dfa22ebd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-PS.ldf}[polyglossia: module for ar-PS (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf
index 4db4d729b4a..359d20bb47a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-SY.ldf}[polyglossia: module for ar-SY (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf
index 12da7077ffa..8ac5d0af392 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-YE.ldf}[polyglossia: module for ar-YE (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf
index 9b0749133c2..96d48a57977 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar.ldf}[polyglossia: module for ar (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf
index dd1d3c2d744..1551b9840db 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arabic.ldf}[polyglossia: module for Arabic]
\RequireBidi
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf
index 8eccdcd5600..79140568309 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-armenian.ldf}[polyglossia: module for Armenian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf
index 8fa6b9e7f77..63e98620b80 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arq.ldf}[polyglossia: module for arq (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf
index 235264b95e6..3259f0abc1d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ary.ldf}[polyglossia: module for ary (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf
index 130b2e5ca8d..58dc621dd22 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arz.ldf}[polyglossia: module for arz (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf
index 7df66ccfed9..e0c6eb1b5b8 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ast.ldf}[polyglossia: module for ast (Asturian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf
index b7ea937e96c..082d01a6555 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Xuacu <xuacusk8 at gmail dot com>
% Contributed by Kevin Godby <godbyk at gmail dot com>
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf
index fe72a54ea41..9f3dcc46fed 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-australian.ldf}[polyglossia: module for Australian English]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf
index 88bcbaa507e..601463a06d5 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-austrian.ldf}[polyglossia: module for Austrian German (old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf
index 7e5c477d996..60225d31b8a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ayl.ldf}[polyglossia: module for ayl (Arabic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf
index e8f003f51f7..2f19e7ddfd0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasa.ldf}[polyglossia: module for Bahasa Indonesia]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf
index 833c447a1af..c1f838324a3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasai.ldf}[polyglossia: module for Bahasa Indonesia]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf
index e4acd501c1b..532c40cb1af 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasam.ldf}[polyglossia: module for Bahasa Melayu]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf
index 4f51b99e939..38c76de7f20 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-basque.ldf}[polyglossia: module for Basque]
\PolyglossiaSetup{basque}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf
index 343b7b3b295..562e94ee352 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be-tarask.ldf}[polyglossia: module for be-tarask (Belarusian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf
index 4fb7a9331fd..576db779615 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be.ldf}[polyglossia: module for be (Belarusian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf
index f3c383b32db..83f531e4a8e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-belarusian.ldf}[polyglossia: module for Belarusian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf
index e1d3a18a310..b03007016f6 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by সাজেদুর রহিম জোয়ারদার <toshazed@gmail.com>
% TODO implement Bengali calendar
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf
index a9775fdc23a..d4450a9a8ed 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bg.ldf}[polyglossia: module for bg (Bulgarian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf
index 69640dd3b09..9e94a94e1ab 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bn.ldf}[polyglossia: module for bn (Bengali)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf
index 018a380252e..5427d29e1b1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bo.ldf}[polyglossia: module for bo (Tibetan)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf
index 3810781eda6..9440fd4a943 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bosnian.ldf}[polyglossia: module for Bosnian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf
index 7c147a161ae..61504cfb60f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-br.ldf}[polyglossia: module for br (Breton)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf
index 72191333715..01cd3463b9c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-brazil.ldf}[polyglossia: module for Brazilian Portuguese]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf
index f6ac160947b..833130ee297 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-breton.ldf}[polyglossia: module for Breton]
\PolyglossiaSetup{breton}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf
index e091feec5ce..f5099652292 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-british.ldf}[polyglossia: module for British English]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf
index ac9c081dacb..804947341b9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bs.ldf}[polyglossia: module for bs (Bosnian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf
index 57f2fa796fb..2737d157f7b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bulgarian.ldf}[polyglossia: module for Bulgarian]
\PolyglossiaSetup{bulgarian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf
index 39931aec1dd..8f14e67ccae 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ca.ldf}[polyglossia: module for ca (Catalan)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf
index 4dcbe19a918..e1f1ae0f369 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadian.ldf}[polyglossia: module for Canadian English]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf
index 55bb71ace03..583fa6d5af4 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadien.ldf}[polyglossia: module for Canadian French]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf
index 9ce8be21060..3eb91f5c5ac 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-catalan.ldf}[polyglossia: module for Catalan]
\PolyglossiaSetup{catalan}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf
index 5da30430e54..c9c200aff8d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-chinese.ldf}[polyglossia: module for Chinese]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf
index 2e84c614df3..09984efd133 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Arab.ldf}[polyglossia: module for ckb-Arab (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf
index ffb125a0799..571925619b4 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Latn.ldf}[polyglossia: module for ckb-Latn (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf
index 448b58b2310..bb64479412f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb.ldf}[polyglossia: module for ckb (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf
index b0ff38412f2..2d442eecf6c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cop.ldf}[polyglossia: module for cop (Coptic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf
index 7955c61c1a6..6e480fa7b0b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-coptic.ldf}[polyglossia: module for Coptic]
\PolyglossiaSetup{coptic}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
index 4e572afa600..137a4311d59 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-croatian.ldf}[polyglossia: module for Croatian]
\PolyglossiaSetup{croatian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf
index 73a2c4a412b..8b9de0cdef7 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cy.ldf}[polyglossia: module for cy (Welsh)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf
index b02e262d587..43916fb8779 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cz.ldf}[polyglossia: module for cz (Czech)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf
index 47622c04120..0be4ee3f659 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-czech.ldf}[polyglossia: module for Czech]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf
index 2346fbd4bd9..cd998d42b50 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-da.ldf}[polyglossia: module for da (Danish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf
index 633d8d55e7c..6dd33271ca0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-danish.ldf}[polyglossia: module for Danish]
\PolyglossiaSetup{danish}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf
index 521e6540b2a..ce6c0043237 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901.ldf}[polyglossia: module for de-AT-1901 (Austrian German, old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf
index 5c9a54682af..53e41df278a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996.ldf}[polyglossia: module for de-AT-1996 (Austrian German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf
index f520ddf0027..7495e2ceb53 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT.ldf}[polyglossia: module for de-AT (Austrian German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf
index 43d31af4bba..f8f54b6bb94 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901.ldf}[polyglossia: module for de-CH-1901 (Swiss German, old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf
index 450627b4ddc..391d515a5f7 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996.ldf}[polyglossia: module for de-CH-1996 (Swiss German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf
index 10ab4e55ddd..ce53d8f1c7e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH.ldf}[polyglossia: module for de-CH (Swiss German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf
index 3c0d6422920..5afa7ba6948 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901.ldf}[polyglossia: module for de-DE-1901 (Germany's German, old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf
index 40b320b71dc..80645be2c4f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996.ldf}[polyglossia: module for de-DE-1996 (Germany's German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf
index ae79891e83f..7f5eff27fe2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE.ldf}[polyglossia: module for de-DE (Germany's German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf
index 580062bad81..6a07a603d9b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901-Latf.ldf}[polyglossia: module for de-AT-1901-Latf (Austrian German, old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf
index 99088ef60ea..55656240902 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996-Latf.ldf}[polyglossia: module for de-AT-1996-Latf (Austrian German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf
index cf5c8e0b4b2..ac96d06a42a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-Latf.ldf}[polyglossia: module for de-AT-Latf (Austrian German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf
index a8015e4fe04..21fb6b168f0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901-Latf.ldf}[polyglossia: module for de-CH-1901-Latf (Swiss German, old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf
index 0e466776d9a..f155a3caa59 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996-Latf.ldf}[polyglossia: module for de-CH-1996-Latf (Swiss German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf
index 52408ab1149..de80541d110 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-Latf.ldf}[polyglossia: module for de-CH-Latf (Swiss German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf
index 49533dd176f..781d5d23a29 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901-Latf.ldf}[polyglossia: module for de-DE-1901-Latf (Germany's German, old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf
index d7d2748796d..05fc1458955 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996-Latf.ldf}[polyglossia: module for de-DE-1996-Latf (Germany's German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf
index e4af9ed58c5..bb07d638cfc 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-Latf.ldf}[polyglossia: module for de-DE-Latf (Germany's German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf
index fe590d5b3e8..8b7ef431616 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-Latf.ldf}[polyglossia: module for de-Latf (German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf
index 01b1c85f96c..37710694e9a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de.ldf}[polyglossia: module for de (German)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf
index d94a15d242b..c185501587c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-divehi.ldf}[polyglossia: module for Divehi]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf
index 4627954ae4b..f7884586b93 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dsb.ldf}[polyglossia: module for dsb (Sorbian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf
index d8c95e75951..8c33f3cf15c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dutch.ldf}[polyglossia: module for Dutch]
\PolyglossiaSetup{dutch}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf
index ff209fde4d1..31b087d1fca 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dv.ldf}[polyglossia: module for dv (Divehi)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf
index 4ddaa6136d9..390e7c8342d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-monoton.ldf}[polyglossia: module for el-monoton (Greek)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf
index 644e74ce5eb..43964c518e3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-polyton.ldf}[polyglossia: module for el-polyton (Greek)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf
index f1d4c6a76e0..a6f228adc34 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el.ldf}[polyglossia: module for el (Greek)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf
index 59ab8cd3100..edf161d7911 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-AU.ldf}[polyglossia: module for en-AU (Australian English)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf
index b93792a8fee..9379f38093b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-CA.ldf}[polyglossia: module for en-CA (Canadan English)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf
index 6a7101bfc48..e3787c557e1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-GB.ldf}[polyglossia: module for en-GB (British English)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf
index c11225a4f18..eacd262753e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-NZ.ldf}[polyglossia: module for en-NZ (Newzealand English)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf
index ac580ec3649..aa19f5c5e78 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-US.ldf}[polyglossia: module for en-US (American English)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf
index 1e5150cc2f3..91c64b2727b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en.ldf}[polyglossia: module for en (English)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
index ea690cbe91d..5987a5dd49a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-english.ldf}[polyglossia: module for English]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf
index 952fadd701a..ed3d153f4b3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eo.ldf}[polyglossia: module for eo (Esperanto)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf
index 5586124aa86..827a78c3897 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-ES.ldf}[polyglossia: module for es-ES (Spain's Spanish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf
index 828029596cd..4fa24b8ab82 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-MX.ldf}[polyglossia: module for es-MX (Mexican Spanish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf
index 151cf49de19..7d6473cb46a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es.ldf}[polyglossia: module for es (Spanish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf
index 6a87e95b2e6..9734470cad2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-esperanto.ldf}[polyglossia: module for Esperanto]
\PolyglossiaSetup{esperanto}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf
index 87fe1f89080..096cf422d45 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-estonian.ldf}[polyglossia: module for Estonian]
\PolyglossiaSetup{estonian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf
index b160b17ce54..3abfa391709 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-et.ldf}[polyglossia: module for et (Estonian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf
index a40484f9f16..ff9f45ac7d3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eu.ldf}[polyglossia: module for eu (Basque)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf
index 03dcffdd572..d79cce2c0e9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fa.ldf}[polyglossia: module for fa (Persian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf
index e5a07d0f933..4ca04dfbbee 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-farsi.ldf}[polyglossia: module for Farsi]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf
index 7666aeab648..04a2ecbfd8b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fi.ldf}[polyglossia: module for fi (Finnish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf
index 16d75c4192c..106e8a2be1e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for Finnish]
\PolyglossiaSetup{finnish}{
@@ -18,10 +18,37 @@
\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
-\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{}
+\newif\if@finnish@schoolhyphens
+\newif\if@finnish@babelhyphens
+\define@choicekey*+{finnish}{hyphens}[\xpg@val\xpg@nr]{default,school,babel}[default]{%
+ \ifcase\xpg@nr\relax
+ % default:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphensfalse
+ \or
+ % school:
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \or
+ % babel:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphenstrue
+ \fi
+ \xpg@info{Option: Finnish, hyphens=\xpg@val}%
+}{\xpg@warning{Unknown Finnish hyphens `#1'}}
+
+% backwards compatibility
+\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{%
+ \iffinnish@schoolhyphens
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \else
+ \@finnish@schoolhyphensfalse
+ \fi
+}
% Register default options
-\xpg@initialize@gloss@options{finnish}{babelshorthands=false,schoolhyphens=false}
+\xpg@initialize@gloss@options{finnish}{babelshorthands=false,hyphens=default}
\ifsystem@babelshorthands
\setkeys{finnish}{babelshorthands=true}
@@ -42,7 +69,7 @@
\declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
\declare@shorthand{finnish}{""}{\hskip\z@skip}%
\declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
- \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
+ \declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}%
\declare@shorthand{finnish}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
}
@@ -77,7 +104,7 @@
}
\def\finnish@language{%
- \iffinnish@schoolhyphens
+ \if@finnish@schoolhyphens
\xpg@ifdefined{schoolfinnish}{%
\polyglossia@setup@language@patterns{schoolfinnish}%
}{%
@@ -90,6 +117,28 @@
\fi
}
+% activate babel-style hyphen settings if requested
+\AtBeginDocument{%
+ \if@finnish@babelhyphens
+ \let\xpg@save@hyphenpenalty\hyphenpenalty%
+ \let\xpg@save@exhyphenpenalty\exhyphenpenalty%
+ \let\xpg@save@doublehyphendemerits\doublehyphendemerits%
+ \let\xpg@save@finalhyphendemerits\finalhyphendemerits%
+ \addto\blockextras@finnish{%
+ \hyphenpenalty=30%
+ \exhyphenpenalty=30%
+ \doublehyphendemerits=5000%
+ \finalhyphendemerits=5000%
+ }%
+ \addto\noextras@finnish{%
+ \let\hyphenpenalty\xpg@save@hyphenpenalty%
+ \let\exhyphenpenalty\xpg@save@exhyphenpenalty%
+ \let\doublehyphendemerits\xpg@save@doublehyphendemerits%
+ \let\finalhyphendemerits\xpg@save@finalhyphendemerits%
+ }%
+ \fi
+}
+
\def\datefinnish{%
\def\today{\number\day.~\ifcase\month\or
tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
@@ -111,10 +160,3 @@
\endinput
-% TODO ? this is set in babel:
-\gappto\blockextrasfinnish{%
- \babel@savevariable\hyphenpenalty\hyphenpenalty=30%
- \babel@savevariable\exhyphenpenalty\exhyphenpenalty=30%
- \babel@savevariable\doublehyphendemerits\doublehyphendemerits=5000%
- \babel@savevariable\finalhyphendemerits\finalhyphendemerits=5000%
-}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf
index 3d80587bdaf..3be6413490e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA-u-sd-canb.ldf}[polyglossia: module for fr-CA-u-sd-canb (Canadian French, Acadian subvariety)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf
index 661e58fa131..69d2e3c698c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA.ldf}[polyglossia: module for fr-CA (Canadian French)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf
index 1955328f525..0275fc30462 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CH.ldf}[polyglossia: module for fr-CH (Swiss French)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf
index 37377997957..0ebbd7aa840 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-FR.ldf}[polyglossia: module for fr-FR (France's French)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf
index e5f5de40c17..5179a9263d7 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr.ldf}[polyglossia: module for fr (French)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
index c9379664d53..77278ef06d4 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-french.ldf}[polyglossia: module for French]
@@ -473,8 +473,6 @@
\renewcommand{\labelitemiii}{\french@itemiii}%
\renewcommand{\labelitemiv}{\french@itemiv}%
}{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}%
- \else
- \let\@makefntext\xpg@orig@makefntext
\fi
\@xpg@french@itemlabels@settrue%
\fi%
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf
index c4fc7594107..1afa41ed9a3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulan.ldf}[polyglossia: module for Friulian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf
index 4a594e0ccfa..a2d8a885512 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulian.ldf}[polyglossia: module for Friulian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf
index 75b01685781..a5d8f97a7ec 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fur.ldf}[polyglossia: module for fur (Friulian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf
index 099ae8db3bd..ccdc75f1ce1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ga.ldf}[polyglossia: module for ga (Gaelic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf
index 0487709dcad..0823b152641 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gaelic.ldf}[polyglossia: module for Gaelic]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf
index 388e8aa204a..6fc13785630 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-galician.ldf}[polyglossia: module for Galician]
\PolyglossiaSetup{galician}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf
index e5506ef5153..0193a8684b5 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gd.ldf}[polyglossia: module for gd (Gaelic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf
index 4cfee940a6e..46c86568657 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-georgian.ldf}[polyglossia: module for Georgian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
index de8ed4d7fea..46f308c11af 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-german.ldf}[polyglossia: module for German]
@@ -231,6 +231,11 @@
\declare@shorthand{german}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
+ \def\mkgender{*}%
+ \declare@shorthand{german}{":}{\nobreak:\bbl@allowhyphens}%
+ \declare@shorthand{german}{"*}{\nobreak*\bbl@allowhyphens}%
+ \declare@shorthand{german}{"_}{\nobreak\_\bbl@allowhyphens}%
+ \declare@shorthand{german}{"x}{\nobreak\mkgender\bbl@allowhyphens}%
}
\def\nogerman@shorthands{%
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf
index a5e12699a6c..774ed674515 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-germanb.ldf}[polyglossia: module for German (old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf
index 458266b731a..ead8311f24f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gl.ldf}[polyglossia: module for gl (Galician)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf
index 73d980be75b..0767e30b6c2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-grc.ldf}[polyglossia: module for grc (Greek)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf
index cb9e70cd7a6..0baefede4e0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-greek.ldf}[polyglossia: module for Greek]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf
index 85d1611b530..eb9a5f70f33 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-he.ldf}[polyglossia: module for he (Hebrew)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
index e854baa198b..43d51d8a442 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for Hebrew]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf
index 209e2433d1b..7706f18126f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hi.ldf}[polyglossia: module for hi (Hindi)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf
index 2468a6427b8..283d19938b6 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by Zdenĕk Wagner, 10-03-2008
% with corrections and additional contributions by Anshuman Pandey
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf
index 0799465a4f9..aa0d9cae8c0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hr.ldf}[polyglossia: module for hr (Croatian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf
index 5b75d2a0e86..e94cee93a70 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hsb.ldf}[polyglossia: module for hsb (Higher Sorbian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf
index 351d160c8e1..fc7517921c1 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hu.ldf}[polyglossia: module for hu (Hungarian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf
index ce9932dc1d6..e519f029ee6 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hungarian.ldf}[polyglossia: module for Hungarian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf
index 8777d35d9d1..d743787678b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hy.ldf}[polyglossia: module for hy (Armenian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf
index ce5ff32eaba..da94fdb9611 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ia.ldf}[polyglossia: module for ia (Interlingua)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf
index 60216089d50..94f3305038b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-icelandic.ldf}[polyglossia: module for Icelandic]
\PolyglossiaSetup{icelandic}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf
index 85acd63fb8b..6c2aa7da3f7 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-id.ldf}[polyglossia: module for id (Malay)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf
index 1031238806d..61bc27a63e8 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-interlingua.ldf}[polyglossia: module for Interlingua]
\PolyglossiaSetup{interlingua}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf
index 9003f58aa19..6cd3bdecd4e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-irish.ldf}[polyglossia: module for Irish]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf
index 8d011650769..2fecd4ac749 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-is.ldf}[polyglossia: module for is (Icelandic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf
index 5cecd724346..f9ba73251c7 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-it.ldf}[polyglossia: module for it (Italian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf
index e62fc544b59..0e893717b5b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf
@@ -1,5 +1,5 @@
% !TEX encoding = UTF-8 Unicode
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian]
\PolyglossiaSetup{italian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf
index b932f24eefe..fcc793cf863 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ja.ldf}[polyglossia: module for ja (Japanese)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
index 5f710de1a84..381124663ff 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-japanese.ldf}[polyglossia: module for Japanese]
@@ -8,6 +8,7 @@
bcp47-region=JP,
bcp47-script=Hrkt,
script=CJK,
+ scripttag=kana,
language=Japanese,
langtag=JAN,
hyphennames={nohyphenation},
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf
index 4cd3da8a111..bebba66c568 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ka.ldf}[polyglossia: module for ka (Georgian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf
index a506c409abe..e6272065794 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf
@@ -1,5 +1,5 @@
%% gloss-kannada.ldf
-%% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+%% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%%
%% Copyright 2011 Aravinda VK <hallimanearavind AT gmail.com>,
%% Shankar Prasad <prasad.mvs AT gmail.com>,
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf
index 40f6bec3157..5efae8a20f9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-khmer.ldf}[polyglossia: module for Khmer]
\PolyglossiaSetup{khmer}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf
index abb6b48ec85..bb7be9252d3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-km.ldf}[polyglossia: module for km (Khmer)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf
index be4434f4cb2..6c4c6becb75 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Arab.ldf}[polyglossia: module for kmr-Arab (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf
index e79e5a72eec..03d03d49308 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Latn.ldf}[polyglossia: module for kmr-Latn (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf
index 37acda98835..b021a3631dc 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr.ldf}[polyglossia: module for kmr (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf
index b728e57d984..c8f767bb96c 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kn.ldf}[polyglossia: module for kn (Kannada)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf
index ff375bd194b..d6f7d3021ca 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ko.ldf}[polyglossia: module for ko (Korean)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
index eda7b390ea4..016307998c0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf
index 9b480dd8bce..44b08b18f62 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Arab.ldf}[polyglossia: module for ku-Arab (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf
index 135796a38f1..c5a76743f26 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Latn.ldf}[polyglossia: module for ku-Latn (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf
index 483892fe34b..e88641546d2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku.ldf}[polyglossia: module for ku (Kurdish)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf
index 7d9ad27a45b..3ea3b2e227a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Created on September 1, 2019
% Last updated on May 17, 2020
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf
index 9758b214abf..fff12787c26 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kurmanji.ldf}[polyglossia: module for Kurmanji Kurdish]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf
index b358abc65a5..a9c621daec8 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xclassic.ldf}[polyglossia: module for la-xclassic (Latin)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf
index c9f2f06c973..f61bf4d42c8 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xecclesiastic.ldf}[polyglossia: module for la-xecclesiastic (Latin)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf
index 18e9b415366..51bb75fb22a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xmedieval.ldf}[polyglossia: module for la-xmedieval (Latin)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf
index 70b7a7b12f9..fe02ee34b21 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la.ldf}[polyglossia: module for la (Latin)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf
index 296073b178c..dcf9800b094 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde b/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf
index c31682b37a5..07c18951380 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf
@@ -1,6 +1,6 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
-\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/12/11}{v1.66}{polyglossia: module for default language}
+\ProvidesFile{gloss-latex.ldf}[polyglossia: module for default language]
\PolyglossiaSetup{latex}{
bcp47=en-US,
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
index 013e200b001..b9e1ab2e70d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf
index ad9eea40072..92b016909c3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinclassic.ldf}[polyglossia: module for classic Latin]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf
index ae208c8ef8e..ad005d31821 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinecclesiastic.ldf}[polyglossia: module for ecclesiastic Latin]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf
index cec322e7704..866e0593810 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinmedieval.ldf}[polyglossia: module for medieval Latin]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf
index 94c294b184c..df6fb9600d2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latvian.ldf}[polyglossia: module for Latvian]
\PolyglossiaSetup{latvian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
index b9f522a4343..8078511cbc3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Paulius Sladkevičius <komsas@gmail.com>
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf
index bd1820c237e..cef0309ed20 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lo.ldf}[polyglossia: module for lo (Lao)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf
index 3b97eb81dcd..84626ecc840 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lowersorbian.ldf}[polyglossia: module for Lower Sorbian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf
index 5ea1c727eba..05b52433bc9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lsorbian.ldf}[polyglossia: module for Lower Sorbian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf
index 29a4a592951..5a146b54208 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lt.ldf}[polyglossia: module for lt (Lithuanian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf
index 2211a2ef8ea..e0c9d98007a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lv.ldf}[polyglossia: module for lv (Latvian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf
index aa4d81f3cb4..604e1f0620f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-macedonian.ldf}[polyglossia: module for Macedonian]
\PolyglossiaSetup{macedonian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
index fce475a5151..0e887d3c046 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-magyar.ldf}[polyglossia: module for Hungarian (Magyar)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf
index 87bd315b852..0eda13c316e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malay.ldf}[polyglossia: module for Malay]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf
index 01f9cfc0113..4aeeb3cda80 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for Malayalam]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
index 88123b9e046..b35a03083f0 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by Abhijit Navale <abhi_navale@live.in>
% Ordinals (1-100) added by Niranjan Tambe <niranjanvikastambe@gmail.com> on 14th December, 2019
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf
index 1c761a552d3..a5780626ae9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mk.ldf}[polyglossia: module for mk (Macedonian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf
index 07a5b8d82f1..3244e4f512d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ml.ldf}[polyglossia: module for ml (Malayalam)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf
index 8cdbd84eae5..c5be57ff0a4 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mn.ldf}[polyglossia: module for mn (Mongolian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf
index 23c8ed67cc1..66e162bc37f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mongolian.ldf}[polyglossia: module for Mongolian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf
index 7bbfed11fd3..277083c6588 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mr.ldf}[polyglossia: module for mr (Marathi)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf
index 634494f7efd..fb58c806d40 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-naustrian.ldf}[polyglossia: module for Austrian German (current spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf
index a3c7f020d00..b07bf3f9f16 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nb.ldf}[polyglossia: module for nb (Norwegian)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf
index 2d8b7c93d2c..576995acddd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-newzealand.ldf}[polyglossia: module for Newzealand English]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf
index f49beb59c63..0c248366787 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ngerman.ldf}[polyglossia: module for German (current spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf
index 794af76fc53..afd175b85df 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko]
\PolyglossiaSetup{nko}{%
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf
index e4328fe89d1..d3e660a539a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norsk.ldf}[polyglossia: module for Norwegian (Bokmal)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf
index 0e974629062..b197be3bfab 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norwegian.ldf}[polyglossia: module for Norwegian]
\PolyglossiaSetup{norwegian}{
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf
index c6ac5bb3cda..b9ca059e7dc 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nswissgerman.ldf}[polyglossia: module for Swiss German (current spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf
index f6a82a0edf8..bdcc29224b9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nynorsk.ldf}[polyglossia: module for Norwegian (Nynorsk)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf
index e6311614819..ec2c750f6fd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%
%% This is file `gloss-occitan.ldf',
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf
index 3c5a838e081..19b6e6d050d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by ଅଶୋକ ଦାସ୍ <das@pas.rochester.edu> and ଅଭିଷେକ ଜେନା <avisekjena@gmail.com>
% TODO implement Odia calendar
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf
index 1b22965ea9e..1243ed1bab2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-odia.ldf}[polyglossia: module for or (Odia)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf
index e30206d38cd..c086b1187d5 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-pa.ldf}[polyglossia: module for pa (Punjabi)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf
index fc9d46da82d..83d296df7cd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-persian.ldf}[polyglossia: module for Persian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf
index b7b2f914b6e..4cfa40e981f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf
@@ -1,5 +1,5 @@
% !TEX encoding = UTF-8 Unicode
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for Piedmontese]
\makeatletter
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
index 49331943bb5..eee4bedde33 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polish.ldf}[polyglossia: module for Polish]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf
index 8c362d03371..18597716131 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polutonikogreek.ldf}[polyglossia: module for polytonic Greek]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf
index 02e845ef528..c6167d6028e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuges.ldf}[polyglossia: module for Portuguese]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf
index 832fdabb0cf..f5dc2ef8e76 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuguese.ldf}[polyglossia: module for Portuguese]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf
index 309d84972d5..194e3acd142 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by
% Arvinder Singh Kang, <17-11-2022>
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf
index c2eff7a244b..e637a8ac88d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romanian.ldf}[polyglossia: module for Romanian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf
index 45ce486f908..c0b585ac2bc 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romansh.ldf}[polyglossia: module for Romansh]
\makeatletter
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
index a834f9c14d2..388deea5ddd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-russian.ldf}[polyglossia: module for Russian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf
index d7609a713ca..189a526c30b 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sami.ldf}[polyglossia: module for Sami]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf
index 43a350ed6f5..53a4c1079bb 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-samin.ldf}[polyglossia: module for Northern Sami]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
index a580499c90c..eb0b48f77ad 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sanskrit.ldf}[polyglossia: module for Sanskrit]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf
index 2150a030280..944838156a5 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-scottish.ldf}[polyglossia: module for Scottish Gaelic]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
index faa4846c7ea..80f3134e2f6 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbian.ldf}[polyglossia: module for Serbian]
%TODO split into gloss-serbiancyr.ldf and gloss-serbianlat.ldf
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf
index 7f3dc219375..6467057e2e9 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbianc.ldf}[polyglossia: module for Serbian (cyrillic)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf
index 95c3691f30e..f69636a8bb2 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf
index d4e886c13cd..1497bf50948 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovene.ldf}[polyglossia: module for Slovenian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf
index ba42f544e28..3349aa611a3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovenian.ldf}[polyglossia: module for Slovenian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf
index bb1776c54b1..75946bf7076 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sorbian.ldf}[polyglossia: module for Sorbian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf
index 403b84ec51c..0047b23004f 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanish.ldf}[polyglossia: module for Spanish]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf
index 2a834717be3..9f274cb3b3e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanishmx.ldf}[polyglossia: module for Mexican Spanish]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf
index 0160688f9fc..26541a09a19 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swedish.ldf}[polyglossia: module for Swedish]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf
index 0e5753af3f9..18a435e244e 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swissgerman.ldf}[polyglossia: module for Swiss German (old spelling)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf
index d7756dcef2c..dcbaf105503 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf
index f7c2200a16c..bbb4ac622b8 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tamil.ldf}[polyglossia: module for Tamil]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf
index 5b5e11d1027..6bfbf8daa70 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-telugu.ldf}[polyglossia: module for Telugu]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf
index fe71bf1da7f..c553e160e80 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-thai.ldf}[polyglossia: module for Thai]
%% This is partly based on thai-latex for Babel:
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf
index 9fb9c741570..4b3661341cd 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for Tibetan]
%% Copyright 2013 Elie Roux
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf
index 6596b4f6428..a6a10647f61 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkish.ldf}[polyglossia: module for Turkish]
\RequirePackage{hijrical}
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf
index e0faf70b8fd..384337ebfac 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkmen.ldf}[polyglossia: module for Turkmen]
%% Translations provided by Nazar Annagurban <nazartm at gmail dot com>
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf
index bad190d4d38..9f357b18c6a 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ug.ldf}[polyglossia: module for ug (Uyghur)]
% BCP 47 tag for Uyghur
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
index 0a256c3546e..4281449b4a3 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ukrainian.ldf}[polyglossia: module for Ukrainian]
% Strings taken from Babel
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf
index 3f3cbd85653..5f6740394a4 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uppersorbian.ldf}[polyglossia: module for Upper Sorbian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf
index 15d02856121..1ff49b46c7d 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%% Adapted from a file contributed by Kamal Abdali
\ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf
index 755342795a0..aee72dfae53 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-usorbian.ldf}[polyglossia: module for Upper Sorbian]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf
index 0fa7956fb2d..f7b130e9886 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uyghur.ldf}[polyglossia: module for Uyghur]
%% Translations provided by Osman Tursun (Github Account: neouyghur)
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
index 90f9fe3daa9..ab463faeb04 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-vietnamese.ldf}[polyglossia: module for Vietnamese]
%% Strings contributed by Daniel Owens < dhowens . pmbx . net >
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf
index 050d500531c..b2d419536ea 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-welsh.ldf}[polyglossia: module for Welsh]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf
index 480ebc0e7e0..6ab93129dcb 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-CN.ldf}[polyglossia: module for zh-CN (Chinese)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf b/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf
index 16b95d6f341..49741091487 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf
+++ b/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf
@@ -1,4 +1,4 @@
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-TW.ldf}[polyglossia: module for zh-TW (Chinese)]
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
index 495b369c713..af72f6131da 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
@@ -1,6 +1,6 @@
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua
index d24a320ce43..ebadcfddb59 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua
@@ -1,6 +1,6 @@
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua
index a85001b5fe0..c6c1a0ebc61 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua
@@ -1,6 +1,6 @@
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua
index 276590bd015..4e238af1154 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua
@@ -1,6 +1,6 @@
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua
index 351f65ceed8..e4c22934c29 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua
@@ -1,6 +1,6 @@
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua
index fc2806d955c..1d693d3bb06 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua
@@ -1,6 +1,6 @@
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
index bc6e98633c7..45c5e5932b7 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
@@ -1,6 +1,6 @@
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -26,20 +26,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -151,11 +144,6 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
index 353a6442723..2e0ff2d59ec 100644
--- a/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
@@ -1,43 +1,51 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage
- {polyglossia} {2023/12/11} {v1.66}
+ {polyglossia} {2024/02/17} {v2.0}
{Modern multilingual typesetting with XeLaTeX and LuaLaTeX}
+
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}[2008/08/13]
% Will raise error if used with anything else than XeTeX or LuaTeX
\RequirePackage{fontspec}[2010/06/08]% v2.0
\RequirePackage{iftex}
-% Execute code #3 if package #1 has been loaded already, else
-% add to package hook #2
-\cs_new_nopar:Nn \__xpg_at_package_hook:nnn{
- \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}%
-}
-
\prg_generate_conditional_variant:Nnn \clist_if_in:Nn {Ne} {TF, T, F} % check if needed
+
% correct a bug in tracklang
-\__xpg_at_package_hook:nnn{tracklang}{file/tracklang.sty/after}{%
- \@ifpackagelater{tracklang}{2019/08/30}{}{\global\def\AddTrackedLangage{\AddTrackedLanguage}}
+\AddToHook{package/tracklang/after}{%
+ \IfPackageAtLeastTF{tracklang}{2019/08/30}
+ {}
+ {\cs_gset_eq:NN \AddTrackedLangage \AddTrackedLanguage}
}
-%% This is for compatibility with Babel-aware package:
-\def\languageshorthands#1{\relax} % this is for scrlttr2 class
-\def\bbl@cs#1{\csname bbl@#1\endcsname}
+%% The following is for compatibility with Babel-aware package:
+% \languageshorthands is provided by babelsh.def, which is
+% only loaded by some glosses, but some classes presuppose
+% it is there generally. So let's provide a stub:
+\ProvideDocumentCommand \languageshorthands { m } {}
+% These have to be provided at the end of the preamble
\AddToHook{begindocument/before}{
- \let\bbl@set@language\xpg@set@language@aux % for biblatex
- \let\bbl@main@language\xpg@main@language % for biblatex
- \providecommand\texorpdfstring[2]{#1} % dummy command if hyperref is not loaded
+ \cs_gset_eq:NN \bbl@set@language \xpg@set@language@aux % for biblatex
+ \cs_gset_eq:NN \bbl@main@language \xpg@main@language % for biblatex
+ \ProvideDocumentCommand \texorpdfstring { m m } { #1 } % dummy command if hyperref is not loaded
}
-\sys_if_engine_luatex:T{
- \RequirePackage{luatexbase} % already included by fontspec, but needed here
- \RequireLuaModule{polyglossia}
-}
+%% when no patterns are available, we use \l@nohyphenation, assigned to 255
+%% (suggestion by Enrico Gregorio)
+%% \l@nohyphenation is defined in polyglossia.lua
+\sys_if_engine_luatex:TF
+ {
+ \RequirePackage{luatexbase} % already included by fontspec, but needed here
+ \RequireLuaModule{polyglossia}
+ }{
+ \cs_if_free:cT { l@nohyphenation }
+ { \chardef\l@nohyphenation=255 }
+ }
% Which version of XeTeX do we use? What is the boudary class? 4095 or 255
-\@ifundefined{e@alloc@intercharclass@top}
- {\chardef\xpg@boundaryclass=\@cclv}
- {\let\xpg@boundaryclass=\e@alloc@intercharclass@top}
+\cs_if_exist:cTF { e@alloc@intercharclass@top }
+ { \let\xpg@boundaryclass=\e@alloc@intercharclass@top }
+ { \chardef\xpg@boundaryclass=\@cclv }
% Useful for getting list of loaded languages and variants. Like babel's bbl@loaded
% all language loaded
@@ -51,17 +59,26 @@
% list of loaded languages (bcp-47 id)
\clist_new:N \xpg@bcp@loaded
-% counter in latin
-\def\latinalph#1{\expandafter\latin@alph\csname c@#1\endcsname}
-\def\latinAlph#1{\expandafter\latin@Alph\csname c@#1\endcsname}
+% output counter as lower-case latin letter
+\DeclareExpandableDocumentCommand \latinalph { m }
+{
+ \exp_args:Nc \latin@alph {c@#1}
+}
+% output counter as upper-case latin letter
+\DeclareExpandableDocumentCommand \latinAlph { m }
+{
+ \exp_args:Nc \latin@Alph {c@#1}
+}
+%% Internal hooks
% select language hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_selectlanguage: {}
% \disablehyphenation hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_hyphenation: {}
% hook to be executed at begin of document
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument: {
+\cs_new_nopar:Nn \__xpg_at_begin_document:
+{
% save various command
\let\latin@alph\@alph % TODO rename when we have the C locale
\let\latin@Alph\@Alph % TODO rename when we have the C locale
@@ -69,22 +86,25 @@
\let\polyglossia@Clang@@arabic\@arabic
\let\polyglossia@Clang@arabic\arabic
- \xpg@initial@setup
+ \xpg_initial_setup:
% apply \familydefault changes
\xpg@set@familydefault
}
-\AtBeginDocument{
- \polyglossia@AtBeginDocument:
+\AddToHook{begindocument}{
+ \__xpg_at_begin_document:
}
% The following needs to go after any \AtBeginDocument (also of packages
% loaded after \set[main|other]language
-\AfterEndPreamble{
+% Track whether the main language has been set
+\bool_new:N \g_xpg_main_lang_set_bool
+\AddToHook{begindocument/end}{
% now we have the C locale definition: select the language
- \polyglossia@AtBeginDocument@selectlanguage:
+ \__xpg_at_begin_document_selectlanguage:
+ \bool_gset_true:N \g_xpg_main_lang_set_bool
% If hyphenation disabling has been requested in preamble, do it now
- \polyglossia@AtBeginDocument@hyphenation:
+ \__xpg_at_begin_document_hyphenation:
}
%% custom message macros
@@ -117,7 +137,7 @@
\xpg@warning{Illegal~ value~ (#1)~ for~ #2}}
% error out if lang is not loaded
-\cs_new_nopar:Nn \polyglossia@error@iflangnotloaded:n
+\cs_new_nopar:Nn \xpg_error_if_lang_not_loaded:n
{
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
@@ -137,7 +157,16 @@
}
\msg_redirect_name:nnn { polyglossia } { languagenolongerloaded } { warning }
-%
+\msg_new:nnn { polyglossia } { unknownlocalnumeral }
+{
+ Unknown~ key~ "#1"~ in~ \string\localnumeral.
+}
+
+\msg_new:nnn { polyglossia } { localnumeralemptyvalue }
+{
+ Keys~ of~ \string\localnumeral~ must~ have~ value.
+}
+
%% use macro if defined, else warn that it is not
\cs_new_nopar:Nn \__xpg_use_or_warn:N
@@ -155,12 +184,12 @@
\def\@@ensure@maindir#1{\ifcsundef{@ensure@maindir}{#1}{\@ensure@maindir{#1}}}
%% Used by the language definitions files for right-to-left languages
-\def\RequireBidi
- {
+\NewDocumentCommand \RequireBidi {}
+{
\sys_if_engine_luatex:TF
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{luabidi}\fi}
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{bidi}\fi}
- }
+}
% if #1 is LR run #2 else #3
\prg_set_conditional:Nnn \__xpg_if_LR_str:n {p, T, F, TF}
@@ -179,20 +208,23 @@
% (lua)bidi commands to change directionality for paragraphs
% and inline text.
% overwritten with correct package
-\cs_new_nopar:Nn{\polyglossia@setpardirection:n}{
+\cs_new_nopar:Nn \__xpg_set_par_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\cs_new_nopar:Nn{\polyglossia@settextdirection:n}{
+\cs_new_nopar:Nn \__xpg_set_text_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\__xpg_at_package_hook:nnn{bidi}{package/bidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/bidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -201,7 +233,8 @@
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -211,8 +244,9 @@
}
}
}
-\__xpg_at_package_hook:nnn{luabidi}{package/luabidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/luabidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -221,7 +255,8 @@
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -256,18 +291,17 @@
%% TODO: localalph = {<alph_csname>,<Alph_csname>}
%% TODO: localnumeral = <csname>
%% or even better localdigits = {0123456789} for fully automatic setup
-\newif\if@xpg@language@really@defined@
\newcommand*\PolyglossiaSetup[2]{
- \polyglossia@keys_define_lang:n{#1}
+ \__xpg_keys_define_lang:n{#1}
\keys_set:nn { polyglossia / #1 } { #2 }
- \polyglossia_setup_hyphen:n {#1}
+ \__xpg_setup_hyphen:n {#1}
%define booleans etoolbox style and set defaults
%% TODO ? \providetoggle{#1@setup@done}%
% we initialize these so that we can use \gappto below
\csgdef{init@extras@#1}{}
\csgdef{init@noextras@#1}{} % we don't use this yet: remove?
% here we do the fontsetup:
- \xpg__auto_setupfont:n { #1 }
+ \__xpg_auto_setupfont:n { #1 }
%% TODO? \toggletrue{#1@setup@done}
% register base alias
\xpg_language_alias { #1 } { #1 }
@@ -286,15 +320,16 @@
% setup hyphennames from a str list of hyphen
-\cs_new:Nn \polyglossia_setup_hyphen:n {
- \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \polyglossia@langsetup {#1 / hyphennames}}
+\cs_new:Nn \__xpg_setup_hyphen:n
+{
+ \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphennames}}
\providebool{havehyphen}
\boolfalse{havehyphen}
% for each hyphen in the set until we find one that works
\clist_map_inline:Nn \l_tmpa_clist {
\ifbool{havehyphen}{}{
% check if language hyphenname is defined
- \__xpg_check_if_exist_l@:NF{#1}{
+ \__xpg_check_if_exist_l@:nF{#1}{
% if not, first consider nohyphenation
\str_if_eq:nnTF{##1}{nohyphenation}
{
@@ -331,7 +366,7 @@
}
% setup hyphenmins
\clist_set:Ne \l_tmpa_clist
- { \prop_item:Nn \polyglossia@langsetup {#1 / hyphenmins} }
+ { \prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphenmins} }
\cs_if_eq:cNF {l@#1} \l@nohyphenation
{
\use:x
@@ -344,8 +379,9 @@
}
\newcommand*\polyglossia@setup@language@patterns[1]{
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\the\csname l@#1\endcsname}
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\the\csname l@#1\endcsname}
}{
% first, test if \l@#1 exists
% without that, \csname l@#1\endcsname will be defined as \relax
@@ -372,15 +408,16 @@
}
}
-\prop_new:N \polyglossia@langsetup
+\prop_new:N \g_xpg_langsetup_prop
-\cs_new_protected:Npn \polyglossia@keys_define_lang:n #1 {
+\cs_new_protected:Npn \__xpg_keys_define_lang:n #1
+{
\keys_define:nn {polyglossia}{
% the script font
#1 / script
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/script}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/lcscript}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/script}{##1}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/lcscript}
{\tl_if_empty:nF{##1}{\str_lowercase:n{##1}}}
},
#1 / script
@@ -389,84 +426,84 @@
.initial:n = latin,
% the opentype script tag
#1 / scripttag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/scripttag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/scripttag}{##1}},
#1 / scripttag
.default:n = {},
#1 / scripttag
.initial:n = {},
% the language full name
#1 / language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/language}{##1}},
#1 / language
.value_required:n = true,
#1 / language
.initial:x = {\str_uppercase:n#1},
% the language tag
#1 / langtag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/langtag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/langtag}{##1}},
#1 / langtag
.value_required:n = true,
#1 / langtag
.initial:n = {},
% the BCP-47 tag
#1 / bcp47
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47}{##1}},
#1 / bcp47
.value_required:n = true,
#1 / bcp47
.initial:n = {},
% the BCP-47 language tag
#1 / bcp47-language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-language}{##1}},
#1 / bcp47-language
.value_required:n = true,
#1 / bcp47-language
.initial:n = {},
% the BCP-47 region tag
#1 / bcp47-region
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-region}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-region}{##1}},
#1 / bcp47-region
.value_required:n = false,
#1 / bcp47-region
.initial:n = {},
% the BCP-47 script tag
#1 / bcp47-script
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-script}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-script}{##1}},
#1 / bcp47-script
.value_required:n = true,
#1 / bcp47-script
.initial:n = {},
% the BCP-47 variant tag
#1 / bcp47-variant
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-variant}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-variant}{##1}},
#1 / bcp47-variant
.value_required:n = false,
#1 / bcp47-variant
.initial:n = {},
% the BCP-47 extension-t tag
#1 / bcp47-extension-t
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-t}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-t}{##1}},
#1 / bcp47-extension-t
.value_required:n = false,
#1 / bcp47-extension-t
.initial:n = {},
% the BCP-47 extension-u tag
#1 / bcp47-extension-u
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-u}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-u}{##1}},
#1 / bcp47-extension-u
.value_required:n = false,
#1 / bcp47-extension-u
.initial:n = {},
% the BCP-47 extension-x tag
#1 / bcp47-extension-x
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-x}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-x}{##1}},
#1 / bcp47-extension-x
.value_required:n = false,
#1 / bcp47-extension-x
.initial:n = {},
% the BCP-47 casing alias
#1 / bcp47-casing
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-casing}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-casing}{##1}},
#1 / bcp47-casing
.value_required:n = false,
#1 / bcp47-casing
@@ -475,7 +512,7 @@
#1 / hyphennames
.code:n = {
\clist_set:Nn{\l_tmpa_clist}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
},
#1 / hyphennames
.value_required:n = true,
@@ -488,7 +525,7 @@
{LR}{}
{RL}{\RequireBidi}
}
- {\prop_gput:Nnn{\polyglossia@langsetup}{#1/direction}{##1}}
+ {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/direction}{##1}}
{\xpg@error{Unknown~ direction~ "##1"~ for~ language~ "#1"}}
},
#1 / direction
@@ -502,7 +539,7 @@
\int_compare:nNnF { \clist_count:n {##1} } = {2}
{\xpg@error{hypenmins~should~be~a~list~of~two~entries,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/hyphenmins} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/hyphenmins} {##1}
},
#1 / hyphenmins
.value_required:n = true,
@@ -515,7 +552,7 @@
\int_compare:nNnF { \clist_count:n {##1} } = {1}
{\xpg@error{totalhyphenhypenmin~should~be~a~single~entry,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/totalhyphenmin} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/totalhyphenmin} {##1}
},
#1 / totalhyphenmin
.value_required:n = false,
@@ -534,35 +571,35 @@
% environment name
#1 / envname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/envname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/envname}{##1}
},
#1/ envname.value_required:n = true,
#1/ envname.initial:n = {#1},
% babel name
#1 / babelname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/babelname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/babelname}{##1}
},
#1/ babelname.value_required:n = true,
#1/ babelname.initial:n = {#1},
% default numerals
#1 / localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/localnumeral}{##1}
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / localnumeral.value_required:n = true,
#1 / localnumeral.initial:n = {polyglossia@C@localnumeral},
% uppercased
#1 / Localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / Localnumeral.value_required:n = true,
#1 / Localnumeral.initial:n = {polyglossia@C@localnumeral},
% environment define command (by default create the environment)
#1 / DefineCommandsCmd
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/DefineCommandsCmd}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/DefineCommandsCmd}{##1}},
#1 / DefineCommandsCmd
.value_required:n = true,
#1 / DefineCommandsCmd
@@ -575,29 +612,32 @@
\polyglossia@Clang@@arabic{#2}
}
-\tl_new:N \l__xpg_localnumeral_tl
-\bool_new:N \l__xpg_localnumeral_bool
-
-\keys_define:nn { polyglossia / localnumeral }
+\cs_new:Npn \__xpg_localnumeral_parse:nn #1 #2
{
- lang .choice:,
- lang / main .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \mainlanguagename } ,
- lang / local .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \languagename }
- \bool_set_true:N \l__xpg_localnumeral_bool ,
- lang / unknown .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { #1 } ,
+ \str_if_eq:eeF { #1 } { lang } { \msg_error:nnn { polyglossia } { unknownlocalnumeral } { #1 } }
+ \exp_args:Ne \str_case:nnF { #2 }
+ {
+ { local } { }
+ { main } { \foreignlanguage { \mainlanguagename } }
+ }
+ { \foreignlanguage { #2 } }
}
\cs_new:Npn \__xpg_localnumeral:nnn #1 #2 #3
{
- \group_begin:
- \keys_set:ne { polyglossia / localnumeral } { #2 }
- \bool_if:NF \l__xpg_localnumeral_bool { \foreignlanguage { \l__xpg_localnumeral_tl } }
- { \use:c { \prop_item:Ne \polyglossia@langsetup
- { \l__xpg_localnumeral_tl / #3 } } { } { #1 } }
- \group_end:
+ \use:e
+ {
+ \keyval_parse:nnn
+ { \msg_error:nnn { polyglossia } { localnumeralemptyvalue } }
+ {
+ \__xpg_localnumeral_parse:nn
+ } { #2 }
+ }
+ { \use:c { \prop_item:Ne \g_xpg_langsetup_prop
+ { \languagename / #3 } } { } { #1 } }
}
-
-\NewDocumentCommand \localnumeral { s ={ lang } O{ local } m }
+
+\NewExpandableDocumentCommand \localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -608,7 +648,7 @@
}
}
-\NewDocumentCommand \Localnumeral { s ={ lang } O{ local } m }
+\NewExpandableDocumentCommand \Localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -619,86 +659,90 @@
}
}
-\cs_new_nopar:Npn \xpg__french_spacing:n #1
+\cs_new_nopar:Npn \__xpg_french_spacing:n #1
{
\bool_if:cTF { g__xpg_#1_fs_bool }
{ \frenchspacing } { \nonfrenchspacing }
}
-\cs_new_nopar:Npn \xpg__indent_first:n #1
+\cs_new_nopar:Npn \__xpg_indent_first:n #1
{
\bool_if:cTF { g__xpg_#1_if_bool }
{ \french@indent } { \nofrench@indent }
}
-\cs_new:Nn{\polyglossia@lang@setpardirection:n}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_par_direction:n
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@setpardirection:n{\l_tmpa_tl}
+ \__xpg_set_par_direction:n{\l_tmpa_tl}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\cs_new:Nn{\polyglossia@lang@settextdirection:nn}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_text_direction:nn
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@settextdirection:n{\l_tmpa_tl}{#2}
+ \__xpg_set_text_direction:n{\l_tmpa_tl}{#2}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\def\xpg@lastlanguage{0}
+\tl_new:N \g__xpg_lastlanguage_tl
+\tl_set:Nn \g__xpg_lastlanguage_tl { 0 }
-\providebool{xpg@hyphenation@disabled}
-\boolfalse{xpg@hyphenation@disabled}
+% Track whether hyphenation is disabled
+\bool_new:N \g__xpg_hyphenation_disabled_bool
-\def\xpg@disablehyphenation{
- \ifx\@onlypreamble\@notprerr
- \xpg@@disablehyphenation
- \else
- % if this is used in the preamble, we have to postpone
- % the execution until the main language has been set (#125).
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {
- \xpg@@disablehyphenation
+\DeclareDocumentCommand \disablehyphenation {}
+{
+ \bool_if:NTF \g_xpg_main_lang_set_bool
+ {
+ \__xpg_disable_hyphenation:
+ }
+ {
+ % we have to postpone the execution until the main language
+ % has been set (#125).
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_hyphenation: {
+ \__xpg_disable_hyphenation:
}
- \fi
+ }
}
-\def\xpg@@disablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{}{
- \booltrue{xpg@hyphenation@disabled}
- \xdef\xpg@lastlanguage{\the\language}
+\cs_new:Nn \__xpg_disable_hyphenation:
+{
+ \bool_if:NF \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_true:N \g__xpg_hyphenation_disabled_bool
+ \tl_gset:Ne \g__xpg_lastlanguage_tl { \the\language }
% We do not call \xpg@set@hyphenation@patterns here to avoid a warning message.
% "nohyphenation" is not listed in language.dat.lua.
\language=\l@nohyphenation
}
}
-\def\xpg@enablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{
- \boolfalse{xpg@hyphenation@disabled}
- \language=\csname xpg@lastlanguage\endcsname
- }{}%
+\DeclareDocumentCommand \enablehyphenation {}
+{
+ \bool_if:NT \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_false:N \g__xpg_hyphenation_disabled_bool
+ \language=\tl_use:N{\g__xpg_lastlanguage_tl}
+ }%
}
-\let\disablehyphenation\xpg@disablehyphenation
-\let\enablehyphenation\xpg@enablehyphenation
-
-%\def\xpg@fontsetup#1{\xpg@csifdef@warn{xpg@fontsetup@#1}}
-%\def\xpg@fontsetup@none#1{\csgdef{#1@font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg@fontsetup@custom#1{\csuse{#1@font}}
-
-\cs_new:Npn \xpg__auto_setupfont:n #1 {
+\cs_new:Npn \__xpg_auto_setupfont:n #1
+{
\bool_if:cTF { g__xpg_#1_fontsetup_bool }
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{\xpg@fontsetup@latin{#1}}
{\xpg@fontsetup@nonlatin{#1}}
}
@@ -710,11 +754,12 @@
% add fontfeature Language=#2 to langtag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@language:nn {
+\cs_new:Nn \__xpg_add_font_feature_language:nn
+{
\bool_if:nTF{\tl_if_empty_p:n{#1} || \tl_if_empty_p:n{#2}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font~
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font~
(Language="#2"~ to~ langtag~ "#1")}
}
{
@@ -738,67 +783,82 @@
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
% add fontfeature Script=#2 to scripttag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@script:nnn {
+\cs_new:Nn \__xpg_add_font_feature_script:nnn
+{
\bool_if:nTF{\tl_if_empty_p:n{#2} || \tl_if_empty_p:n{#3}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font
(Script="#3"~ to~ scripttag~ "#2")}
}
{
\fontspec_if_script:nTF{#2}
{\addfontfeature{Script=#3}}
{
- \tl_set:Nn \l_ffamily_tl {}
- \tl_set:Nn \l_ffamilysh_tl { #1 }
+ \tl_set:Nn \xpg_ffamily_tl {}
+ \tl_set:Nn \xpg_ffamilysh_tl { #1 }
\str_if_eq:nnT { #1 } { rm }
{
- \tl_set:Nn \l_ffamily_tl { roman }
- \tl_set:Nn \l_ffamilysh_tl {}
+ \tl_set:Nn \xpg_ffamily_tl { roman }
+ \tl_set:Nn \xpg_ffamilysh_tl {}
}
\str_if_eq:nnT { #1 } { sf }
{
- \tl_set:Nn \l_ffamily_tl { sans~ serif }
+ \tl_set:Nn \xpg_ffamily_tl { sans~ serif }
}
\str_if_eq:nnT { #1 } { tt }
{
- \tl_set:Nn \l_ffamily_tl { monospace }
+ \tl_set:Nn \xpg_ffamily_tl { monospace }
}
+ % Strip font family name for error message
+ % Courtesy of egreg, https://tex.stackexchange.com/a/613996
+ \str_set:Nx \xpg_fname_str { \fontname\font }
+ % Remove all after :
+ \regex_replace_once:nnN { \:.* } { } \xpg_fname_str
+ % ... and all after /
+ \regex_replace_once:nnN { /.* } { } \xpg_fname_str
+ % ... and brackets
+ \regex_replace_once:nnN { \[ } { } \xpg_fname_str
+ \regex_replace_once:nnN { \] } { } \xpg_fname_str
+ % ... and extensions
+ \regex_replace_once:nnN { \.[^\.]* \Z } { } \xpg_fname_str
+ % ... and, finally, quotation marks
+ \regex_replace_once:nnN { " } { } \xpg_fname_str
\xpg@error{
- The~ current~ latin ~ \l_ffamily_tl\space font~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
- Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n#3}font\l_ffamilysh_tl\endcsname~
+ The~ current~ main ~ \xpg_ffamily_tl\space font,~ \xpg_fname_str,~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
+ Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n{#3}}font\xpg_ffamilysh_tl\endcsname~
with~ \string\newfontfamily\space command
}
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
\def\xpg@fontsetup@latin#1{
\begingroup
\csgdef{#1@font@rm}{
\cs_if_exist_use:cF{#1font}{
\rmfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@sf}{
\cs_if_exist_use:cF{#1fontsf}{
\sffamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@tt}{
\cs_if_exist_use:cF{#1fonttt}{
\ttfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\endgroup
@@ -810,9 +870,9 @@
\cs_if_exist_use:cF{#1font}
{
\providetoggle{#1@use@script@font}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\rmfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} font}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} font}
{
\toggletrue{#1@use@script@font}
}
@@ -821,12 +881,12 @@
}
}
\iftoggle{#1@use@script@font}{}{
- \polyglossia@addfontfeature@script:nxx{rm}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{rm}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{rm}
}%
@@ -834,9 +894,9 @@
\cs_if_exist_use:cF{#1fontsf}
{
\providetoggle{#1@use@script@fontsf}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\sffamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fontsf}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fontsf}
{
\toggletrue{#1@use@script@fontsf}
}
@@ -845,12 +905,12 @@
}
}
\iftoggle{#1@use@script@fontsf}{}{
- \polyglossia@addfontfeature@script:nxx{sf}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{sf}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{sf}
}%
@@ -858,9 +918,9 @@
\cs_if_exist_use:cF{#1fonttt}
{
\providetoggle{#1@use@script@fonttt}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\ttfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fonttt}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fonttt}
{
\toggletrue{#1@use@script@fonttt}
}
@@ -869,12 +929,12 @@
}
}
\iftoggle{#1@use@script@fonttt}{}{
- \polyglossia@addfontfeature@script:nxx{tt}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{tt}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
\def\familytype{tt}
}
@@ -885,71 +945,42 @@
%% ensure localization of \markright and \markboth commands
%%% THIS IS NOW DISABLED BY DEFAULT
-\cs_new_nopar:Nn {\polyglossia@local@marks:n} {}
-\cs_new_nopar:Nn {\polyglossia@enable@local@marks:}
-{
- \xpg@info{Option:~ localmarks}
- \cs_gset_nopar:Nn \polyglossia@local@marks:n
- {%
- \def\xpg@tmp@lang{##1}
- \DeclareRobustCommand\markboth[2]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \unrestored@protected@xdef\@themark
- {%
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
- }%
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }%
- \DeclareRobustCommand\markright[1]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }
-% This part seems wrong (see #396 for explanation). Remove after a while.
-% \def\@markright####1####2####3{%
-% \@temptokena{\protect\@@ensure@maindir{####1}}%
-% \unrestored@protected@xdef\@themark{%
-% {\the\@temptokena}%
-% {\protect\@@ensure@maindir{####3}}%
-% }%
-% }%
- }%
+\cs_new_nopar:Nn \__xpg_local_marks:n { }
+\cs_new_nopar:Nn \__xpg_enable_local_marks:
+{
+ \xpg@info{Option:~ localmarks}
+ \cs_gset_nopar:Nn \__xpg_local_marks:n
+ {
+ \def\xpg@tmp@lang{##1}
+ \DeclareRobustCommand\markboth[2]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \unrestored@protected@xdef\@themark
+ {
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
+ }
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ \DeclareRobustCommand\markright[1]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ }
}
-
-% Easy way out – Arthur, 2012-08-01
-\ifcsdef{newXeTeXintercharclass}{
-% to reset the intercharclass of a character to "normal"
-\newXeTeXintercharclass\xpg@normalclass %TODO
-}{}
-
-%% when no patterns are available, we use \l@nohyphenation, assigned to 255
-%% (suggestion by Enrico Gregorio)
-\sys_if_engine_luatex:TF
- {
- \@ifundefined{l@nohyphenation}
- {\chardef\l@nohyphenation=\directlua{
- tex.sprint(polyglossia.newloader_loaded_languages.nohyphenation)}\relax
- }
- {}
- }
- {
- \@ifundefined{l@nohyphenation}{\chardef\l@nohyphenation=255 }{}
- }
-
%we call this macro when a gloss file is not found for a given language
\def\xpg@nogloss#1{
- \xpg@warning{Neither~ file~ gloss-#1.ldf~ nor file~ gloss-#1.lde~ exists!\MessageBreak
+ \xpg@warning{File~ gloss-#1.ldf~ do~ not~ exists!\MessageBreak
I~ will~ nevertheless~ try~ to~ use~ hyphenation~ patterns~ for~ #1.}
\PolyglossiaSetup{#1}{hyphenmins={2,3},hyphennames={#1},fontsetup=true}
% the above amounts to:
@@ -968,96 +999,39 @@
\catcode`\@=\xpg@saved@at@catcode
}
-%% Load a lde file
-\cs_new_nopar:Nn \__xpg_gloss_ext: {lde}
-\cs_new_nopar:Ne \__xpg_saved_@pkgextension: {\@pkgextension}
-
-\msg_new:nnn { polyglossia } { directloadgloss }
-{
- You~ should~ not~ load~ directly~ the~ gloss~ file. ~
- You~ must~ use~ `\string\setotherlanguage\{#1\}' or `\string\setmainlanguage\{#1\}'.
-}
-\msg_redirect_name:nnn { polyglossia } { directloadgloss } { critical }
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension_error}{m m m m}
-{
- \msg_critical:nn { polyglossia } { directloadgloss }
-}
-% ProvideExplPackage but for language file
-\cs_new_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-\cs_new_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension}{m m m m}
-{
- \__xpg_saved_ProvidesExplPackage{#1}{#2}{#3}{#4}
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-}
-
-
-% wrapper for loading a gle file
-\NewDocumentCommand{\RequireLanguageDefinitionExtension}{O{} m}
-{
- \cs_gset_eq:NN \__xpg_saved_@pkgextension: \@pkgextension
- \cs_gset_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
- \cs_gset_eq:NN \@pkgextension \__xpg_gloss_ext:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension
- \RequirePackage[#1]{gloss-#2}
- % be paranoiac restore
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \__xpg_ProvidesLanguageDefinitionExtension_error \ProvideLanguageDefinitionExtension
-}
-
% try to load a language file
-\cs_new:Nn \polyglossia_load_lang_definition:nn {
- \file_if_exist:nTF{gloss-#2.lde}
- {
- \RequireLanguageDefinitionExtension[#1]{#2}
- \setkeys{#2}{#1}
- }
- {
- \file_if_exist:nTF{gloss-#2.ldf}
- {
- % Temporarily force catcode of ~ to 13 since babelsh.def
- % requires it. This is needed particularly with LaTeX3
- % packages which force \ExplSyntaxOn (#425)
- \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
- \catcode 126 = 13
- \xpg@input{gloss-#2.ldf}
- \setkeys{#2}{#1}
- % restore former ~ catcode
- \xpg@restore@tilde@catcode
- }
- {
- \xpg@nogloss{#2}
- }
- }
-}
-\cs_generate_variant:Nn \polyglossia_load_lang_definition:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_new:Nn \__xpg_load_lang_definition:nn {
+ \file_if_exist:nTF{gloss-#2.ldf}
+ {
+ % Temporarily force catcode of ~ to 13 since babelsh.def
+ % requires it. This is needed particularly with LaTeX3
+ % packages which force \ExplSyntaxOn (#425)
+ \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
+ \catcode 126 = 13
+ \xpg@input{gloss-#2.ldf}
+ \setkeys{#2}{#1}
+ % restore former ~ catcode
+ \xpg@restore@tilde@catcode
+ }
+ {
+ \xpg@nogloss{#2}
+ }
+}
+\cs_generate_variant:Nn \__xpg_load_lang_definition:nn { ee }
% load a master language from an alias file
\newcommand*\xpg@load@master@language[1] {
- \file_if_exist:nTF{gloss-#1.lde}
- {
- \RequireLanguageDefinitionExtension{#1}
- }
- {
- \xpg@input{gloss-#1.ldf}
- }
+ \xpg@input{gloss-#1.ldf}
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1} {
- \use:c{\prop_item:Nn{\polyglossia@langsetup}
+ \use:c{\prop_item:Nn{\g_xpg_langsetup_prop}
{#1/DefineCommandsCmd}}
{#1}
}
}
- \polyglossia@register@language:nn{}{#1}
+ \__xpg_register_language:nn{}{#1}
\seq_gput_right:Nn \__xpg_langs_loaded {#1}
}
@@ -1068,14 +1042,14 @@
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1}
{
\exp_args:Ne
- \newenvironment {\prop_item:Nn{\polyglossia@langsetup}{#1/envname}} [1] []
+ \NewDocumentEnvironment {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/envname}} { O{} }
{
- \begin{otherlanguage}[##1]{#1}
+ \otherlanguage [ ##1 ] { #1 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
- \exp_args:Nc \newcommand {text#1} [2][]
+ \exp_args:Nc \NewDocumentCommand {text#1} { O{} m }
{
\__xpg_textlanguage:een{##1}{#1}{##2}
}
@@ -1096,7 +1070,7 @@
% target to self fall back to language table
\str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
{
- \prop_item:Nn{\polyglossia@langsetup} {#1/#2}
+ \prop_item:Nn{\g_xpg_langsetup_prop} {#1/#2}
}
% load alias by recursion
{
@@ -1130,15 +1104,10 @@
% get base language
-\cs_new:Nn \xpg_alias_base_lang:n {
- \str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
+\cs_new:Nn \xpg_alias_base_lang:n
{
- #1
+ \prop_item:Ne \__xpg_alias {#1/target}
}
- {
- \xpg_alias_base_lang:n { \prop_item:Ne \__xpg_alias {#1/target} }
- }
-}
\cs_generate_variant:Nn \xpg_alias_base_lang:n {e}
\keys_define:nn { polyglossia/alias }
@@ -1200,10 +1169,10 @@
}
\DeclareDocumentEnvironment { #4 } { }
{
- \begin{otherlanguage}{#4}
+ \otherlanguage { #4 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
}
\tl_clear_new:N \__xpg_alias_option_tl
@@ -1219,19 +1188,20 @@
{#4}
}
-\cs_new:Nn \polyglossia@register@language:nn {
+\cs_new:Nn \__xpg_register_language:nn
+{
\clist_if_in:NeF \xpg@loaded {#2}{
\clist_gput_right:Ne \xpg@loaded {#2}
}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
% register babelname
- \prop_get:NeN \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
\clist_if_in:NeF \xpg@bloaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bloaded {\l_tmpa_tl}
}
% register BCP-47 ID
- \prop_get:NeN \polyglossia@langsetup {#2/bcp47} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/bcp47} \l_tmpa_tl
\clist_if_in:NeF \xpg@bcp@loaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bcp@loaded {\l_tmpa_tl}
}
@@ -1248,21 +1218,21 @@
}
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:nn{#1}{#2}
+ \__xpg_load_lang_definition:nn{#1}{#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
- \exp_args:Nee \polyglossia@set@default@language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \exp_args:Nee \__xpg_set_default_language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
-\cs_new:Nn \polyglossia@set@default@language:nn
+\cs_new:Nn \__xpg_set_default_language:nn
{
\gdef\xpg@main@language{#2}
\tl_if_blank:nTF {#1}
@@ -1271,16 +1241,16 @@
}
{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@main@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
}
\csgdef{#2@gvar}{\mainlanguagevariant}
%% The following settings are for the default language and script
% this tells bidi.sty or luabidi.sty that the document is RTL
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{
\__xpg_setRTLmain:
}
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_selectlanguage: {
\selectbackgroundlanguage{#2}
\selectlanguage[#1]{#2}%
}
@@ -1289,24 +1259,24 @@
\cs_gset_nopar:Npn \mainlanguagename {#2}
% Store babelname of main language (for external packages such as biblatex)
- \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \polyglossia@langsetup {#2/babelname} }
+ \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \g_xpg_langsetup_prop {#2/babelname} }
% Store babelname of current language (for external packages such as biblatex)
\cs_gset_eq:NN \babelname \mainbabelname
\cs_gset_eq:cc{#2@gbabelname}{babelname}%
% Store BCP-47 ID and subtags of main language:
% 1. store main.* (sub)tags
- \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47 } }
- \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-language } }
- \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-region } }
- \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-script } }
- \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-variant } }
- \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47extension-t } }
- \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-u } }
- \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-x } }
+ \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47 } }
+ \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-language } }
+ \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-region } }
+ \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-script } }
+ \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-variant } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47extension-t } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-u } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
- { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \polyglossia@langsetup {#2 / bcp47-language} } }
+ { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \g_xpg_langsetup_prop {#2 / bcp47-language} } }
{ \cs_gset_nopar:cpe {bcp47.main.casing} { \tmpcasing } }
% 2. Store lang (sub)tags
\cs_gset_eq:cc {bcp47.tag} {bcp47.main.tag}
@@ -1328,11 +1298,6 @@
\cs_gset_eq:cc{#2@g.bcp47.extension.u}{bcp47.extension.u}
\cs_gset_eq:cc{#2@g.bcp47.extension.x}{bcp47.extension.x}
\cs_gset_eq:cc{#2@g.bcp47.casing}{bcp47.casing}
- % Set luatex main language
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.set_default_language('\luaescapestring{\string#2}')}%
- }
}
\DeclareCommandCopy \setmainlanguage \setdefaultlanguage
@@ -1417,14 +1382,14 @@
\ifcsundef{#2@gvar}{\def\languagevariant{}}{\def\languagevariant{\csuse{#2@gvar}}}
}{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
- \cs_set_eq:cc{#2@gvar}{languagevariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \cs_set_eq:cc{#2@var}{languagevariant}
}%
}
\newcommand*{\resetdefaultlanguage}[2][]{
- \polyglossia@reset@default@language:nn
+ \__xpg_reset_default_language:nn
{\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
@@ -1435,56 +1400,56 @@
\tl_if_blank:nTF {#1}{
% tag (e.g., en-US)
\ifcsundef{#2@g.bcp47.tag}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
}{
\csedef{bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
% language (e.g., en)
\ifcsundef{#2@g.bcp47.language}{
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
}{
\csedef{bcp47.language}{\csuse{#2@g.bcp47.language}}
}
% region (e.g., US)
\ifcsundef{#2@g.bcp47.region}{%
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
}{
\csedef{bcp47.region}{\csuse{#2@g.bcp47.region}}%
}
% script (e.g., Latn)
\ifcsundef{#2@g.bcp47.script}{
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
}{
\csedef{bcp47.script}{\csuse{#2@g.bcp47.script}}
}
% variant (e.g., 1996)
\ifcsundef{#2@g.bcp47.variant}{
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
}{
\csedef{bcp47.variant}{\csuse{#2@g.bcp47.variant}}
}
% extension.t (tranformation)
\ifcsundef{#2@g.bcp47.extension.t}{%
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
}{
\csedef{bcp47.extension.t}{\csuse{#2@g.bcp47.extension.t}}
}
% extension.u (additional locale information)
\ifcsundef{#2@g.bcp47.extension.u}{%
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
}{
\csedef{bcp47.extension.u}{\csuse{#2@g.bcp47.extension.u}}
}
% extension.x (private use area)
\ifcsundef{#2@g.bcp47.extension.x}{
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
}{
\csedef{bcp47.extension.x}{\csuse{#2@g.bcp47.extension.x}}
}
% casing
\ifcsundef{#2@g.bcp47.casing}{
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
@@ -1492,25 +1457,25 @@
\csedef{bcp47.casing}{\csuse{#2@g.bcp47.casing}}
}
}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
}
}
-\cs_new:Nn \polyglossia@reset@default@language:nn
+\cs_new:Nn \__xpg_reset_default_language:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
% disable globalnumbers of previously defined default language
\csuse{no\xpg@main@language @globalnumbers}
\csuse{noextras@\xpg@main@language}%
@@ -1519,7 +1484,7 @@
\cs_if_exist_use:c{noextras@bbl@\mainbabelname}%
\csuse{init@noextras@\xpg@main@language}%
\polyglossia@set@language@name[#1]{#2}%
- \__xpg_if_LR_str:eF{\prop_item:Ne{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Ne{\g_xpg_langsetup_prop}{#2/direction}}
{
\@rlmaintrue\@rl@footnotetrue
}
@@ -1528,23 +1493,26 @@
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{%
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
+ % Store variant
+ \tl_if_blank:nTF {#1}
+ {
+ \cs_gset_nopar:Npn \mainlanguagevariant {}
+ }
+ {
+ % Register the language options
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
+ }
+ \csgdef{#2@gvar}{\mainlanguagevariant}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
}
-\cs_generate_variant:Nn \polyglossia@reset@default@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
% This saves the normalfont for the latin script since we may change normalfont in other scripts
\let\normalfontlatin=\normalfont
@@ -1656,56 +1624,51 @@
\@afterindentfalse
}
-\cs_new_nopar:Npn \selectbackgroundlanguage #1
-{%
- \polyglossia@select@background@language:n {\xpg_alias_base_lang:n{#1}}
+\DeclareDocumentCommand \selectbackgroundlanguage { m }
+{
+ \__xpg_select_background_language:n {\xpg_alias_base_lang:n{#1}}
}
-\cs_new:Nn \polyglossia@select@background@language:n
+
+\cs_new:Nn \__xpg_select_background_language:n
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{}
{\xpg@set@normalfont{#1}}
\csuse{#1@globalnumbers}
}
-\cs_generate_variant:Nn \polyglossia@select@background@language:n {e}
+\cs_generate_variant:Nn \__xpg_select_background_language:n {e}
% Declare secondary language #2 with language options #1
\DeclareDocumentCommand \setotherlanguage { O{} m }
{
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:ee {#1} {#2}
+ \__xpg_load_lang_definition:ee {#1} {#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
- \polyglossia@set@other@language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \__xpg_set_otherlanguage:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
}
-\cs_new:Nn \polyglossia@set@other@language:nn
+\cs_new:Nn \__xpg_set_otherlanguage:nn
{
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% If a variant is set, store it.
\gdef\otherlanguagevariant{}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@other@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@other@langvariant}
\csgdef{#2@gvar}{\otherlanguagevariant}
- \prop_get:NeNT \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeNT \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
{ \xdef\otherlanguagebabelname{\l_tmpa_tl} }
\cs_gset_eq:cc{#2@gbabelname}{otherlanguagebabelname}
}
-\cs_generate_variant:Nn \polyglossia@set@other@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_generate_variant:Nn \__xpg_set_otherlanguage:nn { ee }
% Store main language variant for external packages
@@ -1718,17 +1681,20 @@
\clist_map_function:eN { #1 } \setotherlanguage
}
-\def\common@language{% FIXME is this really needed???
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\z@}
+\cs_set:Nn \xpg_common_language:
+{% FIXME is this really needed???
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\z@}
}{
\language=\z@
}
\lefthyphenmin=\tw@
\righthyphenmin=\thr@@}
-\def\xpg@initial@setup{
- \common@language
+\cs_set:Nn \xpg_initial_setup:
+{
+ \xpg_common_language:
}
@@ -1749,27 +1715,21 @@
% for specific (esp. tag-based) aliases
% where {<alias>} would cause clashes
% (e.g., \fi)
-\newenvironment{lang}[2][]{
- \begin{otherlanguage}[#1]{#2}
-}{
- \end{otherlanguage}
-}
-
-\providecommand{\foreignlanguage}{}
+\DeclareEnvironmentCopy { lang } { otherlanguage }
% wrapper for foreignlanguage and otherlanguage*
\newcommand*\polyglossia@setforeignlanguage[2][]{
\select@@language[#1]{#2}
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -1786,7 +1746,7 @@
}
% lowercase options before passing to setkeys
-\cs_new:Nn \polyglossia@set@keys:nn
+\cs_new:Nn \__xpg_set_keys:nn
{
\xpg@str@lowercase{\xpg@tmp@opts}{#2}
\exp_args:Nne \setkeys{#1}{\xpg@tmp@opts}
@@ -1796,10 +1756,10 @@
% and \text<lang>
% #1 option
% #2 language
-\newcommand{\xpg@otherlanguage}[2][]
+\cs_new:Nn \xpg_otherlanguage:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
\polyglossia@setforeignlanguage[#1]{#2}
% Hook for external packages such as biblatex
\polyglossia@language@switched
@@ -1810,10 +1770,13 @@
\cs_if_exist_use:c{inlineextras@bbl@\babelname}
}
-\renewcommand{\foreignlanguage}[3][]
-{
- \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
-}
+\DeclareDocumentCommand { \foreignlanguage } { O{} m m }
+ {
+ \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
+ }
+
+% prevent case changing of language name in \foreignlanguage
+\tl_put_right:Nn \l_text_case_exclude_arg_tl { \foreignlanguage }
% Direct access to polyglossia@setforeignlanguage
% used in captions
@@ -1840,7 +1803,7 @@
{ \cs_set_eq:NN \__xpg_current_matrixlang \l_tmpa_tl }
{ \cs_set_eq:NN \__xpg_current_matrixlang \mainlanguagename }
% Reset the language's/script's font families if the embedding script is latin
- \str_if_eq:eeT{\prop_item:Ne{\polyglossia@langsetup}{\__xpg_current_matrixlang/lcscript}}{latin}
+ \str_if_eq:eeT{\prop_item:Ne{\g_xpg_langsetup_prop}{\__xpg_current_matrixlang/lcscript}}{latin}
{\resetfontlatin}
% In case a \<lang>font is defined, re-activate that
\exp_args:Ne \xpg@set@normalfont{\__xpg_current_matrixlang}
@@ -1859,8 +1822,8 @@
}{
\__xpg_store_matrixlang:
\group_begin:
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -1869,17 +1832,14 @@
% otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
-
-\renewenvironment{otherlanguage*}[2][]
-{%
- \__xpg_store_matrixlang:
- \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
-}
-{
- \egroup
- \__xpg_reset_to_matrixlang:
-}
+\DeclareDocumentEnvironment { otherlanguage* } { O{} m }
+ {
+ \__xpg_store_matrixlang:
+ \__xpg_otherlanguage:eee { #1 } { #2 } { \xpg_alias_base_lang:n { #2 } }
+ }{
+ \group_end:
+ \__xpg_reset_to_matrixlang:
+ }
% internal wrapper
% #1 option
@@ -1891,14 +1851,12 @@
{
\msg_show:nnn { polyglossia } { languagenotloaded } {#2}
}{
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}%
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}%
\bgroup
}
}
-\cs_generate_variant:Nn \__xpg_otherlanguage:nnn {
- eee
-}
+\cs_generate_variant:Nn \__xpg_otherlanguage:nnn { eee }
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -1912,7 +1870,7 @@
\cs_generate_variant:Nn \__xpg_textlanguage:nnn {een}
% Track whether we are in an inline lang (\text...) switch
-\bool_new:N \__xpg_inline_lang
+\bool_new:N \l__xpg_inline_lang_bool
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -1929,13 +1887,13 @@
{
\__xpg_store_matrixlang:
\group_begin:
- \bool_set_true:N \__xpg_inline_lang
- \xpg@otherlanguage[#1]{#3}
+ \bool_set_true:N \l__xpg_inline_lang_bool
+ \xpg_otherlanguage:nn{#1}{#3}
\csuse{date#3}
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -1945,7 +1903,7 @@
% Define language-specific hyphenation exceptions
\newcommand\pghyphenation[3][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
\setkeys{#2}{#1}
\select@@language[#1]{#2}
\hyphenation{#3}
@@ -1955,6 +1913,7 @@
% Hook that other package authors can use
% (for instance biblatex):
+% Do not rename!
\newcommand*{\xpg@hook@setlanguage}{}
\def\xpg@pop@language@i#1#2{
@@ -1962,55 +1921,39 @@
\xpg@hook@setlanguage
\let\emp@langname\@undefined}
-\newif\ifxpginauxfile\xpginauxfilefalse
-
\DeclareDocumentCommand \selectlanguage {s O{} m}
-{
- \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
- {
- \ifxpginauxfile
- \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3}
- \else
- \msg_show:nnn { polyglossia } { languagenotloaded } {#3}
- \fi
- }
{
- \polyglossia@select@language:nee {#1}
- {\xpg_alias_add_to_option_i:nn{#3}{#2}}
- {\xpg_alias_base_lang:n{#3}}
+ \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
+ {
+ \IfBooleanTF { #1 }
+ { \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3} }
+ { \msg_show:nnn { polyglossia } { languagenotloaded } {#3} }
+ }{
+ \__xpg_select_language:nee {#1}
+ { \xpg_alias_add_to_option_i:nn{#3}{#2} }
+ { \xpg_alias_base_lang:n{#3} }
+ }
}
-}
-\cs_new:Nn \polyglossia@select@language:nnn
+\cs_new:Nn \__xpg_select_language:nnn
{
- \IfBooleanF {#1}
- {
- \cs_set_nopar:Npx \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
- \group_insert_after:N \xpg@pop@language
- }
% Register the language options
- \polyglossia@set@lang@options:nnn {#3} {#2} {@xpg@set@langvariant}
- % The starred variant does not write to the aux
- \IfBooleanTF#1{%
- \xpg@set@language@nonaux[#2]{#3}
- }
- {
- \xpg@set@language@aux[#2]{#3}
- }
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.select_language('\luaescapestring{\string#3}',
- \the\csname l@#3\endcsname)}
- }
- \polyglossia@register@language:nn{#2}{#3}
-}
-\cs_generate_variant:Nn \polyglossia@select@language:nnn {
- nee, nne
+ \__xpg_set_language_options:nnn {#3} {#2} {@xpg@set@langvariant}
+ \IfBooleanTF { #1 } % The starred variant does not write to the aux
+ {
+ \xpg@set@language@nonaux[#2]{#3}
+ }{
+ \cs_set_nopar:Npe \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
+ \group_insert_after:N \xpg@pop@language
+ \xpg@set@language@aux[#2]{#3}
+ }
+ \__xpg_register_language:nn{#2}{#3}
}
+\cs_generate_variant:Nn \__xpg_select_language:nnn { nee, nne }
% set lang option #2 for lang #1
-\cs_new:Nn \polyglossia@set@lang@options:nnn
+\cs_new:Nn \__xpg_set_language_options:nnn
{
\tl_if_blank:nF {#2}
{
@@ -2018,7 +1961,7 @@
\clist_map_inline:nn { #2 } {
\xpg@parsevariantkeyvalue##1=#3:#1\relax
}%
- \polyglossia@set@keys:nn{#1}{#2}
+ \__xpg_set_keys:nn{#1}{#2}
}
}
@@ -2026,7 +1969,7 @@
% \iflanguageoption has the info it needs also
% for default settings
\newcommand*\xpg@initialize@gloss@options[2]{
- \polyglossia@set@lang@options:nnn {#1} {#2} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#1} {#2} {@xpg@set@langvariant}
}
% Record synonymous keyvals such as variant=us and variant=american
@@ -2036,6 +1979,8 @@
{ \prop_new:c {xpg@alias@keyvals@#1@#3} }
\prop_put:cnn { xpg@alias@keyvals@#1@#3 }
{#2}{#4}
+ \prop_if_exist:cF { xpg@alias@keyvals@#1@#4 }
+ { \prop_new:c {xpg@alias@keyvals@#1@#4} }
\prop_put:cnn { xpg@alias@keyvals@#1@#4 }
{#2}{#3}
}
@@ -2072,7 +2017,7 @@
}
-\prg_set_conditional:Npnn \polyglossia@check@option@value:NNN #1#2#3 { p , T , F , TF }
+\prg_set_conditional:Npnn \__xpg_check_option_value:NNN #1#2#3 { p , T , F , TF }
{
\prop_get:cnNTF {xpg@current@options@#1} {#2} \l_tmpa_tl
{
@@ -2101,8 +2046,9 @@
}
% Test if option value is set
-\newcommand*\iflanguageoption[5]{
- \polyglossia@check@option@value:NNNTF{#1}{#2}{#3}{#4}{#5}
+\DeclareDocumentCommand \iflanguageoption { m m m m m }
+{
+ \__xpg_check_option_value:NNNTF{#1}{#2}{#3}{#4}{#5}
}
@@ -2114,21 +2060,23 @@
}
% Test if language is loaded
-\newcommand*\iflanguageloaded[3]{
+\DeclareDocumentCommand \iflanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@loaded{#1}{#2}{#3}
}
}
% Same for babellanguage is loaded
-\newcommand*\ifbabellanguageloaded[3]{
+\DeclareDocumentCommand \ifbabellanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@bloaded{#1}{#2}{#3}
}
}
% Same for languageid
-\DeclareDocumentCommand \iflanguageidloaded {mmmm}
+\DeclareDocumentCommand \iflanguageidloaded { m m m m }
{
\AddToHook{begindocument/end}{
\str_case:nnTF {#1}
@@ -2144,7 +2092,7 @@
}
% Check if the current font has a given glyph
-\prg_new_conditional:Npnn \__polyglossia_if_char:N #1 { TF }
+\prg_new_conditional:Npnn \__xpg_if_char:N #1 { TF }
{
\iffontchar\font\int_from_hex:n { #1 }~
\prg_return_true:
@@ -2157,14 +2105,14 @@
% and print it, if so, otherwise print the replacement #2
\NewExpandableDocumentCommand \charifavailable { m m }
{
- \exp_args:Nno \__polyglossia_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
+ \exp_args:Nno \__xpg_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
}
% Test if a char (by char code) is available in the current font
% if so, do #2, else do #3
-\NewDocumentCommand \IfCharIsAvailableTF { m m m }
+\NewExpandableDocumentCommand \IfCharIsAvailableTF { m m m }
{
- \__polyglossia_if_char:NTF{#1}{#2}{#3}
+ \__xpg_if_char:NTF { #1 } { #2 } { #3 }
}
@@ -2177,12 +2125,12 @@
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -2194,29 +2142,14 @@
\newcommand*{\xpg@set@language@only@aux}[2][]{
% Write to the aux (toc files)
\if@filesw
- \ifx#1\\\\
- \addtocontents{toc}{\protect\selectlanguage*{#2}}
- \else
- \addtocontents{toc}{\protect\selectlanguage*[#1]{#2}}
- \fi
+ \addtocontents{toc}{\selectlanguage*[#1]{#2}}
\fi
}
\AtBeginDocument{
- % Tell polyglossia that we are in an aux file
- \if@filesw
- \addtocontents{toc}{\protect\xpginauxfiletrue}
- \addtocontents{lof}{\protect\xpginauxfiletrue}
- \addtocontents{lot}{\protect\xpginauxfiletrue}
- \fi
-}
-
-\AtEndDocument{
- % Tell polyglossia that we are no longer in an aux file
\if@filesw
- \addtocontents{toc}{\protect\xpginauxfilefalse}
- \addtocontents{lof}{\protect\xpginauxfilefalse}
- \addtocontents{lot}{\protect\xpginauxfilefalse}
+ \immediate\write\@mainaux
+ {\ProvideDocumentCommand\selectlanguage{sO{}m}{}}
\fi
}
@@ -2228,49 +2161,22 @@
\addtocontents{lot}{\protect\setforeignlanguage{\languagename}}
}
-% The bidi package swaps the output stream within RTL tables
-% (to get the column order right). This also swaps group
-% delimiters inserted to the aux files via otherlanguage (see #354).
-% We therefore patch bidi and insert a bool that tells us
-% whether we are in such a table.
-\newbool{xpg@inbiditable}
-\AtBeginDocument{
- \@ifpackageloaded{bidi}{
- \patchcmd{\@tabular}
- {\if@RTLtab}
- {\if@RTLtab\booltrue{xpg@inbiditable}}
- {} % success
- {\xpg@warning{Patching bidi table failed!}}
- }{}
-}
-
% check if language is defined
-\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:N #1 { p , T , F , TF }{
- \cs_if_exist:cTF {l@#1}
- {
- \cs_if_eq:cNTF {l@#1} \l@nohyphenation
- {
- \prg_return_false:
- }
- {
- % it's possible that sometimes \csname l@#1\endcsname becomes \relax
- \cs_if_eq:cNTF {l@#1} \relax
- { \prg_return_false: }
- { \prg_return_true: }
- }
- }
- {
- \prg_return_false:
- }
-}
+\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:n #1 { F, TF }
+ {
+ \bool_lazy_and:nnTF
+ { \cs_if_exist_p:c { l@#1 } }
+ { ! (\cs_if_eq_p:cc { l@#1 } { l@nohyphenation }) }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
\def\polyglossia@luatex@load@lang#1{
% if \l@#1 is not properly defined, call lua function newloader(#1),
% and assign the returned number to \l@#1
- \__xpg_check_if_exist_l@:NF {#1}
+ \__xpg_check_if_exist_l@:nF {#1}
{
- \expandafter\chardef\csname l@#1\endcsname=
- \directlua{ tex.sprint(polyglossia.newloader'#1') }\relax
+ \directlua { token.set_char('l@#1', polyglossia.newloader'#1') }
}
}
@@ -2282,7 +2188,7 @@
{
\polyglossia@luatex@load@lang{#1}
}
- \__xpg_check_if_exist_l@:NTF{#1}{#2}{#3}
+ \__xpg_check_if_exist_l@:nTF{#1}{#2}{#3}
}
% Set \bbl@hyphendata@\the\language, which is (lua)babel's
@@ -2308,20 +2214,20 @@
% hook for compatibility with biblatex
\select@language{#2}
\xpg@set@bbl@hyphendata{\the\language}
- \xpg@initial@setup%
+ \xpg_initial_setup:
\select@@language[#1]{#2}%
% Hook for external packages such as biblatex
\polyglossia@language@switched%
- \polyglossia@lang@setpardirection:n{#2}
+ \__xpg_lang_set_par_direction:n{#2}
\csuse{captions#2}%
\csuse{date#2}%
% These are hooks for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{captions@bbl@\babelname}
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@local@marks:n{#2}
+ \__xpg_local_marks:n{#2}
\csuse{init@extras@#2}%
- \xpg__indent_first:n { #2 }
+ \__xpg_indent_first:n { #2 }
\csuse{blockextras@#2}%
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
@@ -2335,6 +2241,7 @@
\def\select@language#1{}
% Hook for external packages such as biblatex
+% do not rename!
\def\polyglossia@language@switched{}
% remove all custumization for language #1
@@ -2354,24 +2261,24 @@
\noextrascurrent{\languagename}
\cs_if_exist_use:c{no\languagename @numbers}
\sys_if_engine_xetex:T{
- \__xpg_if_LR_str:eTF{\prop_item:Ne{\polyglossia@langsetup}{\languagename/direction}}
+ \__xpg_if_LR_str:eTF{\prop_item:Ne{\g_xpg_langsetup_prop}{\languagename/direction}}
{
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setnonlatin} % LTR -> RTL
}
{
- \__xpg_if_LR_str:eT{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setlatin} % RTL -> LTR
}
}
}
\polyglossia@set@language@name[#1]{#2}
% Set the language's/script's font families
- \str_if_eq:eeT{\prop_item:Nn{\polyglossia@langsetup}{#2/lcscript}} {latin}
+ \str_if_eq:eeT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/lcscript}} {latin}
{
\resetfontlatin
}
- \bool_if:NF \__xpg_inline_lang
+ \bool_if:NF \l__xpg_inline_lang_bool
{ % This for non-inline font switches
% in case a \<lang>font is defined
\xpg@set@normalfont{#2}
@@ -2380,7 +2287,7 @@
\__xpg_use_or_warn:c{#2@language}
\cs_if_exist_use:c{#2@numbers}
\use@localhyphenmins[#1]{#2}
- \xpg__french_spacing:n { #2 }
+ \__xpg_french_spacing:n { #2 }
}
@@ -2391,14 +2298,14 @@
%
\clist_new:N \l_xpg_lang_stack
-\cs_new:Nn \polyglossia@stack@language:nn
+\cs_new:Nn \__xpg_stack_language:nn
{
\clist_gpush:Nn \l_xpg_lang_stack {#1:#2}
}
-\cs_generate_variant:Nn \polyglossia@stack@language:nn {nx}
+\cs_generate_variant:Nn \__xpg_stack_language:nn {nx}
-\cs_new:Nn \polyglossia@unstack@language:n
+\cs_new:Nn \__xpg_unstack_language:n
{
\clist_gpop:NNTF \l_xpg_lang_stack \l_tmpa_tl {
% Stored format = options:language => split:
@@ -2408,7 +2315,7 @@
% Execute passed command with language and maybe options
% and re-set stored language's keys
\tl_if_empty:NTF \l_tmpb_tl {\cs_if_exist_use:c{#1}{\l_tmpc_tl}}
- {\polyglossia@set@keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
+ {\__xpg_set_keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
\cs_if_exist_use:c{#1}[\l_tmpb_tl]{\l_tmpc_tl}
}
}
@@ -2419,17 +2326,19 @@
{
% Get real current (pre-switch) options (incl. defaults)
\clist_clear_new:N \l_xpg_current_options
+ \prop_if_exist:cF { xpg@current@options@\languagename }
+ { \prop_new:c {xpg@current@options@\languagename} }
\prop_map_inline:cn {xpg@current@options@\languagename}
{
\clist_put_right:Nn \l_xpg_current_options {##1=##2}
}
% Store current (pre-switch) options and language on stack
- \polyglossia@stack@language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
+ \__xpg_stack_language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
\selectlanguage[#1]{#2}
}
{
% restore previous language in aux file and remove closed one from stack
- \polyglossia@unstack@language:n{xpg@set@language@only@aux}
+ \__xpg_unstack_language:n{xpg@set@language@only@aux}
}
\newcommand{\setlocalhyphenmins}[3]{
@@ -2450,17 +2359,17 @@
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
\bgroup
- \polyglossia@error@iflangnotloaded:n{\xpg@tmp@lang}
- \polyglossia@set@keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
+ \xpg_error_if_lang_not_loaded:n{\xpg@tmp@lang}
+ \__xpg_set_keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
% Store bcp47.tag@hypenmins
\tl_if_blank:nTF {\xpg@tmp@opts}{%
\ifcsundef{\csname xpg@tmp@lang\endcsname @g.bcp47.tag}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}{
\csedef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}
\csgdef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{{#3}{#4}}
\egroup
@@ -2469,17 +2378,17 @@
% \use@localhypenmins[options]{lang}
\newcommand*\use@localhyphenmins[2][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
% Use bcp47.tag@hypenmins
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@g.bcp47.tag}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}{
\csxdef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}
\egroup
\ifcsundef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{
@@ -2493,7 +2402,7 @@
}
\sys_if_engine_luatex:T{
% Set \totalhyphenmin if specified
- \prop_get:NeNTF \polyglossia@langsetup {#2/totalhyphenmin} \l_tmpa_tl
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#2/totalhyphenmin} \l_tmpa_tl
{
\xpg@info{totalhyphenmin: '\l_tmpa_tl'}
\expandafter\hyphenationmin \l_tmpa_tl
@@ -2513,7 +2422,7 @@
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
% Register the language options
- \polyglossia@set@lang@options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
% Now switch patterns
\__xpg_use_or_warn:c{\use:c{xpg@tmp@lang}@language}
% And activate hyphenmins
@@ -2522,10 +2431,10 @@
{ }
\AddToHook{begindocument/before}{
- \@ifpackageloaded{bidi}{
+ \IfPackageLoadedTF{bidi}{
\providecommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}
}{}
- \@ifpackageloaded{luabidi}{
+ \IfPackageLoadedTF{luabidi}{
\providecommand*{\aemph}[1]{$\overline{\hbox{\RL{#1}}}$}
}{}
}
@@ -2534,7 +2443,7 @@
% keys for main package
\keys_define:nn { polyglossia } {
verbose
- .bool_set:N = \l_polyglossia_verbose_bool,
+ .bool_set:N = \g_xpg_verbose_bool,
verbose
.default:n = true,
% compatibility
@@ -2542,7 +2451,7 @@
.meta:n = { verbose = false },
localmarks
- .bool_set:N = \l_polyglossia_localmarks_bool,
+ .bool_set:N = \g_xpg_localmarks_bool,
localmarks
.default:n = true,
% compatibility
@@ -2550,12 +2459,12 @@
.meta:n = { localmarks = false },
babelshorthands
- .bool_set:N = \l_polyglossia_babelshorthands_bool,
+ .legacy_if_set:n = system@babelshorthands, % compatibility
babelshorthands
.default:n = true,
luatexrenderer
- .cs_set:Np = \l_polyglossia_luatex_renderer,
+ .str_set:N = \g_xpg_luatex_renderer_str,
luatexrenderer
.value_required:n = true,
}
@@ -2575,14 +2484,14 @@
% Set the LuaTeX renderer. As opposed to fontspec, we use Harfbuzz by default.
% This can be changed via the luatexrenderer package option.
\sys_if_engine_luatex:T{
- \str_if_eq:eeF{\l_polyglossia_luatex_renderer}{none}
+ \str_if_eq:eeF{\g_xpg_luatex_renderer_str}{none}
{
- \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \l_polyglossia_luatex_renderer}
- \exp_args:Ne \defaultfontfeatures{Renderer=\l_polyglossia_luatex_renderer}
+ \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \g_xpg_luatex_renderer_str}
+ \exp_args:Ne \defaultfontfeatures{Renderer=\g_xpg_luatex_renderer_str}
}
}
-\bool_if:nF \l_polyglossia_verbose_bool {
+\bool_if:nF \g_xpg_verbose_bool {
\gdef\@latex@info#1{\relax} % no latex info
\gdef\@font@info#1{\relax} % no latex font info
\gdef\@font@warning#1{\relax} % no latex font warnings
@@ -2590,46 +2499,92 @@
\gdef\xpg@info#1{\relax} % no polyglossia info
}
-\bool_if:nT \l_polyglossia_localmarks_bool {
- \polyglossia@enable@local@marks:
+\bool_if:nT \g_xpg_localmarks_bool {
+ \__xpg_enable_local_marks:
}
% Control shorthand (de-)activation
% This checks that the shorthand char is only deactivated
% if we have activated it ourselves and hence keeps
% activation of other packages if no shorthands are used.
-\seq_new:N \__xpg_active_shorthands
+\seq_new:N \g__xpg_active_shorthands_seq
\DeclareDocumentCommand \xpg@activate@shorthands { O{"} }
{
- \seq_if_in:NnF \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnF \g__xpg_active_shorthands_seq { #1 }
{
\bbl@activate{#1}
- \seq_gpush:Nn \__xpg_active_shorthands { #1 }
+ \seq_gpush:Nn \g__xpg_active_shorthands_seq { #1 }
}
}
\DeclareDocumentCommand \xpg@deactivate@shorthands { O{"} }
{
- \seq_if_in:NnT \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnT \g__xpg_active_shorthands_seq { #1 }
{
\cs_if_exist:cT{initiate@active@char}{\bbl@deactivate{#1}}
- \seq_remove_all:Nn \__xpg_active_shorthands {#1}
+ \seq_remove_all:Nn \g__xpg_active_shorthands_seq {#1}
}
}
-% compatibility
-\newif\ifsystem@babelshorthands
-\bool_if:nTF \l_polyglossia_babelshorthands_bool {
- \system@babelshorthandstrue
-}{
- \system@babelshorthandsfalse
+% Inherit shorthands in other languages
+\NewDocumentCommand \inheritbabelshorthands { m m }
+{
+ \AddToHook{begindocument/before}{
+ % Load the involved languages if necessary
+ % Error if they do not exist
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpa_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpa_lang_tl .ldf}
+ { \setotherlanguage{#1} }
+ { \xpg@error{ Source~ language~ #1,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ \tl_set:Nn \l__xpg_tmpb_lang_tl { \xpg_alias_base_lang:n{#2} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpb_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpb_lang_tl .ldf}
+ { \setotherlanguage{#2} }
+ { \xpg@error{ Target~ language~ #2,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ % Test whether the requested shorthands exist
+ \bool_if_exist:NF \l__xpg_no_shorthands_bool
+ { \bool_new:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { \l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { no\l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \bool_if:nT { \l__xpg_no_shorthands_bool }
+ {
+ \xpg@error{ No~ babel~ shorthands~ exist~ for~ language~ #1 }
+ }
+ % If so, apply:
+ \bool_if:nF { \l__xpg_no_shorthands_bool }
+ {
+ \exp_args:Ncc \addto { blockextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { inlineextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { noextras@\l__xpg_tmpb_lang_tl } { no\l__xpg_tmpa_lang_tl @shorthands }
+ }
+ }
}
-%
-% FIXME these should also be loaded \AtEndOfPackage !!!
-\def\xpg@option#1#2{
- \ifcsundef{xpg@main@language}{\setdefaultlanguage}{\setotherlanguage}
- [#1]{#2}}
+% Activate shorthands of a (loaded) language inline
+\NewDocumentCommand \usebabelshorthands { m }
+{
+ \str_if_eq:nnTF { #1 } { none }
+ {
+ % "none" deactivates any shorthands
+ \languageshorthands{none}
+ }
+ {
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \iflanguageloaded{\l__xpg_tmpa_lang_tl}{
+ \use:c{\l__xpg_tmpa_lang_tl @shorthands}
+ }{
+ \xpg@error{ Language~ #1,~ requested~ in~
+ \string\startbabelshorthands,~ is~ not~ loaded }
+ }
+ }
+}
\endinput