texlive[69941] Master/texmf-dist: polyglossia (17feb24)

commits+karl at tug.org commits+karl at tug.org
Sat Feb 17 21:51:46 CET 2024


Revision: 69941
          https://tug.org/svn/texlive?view=revision&revision=69941
Author:   karl
Date:     2024-02-17 21:51:46 +0100 (Sat, 17 Feb 2024)
Log Message:
-----------
polyglossia (17feb24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/polyglossia/README.md
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
    trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf

Removed Paths:
-------------
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/polyglossia/README.md	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/doc/latex/polyglossia/README.md	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 @@
 
 # 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).

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-chinese.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-japanese.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex	2024-02-17 20:51:46 UTC (rev 69941)
@@ -570,11 +570,8 @@
 
 \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 @@
 		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 @@
 	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 @@
 		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 @@
 		           \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 @@
 		\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,10 +2697,48 @@
 \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}
 	\item Fix OpenType language and script tags in Chinese (\TXI{606}).
 	\item Fix resetting of language specifications at the end of a local font
 	      set with \pkg{babel} legacy means (\cmd{\foreignlanguage} or \texttt{otherlanguage*}

Modified: trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 @@
 
 # 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,10 +66,10 @@
 
   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
 
 
@@ -76,7 +76,7 @@
 \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 @@
 \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 @@
 \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 @@
 % 
 % \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 @@
 % 		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 @@
 % 	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 @@
 % 		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 @@
 % 		           \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 @@
 % 		\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,10 +3090,48 @@
 % \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}
 % 	\item Fix OpenType language and script tags in Chinese (\TXI{606}).
 % 	\item Fix resetting of language specifications at the end of a local font
 % 	      set with \pkg{babel} legacy means (\cmd{\foreignlanguage} or \texttt{otherlanguage*}
@@ -4102,8 +4200,9 @@
 %    \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
@@ -4110,36 +4209,43 @@
 \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
 
-\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 at 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 at set@language\xpg at set@language at aux  % for biblatex
-  \let\bbl at main@language\xpg at main@language    % for biblatex
-  \providecommand\texorpdfstring[2]{#1}       % dummy command if hyperref is not loaded
+  \cs_gset_eq:NN \bbl at set@language \xpg at set@language at aux  % for biblatex
+  \cs_gset_eq:NN \bbl at main@language \xpg at 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 at nohyphenation, assigned to 255
+%%  (suggestion by Enrico Gregorio)
+%% \l at 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 at nohyphenation } 
+	   { \chardef\l at nohyphenation=255 }
+  }
 
 % Which version of XeTeX do we use? What is the boudary class? 4095 or 255
-\@ifundefined{e at alloc@intercharclass at top}
-  {\chardef\xpg at boundaryclass=\@cclv}
-  {\let\xpg at boundaryclass=\e at alloc@intercharclass at top}
+\cs_if_exist:cTF { e at alloc@intercharclass at top }
+  { \let\xpg at boundaryclass=\e at alloc@intercharclass at top }
+  { \chardef\xpg at boundaryclass=\@cclv }
 
 % Useful for getting list of loaded languages and variants. Like babel's bbl at loaded
 % all language loaded
@@ -4153,17 +4259,26 @@
 % list of loaded languages (bcp-47 id)
 \clist_new:N \xpg at bcp@loaded
 
-% counter in latin
-\def\latinalph#1{\expandafter\latin at alph\csname c@#1\endcsname}
-\def\latinAlph#1{\expandafter\latin at Alph\csname c@#1\endcsname}
+% output counter as lower-case latin letter
+\DeclareExpandableDocumentCommand \latinalph { m }
+{
+    \exp_args:Nc \latin at alph {c@#1}
+}
+% output counter as upper-case latin letter
+\DeclareExpandableDocumentCommand \latinAlph { m }
+{
+    \exp_args:Nc \latin at Alph {c@#1}
+}
 
+%% Internal hooks
 % select language hook
-\cs_new_nopar:Nn \polyglossia at AtBeginDocument@selectlanguage: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_selectlanguage: {}
 % \disablehyphenation hook
-\cs_new_nopar:Nn \polyglossia at AtBeginDocument@hyphenation: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_hyphenation: {}
 
 % hook to be executed at begin of document
-\cs_new_nopar:Nn \polyglossia at AtBeginDocument: {
+\cs_new_nopar:Nn \__xpg_at_begin_document:
+{
   % save various command
   \let\latin at alph\@alph   % TODO rename when we have the C locale
   \let\latin at Alph\@Alph   % TODO rename when we have the C locale
@@ -4171,22 +4286,25 @@
   \let\polyglossia at Clang@@arabic\@arabic
   \let\polyglossia at Clang@arabic\arabic
   
-  \xpg at initial@setup
+  \xpg_initial_setup:
   % apply \familydefault changes
   \xpg at set@familydefault
 }
 
-\AtBeginDocument{
-  \polyglossia at 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 at 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 at AtBeginDocument@hyphenation:
+  \__xpg_at_begin_document_hyphenation:
 }
 
 %% custom message macros
@@ -4219,7 +4337,7 @@
   \xpg at warning{Illegal~ value~ (#1)~ for~ #2}}
 
 % error out if lang is not loaded
-\cs_new_nopar:Nn \polyglossia at error@iflangnotloaded:n
+\cs_new_nopar:Nn \xpg_error_if_lang_not_loaded:n
 {
   \seq_if_in:NeF \__xpg_langs_loaded {#1}
   {
@@ -4239,8 +4357,17 @@
 }
 \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 @@
 \def\@@ensure at maindir#1{\ifcsundef{@ensure at maindir}{#1}{\@ensure at 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 @@
 % (lua)bidi commands to change directionality for paragraphs
 % and inline text.
 % overwritten with correct package
-\cs_new_nopar:Nn{\polyglossia at setpardirection:n}{
+\cs_new_nopar:Nn \__xpg_set_par_direction:n
+{
   \__xpg_if_LR_str:nF {#1}
   {
     \xpg at error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
   }
 }
-\cs_new_nopar:Nn{\polyglossia at settextdirection:n}{
+\cs_new_nopar:Nn \__xpg_set_text_direction:n
+{
   \__xpg_if_LR_str:nF {#1}
   {
     \xpg at 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 at 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 @@
       \setRL
     }
   }
-  \cs_gset_nopar:Nn{\polyglossia at settextdirection:n}{
+  \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+  {
     \__xpg_if_LR_str:nTF{#1}
     {
       \LRE
@@ -4313,8 +4444,9 @@
     }
   }
 }
-\__xpg_at_package_hook:nnn{luabidi}{package/luabidi/after}{
-  \cs_gset_nopar:Nn{\polyglossia at 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 @@
       \setRL
     }
   }
-  \cs_gset_nopar:Nn{\polyglossia at settextdirection:n}{
+  \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+  {
     \__xpg_if_LR_str:nTF{#1}
     {
       \LRE
@@ -4358,11 +4491,10 @@
 %% TODO: localalph = {<alph_csname>,<Alph_csname>}
 %% TODO: localnumeral = <csname>
 %%       or even better localdigits = {0123456789} for fully automatic setup
-\newif\if at xpg@language at really@defined@
 \newcommand*\PolyglossiaSetup[2]{
-  \polyglossia at 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 at setup@done}%
   % we initialize these so that we can use \gappto below
@@ -4369,7 +4501,7 @@
   \csgdef{init at extras@#1}{}
   \csgdef{init at 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 at setup@done}
   % register base alias
   \xpg_language_alias { #1 } { #1 }
@@ -4388,8 +4520,9 @@
 
 
 % 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 at 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
@@ -4396,7 +4529,7 @@
   \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 @@
   }
   % setup hyphenmins
   \clist_set:Ne \l_tmpa_clist
-    { \prop_item:Nn \polyglossia at langsetup {#1 / hyphenmins} }
+    { \prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphenmins} }
   \cs_if_eq:cNF {l@#1} \l at nohyphenation
     {
       \use:x
@@ -4446,8 +4579,9 @@
 }
 
 \newcommand*\polyglossia at setup@language at patterns[1]{
-  \ifbool{xpg at hyphenation@disabled}{
-    \xdef\xpg at 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 @@
   }
 }
 
-\prop_new:N \polyglossia at langsetup
+\prop_new:N \g_xpg_langsetup_prop
 
-\cs_new_protected:Npn \polyglossia at 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 at langsetup}{#1/script}{##1}
-          \prop_gput:Nne{\polyglossia at 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,7 +4626,7 @@
        .initial:n = latin,
     % the opentype script tag
     #1 / scripttag
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/scripttag}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/scripttag}{##1}},
     #1 / scripttag
        .default:n = {},
     #1 / scripttag
@@ -4498,7 +4633,7 @@
       .initial:n = {},
     % the language full name
     #1 / language
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/language}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/language}{##1}},
     #1 / language
        .value_required:n = true,
     #1 / language
@@ -4505,7 +4640,7 @@
         .initial:x = {\str_uppercase:n#1},
     % the language tag
     #1 / langtag
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/langtag}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/langtag}{##1}},
     #1 / langtag
        .value_required:n = true,
     #1 / langtag
@@ -4512,7 +4647,7 @@
        .initial:n = {},
     % the BCP-47 tag
     #1 / bcp47
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/bcp47}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47}{##1}},
     #1 / bcp47
        .value_required:n = true,
     #1 / bcp47
@@ -4519,7 +4654,7 @@
        .initial:n = {},
     % the BCP-47 language tag
     #1 / bcp47-language
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4526,7 +4661,7 @@
        .initial:n = {},
     % the BCP-47 region tag
     #1 / bcp47-region
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4533,7 +4668,7 @@
        .initial:n = {},
     % the BCP-47 script tag
     #1 / bcp47-script
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4540,7 +4675,7 @@
        .initial:n = {},
     % the BCP-47 variant tag
     #1 / bcp47-variant
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4547,7 +4682,7 @@
        .initial:n = {},
     % the BCP-47 extension-t tag
     #1 / bcp47-extension-t
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4554,7 +4689,7 @@
        .initial:n = {},
     % the BCP-47 extension-u tag
     #1 / bcp47-extension-u
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4561,7 +4696,7 @@
        .initial:n = {},
     % the BCP-47 extension-x tag
     #1 / bcp47-extension-x
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -4568,7 +4703,7 @@
        .initial:n = {},
     % the BCP-47 casing alias
     #1 / bcp47-casing
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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 @@
     #1 / hyphennames
     .code:n = {
       \clist_set:Nn{\l_tmpa_clist}{##1}
-      \prop_gput:Nne{\polyglossia at 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 @@
              {LR}{}
              {RL}{\RequireBidi}
            }
-           {\prop_gput:Nnn{\polyglossia at langsetup}{#1/direction}{##1}}
+           {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/direction}{##1}}
            {\xpg at error{Unknown~ direction~ "##1"~ for~ language~ "#1"}}
        },
     #1 / direction
@@ -4604,7 +4739,7 @@
       \int_compare:nNnF { \clist_count:n {##1} } = {2}
         {\xpg at error{hypenmins~should~be~a~list~of~two~entries,~got~"##1"}}
       % set prop
-      \prop_gput:Nnn \polyglossia at langsetup {#1/hyphenmins} {##1}
+      \prop_gput:Nnn \g_xpg_langsetup_prop {#1/hyphenmins} {##1}
     },
     #1 / hyphenmins
       .value_required:n = true,
@@ -4617,7 +4752,7 @@
       \int_compare:nNnF { \clist_count:n {##1} } = {1}
         {\xpg at error{totalhyphenhypenmin~should~be~a~single~entry,~got~"##1"}}
       % set prop
-      \prop_gput:Nnn \polyglossia at langsetup {#1/totalhyphenmin} {##1}
+      \prop_gput:Nnn \g_xpg_langsetup_prop {#1/totalhyphenmin} {##1}
     },
     #1 / totalhyphenmin
       .value_required:n = false,
@@ -4636,7 +4771,7 @@
     % environment name
     #1 / envname
        .code:n = {
-           \prop_gput:Nnn{\polyglossia at 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},
@@ -4643,7 +4778,7 @@
     % babel name
     #1 / babelname
        .code:n = {
-           \prop_gput:Nnn{\polyglossia at 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},
@@ -4650,8 +4785,8 @@
     % default numerals
     #1 / localnumeral
          . code:n =  {
-            \prop_gput:Nnn{\polyglossia at langsetup}{#1/localnumeral}{##1}
-            \prop_gput:Nnn{\polyglossia at 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 at C@localnumeral},
@@ -4658,13 +4793,13 @@
     % uppercased
     #1 / Localnumeral
          . code:n =  {
-            \prop_gput:Nnn{\polyglossia at 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 at C@localnumeral},
     % environment define command (by default create the environment)
     #1 / DefineCommandsCmd
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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 @@
    \polyglossia at 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 at 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 @@
 	  }
   }
 
-\NewDocumentCommand \Localnumeral { s ={ lang } O{ local } m }
+\NewExpandableDocumentCommand \Localnumeral { s O{ lang=local } m }
   {
     \IfBooleanTF { #1 }
 	  {
@@ -4721,62 +4859,70 @@
 	  }
   }
 
-\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 at indent } { \nofrench at indent }
   }
 
-\cs_new:Nn{\polyglossia at lang@setpardirection:n}{
-  \prop_get:NeNTF \polyglossia at 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 at setpardirection:n{\l_tmpa_tl}
+        \__xpg_set_par_direction:n{\l_tmpa_tl}
       }
       {
         \xpg at error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
-        \prop_show:N{\polyglossia at langsetup}
+        \prop_show:N{\g_xpg_langsetup_prop}
       }
 }
 
 
-\cs_new:Nn{\polyglossia at lang@settextdirection:nn}{
-  \prop_get:NeNTF \polyglossia at 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 at settextdirection:n{\l_tmpa_tl}{#2}
+        \__xpg_set_text_direction:n{\l_tmpa_tl}{#2}
       }
       {
         \xpg at error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
-        \prop_show:N{\polyglossia at langsetup}
+        \prop_show:N{\g_xpg_langsetup_prop}
       }
 }
 
-\def\xpg at lastlanguage{0}
+\tl_new:N \g__xpg_lastlanguage_tl
+\tl_set:Nn \g__xpg_lastlanguage_tl { 0 }
 
-\providebool{xpg at hyphenation@disabled}
-\boolfalse{xpg at hyphenation@disabled}
+% Track whether hyphenation is disabled
+\bool_new:N \g__xpg_hyphenation_disabled_bool
 
-\def\xpg at 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 at 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 at hyphenation@disabled}{}{
-    \booltrue{xpg at hyphenation@disabled}
-    \xdef\xpg at 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 at set@hyphenation at patterns here to avoid a warning message.
     % "nohyphenation" is not listed in language.dat.lua.
     \language=\l at nohyphenation
@@ -4783,24 +4929,20 @@
   }
 }
 
-\def\xpg at enablehyphenation{
-  \ifbool{xpg at hyphenation@disabled}{
-    \boolfalse{xpg at hyphenation@disabled}
-    \language=\csname xpg at 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 at disablehyphenation
-\let\enablehyphenation\xpg at enablehyphenation
-
-%\def\xpg at fontsetup#1{\xpg at csifdef@warn{xpg at fontsetup@#1}}
-%\def\xpg at fontsetup@none#1{\csgdef{#1 at font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg at fontsetup@custom#1{\csuse{#1 at 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 at langsetup}{#1/lcscript}}{latin}
+    \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
          {\xpg at fontsetup@latin{#1}}
          {\xpg at fontsetup@nonlatin{#1}}
   }
@@ -4812,11 +4954,12 @@
 
 % add fontfeature Language=#2 to langtag #1
 % do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia at 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 at warning{Asking~ to~ add~ empty~ feature~to~ latin~ font~
+    \xpg at warning{Asking~ to~ add~ empty~ feature~to~ main~ font~
       (Language="#2"~ to~ langtag~ "#1")}
   }
   {
@@ -4840,15 +4983,16 @@
     }
   }
 }
-\cs_generate_variant:Nn  \polyglossia at 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 at 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 at warning{Asking~ to~ add~ empty~ feature~to~ latin~ font
+    \xpg at warning{Asking~ to~ add~ empty~ feature~to~ main~ font
                  (Script="#3"~ to~ scripttag~ "#2")}
   }
   {
@@ -4855,30 +4999,44 @@
     \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 at 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 at 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 at fontsetup@latin#1{
   \begingroup
@@ -4885,22 +5043,22 @@
   \csgdef{#1 at font@rm}{
     \cs_if_exist_use:cF{#1font}{
       \rmfamilylatin
-      \polyglossia at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at font@sf}{
     \cs_if_exist_use:cF{#1fontsf}{
       \sffamilylatin
-      \polyglossia at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at font@tt}{
     \cs_if_exist_use:cF{#1fonttt}{
       \ttfamilylatin
-      \polyglossia at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 @@
     \cs_if_exist_use:cF{#1font}
       {
        \providetoggle{#1 at use@script at font}
-       \str_if_eq:nnTF{\prop_item:Nn{\polyglossia at langsetup}{#1/script}}{\prop_item:Nn{\polyglossia at 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 at langsetup}{#1/lcscript} font}
+        {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} font}
           {
              \toggletrue{#1 at use@script at font}
            }
@@ -4923,12 +5081,12 @@
            }
        }
        \iftoggle{#1 at use@script at font}{}{
-           \polyglossia at addfontfeature@script:nxx{rm}
-                                                 {\prop_item:Nn{\polyglossia at langsetup}{#1/scripttag}}
-                                                 {\prop_item:Nn{\polyglossia at 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 at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 @@
     \cs_if_exist_use:cF{#1fontsf}
       {
        \providetoggle{#1 at use@script at fontsf}
-       \str_if_eq:nnTF{\prop_item:Nn{\polyglossia at langsetup}{#1/script}}{\prop_item:Nn{\polyglossia at 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 at langsetup}{#1/lcscript} fontsf}
+        {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fontsf}
           {
              \toggletrue{#1 at use@script at fontsf}
            }
@@ -4947,12 +5105,12 @@
            }
        }
        \iftoggle{#1 at use@script at fontsf}{}{
-           \polyglossia at addfontfeature@script:nxx{sf}
-                                                 {\prop_item:Nn{\polyglossia at langsetup}{#1/scripttag}}
-                                                 {\prop_item:Nn{\polyglossia at 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 at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 @@
     \cs_if_exist_use:cF{#1fonttt}
       {
        \providetoggle{#1 at use@script at fonttt}
-       \str_if_eq:nnTF{\prop_item:Nn{\polyglossia at langsetup}{#1/script}}{\prop_item:Nn{\polyglossia at 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 at langsetup}{#1/lcscript} fonttt}
+       {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fonttt}
            {
              \toggletrue{#1 at use@script at fonttt}
            }
@@ -4971,12 +5129,12 @@
            }
        }
        \iftoggle{#1 at use@script at fonttt}{}{
-           \polyglossia at addfontfeature@script:nxx{tt}
-                                                 {\prop_item:Nn{\polyglossia at langsetup}{#1/scripttag}}
-                                                 {\prop_item:Nn{\polyglossia at 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 at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 @@
 
 %% ensure localization of \markright and \markboth commands
 %%% THIS IS NOW DISABLED BY DEFAULT
-\cs_new_nopar:Nn {\polyglossia at local@marks:n} {}
-\cs_new_nopar:Nn {\polyglossia at enable@local at marks:}
+\cs_new_nopar:Nn \__xpg_local_marks:n { }
+\cs_new_nopar:Nn \__xpg_enable_local_marks:
 {
-      \xpg at info{Option:~ localmarks}
-      \cs_gset_nopar:Nn \polyglossia at local@marks:n
-      {%
-         \def\xpg at tmp@lang{##1}
-         \DeclareRobustCommand\markboth[2]{
-            \begingroup
-               \let\label\relax \let\index\relax \let\glossary\relax
-               \unrestored at protected@xdef\@themark
-               {%
-                {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
-                {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####2}}}
-               }%
-               \@temptokena \expandafter{\@themark}
-               \mark{\the\@temptokena}
-            \endgroup
-            \if at nobreak\ifvmode\nobreak\fi\fi
-         }%
-         \DeclareRobustCommand\markright[1]{
-            \begingroup
-               \let\label\relax \let\index\relax \let\glossary\relax
-               \expandafter\@markright\@themark
-               {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
-               \@temptokena \expandafter{\@themark}
-               \mark{\the\@temptokena}
-            \endgroup
-            \if at 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 at maindir{####1}}%
-%            \unrestored at protected@xdef\@themark{%
-%               {\the\@temptokena}%
-%               {\protect\@@ensure at maindir{####3}}%
-%            }%
-%         }%
-      }%
+  \xpg at info{Option:~ localmarks}
+  \cs_gset_nopar:Nn \__xpg_local_marks:n
+  {
+	 \def\xpg at tmp@lang{##1}
+	 \DeclareRobustCommand\markboth[2]{
+		\begingroup
+		   \let\label\relax \let\index\relax \let\glossary\relax
+		   \unrestored at protected@xdef\@themark
+		   {
+			{\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
+			{\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####2}}}
+		   }
+		   \@temptokena \expandafter{\@themark}
+		   \mark{\the\@temptokena}
+		\endgroup
+		\if at nobreak\ifvmode\nobreak\fi\fi
+	 }
+	 \DeclareRobustCommand\markright[1]{
+		\begingroup
+		   \let\label\relax \let\index\relax \let\glossary\relax
+		   \expandafter\@markright\@themark
+		   {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
+		   \@temptokena \expandafter{\@themark}
+		   \mark{\the\@temptokena}
+		\endgroup
+		\if at 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 at normalclass %TODO
-}{}
-
-%% when no patterns are available, we use \l at nohyphenation, assigned to 255
-%%  (suggestion by Enrico Gregorio)
-\sys_if_engine_luatex:TF
-    {
-      \@ifundefined{l at nohyphenation}
-        {\chardef\l at nohyphenation=\directlua{
-           tex.sprint(polyglossia.newloader_loaded_languages.nohyphenation)}\relax
-        }
-        {}
-    }
-    {
-      \@ifundefined{l at nohyphenation}{\chardef\l at nohyphenation=255 }{}
-    }
-
 %we call this macro when a gloss file is not found for a given language
 \def\xpg at nogloss#1{
-   \xpg at warning{Neither~ file~ gloss-#1.ldf~ nor file~ gloss-#1.lde~ exists!\MessageBreak
+   \xpg at 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 @@
   \catcode`\@=\xpg at saved@at at catcode
 }
 
-%% Load a lde file
-\cs_new_nopar:Nn \__xpg_gloss_ext: {lde}
-\cs_new_nopar:Ne \__xpg_saved_ at 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_ at 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_ at 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_ at 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 at restore@tilde at catcode{\catcode 126 = \the\catcode 126\relax}
-      \catcode 126 = 13
-      \xpg at input{gloss-#2.ldf}
-      \setkeys{#2}{#1}
-      % restore former ~ catcode
-      \xpg at restore@tilde at catcode
-    }
-    {
-      \xpg at nogloss{#2}
-    }
-  }
+\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 at restore@tilde at catcode{\catcode 126 = \the\catcode 126\relax}
+	  \catcode 126 = 13
+	  \xpg at input{gloss-#2.ldf}
+	  \setkeys{#2}{#1}
+	  % restore former ~ catcode
+	  \xpg at restore@tilde at catcode
+	}
+	{
+	  \xpg at 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_generate_variant:Nn \__xpg_load_lang_definition:nn { ee }
 
 % load a master language from an alias file
 \newcommand*\xpg at load@master at language[1] {
-  \file_if_exist:nTF{gloss-#1.lde}
-  {
-    \RequireLanguageDefinitionExtension{#1}
-  }
-  {
-    \xpg at input{gloss-#1.ldf}
-  }
+  \xpg at 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 at langsetup}
+      \use:c{\prop_item:Nn{\g_xpg_langsetup_prop}
                           {#1/DefineCommandsCmd}}
                           {#1}
       }
   }
-  \polyglossia at register@language:nn{}{#1}
+  \__xpg_register_language:nn{}{#1}
   \seq_gput_right:Nn \__xpg_langs_loaded {#1}
 }
 
@@ -5170,14 +5242,14 @@
   \str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1}
   {
     \exp_args:Ne
-    \newenvironment {\prop_item:Nn{\polyglossia at 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 @@
       % target to self fall back to language table
       \str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
       {
-        \prop_item:Nn{\polyglossia at langsetup} {#1/#2}
+        \prop_item:Nn{\g_xpg_langsetup_prop} {#1/#2}
       }
       % load alias by recursion
       {
@@ -5232,15 +5304,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 }
@@ -5302,10 +5369,10 @@
       }
     \DeclareDocumentEnvironment { #4 } { }
       {
-        \begin{otherlanguage}{#4}
+        \otherlanguage { #4 }
       }
       {
-        \end{otherlanguage}
+        \endotherlanguage
       }
   }
   \tl_clear_new:N \__xpg_alias_option_tl
@@ -5321,19 +5388,20 @@
     {#4}
 }
 
-\cs_new:Nn \polyglossia at register@language:nn {
+\cs_new:Nn \__xpg_register_language:nn
+{
   \clist_if_in:NeF \xpg at loaded {#2}{
     \clist_gput_right:Ne \xpg at loaded {#2}
   }
   % Register the language options
-  \polyglossia at set@lang at options:nnn {#2} {#1} {@xpg at set@langvariant}
+  \__xpg_set_language_options:nnn {#2} {#1} {@xpg at set@langvariant}
   % register babelname
-  \prop_get:NeN \polyglossia at langsetup {#2/babelname} \l_tmpa_tl
+  \prop_get:NeN \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
   \clist_if_in:NeF \xpg at bloaded {\l_tmpa_tl}{
     \clist_gput_right:Ne \xpg at bloaded {\l_tmpa_tl}
   }
   % register BCP-47 ID
-  \prop_get:NeN \polyglossia at langsetup {#2/bcp47} \l_tmpa_tl
+  \prop_get:NeN \g_xpg_langsetup_prop {#2/bcp47} \l_tmpa_tl
   \clist_if_in:NeF \xpg at bcp@loaded {\l_tmpa_tl}{
     \clist_gput_right:Ne \xpg at bcp@loaded {\l_tmpa_tl}
   }
@@ -5350,21 +5418,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 at 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 at set@default at 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 at set@default at language:nn
+\cs_new:Nn \__xpg_set_default_language:nn
 {
   \gdef\xpg at main@language{#2}
   \tl_if_blank:nTF {#1}
@@ -5373,16 +5441,16 @@
   }
   {
      % Register the language options
-     \polyglossia at set@lang at options:nnn {#2} {#1} {@xpg at main@langvariant}
+     \__xpg_set_language_options:nnn {#2} {#1} {@xpg at main@langvariant}
   }
   \csgdef{#2 at 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 at langsetup}{#2/direction}}
+  \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
   {
     \__xpg_setRTLmain:
   }
-  \cs_gset_nopar:Nn \polyglossia at AtBeginDocument@selectlanguage: {
+  \cs_gset_nopar:Nn \__xpg_at_begin_document_selectlanguage: {
     \selectbackgroundlanguage{#2}
     \selectlanguage[#1]{#2}%
   }
@@ -5391,24 +5459,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 at 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 at 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 at langsetup { #2 / bcp47 } }
-  \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-language } }
-  \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-region } }
-  \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-script } }
-  \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-variant } }
-  \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47extension-t } }
-  \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-extension-u } }
-  \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn  \polyglossia at 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 at 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 at 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 @@
   \cs_gset_eq:cc{#2 at g.bcp47.extension.u}{bcp47.extension.u}
   \cs_gset_eq:cc{#2 at g.bcp47.extension.x}{bcp47.extension.x}
   \cs_gset_eq:cc{#2 at 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 @@
      \ifcsundef{#2 at gvar}{\def\languagevariant{}}{\def\languagevariant{\csuse{#2 at gvar}}}
    }{
      % Register the language options
-     \polyglossia at set@lang at options:nnn {#2} {#1} {@xpg at set@langvariant}
-     \cs_set_eq:cc{#2 at gvar}{languagevariant}
+     \__xpg_set_language_options:nnn {#2} {#1} {@xpg at set@langvariant}
+     \cs_set_eq:cc{#2 at var}{languagevariant}
   }%
 }
 
 
 \newcommand*{\resetdefaultlanguage}[2][]{
-  \polyglossia at reset@default at language:nn
+  \__xpg_reset_default_language:nn
     {\xpg_alias_add_to_option_i:nn{#2}{#1}}
     {\xpg_alias_base_lang:n{#2}}
 }
@@ -5537,49 +5600,49 @@
   \tl_if_blank:nTF {#1}{
     % tag (e.g., en-US)
     \ifcsundef{#2 at g.bcp47.tag}{
-       \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47 } }
+       \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
     }{
        \csedef{bcp47.tag}{\csuse{#2 at g.bcp47.tag}}
     }
     % language (e.g., en)
     \ifcsundef{#2 at g.bcp47.language}{
-       \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-language } }
+       \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
     }{
        \csedef{bcp47.language}{\csuse{#2 at g.bcp47.language}}
     }
     % region (e.g., US)
     \ifcsundef{#2 at g.bcp47.region}{%
-       \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-region } }
+       \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
     }{
        \csedef{bcp47.region}{\csuse{#2 at g.bcp47.region}}%
     }
     % script (e.g., Latn)
     \ifcsundef{#2 at g.bcp47.script}{
-       \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-script } }
+       \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
     }{
        \csedef{bcp47.script}{\csuse{#2 at g.bcp47.script}}
     }
     % variant (e.g., 1996)
     \ifcsundef{#2 at g.bcp47.variant}{
-       \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-variant } }
+       \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
     }{
        \csedef{bcp47.variant}{\csuse{#2 at g.bcp47.variant}}
     }
     % extension.t (tranformation)
     \ifcsundef{#2 at g.bcp47.extension.t}{%
-       \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia at 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 at g.bcp47.extension.t}}
     }
     % extension.u (additional locale information)
     \ifcsundef{#2 at g.bcp47.extension.u}{%
-       \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia at 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 at g.bcp47.extension.u}}
     }
     % extension.x (private use area)
     \ifcsundef{#2 at g.bcp47.extension.x}{
-       \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia at 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 at g.bcp47.extension.x}}
     }
@@ -5586,7 +5649,7 @@
     % casing
     \ifcsundef{#2 at 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 at 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,16 +5657,16 @@
        \csedef{bcp47.casing}{\csuse{#2 at g.bcp47.casing}}
     }
   }{
-    \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47 } }
-    \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-language } }
-    \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-region } }
-    \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-script } }
-    \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-variant } }
-    \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-extension-t } }
-    \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-extension-u } }
-    \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia at 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 at 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 } }
@@ -5610,9 +5673,9 @@
   }
 }
 
-\cs_new:Nn \polyglossia at reset@default at language:nn
+\cs_new:Nn \__xpg_reset_default_language:nn
 {
-  \polyglossia at error@iflangnotloaded:n{#2}
+  \xpg_error_if_lang_not_loaded:n{#2}
   % disable globalnumbers of previously defined default language
   \csuse{no\xpg at main@language @globalnumbers}
   \csuse{noextras@\xpg at main@language}%
@@ -5621,7 +5684,7 @@
   \cs_if_exist_use:c{noextras at bbl@\mainbabelname}%
   \csuse{init at noextras@\xpg at main@language}%
   \polyglossia at set@language at name[#1]{#2}%
-  \__xpg_if_LR_str:eF{\prop_item:Ne{\polyglossia at langsetup}{#2/direction}}
+  \__xpg_if_LR_str:eF{\prop_item:Ne{\g_xpg_langsetup_prop}{#2/direction}}
   {
     \@rlmaintrue\@rl at footnotetrue
   }
@@ -5630,23 +5693,26 @@
   % Store babelname of current language (for external packages such as biblatex)
   \tl_if_blank:nTF {#1}{%
     \ifcsundef{#2 at gbabelname}{
-       \edef\babelname{\prop_item:Nn{\polyglossia at langsetup}{#2/babelname}}
+       \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
     }{
        \edef\babelname{\csuse{#2 at gbabelname}}
     }
   }{
-    \edef\babelname{\prop_item:Nn{\polyglossia at 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 at main@langvariant}
+  }
+  \csgdef{#2 at gvar}{\mainlanguagevariant}
   % Store BCP-47 id of current language
   \__xpg_store_bcp_info:nn {#1}{#2}
 }
-\cs_generate_variant:Nn \polyglossia at reset@default at 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 @@
     \@afterindentfalse
 }
 
-\cs_new_nopar:Npn \selectbackgroundlanguage #1
-{%
-  \polyglossia at select@background at 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 at select@background at language:n
+
+\cs_new:Nn \__xpg_select_background_language:n
 {
-  \str_if_eq:eeTF{\prop_item:Nn{\polyglossia at langsetup}{#1/lcscript}}{latin}
+  \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
                    {}
                    {\xpg at set@normalfont{#1}}
   \csuse{#1 at globalnumbers}
 }
-\cs_generate_variant:Nn \polyglossia at select@background at 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 at langsetup}
+       \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
              {#2/DefineCommandsCmd}}
              {#2}
     }
-    \polyglossia at set@other at 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 at set@other at language:nn
+\cs_new:Nn \__xpg_set_otherlanguage:nn
 {
-  \polyglossia at 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 at set@lang at options:nnn {#2} {#1} {@xpg at other@langvariant}
+  \__xpg_set_language_options:nnn {#2} {#1} {@xpg at other@langvariant}
 
   \csgdef{#2 at gvar}{\otherlanguagevariant}
-  \prop_get:NeNT \polyglossia at 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 at gbabelname}{otherlanguagebabelname}
 }
-\cs_generate_variant:Nn  \polyglossia at set@other at 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,9 +5881,11 @@
    \clist_map_function:eN { #1 } \setotherlanguage
   }
 
-\def\common at language{% FIXME is this really needed???
-  \ifbool{xpg at hyphenation@disabled}{
-    \xdef\xpg at 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@
   }
@@ -5829,8 +5892,9 @@
   \lefthyphenmin=\tw@
   \righthyphenmin=\thr@@}
 
-\def\xpg at initial@setup{
-  \common at language
+\cs_set:Nn \xpg_initial_setup:
+{
+  \xpg_common_language:
 }
 
 
@@ -5851,27 +5915,21 @@
 % for specific (esp. tag-based) aliases
 % where {<alias>} would cause clashes
 % (e.g., \fi)
-\newenvironment{lang}[2][]{
-  \begin{otherlanguage}[#1]{#2}
-}{
-  \end{otherlanguage}
-}
+\DeclareEnvironmentCopy { lang } { otherlanguage }
 
-\providecommand{\foreignlanguage}{}
-
 % wrapper for foreignlanguage and otherlanguage*
 \newcommand*\polyglossia at setforeignlanguage[2][]{
   \select@@language[#1]{#2}
-  \polyglossia at 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 at gbabelname}{
-       \edef\babelname{\prop_item:Nn{\polyglossia at langsetup}{#2/babelname}}
+       \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
     }{
        \edef\babelname{\csuse{#2 at gbabelname}}
     }
   }{
-    \edef\babelname{\prop_item:Nn{\polyglossia at 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 @@
 }
 
 % lowercase options before passing to setkeys
-\cs_new:Nn \polyglossia at set@keys:nn
+\cs_new:Nn \__xpg_set_keys:nn
 {
     \xpg at str@lowercase{\xpg at tmp@opts}{#2}
     \exp_args:Nne \setkeys{#1}{\xpg at tmp@opts}
@@ -5898,10 +5956,10 @@
 % and \text<lang>
 % #1 option
 % #2 language
-\newcommand{\xpg at otherlanguage}[2][]
+\cs_new:Nn \xpg_otherlanguage:nn
 {
-  \polyglossia at error@iflangnotloaded:n{#2}
-  \polyglossia at set@keys:nn{#2}{#1}
+  \xpg_error_if_lang_not_loaded:n{#2}
+  \__xpg_set_keys:nn{#2}{#1}
   \polyglossia at setforeignlanguage[#1]{#2}
   % Hook for external packages such as biblatex
   \polyglossia at language@switched
@@ -5912,11 +5970,14 @@
   \cs_if_exist_use:c{inlineextras at 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 at setforeignlanguage
 % used in captions
 \newcommand{\setforeignlanguage}[2][]
@@ -5942,7 +6003,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 at 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 at set@normalfont{\__xpg_current_matrixlang}
@@ -5961,8 +6022,8 @@
   }{
     \__xpg_store_matrixlang:
     \group_begin:
-      \xpg at otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
-      \polyglossia at 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,18 +6032,15 @@
 
 
 % otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
+\DeclareDocumentEnvironment { otherlanguage* } { O{} m }
+  {
+	\__xpg_store_matrixlang:
+	\__xpg_otherlanguage:eee { #1 } { #2 } { \xpg_alias_base_lang:n { #2 } }
+  }{
+	\group_end:
+	\__xpg_reset_to_matrixlang:
+  }
 
-\renewenvironment{otherlanguage*}[2][]
-{%
-  \__xpg_store_matrixlang:
-  \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
-}
-{
-  \egroup
-  \__xpg_reset_to_matrixlang:
-}
-
 % internal wrapper
 % #1 option
 % #2 alias
@@ -5993,14 +6051,12 @@
   {
     \msg_show:nnn { polyglossia } { languagenotloaded } {#2}
   }{
-    \xpg at otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
-    \polyglossia at 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 @@
 \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 @@
   {
     \__xpg_store_matrixlang:
     \group_begin:
-      \bool_set_true:N \__xpg_inline_lang
-      \xpg at 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 at bbl@\babelname}
-      \polyglossia at lang@settextdirection:nn{#3}{#4}
+      \__xpg_lang_set_text_direction:nn{#3}{#4}
     \group_end:
     \__xpg_reset_to_matrixlang:
   }
@@ -6047,7 +6103,7 @@
 % Define language-specific hyphenation exceptions
 \newcommand\pghyphenation[3][]{
   \bgroup
-  \polyglossia at 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 @@
 
 % Hook that other package authors can use
 % (for instance biblatex):
+% Do not rename!
 \newcommand*{\xpg at hook@setlanguage}{}
 
 \def\xpg at pop@language at i#1#2{
@@ -6064,55 +6121,39 @@
   \xpg at hook@setlanguage
   \let\emp at 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
+    \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} }
+      }
   }
-  {
-    \polyglossia at select@language:nee {#1}
-      {\xpg_alias_add_to_option_i:nn{#3}{#2}}
-      {\xpg_alias_base_lang:n{#3}}
-  }
-}
 
-\cs_new:Nn \polyglossia at select@language:nnn
+\cs_new:Nn \__xpg_select_language:nnn
 {
-  \IfBooleanF {#1}
-  {
-    \cs_set_nopar:Npx \xpg at pop@language { \exp_not:N \xpg at pop@language at i {#2} {#3} }
-    \group_insert_after:N \xpg at pop@language
-  }
   % Register the language options
-  \polyglossia at set@lang at options:nnn {#3} {#2} {@xpg at set@langvariant}
-  % The starred variant does not write to the aux
-  \IfBooleanTF#1{%
-    \xpg at set@language at nonaux[#2]{#3}
-  }
-  {
-    \xpg at set@language at aux[#2]{#3}
-  }
-  \sys_if_engine_luatex:T
-  {
-    \directlua{polyglossia.select_language('\luaescapestring{\string#3}',
-      \the\csname l@#3\endcsname)}
-  }
-  \polyglossia at register@language:nn{#2}{#3}
+  \__xpg_set_language_options:nnn {#3} {#2} {@xpg at set@langvariant}
+  \IfBooleanTF { #1 }   % The starred variant does not write to the aux
+    {
+	  \xpg at set@language at nonaux[#2]{#3}
+    }{
+      \cs_set_nopar:Npe \xpg at pop@language { \exp_not:N \xpg at pop@language at i {#2} {#3} }
+      \group_insert_after:N \xpg at pop@language
+	  \xpg at set@language at aux[#2]{#3}
+    }
+  \__xpg_register_language:nn{#2}{#3}
 }
-\cs_generate_variant:Nn \polyglossia at select@language:nnn {
- nee, nne
-}
+\cs_generate_variant:Nn \__xpg_select_language:nnn { nee, nne }
 
 
 % set lang option #2 for lang #1
-\cs_new:Nn \polyglossia at set@lang at options:nnn
+\cs_new:Nn \__xpg_set_language_options:nnn
 {
   \tl_if_blank:nF {#2}
   {
@@ -6120,7 +6161,7 @@
     \clist_map_inline:nn { #2 } {
       \xpg at parsevariantkeyvalue##1=#3:#1\relax
     }%
-    \polyglossia at set@keys:nn{#1}{#2}
+    \__xpg_set_keys:nn{#1}{#2}
   }
 }
 
@@ -6128,7 +6169,7 @@
 % \iflanguageoption has the info it needs also
 % for default settings
 \newcommand*\xpg at initialize@gloss at options[2]{
-   \polyglossia at set@lang at options:nnn {#1} {#2} {@xpg at set@langvariant}
+   \__xpg_set_language_options:nnn {#1} {#2} {@xpg at set@langvariant}
 }
 
 % Record synonymous keyvals such as variant=us and variant=american
@@ -6138,6 +6179,8 @@
       { \prop_new:c {xpg at alias@keyvals@#1@#3} }
    \prop_put:cnn { xpg at alias@keyvals@#1@#3 }
       {#2}{#4}
+   \prop_if_exist:cF { xpg at alias@keyvals@#1@#4 }
+      { \prop_new:c {xpg at alias@keyvals@#1@#4} }
    \prop_put:cnn { xpg at alias@keyvals@#1@#4 }
       {#2}{#3}
 }
@@ -6174,7 +6217,7 @@
 }
 
 
-\prg_set_conditional:Npnn \polyglossia at check@option at 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 at current@options@#1} {#2} \l_tmpa_tl
      {
@@ -6203,8 +6246,9 @@
 }
 
 % Test if option value is set
-\newcommand*\iflanguageoption[5]{
-  \polyglossia at check@option at 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,7 +6260,8 @@
 }
 
 % Test if language is loaded
-\newcommand*\iflanguageloaded[3]{
+\DeclareDocumentCommand \iflanguageloaded { m m m }
+{
    \AddToHook{begindocument/end}{
      \clist_if_in:NeTF \xpg at loaded{#1}{#2}{#3}
    }
@@ -6223,7 +6268,8 @@
 }
 
 % Same for babellanguage is loaded
-\newcommand*\ifbabellanguageloaded[3]{
+\DeclareDocumentCommand \ifbabellanguageloaded { m m m }
+{
   \AddToHook{begindocument/end}{
      \clist_if_in:NeTF \xpg at bloaded{#1}{#2}{#3}
   }
@@ -6230,7 +6276,7 @@
 }
 
 % Same for languageid
-\DeclareDocumentCommand \iflanguageidloaded {mmmm}
+\DeclareDocumentCommand \iflanguageidloaded { m m m m }
 {
   \AddToHook{begindocument/end}{
     \str_case:nnTF {#1}
@@ -6246,7 +6292,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:
@@ -6259,14 +6305,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 }
   }
 
 
@@ -6279,12 +6325,12 @@
    % Store babelname of current language (for external packages such as biblatex)
    \tl_if_blank:nTF {#1}{
      \ifcsundef{#2 at gbabelname}{
-        \edef\babelname{\prop_item:Nn{\polyglossia at langsetup}{#2/babelname}}
+        \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
      }{
         \edef\babelname{\csuse{#2 at gbabelname}}
      }
    }{
-     \edef\babelname{\prop_item:Nn{\polyglossia at 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,32 +6342,17 @@
 \newcommand*{\xpg at set@language at only@aux}[2][]{
     % Write to the aux (toc files)
    \if at 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 at filesw
-      \addtocontents{toc}{\protect\xpginauxfiletrue}
-      \addtocontents{lof}{\protect\xpginauxfiletrue}
-      \addtocontents{lot}{\protect\xpginauxfiletrue}
+		\immediate\write\@mainaux
+		{\ProvideDocumentCommand\selectlanguage{sO{}m}{}}
    \fi
 }
 
-\AtEndDocument{
-   % Tell polyglossia that we are no longer in an aux file
-   \if at filesw
-      \addtocontents{toc}{\protect\xpginauxfilefalse}
-      \addtocontents{lof}{\protect\xpginauxfilefalse}
-      \addtocontents{lot}{\protect\xpginauxfilefalse}
-   \fi
-}
-
 % Since captions might float to other language regions,
 % we need to change the language here (#542)
 \AddToHook{cmd/caption/before}{
@@ -6330,49 +6361,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 at inbiditable}
-\AtBeginDocument{
-  \@ifpackageloaded{bidi}{
-     \patchcmd{\@tabular}
-               {\if at RTLtab}
-               {\if at RTLtab\booltrue{xpg at inbiditable}}
-               {} % success
-               {\xpg at 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 at 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 at nohyphenation }) }
+	  { \prg_return_true: }
+      { \prg_return_false: }
+  }
 
 \def\polyglossia at luatex@load at 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 @@
   {
     \polyglossia at luatex@load at lang{#1}
   }
-  \__xpg_check_if_exist_l@:NTF{#1}{#2}{#3}
+  \__xpg_check_if_exist_l@:nTF{#1}{#2}{#3}
 }
 
 % Set \bbl at hyphendata@\the\language, which is (lua)babel's
@@ -6410,11 +6414,11 @@
    % hook for compatibility with biblatex
    \select at language{#2}
    \xpg at set@bbl at hyphendata{\the\language}
-   \xpg at initial@setup%
+   \xpg_initial_setup:
    \select@@language[#1]{#2}%
    % Hook for external packages such as biblatex
    \polyglossia at language@switched%
-   \polyglossia at 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
@@ -6421,9 +6425,9 @@
    % via babelname (such as biblatex)
    \cs_if_exist_use:c{captions at bbl@\babelname}
    \cs_if_exist_use:c{date at bbl@\babelname}
-   \polyglossia at local@marks:n{#2}
+   \__xpg_local_marks:n{#2}
    \csuse{init at 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 @@
 \def\select at language#1{}
 
 % Hook for external packages such as biblatex
+% do not rename!
 \def\polyglossia at language@switched{}
 
 % remove all custumization for language #1
@@ -6456,13 +6461,13 @@
     \noextrascurrent{\languagename}
     \cs_if_exist_use:c{no\languagename @numbers}
     \sys_if_engine_xetex:T{
-      \__xpg_if_LR_str:eTF{\prop_item:Ne{\polyglossia at 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 at 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 at langsetup}{#2/direction}}
+        \__xpg_if_LR_str:eT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
           {\setlatin} % RTL -> LTR
       }
     }
@@ -6469,11 +6474,11 @@
   }
   \polyglossia at set@language at name[#1]{#2}
   % Set the language's/script's font families
-  \str_if_eq:eeT{\prop_item:Nn{\polyglossia at 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 at set@normalfont{#2}
@@ -6482,7 +6487,7 @@
   \__xpg_use_or_warn:c{#2 at language}
   \cs_if_exist_use:c{#2 at numbers}
   \use at localhyphenmins[#1]{#2}
-  \xpg__french_spacing:n { #2 }
+  \__xpg_french_spacing:n { #2 }
 }
 
 
@@ -6493,14 +6498,14 @@
 %
 \clist_new:N \l_xpg_lang_stack
 
-\cs_new:Nn \polyglossia at stack@language:nn
+\cs_new:Nn \__xpg_stack_language:nn
 {
   \clist_gpush:Nn \l_xpg_lang_stack {#1:#2}
 }
 
-\cs_generate_variant:Nn \polyglossia at stack@language:nn {nx}
+\cs_generate_variant:Nn \__xpg_stack_language:nn {nx}
 
-\cs_new:Nn \polyglossia at 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 @@
      % 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 at 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 @@
   {
     % Get real current (pre-switch) options (incl. defaults)
     \clist_clear_new:N \l_xpg_current_options
+    \prop_if_exist:cF { xpg at current@options@\languagename }
+	{ \prop_new:c {xpg at current@options@\languagename} }
     \prop_map_inline:cn {xpg at current@options@\languagename}
       {
         \clist_put_right:Nn \l_xpg_current_options {##1=##2}
       }
     % Store current (pre-switch) options and language on stack
-    \polyglossia at 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 at unstack@language:n{xpg at set@language at only@aux}
+    \__xpg_unstack_language:n{xpg at set@language at only@aux}
   }
 
 \newcommand{\setlocalhyphenmins}[3]{
@@ -6552,17 +6559,17 @@
   \edef\xpg at tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
   \edef\xpg at tmp@lang{\xpg_alias_base_lang:n{#2}}
   \bgroup
-  \polyglossia at error@iflangnotloaded:n{\xpg at tmp@lang}
-  \polyglossia at set@keys:nn{\xpg at tmp@lang}{\xpg at tmp@opts}
+  \xpg_error_if_lang_not_loaded:n{\xpg at tmp@lang}
+  \__xpg_set_keys:nn{\xpg at tmp@lang}{\xpg at tmp@opts}
   % Store bcp47.tag at hypenmins
   \tl_if_blank:nTF {\xpg at tmp@opts}{%
     \ifcsundef{\csname xpg at tmp@lang\endcsname @g.bcp47.tag}{
-       \csedef{tmp at bcp47.tag}{\prop_item:Ne{\polyglossia at langsetup}{ \xpg at tmp@lang / bcp47 }}
+       \csedef{tmp at bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg at tmp@lang / bcp47 }}
     }{
        \csedef{tmp at bcp47.tag}{\csuse{#2 at g.bcp47.tag}}
     }
   }{
-    \csedef{tmp at bcp47.tag}{\prop_item:Ne{\polyglossia at langsetup}{ \xpg at tmp@lang / bcp47 }}
+    \csedef{tmp at bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg at tmp@lang / bcp47 }}
   }
   \csgdef{\csname tmp at bcp47.tag\endcsname @hyphenmins}{{#3}{#4}}
   \egroup
@@ -6571,17 +6578,17 @@
 % \use at localhypenmins[options]{lang}
 \newcommand*\use at localhyphenmins[2][]{
   \bgroup
-  \polyglossia at error@iflangnotloaded:n{#2}
-  \polyglossia at set@keys:nn{#2}{#1}
+  \xpg_error_if_lang_not_loaded:n{#2}
+  \__xpg_set_keys:nn{#2}{#1}
   % Use bcp47.tag at hypenmins
   \tl_if_blank:nTF {#1}{
     \ifcsundef{#2 at g.bcp47.tag}{
-       \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\polyglossia at langsetup}{ #2 / bcp47 }}
+       \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
     }{
        \csxdef{tmp at bcp47.tag}{\csuse{#2 at g.bcp47.tag}}
     }
   }{
-    \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\polyglossia at langsetup}{ #2 / bcp47 }}
+    \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
   }
   \egroup
   \ifcsundef{\csname tmp at bcp47.tag\endcsname @hyphenmins}{
@@ -6595,7 +6602,7 @@
    }
    \sys_if_engine_luatex:T{
      % Set \totalhyphenmin if specified
-     \prop_get:NeNTF \polyglossia at langsetup {#2/totalhyphenmin} \l_tmpa_tl
+     \prop_get:NeNTF \g_xpg_langsetup_prop {#2/totalhyphenmin} \l_tmpa_tl
      {
         \xpg at info{totalhyphenmin: '\l_tmpa_tl'}
         \expandafter\hyphenationmin \l_tmpa_tl
@@ -6615,7 +6622,7 @@
     \edef\xpg at tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
     \edef\xpg at tmp@lang{\xpg_alias_base_lang:n{#2}}
     % Register the language options
-    \polyglossia at set@lang at options:nnn {\xpg at tmp@lang} {\xpg at tmp@opts} {@xpg at set@langvariant}
+    \__xpg_set_language_options:nnn {\xpg at tmp@lang} {\xpg at tmp@opts} {@xpg at set@langvariant}
     % Now switch patterns
     \__xpg_use_or_warn:c{\use:c{xpg at tmp@lang}@language}
     % And activate hyphenmins
@@ -6624,10 +6631,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}}}$}
    }{}
 }
@@ -6636,7 +6643,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
@@ -6644,7 +6651,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
@@ -6652,12 +6659,12 @@
      .meta:n = { localmarks = false },
    
   babelshorthands
-     .bool_set:N = \l_polyglossia_babelshorthands_bool,
+     .legacy_if_set:n = system at 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 @@
 % 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 at info{Setting~ LuaTeX~ font~ renderer~ to~ \l_polyglossia_luatex_renderer}
-    \exp_args:Ne \defaultfontfeatures{Renderer=\l_polyglossia_luatex_renderer}
+    \xpg at 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 at info#1{\relax} % no latex info
    \gdef\@font at info#1{\relax} % no latex font info
    \gdef\@font at warning#1{\relax} % no latex font warnings
@@ -6692,8 +6699,8 @@
    \gdef\xpg at info#1{\relax} % no polyglossia info
 }
 
-\bool_if:nT \l_polyglossia_localmarks_bool {
-  \polyglossia at enable@local at marks:
+\bool_if:nT \g_xpg_localmarks_bool {
+  \__xpg_enable_local_marks:
 }
 
 % Control shorthand (de-)activation
@@ -6700,39 +6707,85 @@
 % 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 at activate@shorthands { O{"} }
 {
-  \seq_if_in:NnF \__xpg_active_shorthands { #1 }
+  \seq_if_in:NnF \g__xpg_active_shorthands_seq { #1 }
     {
      \bbl at activate{#1}
-     \seq_gpush:Nn \__xpg_active_shorthands { #1 }
+     \seq_gpush:Nn \g__xpg_active_shorthands_seq { #1 }
     }
 }
 
 \DeclareDocumentCommand \xpg at 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 at active@char}{\bbl at deactivate{#1}}
-     \seq_remove_all:Nn \__xpg_active_shorthands {#1}
+     \seq_remove_all:Nn \g__xpg_active_shorthands_seq {#1}
     }
 }
 
-% compatibility
-\newif\ifsystem at babelshorthands
-\bool_if:nTF \l_polyglossia_babelshorthands_bool {
-  \system at babelshorthandstrue
-}{
-  \system at 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 at loaded {\l__xpg_tmpa_lang_tl}{
+           \file_if_exist:nTF{gloss-\l__xpg_tmpa_lang_tl .ldf}
+              { \setotherlanguage{#1} }
+              { \xpg at 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 at loaded {\l__xpg_tmpb_lang_tl}{
+           \file_if_exist:nTF{gloss-\l__xpg_tmpb_lang_tl .ldf}
+              { \setotherlanguage{#2} }
+              { \xpg at 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 at 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 at option#1#2{
-  \ifcsundef{xpg at 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 at error{ Language~ #1,~ requested~ in~
+                       \string\startbabelshorthands,~ is~ not~ loaded }
+       }
+    }
+}
 
 %    \end{macrocode}
 % \iffalse
@@ -7441,7 +7494,7 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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,14 +8781,6 @@
 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
@@ -8742,6 +8787,7 @@
 
 -- predefined l at nohyphenation or LuaTeX's maximum value for \language
 local nohyphid = luatexbase.registernumber'l at nohyphenation' or 16383
+token.set_char('l at nohyphenation', nohyphid)
 
 -- key `nohyphenation` is for .sty file when possibly undefined l at nohyphenation
 local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -8853,14 +8899,9 @@
     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,56 +10061,6 @@
 %    \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
@@ -10076,7 +10067,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 at gmail.com>
 % TODO implement Bengali calendar
@@ -12118,7 +12109,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 
 \define at boolkey{finnish}[finnish@]{babelshorthands}[true]{}
 
-\define at boolkey{finnish}[finnish@]{schoolhyphens}[true]{}
+\newif\if at finnish@schoolhyphens
+\newif\if at finnish@babelhyphens
+\define at choicekey*+{finnish}{hyphens}[\xpg at val\xpg at nr]{default,school,babel}[default]{%
+   \ifcase\xpg at nr\relax
+      % default:
+      \@finnish at schoolhyphensfalse
+      \@finnish at babelhyphensfalse
+   \or
+      % school:
+      \@finnish at schoolhyphenstrue
+      \@finnish at babelhyphensfalse
+   \or
+      % babel:
+      \@finnish at schoolhyphensfalse
+      \@finnish at babelhyphenstrue
+   \fi
+   \xpg at info{Option: Finnish, hyphens=\xpg at val}%
+}{\xpg at warning{Unknown Finnish hyphens `#1'}}
 
+% backwards compatibility
+\define at boolkey{finnish}[finnish@]{schoolhyphens}[true]{%
+  \iffinnish at schoolhyphens
+      \@finnish at schoolhyphenstrue
+      \@finnish at babelhyphensfalse
+  \else
+      \@finnish at schoolhyphensfalse
+  \fi
+}
+
 % Register default options
-\xpg at initialize@gloss at options{finnish}{babelshorthands=false,schoolhyphens=false}
+\xpg at initialize@gloss at options{finnish}{babelshorthands=false,hyphens=default}
 
 \ifsystem at babelshorthands
   \setkeys{finnish}{babelshorthands=true}
@@ -15129,7 +15147,7 @@
   \declare at shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
   \declare at shorthand{finnish}{""}{\hskip\z at skip}%
   \declare at shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
-  \declare at shorthand{finnish}{"=}{\penalty\@M-\hskip\z at skip}%
+  \declare at shorthand{finnish}{"=}{\hbox{-}\bbl at allowhyphens}%
   \declare at shorthand{finnish}{"/}{\textormath
     {\bbl at allowhyphens\discretionary{/}{}{/}\bbl at allowhyphens}{}}%
 }
@@ -15164,7 +15182,7 @@
 }
 
 \def\finnish at language{%
-  \iffinnish at schoolhyphens
+  \if at finnish@schoolhyphens
       \xpg at ifdefined{schoolfinnish}{%
          \polyglossia at setup@language at patterns{schoolfinnish}%
       }{%
@@ -15177,6 +15195,28 @@
   \fi
 }
 
+% activate babel-style hyphen settings if requested
+\AtBeginDocument{%
+    \if at finnish@babelhyphens
+	\let\xpg at save@hyphenpenalty\hyphenpenalty%
+	\let\xpg at save@exhyphenpenalty\exhyphenpenalty%
+	\let\xpg at save@doublehyphendemerits\doublehyphendemerits%
+	\let\xpg at save@finalhyphendemerits\finalhyphendemerits%
+	\addto\blockextras at finnish{%
+	  \hyphenpenalty=30%
+	  \exhyphenpenalty=30%
+	  \doublehyphendemerits=5000%
+	  \finalhyphendemerits=5000%
+	}%
+	\addto\noextras at finnish{%
+	  \let\hyphenpenalty\xpg at save@hyphenpenalty%
+	  \let\exhyphenpenalty\xpg at save@exhyphenpenalty%
+	  \let\doublehyphendemerits\xpg at save@doublehyphendemerits%
+	  \let\finalhyphendemerits\xpg at save@finalhyphendemerits%
+	}%
+    \fi
+}
+
 \def\datefinnish{%
    \def\today{\number\day.~\ifcase\month\or
     tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
@@ -15205,7 +15245,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
          \renewcommand{\labelitemiii}{\french at itemiii}%
          \renewcommand{\labelitemiv}{\french at itemiv}%
       }{\xpg at warning{Option 'frenchitemlabels' only supported if French is main language!}}%
-    \else
-       \let\@makefntext\xpg at orig@makefntext
     \fi
     \@xpg at french@itemlabels at settrue%
   \fi%
@@ -15836,7 +15874,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
   \declare at shorthand{german}{"/}{\textormath
     {\bbl at allowhyphens\discretionary{/}{}{/}\bbl at allowhyphens}{}}%
   \def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
+  \def\mkgender{*}%
+  \declare at shorthand{german}{":}{\nobreak:\bbl at allowhyphens}%
+  \declare at shorthand{german}{"*}{\nobreak*\bbl at allowhyphens}%
+  \declare at shorthand{german}{"_}{\nobreak\_\bbl at allowhyphens}%
+  \declare at shorthand{german}{"x}{\nobreak\mkgender\bbl at allowhyphens}%
 }
 
 \def\nogerman at shorthands{%
@@ -16774,7 +16817,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 	bcp47-region=JP,
 	bcp47-script=Hrkt,
 	script=CJK,
+	scripttag=kana,
 	language=Japanese,
 	langtag=JAN,
 	hyphennames={nohyphenation},
@@ -18697,7 +18741,7 @@
 % 
 % \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 @@
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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,6 +20385,56 @@
 %    \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
@@ -20347,7 +20441,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 at gmail.com>
 
@@ -21653,7 +21747,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 at live.in>
 % Ordinals (1-100) added by Niranjan Tambe <niranjanvikastambe at gmail.com> on 14th December, 2019
@@ -22274,7 +22368,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 at pas.rochester.edu> and ଅଭିଷେକ ଜେନା <avisekjena at gmail.com>
 % TODO implement Odia calendar
@@ -23268,7 +23362,7 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 % 
 % \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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 @@
 %    \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,14 +30237,6 @@
 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
@@ -30157,6 +30243,7 @@
 
 -- predefined l at nohyphenation or LuaTeX's maximum value for \language
 local nohyphid = luatexbase.registernumber'l at nohyphenation' or 16383
+token.set_char('l at nohyphenation', nohyphid)
 
 -- key `nohyphenation` is for .sty file when possibly undefined l at nohyphenation
 local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -30268,14 +30355,9 @@
     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>

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-acadien.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-aeb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-af.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-afrikaans.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-albanian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-am.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-american.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-amharic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-apd.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-IQ.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-JO.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-LB.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-MR.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-PS.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-SY.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar-YE.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ar.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arabic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-armenian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arq.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ary.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-arz.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ast.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-asturian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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>

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-australian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-austrian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ayl.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasa.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasai.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bahasam.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-basque.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be-tarask.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-be.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-belarusian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bengali.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at gmail.com>
 % TODO implement Bengali calendar

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bg.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bn.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bo.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bosnian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-br.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-brazil.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-breton.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-british.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bs.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-bulgarian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ca.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-canadien.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-catalan.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-chinese.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Arab.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb-Latn.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ckb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cop.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-coptic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-croatian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cy.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-cz.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-czech.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-da.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-danish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1901.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT-1996.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-AT.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1901.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH-1996.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-CH.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1901.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE-1996.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-DE.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1901.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT-1996.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-AT.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1901.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH-1996.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-CH.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1901.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE-1996.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf-DE.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de-Latf.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-de.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-divehi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dsb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dutch.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-dv.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-monoton.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el-polyton.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-el.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-AU.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-CA.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-GB.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-NZ.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en-US.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-en.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-english.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eo.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-ES.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es-MX.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-es.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-esperanto.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-estonian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-et.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-eu.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fa.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-farsi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-finnish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at boolkey{finnish}[finnish@]{babelshorthands}[true]{}
 
-\define at boolkey{finnish}[finnish@]{schoolhyphens}[true]{}
+\newif\if at finnish@schoolhyphens
+\newif\if at finnish@babelhyphens
+\define at choicekey*+{finnish}{hyphens}[\xpg at val\xpg at nr]{default,school,babel}[default]{%
+   \ifcase\xpg at nr\relax
+      % default:
+      \@finnish at schoolhyphensfalse
+      \@finnish at babelhyphensfalse
+   \or
+      % school:
+      \@finnish at schoolhyphenstrue
+      \@finnish at babelhyphensfalse
+   \or
+      % babel:
+      \@finnish at schoolhyphensfalse
+      \@finnish at babelhyphenstrue
+   \fi
+   \xpg at info{Option: Finnish, hyphens=\xpg at val}%
+}{\xpg at warning{Unknown Finnish hyphens `#1'}}
 
+% backwards compatibility
+\define at boolkey{finnish}[finnish@]{schoolhyphens}[true]{%
+  \iffinnish at schoolhyphens
+      \@finnish at schoolhyphenstrue
+      \@finnish at babelhyphensfalse
+  \else
+      \@finnish at schoolhyphensfalse
+  \fi
+}
+
 % Register default options
-\xpg at initialize@gloss at options{finnish}{babelshorthands=false,schoolhyphens=false}
+\xpg at initialize@gloss at options{finnish}{babelshorthands=false,hyphens=default}
 
 \ifsystem at babelshorthands
   \setkeys{finnish}{babelshorthands=true}
@@ -42,7 +69,7 @@
   \declare at shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
   \declare at shorthand{finnish}{""}{\hskip\z at skip}%
   \declare at shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
-  \declare at shorthand{finnish}{"=}{\penalty\@M-\hskip\z at skip}%
+  \declare at shorthand{finnish}{"=}{\hbox{-}\bbl at allowhyphens}%
   \declare at shorthand{finnish}{"/}{\textormath
     {\bbl at allowhyphens\discretionary{/}{}{/}\bbl at allowhyphens}{}}%
 }
@@ -77,7 +104,7 @@
 }
 
 \def\finnish at language{%
-  \iffinnish at schoolhyphens
+  \if at finnish@schoolhyphens
       \xpg at ifdefined{schoolfinnish}{%
          \polyglossia at setup@language at patterns{schoolfinnish}%
       }{%
@@ -90,6 +117,28 @@
   \fi
 }
 
+% activate babel-style hyphen settings if requested
+\AtBeginDocument{%
+    \if at finnish@babelhyphens
+	\let\xpg at save@hyphenpenalty\hyphenpenalty%
+	\let\xpg at save@exhyphenpenalty\exhyphenpenalty%
+	\let\xpg at save@doublehyphendemerits\doublehyphendemerits%
+	\let\xpg at save@finalhyphendemerits\finalhyphendemerits%
+	\addto\blockextras at finnish{%
+	  \hyphenpenalty=30%
+	  \exhyphenpenalty=30%
+	  \doublehyphendemerits=5000%
+	  \finalhyphendemerits=5000%
+	}%
+	\addto\noextras at finnish{%
+	  \let\hyphenpenalty\xpg at save@hyphenpenalty%
+	  \let\exhyphenpenalty\xpg at save@exhyphenpenalty%
+	  \let\doublehyphendemerits\xpg at save@doublehyphendemerits%
+	  \let\finalhyphendemerits\xpg at 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 at savevariable\hyphenpenalty\hyphenpenalty=30%
-  \babel at savevariable\exhyphenpenalty\exhyphenpenalty=30%
-  \babel at savevariable\doublehyphendemerits\doublehyphendemerits=5000%
-  \babel at savevariable\finalhyphendemerits\finalhyphendemerits=5000%
-}

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA-u-sd-canb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CA.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-CH.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr-FR.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fr.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at itemiii}%
          \renewcommand{\labelitemiv}{\french at itemiv}%
       }{\xpg at warning{Option 'frenchitemlabels' only supported if French is main language!}}%
-    \else
-       \let\@makefntext\xpg at orig@makefntext
     \fi
     \@xpg at french@itemlabels at settrue%
   \fi%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulan.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-friulian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-fur.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ga.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gaelic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-galician.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gd.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-georgian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-german.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at shorthand{german}{"/}{\textormath
     {\bbl at allowhyphens\discretionary{/}{}{/}\bbl at allowhyphens}{}}%
   \def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
+  \def\mkgender{*}%
+  \declare at shorthand{german}{":}{\nobreak:\bbl at allowhyphens}%
+  \declare at shorthand{german}{"*}{\nobreak*\bbl at allowhyphens}%
+  \declare at shorthand{german}{"_}{\nobreak\_\bbl at allowhyphens}%
+  \declare at shorthand{german}{"x}{\nobreak\mkgender\bbl at allowhyphens}%
 }
 
 \def\nogerman at shorthands{%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-germanb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-gl.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-grc.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-greek.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-he.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hindi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hr.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hsb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hu.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hungarian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hy.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ia.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-icelandic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-id.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-interlingua.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-irish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-is.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-it.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-italian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ja.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-japanese.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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},

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ka.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kannada.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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>,

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-khmer.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-km.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Arab.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr-Latn.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kmr.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kn.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ko.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-korean.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Arab.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku-Latn.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ku.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurdish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-kurmanji.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-classic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-ecclesia.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la-x-medieval.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-la.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lao.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Deleted: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.lde	2024-02-17 20:51:46 UTC (rev 69941)
@@ -1,42 +0,0 @@
-% 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}%
-}
-
-
-\endinput

Added: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -0,0 +1,42 @@
+% 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}%
+}
+
+
+\endinput


Property changes on: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latex.ldf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinclassic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinecclesiastic.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latinmedieval.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latvian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lithuanian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at gmail.com>
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lo.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lowersorbian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lsorbian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lt.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-lv.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-macedonian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-magyar.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malay.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-malayalam.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-marathi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at live.in>
 % Ordinals (1-100) added by Niranjan Tambe <niranjanvikastambe at gmail.com> on 14th December, 2019

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mk.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ml.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mn.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mongolian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-mr.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-naustrian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nb.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-newzealand.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ngerman.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nko.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norsk.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-norwegian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}{

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nswissgerman.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-nynorsk.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-occitan.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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',

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-odia.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 at pas.rochester.edu> and ଅଭିଷେକ ଜେନା <avisekjena at gmail.com>
 % TODO implement Odia calendar

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-or.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-pa.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-persian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-piedmontese.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polutonikogreek.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuges.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-portuguese.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-punjabi.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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>

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romanian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-romansh.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-russian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sami.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-samin.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sanskrit.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-scottish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-serbianc.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovak.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovene.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-slovenian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-sorbian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-spanishmx.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swedish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-swissgerman.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-syriac.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tamil.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-telugu.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-thai.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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:

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-tibetan.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkish.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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}

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-turkmen.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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>

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ug.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-ukrainian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uppersorbian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-urdu.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-usorbian.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-uyghur.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-vietnamese.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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 >

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-welsh.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-CN.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-zh-TW.ldf	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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)]
 

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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')

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-korean.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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"

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-latin.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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')

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-punct.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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...

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-sanskrit.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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')

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia-tibt.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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...

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.lua	2024-02-17 20:51:46 UTC (rev 69941)
@@ -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,14 +26,6 @@
 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
@@ -40,6 +32,7 @@
 
 -- predefined l at nohyphenation or LuaTeX's maximum value for \language
 local nohyphid = luatexbase.registernumber'l at nohyphenation' or 16383
+token.set_char('l at nohyphenation', nohyphid)
 
 -- key `nohyphenation` is for .sty file when possibly undefined l at nohyphenation
 local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -151,11 +144,6 @@
     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

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty	2024-02-17 16:38:39 UTC (rev 69940)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty	2024-02-17 20:51:46 UTC (rev 69941)
@@ -1,7 +1,8 @@
 \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
@@ -8,36 +9,43 @@
 \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
 
-\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 at 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 at set@language\xpg at set@language at aux  % for biblatex
-  \let\bbl at main@language\xpg at main@language    % for biblatex
-  \providecommand\texorpdfstring[2]{#1}       % dummy command if hyperref is not loaded
+  \cs_gset_eq:NN \bbl at set@language \xpg at set@language at aux  % for biblatex
+  \cs_gset_eq:NN \bbl at main@language \xpg at 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 at nohyphenation, assigned to 255
+%%  (suggestion by Enrico Gregorio)
+%% \l at 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 at nohyphenation } 
+	   { \chardef\l at nohyphenation=255 }
+  }
 
 % Which version of XeTeX do we use? What is the boudary class? 4095 or 255
-\@ifundefined{e at alloc@intercharclass at top}
-  {\chardef\xpg at boundaryclass=\@cclv}
-  {\let\xpg at boundaryclass=\e at alloc@intercharclass at top}
+\cs_if_exist:cTF { e at alloc@intercharclass at top }
+  { \let\xpg at boundaryclass=\e at alloc@intercharclass at top }
+  { \chardef\xpg at boundaryclass=\@cclv }
 
 % Useful for getting list of loaded languages and variants. Like babel's bbl at loaded
 % all language loaded
@@ -51,17 +59,26 @@
 % list of loaded languages (bcp-47 id)
 \clist_new:N \xpg at bcp@loaded
 
-% counter in latin
-\def\latinalph#1{\expandafter\latin at alph\csname c@#1\endcsname}
-\def\latinAlph#1{\expandafter\latin at Alph\csname c@#1\endcsname}
+% output counter as lower-case latin letter
+\DeclareExpandableDocumentCommand \latinalph { m }
+{
+    \exp_args:Nc \latin at alph {c@#1}
+}
+% output counter as upper-case latin letter
+\DeclareExpandableDocumentCommand \latinAlph { m }
+{
+    \exp_args:Nc \latin at Alph {c@#1}
+}
 
+%% Internal hooks
 % select language hook
-\cs_new_nopar:Nn \polyglossia at AtBeginDocument@selectlanguage: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_selectlanguage: {}
 % \disablehyphenation hook
-\cs_new_nopar:Nn \polyglossia at AtBeginDocument@hyphenation: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_hyphenation: {}
 
 % hook to be executed at begin of document
-\cs_new_nopar:Nn \polyglossia at AtBeginDocument: {
+\cs_new_nopar:Nn \__xpg_at_begin_document:
+{
   % save various command
   \let\latin at alph\@alph   % TODO rename when we have the C locale
   \let\latin at Alph\@Alph   % TODO rename when we have the C locale
@@ -69,22 +86,25 @@
   \let\polyglossia at Clang@@arabic\@arabic
   \let\polyglossia at Clang@arabic\arabic
   
-  \xpg at initial@setup
+  \xpg_initial_setup:
   % apply \familydefault changes
   \xpg at set@familydefault
 }
 
-\AtBeginDocument{
-  \polyglossia at 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 at 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 at AtBeginDocument@hyphenation:
+  \__xpg_at_begin_document_hyphenation:
 }
 
 %% custom message macros
@@ -117,7 +137,7 @@
   \xpg at warning{Illegal~ value~ (#1)~ for~ #2}}
 
 % error out if lang is not loaded
-\cs_new_nopar:Nn \polyglossia at error@iflangnotloaded:n
+\cs_new_nopar:Nn \xpg_error_if_lang_not_loaded:n
 {
   \seq_if_in:NeF \__xpg_langs_loaded {#1}
   {
@@ -137,8 +157,17 @@
 }
 \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 at maindir#1{\ifcsundef{@ensure at maindir}{#1}{\@ensure at 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 at setpardirection:n}{
+\cs_new_nopar:Nn \__xpg_set_par_direction:n
+{
   \__xpg_if_LR_str:nF {#1}
   {
     \xpg at error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
   }
 }
-\cs_new_nopar:Nn{\polyglossia at settextdirection:n}{
+\cs_new_nopar:Nn \__xpg_set_text_direction:n
+{
   \__xpg_if_LR_str:nF {#1}
   {
     \xpg at 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 at 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 at 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 at 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 at settextdirection:n}{
+  \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+  {
     \__xpg_if_LR_str:nTF{#1}
     {
       \LRE
@@ -256,11 +291,10 @@
 %% TODO: localalph = {<alph_csname>,<Alph_csname>}
 %% TODO: localnumeral = <csname>
 %%       or even better localdigits = {0123456789} for fully automatic setup
-\newif\if at xpg@language at really@defined@
 \newcommand*\PolyglossiaSetup[2]{
-  \polyglossia at 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 at setup@done}%
   % we initialize these so that we can use \gappto below
@@ -267,7 +301,7 @@
   \csgdef{init at extras@#1}{}
   \csgdef{init at 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 at setup@done}
   % register base alias
   \xpg_language_alias { #1 } { #1 }
@@ -286,8 +320,9 @@
 
 
 % 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 at 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
@@ -294,7 +329,7 @@
   \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 at langsetup {#1 / hyphenmins} }
+    { \prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphenmins} }
   \cs_if_eq:cNF {l@#1} \l at nohyphenation
     {
       \use:x
@@ -344,8 +379,9 @@
 }
 
 \newcommand*\polyglossia at setup@language at patterns[1]{
-  \ifbool{xpg at hyphenation@disabled}{
-    \xdef\xpg at 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 at langsetup
+\prop_new:N \g_xpg_langsetup_prop
 
-\cs_new_protected:Npn \polyglossia at 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 at langsetup}{#1/script}{##1}
-          \prop_gput:Nne{\polyglossia at 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,7 +426,7 @@
        .initial:n = latin,
     % the opentype script tag
     #1 / scripttag
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/scripttag}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/scripttag}{##1}},
     #1 / scripttag
        .default:n = {},
     #1 / scripttag
@@ -396,7 +433,7 @@
       .initial:n = {},
     % the language full name
     #1 / language
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/language}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/language}{##1}},
     #1 / language
        .value_required:n = true,
     #1 / language
@@ -403,7 +440,7 @@
         .initial:x = {\str_uppercase:n#1},
     % the language tag
     #1 / langtag
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/langtag}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/langtag}{##1}},
     #1 / langtag
        .value_required:n = true,
     #1 / langtag
@@ -410,7 +447,7 @@
        .initial:n = {},
     % the BCP-47 tag
     #1 / bcp47
-       .code:n = {\prop_gput:Nnn{\polyglossia at langsetup}{#1/bcp47}{##1}},
+       .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47}{##1}},
     #1 / bcp47
        .value_required:n = true,
     #1 / bcp47
@@ -417,7 +454,7 @@
        .initial:n = {},
     % the BCP-47 language tag
     #1 / bcp47-language
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -424,7 +461,7 @@
        .initial:n = {},
     % the BCP-47 region tag
     #1 / bcp47-region
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -431,7 +468,7 @@
        .initial:n = {},
     % the BCP-47 script tag
     #1 / bcp47-script
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -438,7 +475,7 @@
        .initial:n = {},
     % the BCP-47 variant tag
     #1 / bcp47-variant
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -445,7 +482,7 @@
        .initial:n = {},
     % the BCP-47 extension-t tag
     #1 / bcp47-extension-t
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -452,7 +489,7 @@
        .initial:n = {},
     % the BCP-47 extension-u tag
     #1 / bcp47-extension-u
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -459,7 +496,7 @@
        .initial:n = {},
     % the BCP-47 extension-x tag
     #1 / bcp47-extension-x
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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
@@ -466,7 +503,7 @@
        .initial:n = {},
     % the BCP-47 casing alias
     #1 / bcp47-casing
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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 at 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 at langsetup}{#1/direction}{##1}}
+           {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/direction}{##1}}
            {\xpg at error{Unknown~ direction~ "##1"~ for~ language~ "#1"}}
        },
     #1 / direction
@@ -502,7 +539,7 @@
       \int_compare:nNnF { \clist_count:n {##1} } = {2}
         {\xpg at error{hypenmins~should~be~a~list~of~two~entries,~got~"##1"}}
       % set prop
-      \prop_gput:Nnn \polyglossia at 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 at error{totalhyphenhypenmin~should~be~a~single~entry,~got~"##1"}}
       % set prop
-      \prop_gput:Nnn \polyglossia at langsetup {#1/totalhyphenmin} {##1}
+      \prop_gput:Nnn \g_xpg_langsetup_prop {#1/totalhyphenmin} {##1}
     },
     #1 / totalhyphenmin
       .value_required:n = false,
@@ -534,7 +571,7 @@
     % environment name
     #1 / envname
        .code:n = {
-           \prop_gput:Nnn{\polyglossia at 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},
@@ -541,7 +578,7 @@
     % babel name
     #1 / babelname
        .code:n = {
-           \prop_gput:Nnn{\polyglossia at 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},
@@ -548,8 +585,8 @@
     % default numerals
     #1 / localnumeral
          . code:n =  {
-            \prop_gput:Nnn{\polyglossia at langsetup}{#1/localnumeral}{##1}
-            \prop_gput:Nnn{\polyglossia at 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 at C@localnumeral},
@@ -556,13 +593,13 @@
     % uppercased
     #1 / Localnumeral
          . code:n =  {
-            \prop_gput:Nnn{\polyglossia at 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 at C@localnumeral},
     % environment define command (by default create the environment)
     #1 / DefineCommandsCmd
-       .code:n = {\prop_gput:Nnn{\polyglossia at 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 at 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 at 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,62 +659,70 @@
 	  }
   }
 
-\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 at indent } { \nofrench at indent }
   }
 
-\cs_new:Nn{\polyglossia at lang@setpardirection:n}{
-  \prop_get:NeNTF \polyglossia at 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 at setpardirection:n{\l_tmpa_tl}
+        \__xpg_set_par_direction:n{\l_tmpa_tl}
       }
       {
         \xpg at error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
-        \prop_show:N{\polyglossia at langsetup}
+        \prop_show:N{\g_xpg_langsetup_prop}
       }
 }
 
 
-\cs_new:Nn{\polyglossia at lang@settextdirection:nn}{
-  \prop_get:NeNTF \polyglossia at 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 at settextdirection:n{\l_tmpa_tl}{#2}
+        \__xpg_set_text_direction:n{\l_tmpa_tl}{#2}
       }
       {
         \xpg at error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
-        \prop_show:N{\polyglossia at langsetup}
+        \prop_show:N{\g_xpg_langsetup_prop}
       }
 }
 
-\def\xpg at lastlanguage{0}
+\tl_new:N \g__xpg_lastlanguage_tl
+\tl_set:Nn \g__xpg_lastlanguage_tl { 0 }
 
-\providebool{xpg at hyphenation@disabled}
-\boolfalse{xpg at hyphenation@disabled}
+% Track whether hyphenation is disabled
+\bool_new:N \g__xpg_hyphenation_disabled_bool
 
-\def\xpg at 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 at 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 at hyphenation@disabled}{}{
-    \booltrue{xpg at hyphenation@disabled}
-    \xdef\xpg at 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 at set@hyphenation at patterns here to avoid a warning message.
     % "nohyphenation" is not listed in language.dat.lua.
     \language=\l at nohyphenation
@@ -681,24 +729,20 @@
   }
 }
 
-\def\xpg at enablehyphenation{
-  \ifbool{xpg at hyphenation@disabled}{
-    \boolfalse{xpg at hyphenation@disabled}
-    \language=\csname xpg at 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 at disablehyphenation
-\let\enablehyphenation\xpg at enablehyphenation
-
-%\def\xpg at fontsetup#1{\xpg at csifdef@warn{xpg at fontsetup@#1}}
-%\def\xpg at fontsetup@none#1{\csgdef{#1 at font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg at fontsetup@custom#1{\csuse{#1 at 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 at langsetup}{#1/lcscript}}{latin}
+    \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
          {\xpg at fontsetup@latin{#1}}
          {\xpg at 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 at 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 at warning{Asking~ to~ add~ empty~ feature~to~ latin~ font~
+    \xpg at warning{Asking~ to~ add~ empty~ feature~to~ main~ font~
       (Language="#2"~ to~ langtag~ "#1")}
   }
   {
@@ -738,15 +783,16 @@
     }
   }
 }
-\cs_generate_variant:Nn  \polyglossia at 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 at 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 at warning{Asking~ to~ add~ empty~ feature~to~ latin~ font
+    \xpg at warning{Asking~ to~ add~ empty~ feature~to~ main~ font
                  (Script="#3"~ to~ scripttag~ "#2")}
   }
   {
@@ -753,30 +799,44 @@
     \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 at 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 at 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 at fontsetup@latin#1{
   \begingroup
@@ -783,22 +843,22 @@
   \csgdef{#1 at font@rm}{
     \cs_if_exist_use:cF{#1font}{
       \rmfamilylatin
-      \polyglossia at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at font@sf}{
     \cs_if_exist_use:cF{#1fontsf}{
       \sffamilylatin
-      \polyglossia at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at font@tt}{
     \cs_if_exist_use:cF{#1fonttt}{
       \ttfamilylatin
-      \polyglossia at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at use@script at font}
-       \str_if_eq:nnTF{\prop_item:Nn{\polyglossia at langsetup}{#1/script}}{\prop_item:Nn{\polyglossia at 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 at langsetup}{#1/lcscript} font}
+        {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} font}
           {
              \toggletrue{#1 at use@script at font}
            }
@@ -821,12 +881,12 @@
            }
        }
        \iftoggle{#1 at use@script at font}{}{
-           \polyglossia at addfontfeature@script:nxx{rm}
-                                                 {\prop_item:Nn{\polyglossia at langsetup}{#1/scripttag}}
-                                                 {\prop_item:Nn{\polyglossia at 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 at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at use@script at fontsf}
-       \str_if_eq:nnTF{\prop_item:Nn{\polyglossia at langsetup}{#1/script}}{\prop_item:Nn{\polyglossia at 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 at langsetup}{#1/lcscript} fontsf}
+        {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fontsf}
           {
              \toggletrue{#1 at use@script at fontsf}
            }
@@ -845,12 +905,12 @@
            }
        }
        \iftoggle{#1 at use@script at fontsf}{}{
-           \polyglossia at addfontfeature@script:nxx{sf}
-                                                 {\prop_item:Nn{\polyglossia at langsetup}{#1/scripttag}}
-                                                 {\prop_item:Nn{\polyglossia at 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 at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at use@script at fonttt}
-       \str_if_eq:nnTF{\prop_item:Nn{\polyglossia at langsetup}{#1/script}}{\prop_item:Nn{\polyglossia at 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 at langsetup}{#1/lcscript} fonttt}
+       {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fonttt}
            {
              \toggletrue{#1 at use@script at fonttt}
            }
@@ -869,12 +929,12 @@
            }
        }
        \iftoggle{#1 at use@script at fonttt}{}{
-           \polyglossia at addfontfeature@script:nxx{tt}
-                                                 {\prop_item:Nn{\polyglossia at langsetup}{#1/scripttag}}
-                                                 {\prop_item:Nn{\polyglossia at 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 at addfontfeature@language:xx{\prop_item:Nn{\polyglossia at langsetup}{#1/langtag}}
-                                              {\prop_item:Nn{\polyglossia at 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 at local@marks:n} {}
-\cs_new_nopar:Nn {\polyglossia at enable@local at marks:}
+\cs_new_nopar:Nn \__xpg_local_marks:n { }
+\cs_new_nopar:Nn \__xpg_enable_local_marks:
 {
-      \xpg at info{Option:~ localmarks}
-      \cs_gset_nopar:Nn \polyglossia at local@marks:n
-      {%
-         \def\xpg at tmp@lang{##1}
-         \DeclareRobustCommand\markboth[2]{
-            \begingroup
-               \let\label\relax \let\index\relax \let\glossary\relax
-               \unrestored at protected@xdef\@themark
-               {%
-                {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
-                {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####2}}}
-               }%
-               \@temptokena \expandafter{\@themark}
-               \mark{\the\@temptokena}
-            \endgroup
-            \if at nobreak\ifvmode\nobreak\fi\fi
-         }%
-         \DeclareRobustCommand\markright[1]{
-            \begingroup
-               \let\label\relax \let\index\relax \let\glossary\relax
-               \expandafter\@markright\@themark
-               {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
-               \@temptokena \expandafter{\@themark}
-               \mark{\the\@temptokena}
-            \endgroup
-            \if at 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 at maindir{####1}}%
-%            \unrestored at protected@xdef\@themark{%
-%               {\the\@temptokena}%
-%               {\protect\@@ensure at maindir{####3}}%
-%            }%
-%         }%
-      }%
+  \xpg at info{Option:~ localmarks}
+  \cs_gset_nopar:Nn \__xpg_local_marks:n
+  {
+	 \def\xpg at tmp@lang{##1}
+	 \DeclareRobustCommand\markboth[2]{
+		\begingroup
+		   \let\label\relax \let\index\relax \let\glossary\relax
+		   \unrestored at protected@xdef\@themark
+		   {
+			{\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
+			{\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####2}}}
+		   }
+		   \@temptokena \expandafter{\@themark}
+		   \mark{\the\@temptokena}
+		\endgroup
+		\if at nobreak\ifvmode\nobreak\fi\fi
+	 }
+	 \DeclareRobustCommand\markright[1]{
+		\begingroup
+		   \let\label\relax \let\index\relax \let\glossary\relax
+		   \expandafter\@markright\@themark
+		   {\lowercase{\foreignlanguage{\xpg at tmp@lang}}{\protect\@@ensure at maindir{####1}}}
+		   \@temptokena \expandafter{\@themark}
+		   \mark{\the\@temptokena}
+		\endgroup
+		\if at 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 at normalclass %TODO
-}{}
-
-%% when no patterns are available, we use \l at nohyphenation, assigned to 255
-%%  (suggestion by Enrico Gregorio)
-\sys_if_engine_luatex:TF
-    {
-      \@ifundefined{l at nohyphenation}
-        {\chardef\l at nohyphenation=\directlua{
-           tex.sprint(polyglossia.newloader_loaded_languages.nohyphenation)}\relax
-        }
-        {}
-    }
-    {
-      \@ifundefined{l at nohyphenation}{\chardef\l at nohyphenation=255 }{}
-    }
-
 %we call this macro when a gloss file is not found for a given language
 \def\xpg at nogloss#1{
-   \xpg at warning{Neither~ file~ gloss-#1.ldf~ nor file~ gloss-#1.lde~ exists!\MessageBreak
+   \xpg at 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 at saved@at at catcode
 }
 
-%% Load a lde file
-\cs_new_nopar:Nn \__xpg_gloss_ext: {lde}
-\cs_new_nopar:Ne \__xpg_saved_ at 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_ at 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_ at 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_ at 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 at restore@tilde at catcode{\catcode 126 = \the\catcode 126\relax}
-      \catcode 126 = 13
-      \xpg at input{gloss-#2.ldf}
-      \setkeys{#2}{#1}
-      % restore former ~ catcode
-      \xpg at restore@tilde at catcode
-    }
-    {
-      \xpg at nogloss{#2}
-    }
-  }
+\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 at restore@tilde at catcode{\catcode 126 = \the\catcode 126\relax}
+	  \catcode 126 = 13
+	  \xpg at input{gloss-#2.ldf}
+	  \setkeys{#2}{#1}
+	  % restore former ~ catcode
+	  \xpg at restore@tilde at catcode
+	}
+	{
+	  \xpg at 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_generate_variant:Nn \__xpg_load_lang_definition:nn { ee }
 
 % load a master language from an alias file
 \newcommand*\xpg at load@master at language[1] {
-  \file_if_exist:nTF{gloss-#1.lde}
-  {
-    \RequireLanguageDefinitionExtension{#1}
-  }
-  {
-    \xpg at input{gloss-#1.ldf}
-  }
+  \xpg at 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 at langsetup}
+      \use:c{\prop_item:Nn{\g_xpg_langsetup_prop}
                           {#1/DefineCommandsCmd}}
                           {#1}
       }
   }
-  \polyglossia at 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 at 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 at 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 at register@language:nn {
+\cs_new:Nn \__xpg_register_language:nn
+{
   \clist_if_in:NeF \xpg at loaded {#2}{
     \clist_gput_right:Ne \xpg at loaded {#2}
   }
   % Register the language options
-  \polyglossia at set@lang at options:nnn {#2} {#1} {@xpg at set@langvariant}
+  \__xpg_set_language_options:nnn {#2} {#1} {@xpg at set@langvariant}
   % register babelname
-  \prop_get:NeN \polyglossia at langsetup {#2/babelname} \l_tmpa_tl
+  \prop_get:NeN \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
   \clist_if_in:NeF \xpg at bloaded {\l_tmpa_tl}{
     \clist_gput_right:Ne \xpg at bloaded {\l_tmpa_tl}
   }
   % register BCP-47 ID
-  \prop_get:NeN \polyglossia at langsetup {#2/bcp47} \l_tmpa_tl
+  \prop_get:NeN \g_xpg_langsetup_prop {#2/bcp47} \l_tmpa_tl
   \clist_if_in:NeF \xpg at bcp@loaded {\l_tmpa_tl}{
     \clist_gput_right:Ne \xpg at 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 at 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 at set@default at 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 at set@default at language:nn
+\cs_new:Nn \__xpg_set_default_language:nn
 {
   \gdef\xpg at main@language{#2}
   \tl_if_blank:nTF {#1}
@@ -1271,16 +1241,16 @@
   }
   {
      % Register the language options
-     \polyglossia at set@lang at options:nnn {#2} {#1} {@xpg at main@langvariant}
+     \__xpg_set_language_options:nnn {#2} {#1} {@xpg at main@langvariant}
   }
   \csgdef{#2 at 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 at langsetup}{#2/direction}}
+  \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
   {
     \__xpg_setRTLmain:
   }
-  \cs_gset_nopar:Nn \polyglossia at 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 at 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 at 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 at langsetup { #2 / bcp47 } }
-  \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-language } }
-  \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-region } }
-  \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-script } }
-  \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-variant } }
-  \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47extension-t } }
-  \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn  \polyglossia at langsetup { #2 / bcp47-extension-u } }
-  \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn  \polyglossia at 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 at 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 at 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 at g.bcp47.extension.u}{bcp47.extension.u}
   \cs_gset_eq:cc{#2 at g.bcp47.extension.x}{bcp47.extension.x}
   \cs_gset_eq:cc{#2 at 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 at gvar}{\def\languagevariant{}}{\def\languagevariant{\csuse{#2 at gvar}}}
    }{
      % Register the language options
-     \polyglossia at set@lang at options:nnn {#2} {#1} {@xpg at set@langvariant}
-     \cs_set_eq:cc{#2 at gvar}{languagevariant}
+     \__xpg_set_language_options:nnn {#2} {#1} {@xpg at set@langvariant}
+     \cs_set_eq:cc{#2 at var}{languagevariant}
   }%
 }
 
 
 \newcommand*{\resetdefaultlanguage}[2][]{
-  \polyglossia at reset@default at language:nn
+  \__xpg_reset_default_language:nn
     {\xpg_alias_add_to_option_i:nn{#2}{#1}}
     {\xpg_alias_base_lang:n{#2}}
 }
@@ -1435,49 +1400,49 @@
   \tl_if_blank:nTF {#1}{
     % tag (e.g., en-US)
     \ifcsundef{#2 at g.bcp47.tag}{
-       \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47 } }
+       \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
     }{
        \csedef{bcp47.tag}{\csuse{#2 at g.bcp47.tag}}
     }
     % language (e.g., en)
     \ifcsundef{#2 at g.bcp47.language}{
-       \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-language } }
+       \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
     }{
        \csedef{bcp47.language}{\csuse{#2 at g.bcp47.language}}
     }
     % region (e.g., US)
     \ifcsundef{#2 at g.bcp47.region}{%
-       \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-region } }
+       \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
     }{
        \csedef{bcp47.region}{\csuse{#2 at g.bcp47.region}}%
     }
     % script (e.g., Latn)
     \ifcsundef{#2 at g.bcp47.script}{
-       \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-script } }
+       \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
     }{
        \csedef{bcp47.script}{\csuse{#2 at g.bcp47.script}}
     }
     % variant (e.g., 1996)
     \ifcsundef{#2 at g.bcp47.variant}{
-       \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-variant } }
+       \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
     }{
        \csedef{bcp47.variant}{\csuse{#2 at g.bcp47.variant}}
     }
     % extension.t (tranformation)
     \ifcsundef{#2 at g.bcp47.extension.t}{%
-       \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia at 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 at g.bcp47.extension.t}}
     }
     % extension.u (additional locale information)
     \ifcsundef{#2 at g.bcp47.extension.u}{%
-       \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia at 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 at g.bcp47.extension.u}}
     }
     % extension.x (private use area)
     \ifcsundef{#2 at g.bcp47.extension.x}{
-       \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia at 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 at g.bcp47.extension.x}}
     }
@@ -1484,7 +1449,7 @@
     % casing
     \ifcsundef{#2 at 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 at 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,16 +1457,16 @@
        \csedef{bcp47.casing}{\csuse{#2 at g.bcp47.casing}}
     }
   }{
-    \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47 } }
-    \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-language } }
-    \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-region } }
-    \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-script } }
-    \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-variant } }
-    \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-extension-t } }
-    \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia at langsetup}{ #2 / bcp47-extension-u } }
-    \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia at 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 at 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 } }
@@ -1508,9 +1473,9 @@
   }
 }
 
-\cs_new:Nn \polyglossia at reset@default at language:nn
+\cs_new:Nn \__xpg_reset_default_language:nn
 {
-  \polyglossia at error@iflangnotloaded:n{#2}
+  \xpg_error_if_lang_not_loaded:n{#2}
   % disable globalnumbers of previously defined default language
   \csuse{no\xpg at main@language @globalnumbers}
   \csuse{noextras@\xpg at main@language}%
@@ -1519,7 +1484,7 @@
   \cs_if_exist_use:c{noextras at bbl@\mainbabelname}%
   \csuse{init at noextras@\xpg at main@language}%
   \polyglossia at set@language at name[#1]{#2}%
-  \__xpg_if_LR_str:eF{\prop_item:Ne{\polyglossia at langsetup}{#2/direction}}
+  \__xpg_if_LR_str:eF{\prop_item:Ne{\g_xpg_langsetup_prop}{#2/direction}}
   {
     \@rlmaintrue\@rl at footnotetrue
   }
@@ -1528,23 +1493,26 @@
   % Store babelname of current language (for external packages such as biblatex)
   \tl_if_blank:nTF {#1}{%
     \ifcsundef{#2 at gbabelname}{
-       \edef\babelname{\prop_item:Nn{\polyglossia at langsetup}{#2/babelname}}
+       \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
     }{
        \edef\babelname{\csuse{#2 at gbabelname}}
     }
   }{
-    \edef\babelname{\prop_item:Nn{\polyglossia at 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 at main@langvariant}
+  }
+  \csgdef{#2 at gvar}{\mainlanguagevariant}
   % Store BCP-47 id of current language
   \__xpg_store_bcp_info:nn {#1}{#2}
 }
-\cs_generate_variant:Nn \polyglossia at reset@default at 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 at select@background at 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 at select@background at language:n
+
+\cs_new:Nn \__xpg_select_background_language:n
 {
-  \str_if_eq:eeTF{\prop_item:Nn{\polyglossia at langsetup}{#1/lcscript}}{latin}
+  \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
                    {}
                    {\xpg at set@normalfont{#1}}
   \csuse{#1 at globalnumbers}
 }
-\cs_generate_variant:Nn \polyglossia at select@background at 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 at langsetup}
+       \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
              {#2/DefineCommandsCmd}}
              {#2}
     }
-    \polyglossia at set@other at 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 at set@other at language:nn
+\cs_new:Nn \__xpg_set_otherlanguage:nn
 {
-  \polyglossia at 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 at set@lang at options:nnn {#2} {#1} {@xpg at other@langvariant}
+  \__xpg_set_language_options:nnn {#2} {#1} {@xpg at other@langvariant}
 
   \csgdef{#2 at gvar}{\otherlanguagevariant}
-  \prop_get:NeNT \polyglossia at 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 at gbabelname}{otherlanguagebabelname}
 }
-\cs_generate_variant:Nn  \polyglossia at set@other at 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,9 +1681,11 @@
    \clist_map_function:eN { #1 } \setotherlanguage
   }
 
-\def\common at language{% FIXME is this really needed???
-  \ifbool{xpg at hyphenation@disabled}{
-    \xdef\xpg at 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@
   }
@@ -1727,8 +1692,9 @@
   \lefthyphenmin=\tw@
   \righthyphenmin=\thr@@}
 
-\def\xpg at initial@setup{
-  \common at 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}
-}
+\DeclareEnvironmentCopy { lang } { otherlanguage }
 
-\providecommand{\foreignlanguage}{}
-
 % wrapper for foreignlanguage and otherlanguage*
 \newcommand*\polyglossia at setforeignlanguage[2][]{
   \select@@language[#1]{#2}
-  \polyglossia at 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 at gbabelname}{
-       \edef\babelname{\prop_item:Nn{\polyglossia at langsetup}{#2/babelname}}
+       \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
     }{
        \edef\babelname{\csuse{#2 at gbabelname}}
     }
   }{
-    \edef\babelname{\prop_item:Nn{\polyglossia at 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 at set@keys:nn
+\cs_new:Nn \__xpg_set_keys:nn
 {
     \xpg at str@lowercase{\xpg at tmp@opts}{#2}
     \exp_args:Nne \setkeys{#1}{\xpg at tmp@opts}
@@ -1796,10 +1756,10 @@
 % and \text<lang>
 % #1 option
 % #2 language
-\newcommand{\xpg at otherlanguage}[2][]
+\cs_new:Nn \xpg_otherlanguage:nn
 {
-  \polyglossia at error@iflangnotloaded:n{#2}
-  \polyglossia at set@keys:nn{#2}{#1}
+  \xpg_error_if_lang_not_loaded:n{#2}
+  \__xpg_set_keys:nn{#2}{#1}
   \polyglossia at setforeignlanguage[#1]{#2}
   % Hook for external packages such as biblatex
   \polyglossia at language@switched
@@ -1810,11 +1770,14 @@
   \cs_if_exist_use:c{inlineextras at 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 at setforeignlanguage
 % used in captions
 \newcommand{\setforeignlanguage}[2][]
@@ -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 at 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 at set@normalfont{\__xpg_current_matrixlang}
@@ -1859,8 +1822,8 @@
   }{
     \__xpg_store_matrixlang:
     \group_begin:
-      \xpg at otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
-      \polyglossia at 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,18 +1832,15 @@
 
 
 % otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
+\DeclareDocumentEnvironment { otherlanguage* } { O{} m }
+  {
+	\__xpg_store_matrixlang:
+	\__xpg_otherlanguage:eee { #1 } { #2 } { \xpg_alias_base_lang:n { #2 } }
+  }{
+	\group_end:
+	\__xpg_reset_to_matrixlang:
+  }
 
-\renewenvironment{otherlanguage*}[2][]
-{%
-  \__xpg_store_matrixlang:
-  \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
-}
-{
-  \egroup
-  \__xpg_reset_to_matrixlang:
-}
-
 % internal wrapper
 % #1 option
 % #2 alias
@@ -1891,14 +1851,12 @@
   {
     \msg_show:nnn { polyglossia } { languagenotloaded } {#2}
   }{
-    \xpg at otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
-    \polyglossia at 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 at 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 at bbl@\babelname}
-      \polyglossia at 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 at 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 at hook@setlanguage}{}
 
 \def\xpg at pop@language at i#1#2{
@@ -1962,55 +1921,39 @@
   \xpg at hook@setlanguage
   \let\emp at 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
+    \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} }
+      }
   }
-  {
-    \polyglossia at select@language:nee {#1}
-      {\xpg_alias_add_to_option_i:nn{#3}{#2}}
-      {\xpg_alias_base_lang:n{#3}}
-  }
-}
 
-\cs_new:Nn \polyglossia at select@language:nnn
+\cs_new:Nn \__xpg_select_language:nnn
 {
-  \IfBooleanF {#1}
-  {
-    \cs_set_nopar:Npx \xpg at pop@language { \exp_not:N \xpg at pop@language at i {#2} {#3} }
-    \group_insert_after:N \xpg at pop@language
-  }
   % Register the language options
-  \polyglossia at set@lang at options:nnn {#3} {#2} {@xpg at set@langvariant}
-  % The starred variant does not write to the aux
-  \IfBooleanTF#1{%
-    \xpg at set@language at nonaux[#2]{#3}
-  }
-  {
-    \xpg at set@language at aux[#2]{#3}
-  }
-  \sys_if_engine_luatex:T
-  {
-    \directlua{polyglossia.select_language('\luaescapestring{\string#3}',
-      \the\csname l@#3\endcsname)}
-  }
-  \polyglossia at register@language:nn{#2}{#3}
+  \__xpg_set_language_options:nnn {#3} {#2} {@xpg at set@langvariant}
+  \IfBooleanTF { #1 }   % The starred variant does not write to the aux
+    {
+	  \xpg at set@language at nonaux[#2]{#3}
+    }{
+      \cs_set_nopar:Npe \xpg at pop@language { \exp_not:N \xpg at pop@language at i {#2} {#3} }
+      \group_insert_after:N \xpg at pop@language
+	  \xpg at set@language at aux[#2]{#3}
+    }
+  \__xpg_register_language:nn{#2}{#3}
 }
-\cs_generate_variant:Nn \polyglossia at select@language:nnn {
- nee, nne
-}
+\cs_generate_variant:Nn \__xpg_select_language:nnn { nee, nne }
 
 
 % set lang option #2 for lang #1
-\cs_new:Nn \polyglossia at set@lang at 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 at parsevariantkeyvalue##1=#3:#1\relax
     }%
-    \polyglossia at 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 at initialize@gloss at options[2]{
-   \polyglossia at set@lang at options:nnn {#1} {#2} {@xpg at set@langvariant}
+   \__xpg_set_language_options:nnn {#1} {#2} {@xpg at set@langvariant}
 }
 
 % Record synonymous keyvals such as variant=us and variant=american
@@ -2036,6 +1979,8 @@
       { \prop_new:c {xpg at alias@keyvals@#1@#3} }
    \prop_put:cnn { xpg at alias@keyvals@#1@#3 }
       {#2}{#4}
+   \prop_if_exist:cF { xpg at alias@keyvals@#1@#4 }
+      { \prop_new:c {xpg at alias@keyvals@#1@#4} }
    \prop_put:cnn { xpg at alias@keyvals@#1@#4 }
       {#2}{#3}
 }
@@ -2072,7 +2017,7 @@
 }
 
 
-\prg_set_conditional:Npnn \polyglossia at check@option at 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 at current@options@#1} {#2} \l_tmpa_tl
      {
@@ -2101,8 +2046,9 @@
 }
 
 % Test if option value is set
-\newcommand*\iflanguageoption[5]{
-  \polyglossia at check@option at 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,7 +2060,8 @@
 }
 
 % Test if language is loaded
-\newcommand*\iflanguageloaded[3]{
+\DeclareDocumentCommand \iflanguageloaded { m m m }
+{
    \AddToHook{begindocument/end}{
      \clist_if_in:NeTF \xpg at loaded{#1}{#2}{#3}
    }
@@ -2121,7 +2068,8 @@
 }
 
 % Same for babellanguage is loaded
-\newcommand*\ifbabellanguageloaded[3]{
+\DeclareDocumentCommand \ifbabellanguageloaded { m m m }
+{
   \AddToHook{begindocument/end}{
      \clist_if_in:NeTF \xpg at bloaded{#1}{#2}{#3}
   }
@@ -2128,7 +2076,7 @@
 }
 
 % 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 at gbabelname}{
-        \edef\babelname{\prop_item:Nn{\polyglossia at langsetup}{#2/babelname}}
+        \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
      }{
         \edef\babelname{\csuse{#2 at gbabelname}}
      }
    }{
-     \edef\babelname{\prop_item:Nn{\polyglossia at 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,32 +2142,17 @@
 \newcommand*{\xpg at set@language at only@aux}[2][]{
     % Write to the aux (toc files)
    \if at 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 at filesw
-      \addtocontents{toc}{\protect\xpginauxfiletrue}
-      \addtocontents{lof}{\protect\xpginauxfiletrue}
-      \addtocontents{lot}{\protect\xpginauxfiletrue}
+		\immediate\write\@mainaux
+		{\ProvideDocumentCommand\selectlanguage{sO{}m}{}}
    \fi
 }
 
-\AtEndDocument{
-   % Tell polyglossia that we are no longer in an aux file
-   \if at filesw
-      \addtocontents{toc}{\protect\xpginauxfilefalse}
-      \addtocontents{lof}{\protect\xpginauxfilefalse}
-      \addtocontents{lot}{\protect\xpginauxfilefalse}
-   \fi
-}
-
 % Since captions might float to other language regions,
 % we need to change the language here (#542)
 \AddToHook{cmd/caption/before}{
@@ -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 at inbiditable}
-\AtBeginDocument{
-  \@ifpackageloaded{bidi}{
-     \patchcmd{\@tabular}
-               {\if at RTLtab}
-               {\if at RTLtab\booltrue{xpg at inbiditable}}
-               {} % success
-               {\xpg at 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 at 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 at nohyphenation }) }
+	  { \prg_return_true: }
+      { \prg_return_false: }
+  }
 
 \def\polyglossia at luatex@load at 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 at luatex@load at lang{#1}
   }
-  \__xpg_check_if_exist_l@:NTF{#1}{#2}{#3}
+  \__xpg_check_if_exist_l@:nTF{#1}{#2}{#3}
 }
 
 % Set \bbl at hyphendata@\the\language, which is (lua)babel's
@@ -2308,11 +2214,11 @@
    % hook for compatibility with biblatex
    \select at language{#2}
    \xpg at set@bbl at hyphendata{\the\language}
-   \xpg at initial@setup%
+   \xpg_initial_setup:
    \select@@language[#1]{#2}%
    % Hook for external packages such as biblatex
    \polyglossia at language@switched%
-   \polyglossia at 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
@@ -2319,9 +2225,9 @@
    % via babelname (such as biblatex)
    \cs_if_exist_use:c{captions at bbl@\babelname}
    \cs_if_exist_use:c{date at bbl@\babelname}
-   \polyglossia at local@marks:n{#2}
+   \__xpg_local_marks:n{#2}
    \csuse{init at 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 at language#1{}
 
 % Hook for external packages such as biblatex
+% do not rename!
 \def\polyglossia at language@switched{}
 
 % remove all custumization for language #1
@@ -2354,13 +2261,13 @@
     \noextrascurrent{\languagename}
     \cs_if_exist_use:c{no\languagename @numbers}
     \sys_if_engine_xetex:T{
-      \__xpg_if_LR_str:eTF{\prop_item:Ne{\polyglossia at 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 at 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 at langsetup}{#2/direction}}
+        \__xpg_if_LR_str:eT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
           {\setlatin} % RTL -> LTR
       }
     }
@@ -2367,11 +2274,11 @@
   }
   \polyglossia at set@language at name[#1]{#2}
   % Set the language's/script's font families
-  \str_if_eq:eeT{\prop_item:Nn{\polyglossia at 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 at set@normalfont{#2}
@@ -2380,7 +2287,7 @@
   \__xpg_use_or_warn:c{#2 at language}
   \cs_if_exist_use:c{#2 at numbers}
   \use at 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 at stack@language:nn
+\cs_new:Nn \__xpg_stack_language:nn
 {
   \clist_gpush:Nn \l_xpg_lang_stack {#1:#2}
 }
 
-\cs_generate_variant:Nn \polyglossia at stack@language:nn {nx}
+\cs_generate_variant:Nn \__xpg_stack_language:nn {nx}
 
-\cs_new:Nn \polyglossia at 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 at 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 at current@options@\languagename }
+	{ \prop_new:c {xpg at current@options@\languagename} }
     \prop_map_inline:cn {xpg at current@options@\languagename}
       {
         \clist_put_right:Nn \l_xpg_current_options {##1=##2}
       }
     % Store current (pre-switch) options and language on stack
-    \polyglossia at 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 at unstack@language:n{xpg at set@language at only@aux}
+    \__xpg_unstack_language:n{xpg at set@language at only@aux}
   }
 
 \newcommand{\setlocalhyphenmins}[3]{
@@ -2450,17 +2359,17 @@
   \edef\xpg at tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
   \edef\xpg at tmp@lang{\xpg_alias_base_lang:n{#2}}
   \bgroup
-  \polyglossia at error@iflangnotloaded:n{\xpg at tmp@lang}
-  \polyglossia at set@keys:nn{\xpg at tmp@lang}{\xpg at tmp@opts}
+  \xpg_error_if_lang_not_loaded:n{\xpg at tmp@lang}
+  \__xpg_set_keys:nn{\xpg at tmp@lang}{\xpg at tmp@opts}
   % Store bcp47.tag at hypenmins
   \tl_if_blank:nTF {\xpg at tmp@opts}{%
     \ifcsundef{\csname xpg at tmp@lang\endcsname @g.bcp47.tag}{
-       \csedef{tmp at bcp47.tag}{\prop_item:Ne{\polyglossia at langsetup}{ \xpg at tmp@lang / bcp47 }}
+       \csedef{tmp at bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg at tmp@lang / bcp47 }}
     }{
        \csedef{tmp at bcp47.tag}{\csuse{#2 at g.bcp47.tag}}
     }
   }{
-    \csedef{tmp at bcp47.tag}{\prop_item:Ne{\polyglossia at langsetup}{ \xpg at tmp@lang / bcp47 }}
+    \csedef{tmp at bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg at tmp@lang / bcp47 }}
   }
   \csgdef{\csname tmp at bcp47.tag\endcsname @hyphenmins}{{#3}{#4}}
   \egroup
@@ -2469,17 +2378,17 @@
 % \use at localhypenmins[options]{lang}
 \newcommand*\use at localhyphenmins[2][]{
   \bgroup
-  \polyglossia at error@iflangnotloaded:n{#2}
-  \polyglossia at set@keys:nn{#2}{#1}
+  \xpg_error_if_lang_not_loaded:n{#2}
+  \__xpg_set_keys:nn{#2}{#1}
   % Use bcp47.tag at hypenmins
   \tl_if_blank:nTF {#1}{
     \ifcsundef{#2 at g.bcp47.tag}{
-       \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\polyglossia at langsetup}{ #2 / bcp47 }}
+       \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
     }{
        \csxdef{tmp at bcp47.tag}{\csuse{#2 at g.bcp47.tag}}
     }
   }{
-    \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\polyglossia at langsetup}{ #2 / bcp47 }}
+    \csxdef{tmp at bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
   }
   \egroup
   \ifcsundef{\csname tmp at bcp47.tag\endcsname @hyphenmins}{
@@ -2493,7 +2402,7 @@
    }
    \sys_if_engine_luatex:T{
      % Set \totalhyphenmin if specified
-     \prop_get:NeNTF \polyglossia at langsetup {#2/totalhyphenmin} \l_tmpa_tl
+     \prop_get:NeNTF \g_xpg_langsetup_prop {#2/totalhyphenmin} \l_tmpa_tl
      {
         \xpg at info{totalhyphenmin: '\l_tmpa_tl'}
         \expandafter\hyphenationmin \l_tmpa_tl
@@ -2513,7 +2422,7 @@
     \edef\xpg at tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
     \edef\xpg at tmp@lang{\xpg_alias_base_lang:n{#2}}
     % Register the language options
-    \polyglossia at set@lang at options:nnn {\xpg at tmp@lang} {\xpg at tmp@opts} {@xpg at set@langvariant}
+    \__xpg_set_language_options:nnn {\xpg at tmp@lang} {\xpg at tmp@opts} {@xpg at set@langvariant}
     % Now switch patterns
     \__xpg_use_or_warn:c{\use:c{xpg at 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 at 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 at info{Setting~ LuaTeX~ font~ renderer~ to~ \l_polyglossia_luatex_renderer}
-    \exp_args:Ne \defaultfontfeatures{Renderer=\l_polyglossia_luatex_renderer}
+    \xpg at 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 at info#1{\relax} % no latex info
    \gdef\@font at info#1{\relax} % no latex font info
    \gdef\@font at warning#1{\relax} % no latex font warnings
@@ -2590,8 +2499,8 @@
    \gdef\xpg at info#1{\relax} % no polyglossia info
 }
 
-\bool_if:nT \l_polyglossia_localmarks_bool {
-  \polyglossia at enable@local at marks:
+\bool_if:nT \g_xpg_localmarks_bool {
+  \__xpg_enable_local_marks:
 }
 
 % Control shorthand (de-)activation
@@ -2598,38 +2507,84 @@
 % 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 at activate@shorthands { O{"} }
 {
-  \seq_if_in:NnF \__xpg_active_shorthands { #1 }
+  \seq_if_in:NnF \g__xpg_active_shorthands_seq { #1 }
     {
      \bbl at activate{#1}
-     \seq_gpush:Nn \__xpg_active_shorthands { #1 }
+     \seq_gpush:Nn \g__xpg_active_shorthands_seq { #1 }
     }
 }
 
 \DeclareDocumentCommand \xpg at 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 at active@char}{\bbl at deactivate{#1}}
-     \seq_remove_all:Nn \__xpg_active_shorthands {#1}
+     \seq_remove_all:Nn \g__xpg_active_shorthands_seq {#1}
     }
 }
 
-% compatibility
-\newif\ifsystem at babelshorthands
-\bool_if:nTF \l_polyglossia_babelshorthands_bool {
-  \system at babelshorthandstrue
-}{
-  \system at 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 at loaded {\l__xpg_tmpa_lang_tl}{
+           \file_if_exist:nTF{gloss-\l__xpg_tmpa_lang_tl .ldf}
+              { \setotherlanguage{#1} }
+              { \xpg at 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 at loaded {\l__xpg_tmpb_lang_tl}{
+           \file_if_exist:nTF{gloss-\l__xpg_tmpb_lang_tl .ldf}
+              { \setotherlanguage{#2} }
+              { \xpg at 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 at 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 at option#1#2{
-  \ifcsundef{xpg at 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 at error{ Language~ #1,~ requested~ in~
+                       \string\startbabelshorthands,~ is~ not~ loaded }
+       }
+    }
+}
 
 \endinput



More information about the tex-live-commits mailing list.