summaryrefslogtreecommitdiff
path: root/macros/unicodetex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-02-18 03:01:45 +0000
committerNorbert Preining <norbert@preining.info>2024-02-18 03:01:45 +0000
commita3b386e8476527e1b87ec71f7156cd7751f8f325 (patch)
treecd6442374d94f7e42f3d8e2c018a448aacedb846 /macros/unicodetex
parent8886ad587a305595ce543a74b0fc779f0732a6e9 (diff)
CTAN sync 202402180301
Diffstat (limited to 'macros/unicodetex')
-rw-r--r--macros/unicodetex/latex/polyglossia/README.md6
-rw-r--r--macros/unicodetex/latex/polyglossia/polyglossia.dtx2054
-rw-r--r--macros/unicodetex/latex/polyglossia/polyglossia.pdfbin374493 -> 381896 bytes
3 files changed, 1071 insertions, 989 deletions
diff --git a/macros/unicodetex/latex/polyglossia/README.md b/macros/unicodetex/latex/polyglossia/README.md
index a2f6bf506e..9d5f0bc58b 100644
--- a/macros/unicodetex/latex/polyglossia/README.md
+++ b/macros/unicodetex/latex/polyglossia/README.md
@@ -1,4 +1,4 @@
-# THE POLYGLOSSIA PACKAGE v1.66
+# THE POLYGLOSSIA PACKAGE v2.0
## Multilingual typesetting with XeLaTeX and LuaLaTeX
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -26,8 +26,8 @@ Polyglossia makes it possible to automate the following tasks:
# LICENCE
-Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2023 Arthur Reutenauer,
-Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel
+Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2024 Arthur Reutenauer,
+Copyright (c) 2019-2023 Bastien Roucariès, 2019-2024 Jürgen Spitzmüller, 2023-2024 Udi Fogiel
Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence
(https://opensource.org/licenses/MIT).
diff --git a/macros/unicodetex/latex/polyglossia/polyglossia.dtx b/macros/unicodetex/latex/polyglossia/polyglossia.dtx
index 2adeb09db9..32ca151bc2 100644
--- a/macros/unicodetex/latex/polyglossia/polyglossia.dtx
+++ b/macros/unicodetex/latex/polyglossia/polyglossia.dtx
@@ -8,7 +8,7 @@
\iffalse
%</internal>
%<*README>
-# THE POLYGLOSSIA PACKAGE v1.66
+# THE POLYGLOSSIA PACKAGE v2.0
## Multilingual typesetting with XeLaTeX and LuaLaTeX
This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -36,8 +36,8 @@ Polyglossia makes it possible to automate the following tasks:
# LICENCE
-Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2023 Arthur Reutenauer,
-Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel
+Copyright (c) 2008-2010 François Charette, 2013 Élie Roux, 2011-2024 Arthur Reutenauer,
+Copyright (c) 2019-2023 Bastien Roucariès, 2019-2024 Jürgen Spitzmüller, 2023-2024 Udi Fogiel
Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence
(https://opensource.org/licenses/MIT).
@@ -66,17 +66,17 @@ to track the issues and follow progress.
The polyglossia package
(C) 2008–2010 François Charette
- (C) 2011–2023 Arthur Reutenauer
+ (C) 2011–2024 Arthur Reutenauer
(C) 2013 Elie Roux
(C) 2019 Bastien Roucariès
- (C) 2019–2023 Jürgen Spitzmüller
+ (C) 2019–2024 Jürgen Spitzmüller
License information appended
\endpreamble
\postamble
- Copyright (C) 2023 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
+ Copyright (C) 2024 by Arthur Reutenauer <arthur 'dot' reutenauer 'at' normalesup 'dot' org>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -109,7 +109,6 @@ to track the issues and follow progress.
\generate{\file{babelsh.def}{\from{polyglossia.dtx}{babelsh.def}}}
\generate{\file{cal-util.def}{\from{polyglossia.dtx}{cal-util.def}}}
\generate{\file{xgreek-fixes.def}{\from{polyglossia.dtx}{xgreek-fixes.def}}}
-\generate{\file{gloss-latex.lde}{\from{polyglossia.dtx}{gloss-latex.lde}}}
\generate{\file{gloss-acadien.ldf}{\from{polyglossia.dtx}{gloss-acadien.ldf}}}
\generate{\file{gloss-aeb.ldf}{\from{polyglossia.dtx}{gloss-aeb.ldf}}}
\generate{\file{gloss-af.ldf}{\from{polyglossia.dtx}{gloss-af.ldf}}}
@@ -276,6 +275,7 @@ to track the issues and follow progress.
\generate{\file{gloss-la-x-medieval.ldf}{\from{polyglossia.dtx}{gloss-la-x-medieval.ldf}}}
\generate{\file{gloss-la.ldf}{\from{polyglossia.dtx}{gloss-la.ldf}}}
\generate{\file{gloss-lao.ldf}{\from{polyglossia.dtx}{gloss-lao.ldf}}}
+\generate{\file{gloss-latex.ldf}{\from{polyglossia.dtx}{gloss-latex.ldf}}}
\generate{\file{gloss-latin.ldf}{\from{polyglossia.dtx}{gloss-latin.ldf}}}
\generate{\file{gloss-latinclassic.ldf}{\from{polyglossia.dtx}{gloss-latinclassic.ldf}}}
\generate{\file{gloss-latinecclesiastic.ldf}{\from{polyglossia.dtx}{gloss-latinecclesiastic.ldf}}}
@@ -963,11 +963,8 @@ to track the issues and follow progress.
%
% \begin{itemize}
% \item \xpgboolkeyfalse[1.1.1]{babelshorthands}
-% Globally activates \pkg{babel} shorthands whenever available. Such shorthands are
-% implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
-% Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian,
-% Russian, Slovak, and Ukrainian. Please refer to the respective language descriptions
-% (sec.~\ref{specific}) for details.
+% Globally activates \pkg{babel} shorthands whenever available.
+% Please refer to sec.~\ref{shorthands} for details.
%
% \item \xpgboolkeyfalse{localmarks} redefines the internal \LaTeX\ macros \cmd\markboth\ and
% \cmd\markright\ to the effect that the header text is explicitly set in the currently
@@ -993,6 +990,43 @@ to track the issues and follow progress.
% by \LaTeX, \pkg{fontspec} and \pkg{polyglossia} are output.
% \end{itemize}
%
+% \subsection{Shorthands}\label{shorthands}
+%
+% \pkg{Babel} has introduced the nifty feature of \enquote{shorthands} for some of the languages
+% it supports.
+% Shorthands make use of active characters to provide quick access to glyphs and formatting
+% peculiarities that are common in a respective language (\eg ¦"a¦ for German umlaut ⟨ä⟩ in case
+% this is not available on your keyboard).
+% \pkg{Polyglossia} has adopted this feature, we call it \emph{babelshorthands}.
+%
+% Shorthands need to be activated for the respective language, or can be activated globally, via
+% the boolean option \xpgoption{babelshorthands} (either passed globally when loading \pkg{polyglossia}
+% or to a specific language when loading it).
+%
+% Shorthands are implemented currently for Afrikaans, Belarusian, Catalan, Croatian,
+% Czech, Dutch, Finnish, Georgian, German, Italian, Latin, Mongolian, Occitan,
+% Piedmontese, Polish, Portuguese, Russian, Slovak, and Ukrainian, and their number and function
+% differs between these languages. Please refer to the respective language descriptions (sec.~\ref{specific})
+% for detailed elaborations.
+%
+% If you want to re-use the shorthands defined for a specific language in a different language,
+% you can do so by using in preamble:\new{2.0}
+% \displaycmd{\inheritbabelshorthands\marg{source language}\marg{target language}}{\inheritbabelshorthands}
+% in order to input and activate the shorthands defined for the \meta{source language} in
+% the \meta{target language}. Both languages will be loaded as \enquote{other} languages if they have not
+% been loaded yet. If one of the languages does not exist, or if the \meta{source language} does not provide any
+% shorthands, you will get an error message.
+%
+% Note, also, that you can only use \cmd{\inheritbabelshorthands} once per language. Subsequent
+% calls will overwrite previous ones (and also the shorthand that might be defined for a
+% \meta{target language} in the first place).
+%
+% If you want to enable the shorthands of a specific language inline, also when the language itself
+% is not active (but loaded in the preamble), you can do so by means of\new{2.0}
+% \displaycmd{\usebabelshorthands\marg{language}}{\usebabelshorthands}
+% The effect of this is local to groups. If you want to disable any active shorthands, you can use
+% ¦\usebabelshorthands{none}¦.
+%
% \section{Language-switching commands}\label{languageswitching}
%
% \subsection{Recommended commands}\label{sec:langcmds}
@@ -1090,9 +1124,11 @@ to track the issues and follow progress.
% In a similar vein, it is possible to use \Cmd\rmfamilylatin, \Cmd\sffamilylatin,
% and \Cmd\ttfamilylatin.
%
-% \item \Cmd\latinalph: Representation of counter as a lower-case letter: 1 = a, 2 = b, etc.
+% \item \DescribeMacro{\latinalph}\cmd{\latinalph\marg{counter}}: Representation of counter as a lower-case letter:
+% 1 = a, 2 = b, etc.
%
-% \item \Cmd\latinAlph: Representation of counter as a upper-case letter: 1 = A, 2 = B, etc.
+% \item \DescribeMacro{\latinAlph}\cmd{\latinAlph\marg{counter}}: Representation of counter as a upper-case letter:
+% 1 = A, 2 = B, etc.
% \end{itemize}
%
%
@@ -1532,23 +1568,37 @@ to track the issues and follow progress.
% If this is turned on, the following shorthands for fine-tuning hyphenation
% and micro-typography of Finnish words are activated:
% \begin{shorthands}
-% \item[¦"-¦] adds a hyphenation point that does still allow for hyphenation at the points preset
-% in the hyphenation patterns (as opposed to \cmd\-).
-% \item[\texttt{"\textasciitilde}] for a hyphen sign without a breakpoint. Useful for
-% cases where the hyphen should stick at the following syllable.
+% \item[¦"-¦] adds an explicit hyphen without a breakpoint, allowing for hyphenation at the
+% other points preset in the hyphenation patterns. Useful for
+% cases where the hyphen should stick at the following syllable
+% (\eg ¦pakastekaapit ja "-arkut¦).
+% \item[\texttt{"=}] for a hyphen sign without a breakpoint that does also remove all other
+% breakpoints in the word (as opposed to ¦"-¦).
+% \item[\texttt{"\textasciitilde}] functionally equivalent to ¦"-¦ (provided for backwards
+% compatibility reasons).
% \item[¦"|¦] disables a ligature at this position.
% \item[¦""¦] allows for a line break at this position (without hyphenation sign).
% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash,
% hyphenation at the breakpoints preset in the hyphenation patterns is still allowed.
% \end{shorthands}
-% \item \xpgboolkeyfalse[1.54]{schoolhyphens}
-% If this is set to true, alternative (experimental) hyphenation patterns are used rather than the
-% default Finnish patterns. These (so-called `School') patterns allow hyphenation at
+% \item \xpgchoicekey[2.0]{hyphens}{\xpgpresetvalue{default}, \xpgvalue{babel}, \xpgvalue{school}}
+% Hyphenation in Finnish is peculiar since there are many rather long words. In order to select a suitable
+% hyphenation pattern, three different options are provided:
+% \begin{itemize}
+% \item The \xpgvalue{default} patterns as used by \LaTeX\ are rather strict and try to prevent hyphenation
+% at points which are valid but considered sub-optimal from an ortho-typographic point of view
+% (\eg hyphenation between two vowels), with the drawback that simple words are sometimes not being
+% hyphenated at points where this would be valid, and lines might become unevenly spaced.
+% \item The \pkg{babel} support for Finnish by default tweaks some hyphenation-related values
+% (such as \cmd\hyphenpenalty) for Finnish. If you want to replicate this with \pkg{polyglossia},
+% select \xpgvalue{babel} (this still uses the default patterns).
+% \item The \xpgvalue{school} setting, finally, employs alternative (experimental) hyphenation patterns
+% rather than the default Finnish patterns. These (so-called `School') patterns allow hyphenation at
% all valid points, including hyphenation points that are considered sub-optimal from an
-% ortho-typographic point of view (e.\,g., hyphenation between two vowels).
-% The default patterns try to prevent such hyphenation, with the drawback that simple words
-% are sometimes not being hyphenated at points where this would be valid.
+% ortho-typographic point of view.\footnote{This equals the previous boolean option \xpgoption{schoolhyphens},
+% which is still supported for backwards compatibility.}
% See \url{https://github.com/hyphenation/basic-finnish} for details.
+% \end{itemize}
% \end{itemize}
%
% \subsection{french}\label{french}
@@ -1706,6 +1756,11 @@ to track the issues and follow progress.
% \eg ¦(pseudo"~)""wissenschaftlich¦.
% \item[¦"/¦] a slash that allows for a subsequent line break. As opposed to \cmd\slash, hyphenation at the breakpoints
% preset in the hyphenation patterns is still allowed.
+% \item[¦"*¦]\new{2.0} An asterisk which assures the word can still be hyphenated at its defined breakpoints.
+% Useful if you want to employ gender-sensitive writing (,gender star`).
+% Similar shorthands are available for the alternative gender-sensitive spellings, ¦":¦ and ¦"_¦.
+% \item[¦"x¦]\new{2.0} Inserts a gender mark which assures the word can still be hyphenated at its defined breakpoints.
+% This is predefined to ¦*¦ but can be globally redefined by redefining the macro \cmd\mkgender\ (see below).
% \end{shorthands}
%
% There are also four shorthands for quotation signs:
@@ -1716,6 +1771,11 @@ to track the issues and follow progress.
% \item[¦">¦] for French-style right double quotes (»).
% \end{shorthands}
% \end{itemize}
+% \paragraph*{Commands:}
+% \begin{itemize}
+% \item \Cmd\mkgender\new{2.0} Defines which gender mark is output by the babelshorthand ¦"x¦.
+% Predefined to ¦\def\mkgender{*}¦.
+% \end{itemize}
%
% \subsection{greek}\label{greek}
% \paragraph*{Options:}
@@ -3030,7 +3090,45 @@ to track the issues and follow progress.
% \section{Revision history}
%
% \bgroup\footnotesize
-% \subsection*{1.66 (2023/12/02)}
+%
+% \subsection*{2.0 (2024/02/17)}
+%
+% \subsubsection*{Bug fixes}
+% \begin{itemize}
+% \item Fix error with undefined property list that unhides with
+% \pkg{l3kernel} version 2024-02-13 (\TXI{626}).
+% \item Fix \xpgoption{frenchfootnote} option (\TXI{620}).
+% \item The error message on improper font setting is now
+% correct if the main script is non-Latin, for
+% non-Roman fonts (\TXI{571}), and specifically for
+% the CJK case (\TXI{621}).
+% \item Fix expansion of localnumeral (\TXI{622}).
+% \end{itemize}
+%
+% \subsubsection*{New Features}
+% \begin{itemize}
+% \item Add \cmd{\inheritbabelshorthands} (\TXI{604}).
+% \item Add \cmd{\usebabelshorthands}.
+% \item Add shorthands for German gender-sensitive writing.
+% \item Implement \pkg{babel}-style hyphenation for Finnish.
+% \end{itemize}
+%
+% \subsubsection*{Documentation improvements}
+% \begin{itemize}
+% \item Fix documentation of Finnish shorthands (\TXI{623}).
+% \end{itemize}
+%
+% \subsubsection*{Internal work}
+% \begin{itemize}
+% \item The package code has been subjected to a major rewrite.
+% Code has been cleaned up, and in general, \pkg{polyglossia}
+% more consistently employs \pkg{latex3} now. Note that this is
+% an ongoing and yet unfinished project that will continue over
+% the next releases.
+% \end{itemize}
+%
+%
+% \subsection*{1.66 (2023/12/11)}
%
% \subsubsection*{Bug fixes}
% \begin{itemize}
@@ -4102,44 +4200,52 @@ to track the issues and follow progress.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesExplPackage
- {polyglossia} {2023/12/11} {v1.66}
+ {polyglossia} {2024/02/17} {v2.0}
{Modern multilingual typesetting with XeLaTeX and LuaLaTeX}
+
\RequirePackage{etoolbox}
\RequirePackage{xkeyval}[2008/08/13]
% Will raise error if used with anything else than XeTeX or LuaTeX
\RequirePackage{fontspec}[2010/06/08]% v2.0
\RequirePackage{iftex}
-% Execute code #3 if package #1 has been loaded already, else
-% add to package hook #2
-\cs_new_nopar:Nn \__xpg_at_package_hook:nnn{
- \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}%
-}
-
\prg_generate_conditional_variant:Nnn \clist_if_in:Nn {Ne} {TF, T, F} % check if needed
+
% correct a bug in tracklang
-\__xpg_at_package_hook:nnn{tracklang}{file/tracklang.sty/after}{%
- \@ifpackagelater{tracklang}{2019/08/30}{}{\global\def\AddTrackedLangage{\AddTrackedLanguage}}
+\AddToHook{package/tracklang/after}{%
+ \IfPackageAtLeastTF{tracklang}{2019/08/30}
+ {}
+ {\cs_gset_eq:NN \AddTrackedLangage \AddTrackedLanguage}
}
-%% This is for compatibility with Babel-aware package:
-\def\languageshorthands#1{\relax} % this is for scrlttr2 class
-\def\bbl@cs#1{\csname bbl@#1\endcsname}
+%% The following is for compatibility with Babel-aware package:
+% \languageshorthands is provided by babelsh.def, which is
+% only loaded by some glosses, but some classes presuppose
+% it is there generally. So let's provide a stub:
+\ProvideDocumentCommand \languageshorthands { m } {}
+% These have to be provided at the end of the preamble
\AddToHook{begindocument/before}{
- \let\bbl@set@language\xpg@set@language@aux % for biblatex
- \let\bbl@main@language\xpg@main@language % for biblatex
- \providecommand\texorpdfstring[2]{#1} % dummy command if hyperref is not loaded
+ \cs_gset_eq:NN \bbl@set@language \xpg@set@language@aux % for biblatex
+ \cs_gset_eq:NN \bbl@main@language \xpg@main@language % for biblatex
+ \ProvideDocumentCommand \texorpdfstring { m m } { #1 } % dummy command if hyperref is not loaded
}
-\sys_if_engine_luatex:T{
- \RequirePackage{luatexbase} % already included by fontspec, but needed here
- \RequireLuaModule{polyglossia}
-}
+%% when no patterns are available, we use \l@nohyphenation, assigned to 255
+%% (suggestion by Enrico Gregorio)
+%% \l@nohyphenation is defined in polyglossia.lua
+\sys_if_engine_luatex:TF
+ {
+ \RequirePackage{luatexbase} % already included by fontspec, but needed here
+ \RequireLuaModule{polyglossia}
+ }{
+ \cs_if_free:cT { l@nohyphenation }
+ { \chardef\l@nohyphenation=255 }
+ }
% Which version of XeTeX do we use? What is the boudary class? 4095 or 255
-\@ifundefined{e@alloc@intercharclass@top}
- {\chardef\xpg@boundaryclass=\@cclv}
- {\let\xpg@boundaryclass=\e@alloc@intercharclass@top}
+\cs_if_exist:cTF { e@alloc@intercharclass@top }
+ { \let\xpg@boundaryclass=\e@alloc@intercharclass@top }
+ { \chardef\xpg@boundaryclass=\@cclv }
% Useful for getting list of loaded languages and variants. Like babel's bbl@loaded
% all language loaded
@@ -4153,17 +4259,26 @@ to track the issues and follow progress.
% list of loaded languages (bcp-47 id)
\clist_new:N \xpg@bcp@loaded
-% counter in latin
-\def\latinalph#1{\expandafter\latin@alph\csname c@#1\endcsname}
-\def\latinAlph#1{\expandafter\latin@Alph\csname c@#1\endcsname}
+% output counter as lower-case latin letter
+\DeclareExpandableDocumentCommand \latinalph { m }
+{
+ \exp_args:Nc \latin@alph {c@#1}
+}
+% output counter as upper-case latin letter
+\DeclareExpandableDocumentCommand \latinAlph { m }
+{
+ \exp_args:Nc \latin@Alph {c@#1}
+}
+%% Internal hooks
% select language hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_selectlanguage: {}
% \disablehyphenation hook
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {}
+\cs_new_nopar:Nn \__xpg_at_begin_document_hyphenation: {}
% hook to be executed at begin of document
-\cs_new_nopar:Nn \polyglossia@AtBeginDocument: {
+\cs_new_nopar:Nn \__xpg_at_begin_document:
+{
% save various command
\let\latin@alph\@alph % TODO rename when we have the C locale
\let\latin@Alph\@Alph % TODO rename when we have the C locale
@@ -4171,22 +4286,25 @@ to track the issues and follow progress.
\let\polyglossia@Clang@@arabic\@arabic
\let\polyglossia@Clang@arabic\arabic
- \xpg@initial@setup
+ \xpg_initial_setup:
% apply \familydefault changes
\xpg@set@familydefault
}
-\AtBeginDocument{
- \polyglossia@AtBeginDocument:
+\AddToHook{begindocument}{
+ \__xpg_at_begin_document:
}
% The following needs to go after any \AtBeginDocument (also of packages
% loaded after \set[main|other]language
-\AfterEndPreamble{
+% Track whether the main language has been set
+\bool_new:N \g_xpg_main_lang_set_bool
+\AddToHook{begindocument/end}{
% now we have the C locale definition: select the language
- \polyglossia@AtBeginDocument@selectlanguage:
+ \__xpg_at_begin_document_selectlanguage:
+ \bool_gset_true:N \g_xpg_main_lang_set_bool
% If hyphenation disabling has been requested in preamble, do it now
- \polyglossia@AtBeginDocument@hyphenation:
+ \__xpg_at_begin_document_hyphenation:
}
%% custom message macros
@@ -4219,7 +4337,7 @@ to track the issues and follow progress.
\xpg@warning{Illegal~ value~ (#1)~ for~ #2}}
% error out if lang is not loaded
-\cs_new_nopar:Nn \polyglossia@error@iflangnotloaded:n
+\cs_new_nopar:Nn \xpg_error_if_lang_not_loaded:n
{
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
@@ -4239,7 +4357,16 @@ to track the issues and follow progress.
}
\msg_redirect_name:nnn { polyglossia } { languagenolongerloaded } { warning }
-%
+\msg_new:nnn { polyglossia } { unknownlocalnumeral }
+{
+ Unknown~ key~ "#1"~ in~ \string\localnumeral.
+}
+
+\msg_new:nnn { polyglossia } { localnumeralemptyvalue }
+{
+ Keys~ of~ \string\localnumeral~ must~ have~ value.
+}
+
%% use macro if defined, else warn that it is not
\cs_new_nopar:Nn \__xpg_use_or_warn:N
@@ -4257,12 +4384,12 @@ to track the issues and follow progress.
\def\@@ensure@maindir#1{\ifcsundef{@ensure@maindir}{#1}{\@ensure@maindir{#1}}}
%% Used by the language definitions files for right-to-left languages
-\def\RequireBidi
- {
+\NewDocumentCommand \RequireBidi {}
+{
\sys_if_engine_luatex:TF
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{luabidi}\fi}
{\ifx\@onlypreamble\@notprerr\else\RequirePackage{bidi}\fi}
- }
+}
% if #1 is LR run #2 else #3
\prg_set_conditional:Nnn \__xpg_if_LR_str:n {p, T, F, TF}
@@ -4281,20 +4408,23 @@ to track the issues and follow progress.
% (lua)bidi commands to change directionality for paragraphs
% and inline text.
% overwritten with correct package
-\cs_new_nopar:Nn{\polyglossia@setpardirection:n}{
+\cs_new_nopar:Nn \__xpg_set_par_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\cs_new_nopar:Nn{\polyglossia@settextdirection:n}{
+\cs_new_nopar:Nn \__xpg_set_text_direction:n
+{
\__xpg_if_LR_str:nF {#1}
{
\xpg@error{right-to-left,~ but~ (lua)bidi~ package~ was~ not~ loaded!}
}
}
-\__xpg_at_package_hook:nnn{bidi}{package/bidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/bidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -4303,7 +4433,8 @@ to track the issues and follow progress.
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -4313,8 +4444,9 @@ to track the issues and follow progress.
}
}
}
-\__xpg_at_package_hook:nnn{luabidi}{package/luabidi/after}{
- \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{
+\AddToHook{package/luabidi/after}{
+ \cs_gset_nopar:Nn \__xpg_set_par_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\setLR
@@ -4323,7 +4455,8 @@ to track the issues and follow progress.
\setRL
}
}
- \cs_gset_nopar:Nn{\polyglossia@settextdirection:n}{
+ \cs_gset_nopar:Nn \__xpg_set_text_direction:n
+ {
\__xpg_if_LR_str:nTF{#1}
{
\LRE
@@ -4358,18 +4491,17 @@ to track the issues and follow progress.
%% TODO: localalph = {<alph_csname>,<Alph_csname>}
%% TODO: localnumeral = <csname>
%% or even better localdigits = {0123456789} for fully automatic setup
-\newif\if@xpg@language@really@defined@
\newcommand*\PolyglossiaSetup[2]{
- \polyglossia@keys_define_lang:n{#1}
+ \__xpg_keys_define_lang:n{#1}
\keys_set:nn { polyglossia / #1 } { #2 }
- \polyglossia_setup_hyphen:n {#1}
+ \__xpg_setup_hyphen:n {#1}
%define booleans etoolbox style and set defaults
%% TODO ? \providetoggle{#1@setup@done}%
% we initialize these so that we can use \gappto below
\csgdef{init@extras@#1}{}
\csgdef{init@noextras@#1}{} % we don't use this yet: remove?
% here we do the fontsetup:
- \xpg__auto_setupfont:n { #1 }
+ \__xpg_auto_setupfont:n { #1 }
%% TODO? \toggletrue{#1@setup@done}
% register base alias
\xpg_language_alias { #1 } { #1 }
@@ -4388,15 +4520,16 @@ to track the issues and follow progress.
% setup hyphennames from a str list of hyphen
-\cs_new:Nn \polyglossia_setup_hyphen:n {
- \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \polyglossia@langsetup {#1 / hyphennames}}
+\cs_new:Nn \__xpg_setup_hyphen:n
+{
+ \clist_set:Ne{\l_tmpa_clist}{\prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphennames}}
\providebool{havehyphen}
\boolfalse{havehyphen}
% for each hyphen in the set until we find one that works
\clist_map_inline:Nn \l_tmpa_clist {
\ifbool{havehyphen}{}{
% check if language hyphenname is defined
- \__xpg_check_if_exist_l@:NF{#1}{
+ \__xpg_check_if_exist_l@:nF{#1}{
% if not, first consider nohyphenation
\str_if_eq:nnTF{##1}{nohyphenation}
{
@@ -4433,7 +4566,7 @@ to track the issues and follow progress.
}
% setup hyphenmins
\clist_set:Ne \l_tmpa_clist
- { \prop_item:Nn \polyglossia@langsetup {#1 / hyphenmins} }
+ { \prop_item:Nn \g_xpg_langsetup_prop {#1 / hyphenmins} }
\cs_if_eq:cNF {l@#1} \l@nohyphenation
{
\use:x
@@ -4446,8 +4579,9 @@ to track the issues and follow progress.
}
\newcommand*\polyglossia@setup@language@patterns[1]{
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\the\csname l@#1\endcsname}
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\the\csname l@#1\endcsname}
}{
% first, test if \l@#1 exists
% without that, \csname l@#1\endcsname will be defined as \relax
@@ -4474,15 +4608,16 @@ to track the issues and follow progress.
}
}
-\prop_new:N \polyglossia@langsetup
+\prop_new:N \g_xpg_langsetup_prop
-\cs_new_protected:Npn \polyglossia@keys_define_lang:n #1 {
+\cs_new_protected:Npn \__xpg_keys_define_lang:n #1
+{
\keys_define:nn {polyglossia}{
% the script font
#1 / script
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/script}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/lcscript}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/script}{##1}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/lcscript}
{\tl_if_empty:nF{##1}{\str_lowercase:n{##1}}}
},
#1 / script
@@ -4491,84 +4626,84 @@ to track the issues and follow progress.
.initial:n = latin,
% the opentype script tag
#1 / scripttag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/scripttag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/scripttag}{##1}},
#1 / scripttag
.default:n = {},
#1 / scripttag
.initial:n = {},
% the language full name
#1 / language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/language}{##1}},
#1 / language
.value_required:n = true,
#1 / language
.initial:x = {\str_uppercase:n#1},
% the language tag
#1 / langtag
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/langtag}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/langtag}{##1}},
#1 / langtag
.value_required:n = true,
#1 / langtag
.initial:n = {},
% the BCP-47 tag
#1 / bcp47
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47}{##1}},
#1 / bcp47
.value_required:n = true,
#1 / bcp47
.initial:n = {},
% the BCP-47 language tag
#1 / bcp47-language
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-language}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-language}{##1}},
#1 / bcp47-language
.value_required:n = true,
#1 / bcp47-language
.initial:n = {},
% the BCP-47 region tag
#1 / bcp47-region
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-region}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-region}{##1}},
#1 / bcp47-region
.value_required:n = false,
#1 / bcp47-region
.initial:n = {},
% the BCP-47 script tag
#1 / bcp47-script
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-script}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-script}{##1}},
#1 / bcp47-script
.value_required:n = true,
#1 / bcp47-script
.initial:n = {},
% the BCP-47 variant tag
#1 / bcp47-variant
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-variant}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-variant}{##1}},
#1 / bcp47-variant
.value_required:n = false,
#1 / bcp47-variant
.initial:n = {},
% the BCP-47 extension-t tag
#1 / bcp47-extension-t
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-t}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-t}{##1}},
#1 / bcp47-extension-t
.value_required:n = false,
#1 / bcp47-extension-t
.initial:n = {},
% the BCP-47 extension-u tag
#1 / bcp47-extension-u
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-u}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-u}{##1}},
#1 / bcp47-extension-u
.value_required:n = false,
#1 / bcp47-extension-u
.initial:n = {},
% the BCP-47 extension-x tag
#1 / bcp47-extension-x
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-extension-x}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-extension-x}{##1}},
#1 / bcp47-extension-x
.value_required:n = false,
#1 / bcp47-extension-x
.initial:n = {},
% the BCP-47 casing alias
#1 / bcp47-casing
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/bcp47-casing}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/bcp47-casing}{##1}},
#1 / bcp47-casing
.value_required:n = false,
#1 / bcp47-casing
@@ -4577,7 +4712,7 @@ to track the issues and follow progress.
#1 / hyphennames
.code:n = {
\clist_set:Nn{\l_tmpa_clist}{##1}
- \prop_gput:Nne{\polyglossia@langsetup}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
+ \prop_gput:Nne{\g_xpg_langsetup_prop}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}}
},
#1 / hyphennames
.value_required:n = true,
@@ -4590,7 +4725,7 @@ to track the issues and follow progress.
{LR}{}
{RL}{\RequireBidi}
}
- {\prop_gput:Nnn{\polyglossia@langsetup}{#1/direction}{##1}}
+ {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/direction}{##1}}
{\xpg@error{Unknown~ direction~ "##1"~ for~ language~ "#1"}}
},
#1 / direction
@@ -4604,7 +4739,7 @@ to track the issues and follow progress.
\int_compare:nNnF { \clist_count:n {##1} } = {2}
{\xpg@error{hypenmins~should~be~a~list~of~two~entries,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/hyphenmins} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/hyphenmins} {##1}
},
#1 / hyphenmins
.value_required:n = true,
@@ -4617,7 +4752,7 @@ to track the issues and follow progress.
\int_compare:nNnF { \clist_count:n {##1} } = {1}
{\xpg@error{totalhyphenhypenmin~should~be~a~single~entry,~got~"##1"}}
% set prop
- \prop_gput:Nnn \polyglossia@langsetup {#1/totalhyphenmin} {##1}
+ \prop_gput:Nnn \g_xpg_langsetup_prop {#1/totalhyphenmin} {##1}
},
#1 / totalhyphenmin
.value_required:n = false,
@@ -4636,35 +4771,35 @@ to track the issues and follow progress.
% environment name
#1 / envname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/envname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/envname}{##1}
},
#1/ envname.value_required:n = true,
#1/ envname.initial:n = {#1},
% babel name
#1 / babelname
.code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/babelname}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/babelname}{##1}
},
#1/ babelname.value_required:n = true,
#1/ babelname.initial:n = {#1},
% default numerals
#1 / localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/localnumeral}{##1}
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / localnumeral.value_required:n = true,
#1 / localnumeral.initial:n = {polyglossia@C@localnumeral},
% uppercased
#1 / Localnumeral
. code:n = {
- \prop_gput:Nnn{\polyglossia@langsetup}{#1/Localnumeral}{##1}
+ \prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/Localnumeral}{##1}
},
#1 / Localnumeral.value_required:n = true,
#1 / Localnumeral.initial:n = {polyglossia@C@localnumeral},
% environment define command (by default create the environment)
#1 / DefineCommandsCmd
- .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/DefineCommandsCmd}{##1}},
+ .code:n = {\prop_gput:Nnn{\g_xpg_langsetup_prop}{#1/DefineCommandsCmd}{##1}},
#1 / DefineCommandsCmd
.value_required:n = true,
#1 / DefineCommandsCmd
@@ -4677,29 +4812,32 @@ to track the issues and follow progress.
\polyglossia@Clang@@arabic{#2}
}
-\tl_new:N \l__xpg_localnumeral_tl
-\bool_new:N \l__xpg_localnumeral_bool
-
-\keys_define:nn { polyglossia / localnumeral }
+\cs_new:Npn \__xpg_localnumeral_parse:nn #1 #2
{
- lang .choice:,
- lang / main .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \mainlanguagename } ,
- lang / local .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { \languagename }
- \bool_set_true:N \l__xpg_localnumeral_bool ,
- lang / unknown .code:n = \tl_set:Nn \l__xpg_localnumeral_tl { #1 } ,
+ \str_if_eq:eeF { #1 } { lang } { \msg_error:nnn { polyglossia } { unknownlocalnumeral } { #1 } }
+ \exp_args:Ne \str_case:nnF { #2 }
+ {
+ { local } { }
+ { main } { \foreignlanguage { \mainlanguagename } }
+ }
+ { \foreignlanguage { #2 } }
}
\cs_new:Npn \__xpg_localnumeral:nnn #1 #2 #3
{
- \group_begin:
- \keys_set:ne { polyglossia / localnumeral } { #2 }
- \bool_if:NF \l__xpg_localnumeral_bool { \foreignlanguage { \l__xpg_localnumeral_tl } }
- { \use:c { \prop_item:Ne \polyglossia@langsetup
- { \l__xpg_localnumeral_tl / #3 } } { } { #1 } }
- \group_end:
+ \use:e
+ {
+ \keyval_parse:nnn
+ { \msg_error:nnn { polyglossia } { localnumeralemptyvalue } }
+ {
+ \__xpg_localnumeral_parse:nn
+ } { #2 }
+ }
+ { \use:c { \prop_item:Ne \g_xpg_langsetup_prop
+ { \languagename / #3 } } { } { #1 } }
}
-
-\NewDocumentCommand \localnumeral { s ={ lang } O{ local } m }
+
+\NewExpandableDocumentCommand \localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -4710,7 +4848,7 @@ to track the issues and follow progress.
}
}
-\NewDocumentCommand \Localnumeral { s ={ lang } O{ local } m }
+\NewExpandableDocumentCommand \Localnumeral { s O{ lang=local } m }
{
\IfBooleanTF { #1 }
{
@@ -4721,86 +4859,90 @@ to track the issues and follow progress.
}
}
-\cs_new_nopar:Npn \xpg__french_spacing:n #1
+\cs_new_nopar:Npn \__xpg_french_spacing:n #1
{
\bool_if:cTF { g__xpg_#1_fs_bool }
{ \frenchspacing } { \nonfrenchspacing }
}
-\cs_new_nopar:Npn \xpg__indent_first:n #1
+\cs_new_nopar:Npn \__xpg_indent_first:n #1
{
\bool_if:cTF { g__xpg_#1_if_bool }
{ \french@indent } { \nofrench@indent }
}
-\cs_new:Nn{\polyglossia@lang@setpardirection:n}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_par_direction:n
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@setpardirection:n{\l_tmpa_tl}
+ \__xpg_set_par_direction:n{\l_tmpa_tl}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\cs_new:Nn{\polyglossia@lang@settextdirection:nn}{
- \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl
+\cs_new:Nn \__xpg_lang_set_text_direction:nn
+{
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#1/direction} \l_tmpa_tl
{
- \polyglossia@settextdirection:n{\l_tmpa_tl}{#2}
+ \__xpg_set_text_direction:n{\l_tmpa_tl}{#2}
}
{
\xpg@error{Could~ not~ retrieve~ key~ direction~ for~ language~ "#1"}
- \prop_show:N{\polyglossia@langsetup}
+ \prop_show:N{\g_xpg_langsetup_prop}
}
}
-\def\xpg@lastlanguage{0}
+\tl_new:N \g__xpg_lastlanguage_tl
+\tl_set:Nn \g__xpg_lastlanguage_tl { 0 }
-\providebool{xpg@hyphenation@disabled}
-\boolfalse{xpg@hyphenation@disabled}
+% Track whether hyphenation is disabled
+\bool_new:N \g__xpg_hyphenation_disabled_bool
-\def\xpg@disablehyphenation{
- \ifx\@onlypreamble\@notprerr
- \xpg@@disablehyphenation
- \else
- % if this is used in the preamble, we have to postpone
- % the execution until the main language has been set (#125).
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@hyphenation: {
- \xpg@@disablehyphenation
+\DeclareDocumentCommand \disablehyphenation {}
+{
+ \bool_if:NTF \g_xpg_main_lang_set_bool
+ {
+ \__xpg_disable_hyphenation:
+ }
+ {
+ % we have to postpone the execution until the main language
+ % has been set (#125).
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_hyphenation: {
+ \__xpg_disable_hyphenation:
}
- \fi
+ }
}
-\def\xpg@@disablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{}{
- \booltrue{xpg@hyphenation@disabled}
- \xdef\xpg@lastlanguage{\the\language}
+\cs_new:Nn \__xpg_disable_hyphenation:
+{
+ \bool_if:NF \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_true:N \g__xpg_hyphenation_disabled_bool
+ \tl_gset:Ne \g__xpg_lastlanguage_tl { \the\language }
% We do not call \xpg@set@hyphenation@patterns here to avoid a warning message.
% "nohyphenation" is not listed in language.dat.lua.
\language=\l@nohyphenation
}
}
-\def\xpg@enablehyphenation{
- \ifbool{xpg@hyphenation@disabled}{
- \boolfalse{xpg@hyphenation@disabled}
- \language=\csname xpg@lastlanguage\endcsname
- }{}%
+\DeclareDocumentCommand \enablehyphenation {}
+{
+ \bool_if:NT \g__xpg_hyphenation_disabled_bool
+ {
+ \bool_gset_false:N \g__xpg_hyphenation_disabled_bool
+ \language=\tl_use:N{\g__xpg_lastlanguage_tl}
+ }%
}
-\let\disablehyphenation\xpg@disablehyphenation
-\let\enablehyphenation\xpg@enablehyphenation
-
-%\def\xpg@fontsetup#1{\xpg@csifdef@warn{xpg@fontsetup@#1}}
-%\def\xpg@fontsetup@none#1{\csgdef{#1@font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic
-%\def\xpg@fontsetup@custom#1{\csuse{#1@font}}
-
-\cs_new:Npn \xpg__auto_setupfont:n #1 {
+\cs_new:Npn \__xpg_auto_setupfont:n #1
+{
\bool_if:cTF { g__xpg_#1_fontsetup_bool }
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{\xpg@fontsetup@latin{#1}}
{\xpg@fontsetup@nonlatin{#1}}
}
@@ -4812,11 +4954,12 @@ to track the issues and follow progress.
% add fontfeature Language=#2 to langtag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@language:nn {
+\cs_new:Nn \__xpg_add_font_feature_language:nn
+{
\bool_if:nTF{\tl_if_empty_p:n{#1} || \tl_if_empty_p:n{#2}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font~
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font~
(Language="#2"~ to~ langtag~ "#1")}
}
{
@@ -4840,67 +4983,82 @@ to track the issues and follow progress.
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_language:nn { on , no, oo , Vn, nV, VV , xn, nx, xx}
% add fontfeature Script=#2 to scripttag #1
% do nothing if #1 or #2 is empty
-\cs_new:Nn \polyglossia@addfontfeature@script:nnn {
+\cs_new:Nn \__xpg_add_font_feature_script:nnn
+{
\bool_if:nTF{\tl_if_empty_p:n{#2} || \tl_if_empty_p:n{#3}}
{
% maybe an error ?
- \xpg@warning{Asking~ to~ add~ empty~ feature~to~ latin~ font
+ \xpg@warning{Asking~ to~ add~ empty~ feature~to~ main~ font
(Script="#3"~ to~ scripttag~ "#2")}
}
{
\fontspec_if_script:nTF{#2}
{\addfontfeature{Script=#3}}
{
- \tl_set:Nn \l_ffamily_tl {}
- \tl_set:Nn \l_ffamilysh_tl { #1 }
+ \tl_set:Nn \xpg_ffamily_tl {}
+ \tl_set:Nn \xpg_ffamilysh_tl { #1 }
\str_if_eq:nnT { #1 } { rm }
{
- \tl_set:Nn \l_ffamily_tl { roman }
- \tl_set:Nn \l_ffamilysh_tl {}
+ \tl_set:Nn \xpg_ffamily_tl { roman }
+ \tl_set:Nn \xpg_ffamilysh_tl {}
}
\str_if_eq:nnT { #1 } { sf }
{
- \tl_set:Nn \l_ffamily_tl { sans~ serif }
+ \tl_set:Nn \xpg_ffamily_tl { sans~ serif }
}
\str_if_eq:nnT { #1 } { tt }
{
- \tl_set:Nn \l_ffamily_tl { monospace }
+ \tl_set:Nn \xpg_ffamily_tl { monospace }
}
+ % Strip font family name for error message
+ % Courtesy of egreg, https://tex.stackexchange.com/a/613996
+ \str_set:Nx \xpg_fname_str { \fontname\font }
+ % Remove all after :
+ \regex_replace_once:nnN { \:.* } { } \xpg_fname_str
+ % ... and all after /
+ \regex_replace_once:nnN { /.* } { } \xpg_fname_str
+ % ... and brackets
+ \regex_replace_once:nnN { \[ } { } \xpg_fname_str
+ \regex_replace_once:nnN { \] } { } \xpg_fname_str
+ % ... and extensions
+ \regex_replace_once:nnN { \.[^\.]* \Z } { } \xpg_fname_str
+ % ... and, finally, quotation marks
+ \regex_replace_once:nnN { " } { } \xpg_fname_str
\xpg@error{
- The~ current~ latin ~ \l_ffamily_tl\space font~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
- Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n#3}font\l_ffamilysh_tl\endcsname~
+ The~ current~ main ~ \xpg_ffamily_tl\space font,~ \xpg_fname_str,~ does~ not~ contain~ the~"#3"~ script!\MessageBreak
+ Please~ define~\csname\tl_if_empty:nF{#3}{\str_lowercase:n{#3}}font\xpg_ffamilysh_tl\endcsname~
with~ \string\newfontfamily\space command
}
}
}
}
-\cs_generate_variant:Nn \polyglossia@addfontfeature@script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
+\cs_generate_variant:Nn \__xpg_add_font_feature_script:nnn { non , nno, noo , nVn, nnV, nVV , nxn, nnx, nxx}
\def\xpg@fontsetup@latin#1{
\begingroup
\csgdef{#1@font@rm}{
\cs_if_exist_use:cF{#1font}{
\rmfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@sf}{
\cs_if_exist_use:cF{#1fontsf}{
\sffamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\csgdef{#1@font@tt}{
\cs_if_exist_use:cF{#1fonttt}{
\ttfamilylatin
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
}
\endgroup
@@ -4912,9 +5070,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1font}
{
\providetoggle{#1@use@script@font}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\rmfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} font}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} font}
{
\toggletrue{#1@use@script@font}
}
@@ -4923,12 +5081,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@font}{}{
- \polyglossia@addfontfeature@script:nxx{rm}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{rm}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{rm}
}%
@@ -4936,9 +5094,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1fontsf}
{
\providetoggle{#1@use@script@fontsf}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\sffamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fontsf}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fontsf}
{
\toggletrue{#1@use@script@fontsf}
}
@@ -4947,12 +5105,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@fontsf}{}{
- \polyglossia@addfontfeature@script:nxx{sf}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{sf}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}%
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}%
\def\familytype{sf}
}%
@@ -4960,9 +5118,9 @@ to track the issues and follow progress.
\cs_if_exist_use:cF{#1fonttt}
{
\providetoggle{#1@use@script@fonttt}
- \str_if_eq:nnTF{\prop_item:Nn{\polyglossia@langsetup}{#1/script}}{\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \str_if_eq:nnTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
{\ttfamilylatin}
- {\cs_if_exist_use:cTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript} fonttt}
+ {\cs_if_exist_use:cTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript} fonttt}
{
\toggletrue{#1@use@script@fonttt}
}
@@ -4971,12 +5129,12 @@ to track the issues and follow progress.
}
}
\iftoggle{#1@use@script@fonttt}{}{
- \polyglossia@addfontfeature@script:nxx{tt}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/scripttag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/script}}
+ \__xpg_add_font_feature_script:nxx{tt}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/scripttag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/script}}
}
- \polyglossia@addfontfeature@language:xx{\prop_item:Nn{\polyglossia@langsetup}{#1/langtag}}
- {\prop_item:Nn{\polyglossia@langsetup}{#1/language}}
+ \__xpg_add_font_feature_language:xx{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/langtag}}
+ {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/language}}
}
\def\familytype{tt}
}
@@ -4987,71 +5145,42 @@ to track the issues and follow progress.
%% ensure localization of \markright and \markboth commands
%%% THIS IS NOW DISABLED BY DEFAULT
-\cs_new_nopar:Nn {\polyglossia@local@marks:n} {}
-\cs_new_nopar:Nn {\polyglossia@enable@local@marks:}
+\cs_new_nopar:Nn \__xpg_local_marks:n { }
+\cs_new_nopar:Nn \__xpg_enable_local_marks:
{
- \xpg@info{Option:~ localmarks}
- \cs_gset_nopar:Nn \polyglossia@local@marks:n
- {%
- \def\xpg@tmp@lang{##1}
- \DeclareRobustCommand\markboth[2]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \unrestored@protected@xdef\@themark
- {%
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
- }%
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }%
- \DeclareRobustCommand\markright[1]{
- \begingroup
- \let\label\relax \let\index\relax \let\glossary\relax
- \expandafter\@markright\@themark
- {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
- \@temptokena \expandafter{\@themark}
- \mark{\the\@temptokena}
- \endgroup
- \if@nobreak\ifvmode\nobreak\fi\fi
- }
-% This part seems wrong (see #396 for explanation). Remove after a while.
-% \def\@markright####1####2####3{%
-% \@temptokena{\protect\@@ensure@maindir{####1}}%
-% \unrestored@protected@xdef\@themark{%
-% {\the\@temptokena}%
-% {\protect\@@ensure@maindir{####3}}%
-% }%
-% }%
- }%
+ \xpg@info{Option:~ localmarks}
+ \cs_gset_nopar:Nn \__xpg_local_marks:n
+ {
+ \def\xpg@tmp@lang{##1}
+ \DeclareRobustCommand\markboth[2]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \unrestored@protected@xdef\@themark
+ {
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####2}}}
+ }
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ \DeclareRobustCommand\markright[1]{
+ \begingroup
+ \let\label\relax \let\index\relax \let\glossary\relax
+ \expandafter\@markright\@themark
+ {\lowercase{\foreignlanguage{\xpg@tmp@lang}}{\protect\@@ensure@maindir{####1}}}
+ \@temptokena \expandafter{\@themark}
+ \mark{\the\@temptokena}
+ \endgroup
+ \if@nobreak\ifvmode\nobreak\fi\fi
+ }
+ }
}
-
-% Easy way out – Arthur, 2012-08-01
-\ifcsdef{newXeTeXintercharclass}{
-% to reset the intercharclass of a character to "normal"
-\newXeTeXintercharclass\xpg@normalclass %TODO
-}{}
-
-%% when no patterns are available, we use \l@nohyphenation, assigned to 255
-%% (suggestion by Enrico Gregorio)
-\sys_if_engine_luatex:TF
- {
- \@ifundefined{l@nohyphenation}
- {\chardef\l@nohyphenation=\directlua{
- tex.sprint(polyglossia.newloader_loaded_languages.nohyphenation)}\relax
- }
- {}
- }
- {
- \@ifundefined{l@nohyphenation}{\chardef\l@nohyphenation=255 }{}
- }
-
%we call this macro when a gloss file is not found for a given language
\def\xpg@nogloss#1{
- \xpg@warning{Neither~ file~ gloss-#1.ldf~ nor file~ gloss-#1.lde~ exists!\MessageBreak
+ \xpg@warning{File~ gloss-#1.ldf~ do~ not~ exists!\MessageBreak
I~ will~ nevertheless~ try~ to~ use~ hyphenation~ patterns~ for~ #1.}
\PolyglossiaSetup{#1}{hyphenmins={2,3},hyphennames={#1},fontsetup=true}
% the above amounts to:
@@ -5070,96 +5199,39 @@ to track the issues and follow progress.
\catcode`\@=\xpg@saved@at@catcode
}
-%% Load a lde file
-\cs_new_nopar:Nn \__xpg_gloss_ext: {lde}
-\cs_new_nopar:Ne \__xpg_saved_@pkgextension: {\@pkgextension}
-
-\msg_new:nnn { polyglossia } { directloadgloss }
-{
- You~ should~ not~ load~ directly~ the~ gloss~ file. ~
- You~ must~ use~ `\string\setotherlanguage\{#1\}' or `\string\setmainlanguage\{#1\}'.
-}
-\msg_redirect_name:nnn { polyglossia } { directloadgloss } { critical }
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension_error}{m m m m}
-{
- \msg_critical:nn { polyglossia } { directloadgloss }
-}
-% ProvideExplPackage but for language file
-\cs_new_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-\cs_new_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
-\NewDocumentCommand{\__xpg_ProvidesLanguageDefinitionExtension}{m m m m}
-{
- \__xpg_saved_ProvidesExplPackage{#1}{#2}{#3}{#4}
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension_error
-}
-
-
-% wrapper for loading a gle file
-\NewDocumentCommand{\RequireLanguageDefinitionExtension}{O{} m}
-{
- \cs_gset_eq:NN \__xpg_saved_@pkgextension: \@pkgextension
- \cs_gset_eq:NN \__xpg_saved_ProvidesExplPackage \ProvidesExplPackage
- \cs_gset_eq:NN \@pkgextension \__xpg_gloss_ext:
- \cs_gset_eq:NN \ProvidesLanguageDefinitionExtension \__xpg_ProvidesLanguageDefinitionExtension
- \RequirePackage[#1]{gloss-#2}
- % be paranoiac restore
- \cs_gset_eq:NN \@pkgextension \__xpg_saved_@pkgextension:
- \cs_gset_eq:NN \__xpg_ProvidesLanguageDefinitionExtension_error \ProvideLanguageDefinitionExtension
-}
-
% try to load a language file
-\cs_new:Nn \polyglossia_load_lang_definition:nn {
- \file_if_exist:nTF{gloss-#2.lde}
- {
- \RequireLanguageDefinitionExtension[#1]{#2}
- \setkeys{#2}{#1}
- }
- {
- \file_if_exist:nTF{gloss-#2.ldf}
- {
- % Temporarily force catcode of ~ to 13 since babelsh.def
- % requires it. This is needed particularly with LaTeX3
- % packages which force \ExplSyntaxOn (#425)
- \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
- \catcode 126 = 13
- \xpg@input{gloss-#2.ldf}
- \setkeys{#2}{#1}
- % restore former ~ catcode
- \xpg@restore@tilde@catcode
- }
- {
- \xpg@nogloss{#2}
- }
- }
-}
-\cs_generate_variant:Nn \polyglossia_load_lang_definition:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_new:Nn \__xpg_load_lang_definition:nn {
+ \file_if_exist:nTF{gloss-#2.ldf}
+ {
+ % Temporarily force catcode of ~ to 13 since babelsh.def
+ % requires it. This is needed particularly with LaTeX3
+ % packages which force \ExplSyntaxOn (#425)
+ \protected\edef\xpg@restore@tilde@catcode{\catcode 126 = \the\catcode 126\relax}
+ \catcode 126 = 13
+ \xpg@input{gloss-#2.ldf}
+ \setkeys{#2}{#1}
+ % restore former ~ catcode
+ \xpg@restore@tilde@catcode
+ }
+ {
+ \xpg@nogloss{#2}
+ }
+}
+\cs_generate_variant:Nn \__xpg_load_lang_definition:nn { ee }
% load a master language from an alias file
\newcommand*\xpg@load@master@language[1] {
- \file_if_exist:nTF{gloss-#1.lde}
- {
- \RequireLanguageDefinitionExtension{#1}
- }
- {
- \xpg@input{gloss-#1.ldf}
- }
+ \xpg@input{gloss-#1.ldf}
\seq_if_in:NeF \__xpg_langs_loaded {#1}
{
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1} {
- \use:c{\prop_item:Nn{\polyglossia@langsetup}
+ \use:c{\prop_item:Nn{\g_xpg_langsetup_prop}
{#1/DefineCommandsCmd}}
{#1}
}
}
- \polyglossia@register@language:nn{}{#1}
+ \__xpg_register_language:nn{}{#1}
\seq_gput_right:Nn \__xpg_langs_loaded {#1}
}
@@ -5170,14 +5242,14 @@ to track the issues and follow progress.
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#1/target}} {#1}
{
\exp_args:Ne
- \newenvironment {\prop_item:Nn{\polyglossia@langsetup}{#1/envname}} [1] []
+ \NewDocumentEnvironment {\prop_item:Nn{\g_xpg_langsetup_prop}{#1/envname}} { O{} }
{
- \begin{otherlanguage}[##1]{#1}
+ \otherlanguage [ ##1 ] { #1 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
- \exp_args:Nc \newcommand {text#1} [2][]
+ \exp_args:Nc \NewDocumentCommand {text#1} { O{} m }
{
\__xpg_textlanguage:een{##1}{#1}{##2}
}
@@ -5198,7 +5270,7 @@ to track the issues and follow progress.
% target to self fall back to language table
\str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
{
- \prop_item:Nn{\polyglossia@langsetup} {#1/#2}
+ \prop_item:Nn{\g_xpg_langsetup_prop} {#1/#2}
}
% load alias by recursion
{
@@ -5232,15 +5304,10 @@ to track the issues and follow progress.
% get base language
-\cs_new:Nn \xpg_alias_base_lang:n {
- \str_if_eq:eeTF { \prop_item:Ne \__xpg_alias {#1/target} } { #1 }
- {
- #1
- }
+\cs_new:Nn \xpg_alias_base_lang:n
{
- \xpg_alias_base_lang:n { \prop_item:Ne \__xpg_alias {#1/target} }
+ \prop_item:Ne \__xpg_alias {#1/target}
}
-}
\cs_generate_variant:Nn \xpg_alias_base_lang:n {e}
\keys_define:nn { polyglossia/alias }
@@ -5302,10 +5369,10 @@ to track the issues and follow progress.
}
\DeclareDocumentEnvironment { #4 } { }
{
- \begin{otherlanguage}{#4}
+ \otherlanguage { #4 }
}
{
- \end{otherlanguage}
+ \endotherlanguage
}
}
\tl_clear_new:N \__xpg_alias_option_tl
@@ -5321,19 +5388,20 @@ to track the issues and follow progress.
{#4}
}
-\cs_new:Nn \polyglossia@register@language:nn {
+\cs_new:Nn \__xpg_register_language:nn
+{
\clist_if_in:NeF \xpg@loaded {#2}{
\clist_gput_right:Ne \xpg@loaded {#2}
}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
% register babelname
- \prop_get:NeN \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
\clist_if_in:NeF \xpg@bloaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bloaded {\l_tmpa_tl}
}
% register BCP-47 ID
- \prop_get:NeN \polyglossia@langsetup {#2/bcp47} \l_tmpa_tl
+ \prop_get:NeN \g_xpg_langsetup_prop {#2/bcp47} \l_tmpa_tl
\clist_if_in:NeF \xpg@bcp@loaded {\l_tmpa_tl}{
\clist_gput_right:Ne \xpg@bcp@loaded {\l_tmpa_tl}
}
@@ -5350,21 +5418,21 @@ to track the issues and follow progress.
}
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:nn{#1}{#2}
+ \__xpg_load_lang_definition:nn{#1}{#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
- \exp_args:Nee \polyglossia@set@default@language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \exp_args:Nee \__xpg_set_default_language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
-\cs_new:Nn \polyglossia@set@default@language:nn
+\cs_new:Nn \__xpg_set_default_language:nn
{
\gdef\xpg@main@language{#2}
\tl_if_blank:nTF {#1}
@@ -5373,16 +5441,16 @@ to track the issues and follow progress.
}
{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@main@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
}
\csgdef{#2@gvar}{\mainlanguagevariant}
%% The following settings are for the default language and script
% this tells bidi.sty or luabidi.sty that the document is RTL
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{
\__xpg_setRTLmain:
}
- \cs_gset_nopar:Nn \polyglossia@AtBeginDocument@selectlanguage: {
+ \cs_gset_nopar:Nn \__xpg_at_begin_document_selectlanguage: {
\selectbackgroundlanguage{#2}
\selectlanguage[#1]{#2}%
}
@@ -5391,24 +5459,24 @@ to track the issues and follow progress.
\cs_gset_nopar:Npn \mainlanguagename {#2}
% Store babelname of main language (for external packages such as biblatex)
- \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \polyglossia@langsetup {#2/babelname} }
+ \cs_gset_nopar:Npe \mainbabelname { \prop_item:Nn \g_xpg_langsetup_prop {#2/babelname} }
% Store babelname of current language (for external packages such as biblatex)
\cs_gset_eq:NN \babelname \mainbabelname
\cs_gset_eq:cc{#2@gbabelname}{babelname}%
% Store BCP-47 ID and subtags of main language:
% 1. store main.* (sub)tags
- \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47 } }
- \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-language } }
- \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-region } }
- \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-script } }
- \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-variant } }
- \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47extension-t } }
- \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-u } }
- \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \polyglossia@langsetup { #2 / bcp47-extension-x } }
+ \cs_gset_nopar:cpe {bcp47.main.tag} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47 } }
+ \cs_gset_nopar:cpe {bcp47.main.language} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-language } }
+ \cs_gset_nopar:cpe {bcp47.main.region} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-region } }
+ \cs_gset_nopar:cpe {bcp47.main.script} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-script } }
+ \cs_gset_nopar:cpe {bcp47.main.variant} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-variant } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.t} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47extension-t } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.u} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-u } }
+ \cs_gset_nopar:cpe {bcp47.main.extension.x} { \prop_item:Nn \g_xpg_langsetup_prop { #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
- { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \polyglossia@langsetup {#2 / bcp47-language} } }
+ { \cs_gset_nopar:cpe {bcp47.main.casing} { \prop_item:Nn \g_xpg_langsetup_prop {#2 / bcp47-language} } }
{ \cs_gset_nopar:cpe {bcp47.main.casing} { \tmpcasing } }
% 2. Store lang (sub)tags
\cs_gset_eq:cc {bcp47.tag} {bcp47.main.tag}
@@ -5430,11 +5498,6 @@ to track the issues and follow progress.
\cs_gset_eq:cc{#2@g.bcp47.extension.u}{bcp47.extension.u}
\cs_gset_eq:cc{#2@g.bcp47.extension.x}{bcp47.extension.x}
\cs_gset_eq:cc{#2@g.bcp47.casing}{bcp47.casing}
- % Set luatex main language
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.set_default_language('\luaescapestring{\string#2}')}%
- }
}
\DeclareCommandCopy \setmainlanguage \setdefaultlanguage
@@ -5519,14 +5582,14 @@ to track the issues and follow progress.
\ifcsundef{#2@gvar}{\def\languagevariant{}}{\def\languagevariant{\csuse{#2@gvar}}}
}{
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@set@langvariant}
- \cs_set_eq:cc{#2@gvar}{languagevariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@set@langvariant}
+ \cs_set_eq:cc{#2@var}{languagevariant}
}%
}
\newcommand*{\resetdefaultlanguage}[2][]{
- \polyglossia@reset@default@language:nn
+ \__xpg_reset_default_language:nn
{\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
}
@@ -5537,56 +5600,56 @@ to track the issues and follow progress.
\tl_if_blank:nTF {#1}{
% tag (e.g., en-US)
\ifcsundef{#2@g.bcp47.tag}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
}{
\csedef{bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
% language (e.g., en)
\ifcsundef{#2@g.bcp47.language}{
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
}{
\csedef{bcp47.language}{\csuse{#2@g.bcp47.language}}
}
% region (e.g., US)
\ifcsundef{#2@g.bcp47.region}{%
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
}{
\csedef{bcp47.region}{\csuse{#2@g.bcp47.region}}%
}
% script (e.g., Latn)
\ifcsundef{#2@g.bcp47.script}{
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
}{
\csedef{bcp47.script}{\csuse{#2@g.bcp47.script}}
}
% variant (e.g., 1996)
\ifcsundef{#2@g.bcp47.variant}{
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
}{
\csedef{bcp47.variant}{\csuse{#2@g.bcp47.variant}}
}
% extension.t (tranformation)
\ifcsundef{#2@g.bcp47.extension.t}{%
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
}{
\csedef{bcp47.extension.t}{\csuse{#2@g.bcp47.extension.t}}
}
% extension.u (additional locale information)
\ifcsundef{#2@g.bcp47.extension.u}{%
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
}{
\csedef{bcp47.extension.u}{\csuse{#2@g.bcp47.extension.u}}
}
% extension.x (private use area)
\ifcsundef{#2@g.bcp47.extension.x}{
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
}{
\csedef{bcp47.extension.x}{\csuse{#2@g.bcp47.extension.x}}
}
% casing
\ifcsundef{#2@g.bcp47.casing}{
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
@@ -5594,25 +5657,25 @@ to track the issues and follow progress.
\csedef{bcp47.casing}{\csuse{#2@g.bcp47.casing}}
}
}{
- \csedef{bcp47.tag}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47 } }
- \csedef{bcp47.language}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-language } }
- \csedef{bcp47.region}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-region } }
- \csedef{bcp47.script}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-script } }
- \csedef{bcp47.variant}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-variant } }
- \csedef{bcp47.extension.t}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-t } }
- \csedef{bcp47.extension.u}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-u } }
- \csedef{bcp47.extension.x}{ \prop_item:Nn{ \polyglossia@langsetup}{ #2 / bcp47-extension-x } }
+ \csedef{bcp47.tag}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47 } }
+ \csedef{bcp47.language}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-language } }
+ \csedef{bcp47.region}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-region } }
+ \csedef{bcp47.script}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-script } }
+ \csedef{bcp47.variant}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-variant } }
+ \csedef{bcp47.extension.t}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-t } }
+ \csedef{bcp47.extension.u}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-u } }
+ \csedef{bcp47.extension.x}{ \prop_item:Nn{ \g_xpg_langsetup_prop}{ #2 / bcp47-extension-x } }
% For casing, we fall back to language if bcp47-casing is not explicitly set
- \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \polyglossia@langsetup { #2 / bcp47-casing } }
+ \cs_set_nopar:cpx {tmpcasing} { \prop_item:Ne \g_xpg_langsetup_prop { #2 / bcp47-casing } }
\str_if_empty:NTF \tmpcasing
{ \cs_gset_eq:cc {bcp47.casing} {bcp47.language} }
{ \csedef{bcp47.casing}{ \tmpcasing } }
}
}
-\cs_new:Nn \polyglossia@reset@default@language:nn
+\cs_new:Nn \__xpg_reset_default_language:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
% disable globalnumbers of previously defined default language
\csuse{no\xpg@main@language @globalnumbers}
\csuse{noextras@\xpg@main@language}%
@@ -5621,7 +5684,7 @@ to track the issues and follow progress.
\cs_if_exist_use:c{noextras@bbl@\mainbabelname}%
\csuse{init@noextras@\xpg@main@language}%
\polyglossia@set@language@name[#1]{#2}%
- \__xpg_if_LR_str:eF{\prop_item:Ne{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Ne{\g_xpg_langsetup_prop}{#2/direction}}
{
\@rlmaintrue\@rl@footnotetrue
}
@@ -5630,23 +5693,26 @@ to track the issues and follow progress.
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{%
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
+ }
+ % Store variant
+ \tl_if_blank:nTF {#1}
+ {
+ \cs_gset_nopar:Npn \mainlanguagevariant {}
}
+ {
+ % Register the language options
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@main@langvariant}
+ }
+ \csgdef{#2@gvar}{\mainlanguagevariant}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
}
-\cs_generate_variant:Nn \polyglossia@reset@default@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
% This saves the normalfont for the latin script since we may change normalfont in other scripts
\let\normalfontlatin=\normalfont
@@ -5758,56 +5824,51 @@ to track the issues and follow progress.
\@afterindentfalse
}
-\cs_new_nopar:Npn \selectbackgroundlanguage #1
-{%
- \polyglossia@select@background@language:n {\xpg_alias_base_lang:n{#1}}
+\DeclareDocumentCommand \selectbackgroundlanguage { m }
+{
+ \__xpg_select_background_language:n {\xpg_alias_base_lang:n{#1}}
}
-\cs_new:Nn \polyglossia@select@background@language:n
+
+\cs_new:Nn \__xpg_select_background_language:n
{
- \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/lcscript}}{latin}
+ \str_if_eq:eeTF{\prop_item:Nn{\g_xpg_langsetup_prop}{#1/lcscript}}{latin}
{}
{\xpg@set@normalfont{#1}}
\csuse{#1@globalnumbers}
}
-\cs_generate_variant:Nn \polyglossia@select@background@language:n {e}
+\cs_generate_variant:Nn \__xpg_select_background_language:n {e}
% Declare secondary language #2 with language options #1
\DeclareDocumentCommand \setotherlanguage { O{} m }
{
\seq_if_in:NeF \__xpg_langs_loaded {#2}
{
- \polyglossia_load_lang_definition:ee {#1} {#2}
+ \__xpg_load_lang_definition:ee {#1} {#2}
% define environment and command if not alias
\str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
- \use:c{\prop_item:Ne{\polyglossia@langsetup}
+ \use:c{\prop_item:Ne{\g_xpg_langsetup_prop}
{#2/DefineCommandsCmd}}
{#2}
}
- \polyglossia@set@other@language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
+ \__xpg_set_otherlanguage:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
{\xpg_alias_base_lang:n{#2}}
\seq_gput_right:Ne \__xpg_langs_loaded {#2}
}
}
-\cs_new:Nn \polyglossia@set@other@language:nn
+\cs_new:Nn \__xpg_set_otherlanguage:nn
{
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% If a variant is set, store it.
\gdef\otherlanguagevariant{}
% Register the language options
- \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@other@langvariant}
+ \__xpg_set_language_options:nnn {#2} {#1} {@xpg@other@langvariant}
\csgdef{#2@gvar}{\otherlanguagevariant}
- \prop_get:NeNT \polyglossia@langsetup {#2/babelname} \l_tmpa_tl
+ \prop_get:NeNT \g_xpg_langsetup_prop {#2/babelname} \l_tmpa_tl
{ \xdef\otherlanguagebabelname{\l_tmpa_tl} }
\cs_gset_eq:cc{#2@gbabelname}{otherlanguagebabelname}
}
-\cs_generate_variant:Nn \polyglossia@set@other@language:nn {
- ee, ef, en, eo, ex,
- fe, ff, fn, fo, fx,
- ne, nf, no, nx,
- oe, of, on, oo, ox,
- xe, xf, xn, xo, xx
-}
+\cs_generate_variant:Nn \__xpg_set_otherlanguage:nn { ee }
% Store main language variant for external packages
@@ -5820,17 +5881,20 @@ to track the issues and follow progress.
\clist_map_function:eN { #1 } \setotherlanguage
}
-\def\common@language{% FIXME is this really needed???
- \ifbool{xpg@hyphenation@disabled}{
- \xdef\xpg@lastlanguage{\z@}
+\cs_set:Nn \xpg_common_language:
+{% FIXME is this really needed???
+ \bool_if:NTF \g__xpg_hyphenation_disabled_bool
+ {
+ \tl_gset:Ne \g__xpg_lastlanguage_tl {\z@}
}{
\language=\z@
}
\lefthyphenmin=\tw@
\righthyphenmin=\thr@@}
-\def\xpg@initial@setup{
- \common@language
+\cs_set:Nn \xpg_initial_setup:
+{
+ \xpg_common_language:
}
@@ -5851,27 +5915,21 @@ to track the issues and follow progress.
% for specific (esp. tag-based) aliases
% where {<alias>} would cause clashes
% (e.g., \fi)
-\newenvironment{lang}[2][]{
- \begin{otherlanguage}[#1]{#2}
-}{
- \end{otherlanguage}
-}
-
-\providecommand{\foreignlanguage}{}
+\DeclareEnvironmentCopy { lang } { otherlanguage }
% wrapper for foreignlanguage and otherlanguage*
\newcommand*\polyglossia@setforeignlanguage[2][]{
\select@@language[#1]{#2}
- \polyglossia@register@language:nn{#1}{#2}
+ \__xpg_register_language:nn{#1}{#2}
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -5888,7 +5946,7 @@ to track the issues and follow progress.
}
% lowercase options before passing to setkeys
-\cs_new:Nn \polyglossia@set@keys:nn
+\cs_new:Nn \__xpg_set_keys:nn
{
\xpg@str@lowercase{\xpg@tmp@opts}{#2}
\exp_args:Nne \setkeys{#1}{\xpg@tmp@opts}
@@ -5898,10 +5956,10 @@ to track the issues and follow progress.
% and \text<lang>
% #1 option
% #2 language
-\newcommand{\xpg@otherlanguage}[2][]
+\cs_new:Nn \xpg_otherlanguage:nn
{
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
\polyglossia@setforeignlanguage[#1]{#2}
% Hook for external packages such as biblatex
\polyglossia@language@switched
@@ -5912,10 +5970,13 @@ to track the issues and follow progress.
\cs_if_exist_use:c{inlineextras@bbl@\babelname}
}
-\renewcommand{\foreignlanguage}[3][]
-{
- \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
-}
+\DeclareDocumentCommand { \foreignlanguage } { O{} m m }
+ {
+ \__xpg_foreignlanguage:eeen {#1} {#2} {\xpg_alias_base_lang:n{#2}} {#3}
+ }
+
+% prevent case changing of language name in \foreignlanguage
+\tl_put_right:Nn \l_text_case_exclude_arg_tl { \foreignlanguage }
% Direct access to polyglossia@setforeignlanguage
% used in captions
@@ -5942,7 +6003,7 @@ to track the issues and follow progress.
{ \cs_set_eq:NN \__xpg_current_matrixlang \l_tmpa_tl }
{ \cs_set_eq:NN \__xpg_current_matrixlang \mainlanguagename }
% Reset the language's/script's font families if the embedding script is latin
- \str_if_eq:eeT{\prop_item:Ne{\polyglossia@langsetup}{\__xpg_current_matrixlang/lcscript}}{latin}
+ \str_if_eq:eeT{\prop_item:Ne{\g_xpg_langsetup_prop}{\__xpg_current_matrixlang/lcscript}}{latin}
{\resetfontlatin}
% In case a \<lang>font is defined, re-activate that
\exp_args:Ne \xpg@set@normalfont{\__xpg_current_matrixlang}
@@ -5961,8 +6022,8 @@ to track the issues and follow progress.
}{
\__xpg_store_matrixlang:
\group_begin:
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -5971,17 +6032,14 @@ to track the issues and follow progress.
% otherlanguage* is the environment equivalent of \foreignlanguage
-\expandafter\providecommand\csname otherlanguage*\endcsname{}
-
-\renewenvironment{otherlanguage*}[2][]
-{%
- \__xpg_store_matrixlang:
- \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
-}
-{
- \egroup
- \__xpg_reset_to_matrixlang:
-}
+\DeclareDocumentEnvironment { otherlanguage* } { O{} m }
+ {
+ \__xpg_store_matrixlang:
+ \__xpg_otherlanguage:eee { #1 } { #2 } { \xpg_alias_base_lang:n { #2 } }
+ }{
+ \group_end:
+ \__xpg_reset_to_matrixlang:
+ }
% internal wrapper
% #1 option
@@ -5993,14 +6051,12 @@ to track the issues and follow progress.
{
\msg_show:nnn { polyglossia } { languagenotloaded } {#2}
}{
- \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}
- \polyglossia@lang@settextdirection:nn{#3}%
+ \xpg_otherlanguage:nn{ \xpg_alias_add_to_option_i:nn{#2}{#1} }{ #3 }
+ \__xpg_lang_set_text_direction:nn{#3}%
\bgroup
}
}
-\cs_generate_variant:Nn \__xpg_otherlanguage:nnn {
- eee
-}
+\cs_generate_variant:Nn \__xpg_otherlanguage:nnn { eee }
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -6014,7 +6070,7 @@ to track the issues and follow progress.
\cs_generate_variant:Nn \__xpg_textlanguage:nnn {een}
% Track whether we are in an inline lang (\text...) switch
-\bool_new:N \__xpg_inline_lang
+\bool_new:N \l__xpg_inline_lang_bool
% use by \text<lang> and \textlang. Equivalent to \foreignlanguage,
% except that dates are localized.
@@ -6031,13 +6087,13 @@ to track the issues and follow progress.
{
\__xpg_store_matrixlang:
\group_begin:
- \bool_set_true:N \__xpg_inline_lang
- \xpg@otherlanguage[#1]{#3}
+ \bool_set_true:N \l__xpg_inline_lang_bool
+ \xpg_otherlanguage:nn{#1}{#3}
\csuse{date#3}
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@lang@settextdirection:nn{#3}{#4}
+ \__xpg_lang_set_text_direction:nn{#3}{#4}
\group_end:
\__xpg_reset_to_matrixlang:
}
@@ -6047,7 +6103,7 @@ to track the issues and follow progress.
% Define language-specific hyphenation exceptions
\newcommand\pghyphenation[3][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
+ \xpg_error_if_lang_not_loaded:n{#2}
\setkeys{#2}{#1}
\select@@language[#1]{#2}
\hyphenation{#3}
@@ -6057,6 +6113,7 @@ to track the issues and follow progress.
% Hook that other package authors can use
% (for instance biblatex):
+% Do not rename!
\newcommand*{\xpg@hook@setlanguage}{}
\def\xpg@pop@language@i#1#2{
@@ -6064,55 +6121,39 @@ to track the issues and follow progress.
\xpg@hook@setlanguage
\let\emp@langname\@undefined}
-\newif\ifxpginauxfile\xpginauxfilefalse
-
\DeclareDocumentCommand \selectlanguage {s O{} m}
-{
- \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
{
- \ifxpginauxfile
- \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3}
- \else
- \msg_show:nnn { polyglossia } { languagenotloaded } {#3}
- \fi
- }
- {
- \polyglossia@select@language:nee {#1}
- {\xpg_alias_add_to_option_i:nn{#3}{#2}}
- {\xpg_alias_base_lang:n{#3}}
+ \tl_if_blank:eTF {\xpg_alias_base_lang:n{#3}}
+ {
+ \IfBooleanTF { #1 }
+ { \msg_show:nnn { polyglossia } { languagenolongerloaded } {#3} }
+ { \msg_show:nnn { polyglossia } { languagenotloaded } {#3} }
+ }{
+ \__xpg_select_language:nee {#1}
+ { \xpg_alias_add_to_option_i:nn{#3}{#2} }
+ { \xpg_alias_base_lang:n{#3} }
+ }
}
-}
-\cs_new:Nn \polyglossia@select@language:nnn
+\cs_new:Nn \__xpg_select_language:nnn
{
- \IfBooleanF {#1}
- {
- \cs_set_nopar:Npx \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
- \group_insert_after:N \xpg@pop@language
- }
% Register the language options
- \polyglossia@set@lang@options:nnn {#3} {#2} {@xpg@set@langvariant}
- % The starred variant does not write to the aux
- \IfBooleanTF#1{%
- \xpg@set@language@nonaux[#2]{#3}
- }
- {
- \xpg@set@language@aux[#2]{#3}
- }
- \sys_if_engine_luatex:T
- {
- \directlua{polyglossia.select_language('\luaescapestring{\string#3}',
- \the\csname l@#3\endcsname)}
- }
- \polyglossia@register@language:nn{#2}{#3}
-}
-\cs_generate_variant:Nn \polyglossia@select@language:nnn {
- nee, nne
+ \__xpg_set_language_options:nnn {#3} {#2} {@xpg@set@langvariant}
+ \IfBooleanTF { #1 } % The starred variant does not write to the aux
+ {
+ \xpg@set@language@nonaux[#2]{#3}
+ }{
+ \cs_set_nopar:Npe \xpg@pop@language { \exp_not:N \xpg@pop@language@i {#2} {#3} }
+ \group_insert_after:N \xpg@pop@language
+ \xpg@set@language@aux[#2]{#3}
+ }
+ \__xpg_register_language:nn{#2}{#3}
}
+\cs_generate_variant:Nn \__xpg_select_language:nnn { nee, nne }
% set lang option #2 for lang #1
-\cs_new:Nn \polyglossia@set@lang@options:nnn
+\cs_new:Nn \__xpg_set_language_options:nnn
{
\tl_if_blank:nF {#2}
{
@@ -6120,7 +6161,7 @@ to track the issues and follow progress.
\clist_map_inline:nn { #2 } {
\xpg@parsevariantkeyvalue##1=#3:#1\relax
}%
- \polyglossia@set@keys:nn{#1}{#2}
+ \__xpg_set_keys:nn{#1}{#2}
}
}
@@ -6128,7 +6169,7 @@ to track the issues and follow progress.
% \iflanguageoption has the info it needs also
% for default settings
\newcommand*\xpg@initialize@gloss@options[2]{
- \polyglossia@set@lang@options:nnn {#1} {#2} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {#1} {#2} {@xpg@set@langvariant}
}
% Record synonymous keyvals such as variant=us and variant=american
@@ -6138,6 +6179,8 @@ to track the issues and follow progress.
{ \prop_new:c {xpg@alias@keyvals@#1@#3} }
\prop_put:cnn { xpg@alias@keyvals@#1@#3 }
{#2}{#4}
+ \prop_if_exist:cF { xpg@alias@keyvals@#1@#4 }
+ { \prop_new:c {xpg@alias@keyvals@#1@#4} }
\prop_put:cnn { xpg@alias@keyvals@#1@#4 }
{#2}{#3}
}
@@ -6174,7 +6217,7 @@ to track the issues and follow progress.
}
-\prg_set_conditional:Npnn \polyglossia@check@option@value:NNN #1#2#3 { p , T , F , TF }
+\prg_set_conditional:Npnn \__xpg_check_option_value:NNN #1#2#3 { p , T , F , TF }
{
\prop_get:cnNTF {xpg@current@options@#1} {#2} \l_tmpa_tl
{
@@ -6203,8 +6246,9 @@ to track the issues and follow progress.
}
% Test if option value is set
-\newcommand*\iflanguageoption[5]{
- \polyglossia@check@option@value:NNNTF{#1}{#2}{#3}{#4}{#5}
+\DeclareDocumentCommand \iflanguageoption { m m m m m }
+{
+ \__xpg_check_option_value:NNNTF{#1}{#2}{#3}{#4}{#5}
}
@@ -6216,21 +6260,23 @@ to track the issues and follow progress.
}
% Test if language is loaded
-\newcommand*\iflanguageloaded[3]{
+\DeclareDocumentCommand \iflanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@loaded{#1}{#2}{#3}
}
}
% Same for babellanguage is loaded
-\newcommand*\ifbabellanguageloaded[3]{
+\DeclareDocumentCommand \ifbabellanguageloaded { m m m }
+{
\AddToHook{begindocument/end}{
\clist_if_in:NeTF \xpg@bloaded{#1}{#2}{#3}
}
}
% Same for languageid
-\DeclareDocumentCommand \iflanguageidloaded {mmmm}
+\DeclareDocumentCommand \iflanguageidloaded { m m m m }
{
\AddToHook{begindocument/end}{
\str_case:nnTF {#1}
@@ -6246,7 +6292,7 @@ to track the issues and follow progress.
}
% Check if the current font has a given glyph
-\prg_new_conditional:Npnn \__polyglossia_if_char:N #1 { TF }
+\prg_new_conditional:Npnn \__xpg_if_char:N #1 { TF }
{
\iffontchar\font\int_from_hex:n { #1 }~
\prg_return_true:
@@ -6259,14 +6305,14 @@ to track the issues and follow progress.
% and print it, if so, otherwise print the replacement #2
\NewExpandableDocumentCommand \charifavailable { m m }
{
- \exp_args:Nno \__polyglossia_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
+ \exp_args:Nno \__xpg_if_char:NTF { #1 } { \Uchar"#1 } { #2 }
}
% Test if a char (by char code) is available in the current font
% if so, do #2, else do #3
-\NewDocumentCommand \IfCharIsAvailableTF { m m m }
+\NewExpandableDocumentCommand \IfCharIsAvailableTF { m m m }
{
- \__polyglossia_if_char:NTF{#1}{#2}{#3}
+ \__xpg_if_char:NTF { #1 } { #2 } { #3 }
}
@@ -6279,12 +6325,12 @@ to track the issues and follow progress.
% Store babelname of current language (for external packages such as biblatex)
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@gbabelname}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}{
\edef\babelname{\csuse{#2@gbabelname}}
}
}{
- \edef\babelname{\prop_item:Nn{\polyglossia@langsetup}{#2/babelname}}
+ \edef\babelname{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/babelname}}
}
% Store BCP-47 id of current language
\__xpg_store_bcp_info:nn {#1}{#2}
@@ -6296,29 +6342,14 @@ to track the issues and follow progress.
\newcommand*{\xpg@set@language@only@aux}[2][]{
% Write to the aux (toc files)
\if@filesw
- \ifx#1\\\\
- \addtocontents{toc}{\protect\selectlanguage*{#2}}
- \else
- \addtocontents{toc}{\protect\selectlanguage*[#1]{#2}}
- \fi
+ \addtocontents{toc}{\selectlanguage*[#1]{#2}}
\fi
}
\AtBeginDocument{
- % Tell polyglossia that we are in an aux file
- \if@filesw
- \addtocontents{toc}{\protect\xpginauxfiletrue}
- \addtocontents{lof}{\protect\xpginauxfiletrue}
- \addtocontents{lot}{\protect\xpginauxfiletrue}
- \fi
-}
-
-\AtEndDocument{
- % Tell polyglossia that we are no longer in an aux file
\if@filesw
- \addtocontents{toc}{\protect\xpginauxfilefalse}
- \addtocontents{lof}{\protect\xpginauxfilefalse}
- \addtocontents{lot}{\protect\xpginauxfilefalse}
+ \immediate\write\@mainaux
+ {\ProvideDocumentCommand\selectlanguage{sO{}m}{}}
\fi
}
@@ -6330,49 +6361,22 @@ to track the issues and follow progress.
\addtocontents{lot}{\protect\setforeignlanguage{\languagename}}
}
-% The bidi package swaps the output stream within RTL tables
-% (to get the column order right). This also swaps group
-% delimiters inserted to the aux files via otherlanguage (see #354).
-% We therefore patch bidi and insert a bool that tells us
-% whether we are in such a table.
-\newbool{xpg@inbiditable}
-\AtBeginDocument{
- \@ifpackageloaded{bidi}{
- \patchcmd{\@tabular}
- {\if@RTLtab}
- {\if@RTLtab\booltrue{xpg@inbiditable}}
- {} % success
- {\xpg@warning{Patching bidi table failed!}}
- }{}
-}
-
% check if language is defined
-\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:N #1 { p , T , F , TF }{
- \cs_if_exist:cTF {l@#1}
- {
- \cs_if_eq:cNTF {l@#1} \l@nohyphenation
- {
- \prg_return_false:
- }
- {
- % it's possible that sometimes \csname l@#1\endcsname becomes \relax
- \cs_if_eq:cNTF {l@#1} \relax
- { \prg_return_false: }
- { \prg_return_true: }
- }
- }
- {
- \prg_return_false:
- }
-}
+\prg_set_conditional:Npnn \__xpg_check_if_exist_l@:n #1 { F, TF }
+ {
+ \bool_lazy_and:nnTF
+ { \cs_if_exist_p:c { l@#1 } }
+ { ! (\cs_if_eq_p:cc { l@#1 } { l@nohyphenation }) }
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
\def\polyglossia@luatex@load@lang#1{
% if \l@#1 is not properly defined, call lua function newloader(#1),
% and assign the returned number to \l@#1
- \__xpg_check_if_exist_l@:NF {#1}
+ \__xpg_check_if_exist_l@:nF {#1}
{
- \expandafter\chardef\csname l@#1\endcsname=
- \directlua{ tex.sprint(polyglossia.newloader'#1') }\relax
+ \directlua { token.set_char('l@#1', polyglossia.newloader'#1') }
}
}
@@ -6384,7 +6388,7 @@ to track the issues and follow progress.
{
\polyglossia@luatex@load@lang{#1}
}
- \__xpg_check_if_exist_l@:NTF{#1}{#2}{#3}
+ \__xpg_check_if_exist_l@:nTF{#1}{#2}{#3}
}
% Set \bbl@hyphendata@\the\language, which is (lua)babel's
@@ -6410,20 +6414,20 @@ to track the issues and follow progress.
% hook for compatibility with biblatex
\select@language{#2}
\xpg@set@bbl@hyphendata{\the\language}
- \xpg@initial@setup%
+ \xpg_initial_setup:
\select@@language[#1]{#2}%
% Hook for external packages such as biblatex
\polyglossia@language@switched%
- \polyglossia@lang@setpardirection:n{#2}
+ \__xpg_lang_set_par_direction:n{#2}
\csuse{captions#2}%
\csuse{date#2}%
% These are hooks for external packages which want to access variants
% via babelname (such as biblatex)
\cs_if_exist_use:c{captions@bbl@\babelname}
\cs_if_exist_use:c{date@bbl@\babelname}
- \polyglossia@local@marks:n{#2}
+ \__xpg_local_marks:n{#2}
\csuse{init@extras@#2}%
- \xpg__indent_first:n { #2 }
+ \__xpg_indent_first:n { #2 }
\csuse{blockextras@#2}%
% This is a hook for external packages which want to access variants
% via babelname (such as biblatex)
@@ -6437,6 +6441,7 @@ to track the issues and follow progress.
\def\select@language#1{}
% Hook for external packages such as biblatex
+% do not rename!
\def\polyglossia@language@switched{}
% remove all custumization for language #1
@@ -6456,24 +6461,24 @@ to track the issues and follow progress.
\noextrascurrent{\languagename}
\cs_if_exist_use:c{no\languagename @numbers}
\sys_if_engine_xetex:T{
- \__xpg_if_LR_str:eTF{\prop_item:Ne{\polyglossia@langsetup}{\languagename/direction}}
+ \__xpg_if_LR_str:eTF{\prop_item:Ne{\g_xpg_langsetup_prop}{\languagename/direction}}
{
- \__xpg_if_LR_str:eF{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eF{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setnonlatin} % LTR -> RTL
}
{
- \__xpg_if_LR_str:eT{\prop_item:Nn{\polyglossia@langsetup}{#2/direction}}
+ \__xpg_if_LR_str:eT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/direction}}
{\setlatin} % RTL -> LTR
}
}
}
\polyglossia@set@language@name[#1]{#2}
% Set the language's/script's font families
- \str_if_eq:eeT{\prop_item:Nn{\polyglossia@langsetup}{#2/lcscript}} {latin}
+ \str_if_eq:eeT{\prop_item:Nn{\g_xpg_langsetup_prop}{#2/lcscript}} {latin}
{
\resetfontlatin
}
- \bool_if:NF \__xpg_inline_lang
+ \bool_if:NF \l__xpg_inline_lang_bool
{ % This for non-inline font switches
% in case a \<lang>font is defined
\xpg@set@normalfont{#2}
@@ -6482,7 +6487,7 @@ to track the issues and follow progress.
\__xpg_use_or_warn:c{#2@language}
\cs_if_exist_use:c{#2@numbers}
\use@localhyphenmins[#1]{#2}
- \xpg__french_spacing:n { #2 }
+ \__xpg_french_spacing:n { #2 }
}
@@ -6493,14 +6498,14 @@ to track the issues and follow progress.
%
\clist_new:N \l_xpg_lang_stack
-\cs_new:Nn \polyglossia@stack@language:nn
+\cs_new:Nn \__xpg_stack_language:nn
{
\clist_gpush:Nn \l_xpg_lang_stack {#1:#2}
}
-\cs_generate_variant:Nn \polyglossia@stack@language:nn {nx}
+\cs_generate_variant:Nn \__xpg_stack_language:nn {nx}
-\cs_new:Nn \polyglossia@unstack@language:n
+\cs_new:Nn \__xpg_unstack_language:n
{
\clist_gpop:NNTF \l_xpg_lang_stack \l_tmpa_tl {
% Stored format = options:language => split:
@@ -6510,7 +6515,7 @@ to track the issues and follow progress.
% Execute passed command with language and maybe options
% and re-set stored language's keys
\tl_if_empty:NTF \l_tmpb_tl {\cs_if_exist_use:c{#1}{\l_tmpc_tl}}
- {\polyglossia@set@keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
+ {\__xpg_set_keys:nn{\l_tmpc_tl}{\l_tmpb_tl}
\cs_if_exist_use:c{#1}[\l_tmpb_tl]{\l_tmpc_tl}
}
}
@@ -6521,17 +6526,19 @@ to track the issues and follow progress.
{
% Get real current (pre-switch) options (incl. defaults)
\clist_clear_new:N \l_xpg_current_options
+ \prop_if_exist:cF { xpg@current@options@\languagename }
+ { \prop_new:c {xpg@current@options@\languagename} }
\prop_map_inline:cn {xpg@current@options@\languagename}
{
\clist_put_right:Nn \l_xpg_current_options {##1=##2}
}
% Store current (pre-switch) options and language on stack
- \polyglossia@stack@language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
+ \__xpg_stack_language:nx{\clist_use:Nn \l_xpg_current_options {,}}{\languagename}
\selectlanguage[#1]{#2}
}
{
% restore previous language in aux file and remove closed one from stack
- \polyglossia@unstack@language:n{xpg@set@language@only@aux}
+ \__xpg_unstack_language:n{xpg@set@language@only@aux}
}
\newcommand{\setlocalhyphenmins}[3]{
@@ -6552,17 +6559,17 @@ to track the issues and follow progress.
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
\bgroup
- \polyglossia@error@iflangnotloaded:n{\xpg@tmp@lang}
- \polyglossia@set@keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
+ \xpg_error_if_lang_not_loaded:n{\xpg@tmp@lang}
+ \__xpg_set_keys:nn{\xpg@tmp@lang}{\xpg@tmp@opts}
% Store bcp47.tag@hypenmins
\tl_if_blank:nTF {\xpg@tmp@opts}{%
\ifcsundef{\csname xpg@tmp@lang\endcsname @g.bcp47.tag}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}{
\csedef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csedef{tmp@bcp47.tag}{\prop_item:Ne{\polyglossia@langsetup}{ \xpg@tmp@lang / bcp47 }}
+ \csedef{tmp@bcp47.tag}{\prop_item:Ne{\g_xpg_langsetup_prop}{ \xpg@tmp@lang / bcp47 }}
}
\csgdef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{{#3}{#4}}
\egroup
@@ -6571,17 +6578,17 @@ to track the issues and follow progress.
% \use@localhypenmins[options]{lang}
\newcommand*\use@localhyphenmins[2][]{
\bgroup
- \polyglossia@error@iflangnotloaded:n{#2}
- \polyglossia@set@keys:nn{#2}{#1}
+ \xpg_error_if_lang_not_loaded:n{#2}
+ \__xpg_set_keys:nn{#2}{#1}
% Use bcp47.tag@hypenmins
\tl_if_blank:nTF {#1}{
\ifcsundef{#2@g.bcp47.tag}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}{
\csxdef{tmp@bcp47.tag}{\csuse{#2@g.bcp47.tag}}
}
}{
- \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\polyglossia@langsetup}{ #2 / bcp47 }}
+ \csxdef{tmp@bcp47.tag}{\prop_item:Nn{\g_xpg_langsetup_prop}{ #2 / bcp47 }}
}
\egroup
\ifcsundef{\csname tmp@bcp47.tag\endcsname @hyphenmins}{
@@ -6595,7 +6602,7 @@ to track the issues and follow progress.
}
\sys_if_engine_luatex:T{
% Set \totalhyphenmin if specified
- \prop_get:NeNTF \polyglossia@langsetup {#2/totalhyphenmin} \l_tmpa_tl
+ \prop_get:NeNTF \g_xpg_langsetup_prop {#2/totalhyphenmin} \l_tmpa_tl
{
\xpg@info{totalhyphenmin: '\l_tmpa_tl'}
\expandafter\hyphenationmin \l_tmpa_tl
@@ -6615,7 +6622,7 @@ to track the issues and follow progress.
\edef\xpg@tmp@opts{\xpg_alias_add_to_option_i:nn{#2}{#1}}
\edef\xpg@tmp@lang{\xpg_alias_base_lang:n{#2}}
% Register the language options
- \polyglossia@set@lang@options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
+ \__xpg_set_language_options:nnn {\xpg@tmp@lang} {\xpg@tmp@opts} {@xpg@set@langvariant}
% Now switch patterns
\__xpg_use_or_warn:c{\use:c{xpg@tmp@lang}@language}
% And activate hyphenmins
@@ -6624,10 +6631,10 @@ to track the issues and follow progress.
{ }
\AddToHook{begindocument/before}{
- \@ifpackageloaded{bidi}{
+ \IfPackageLoadedTF{bidi}{
\providecommand*{\aemph}[1]{$\overline{\hboxR{#1}}$}
}{}
- \@ifpackageloaded{luabidi}{
+ \IfPackageLoadedTF{luabidi}{
\providecommand*{\aemph}[1]{$\overline{\hbox{\RL{#1}}}$}
}{}
}
@@ -6636,7 +6643,7 @@ to track the issues and follow progress.
% keys for main package
\keys_define:nn { polyglossia } {
verbose
- .bool_set:N = \l_polyglossia_verbose_bool,
+ .bool_set:N = \g_xpg_verbose_bool,
verbose
.default:n = true,
% compatibility
@@ -6644,7 +6651,7 @@ to track the issues and follow progress.
.meta:n = { verbose = false },
localmarks
- .bool_set:N = \l_polyglossia_localmarks_bool,
+ .bool_set:N = \g_xpg_localmarks_bool,
localmarks
.default:n = true,
% compatibility
@@ -6652,12 +6659,12 @@ to track the issues and follow progress.
.meta:n = { localmarks = false },
babelshorthands
- .bool_set:N = \l_polyglossia_babelshorthands_bool,
+ .legacy_if_set:n = system@babelshorthands, % compatibility
babelshorthands
.default:n = true,
luatexrenderer
- .cs_set:Np = \l_polyglossia_luatex_renderer,
+ .str_set:N = \g_xpg_luatex_renderer_str,
luatexrenderer
.value_required:n = true,
}
@@ -6677,14 +6684,14 @@ to track the issues and follow progress.
% Set the LuaTeX renderer. As opposed to fontspec, we use Harfbuzz by default.
% This can be changed via the luatexrenderer package option.
\sys_if_engine_luatex:T{
- \str_if_eq:eeF{\l_polyglossia_luatex_renderer}{none}
+ \str_if_eq:eeF{\g_xpg_luatex_renderer_str}{none}
{
- \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \l_polyglossia_luatex_renderer}
- \exp_args:Ne \defaultfontfeatures{Renderer=\l_polyglossia_luatex_renderer}
+ \xpg@info{Setting~ LuaTeX~ font~ renderer~ to~ \g_xpg_luatex_renderer_str}
+ \exp_args:Ne \defaultfontfeatures{Renderer=\g_xpg_luatex_renderer_str}
}
}
-\bool_if:nF \l_polyglossia_verbose_bool {
+\bool_if:nF \g_xpg_verbose_bool {
\gdef\@latex@info#1{\relax} % no latex info
\gdef\@font@info#1{\relax} % no latex font info
\gdef\@font@warning#1{\relax} % no latex font warnings
@@ -6692,47 +6699,93 @@ to track the issues and follow progress.
\gdef\xpg@info#1{\relax} % no polyglossia info
}
-\bool_if:nT \l_polyglossia_localmarks_bool {
- \polyglossia@enable@local@marks:
+\bool_if:nT \g_xpg_localmarks_bool {
+ \__xpg_enable_local_marks:
}
% Control shorthand (de-)activation
% This checks that the shorthand char is only deactivated
% if we have activated it ourselves and hence keeps
% activation of other packages if no shorthands are used.
-\seq_new:N \__xpg_active_shorthands
+\seq_new:N \g__xpg_active_shorthands_seq
\DeclareDocumentCommand \xpg@activate@shorthands { O{"} }
{
- \seq_if_in:NnF \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnF \g__xpg_active_shorthands_seq { #1 }
{
\bbl@activate{#1}
- \seq_gpush:Nn \__xpg_active_shorthands { #1 }
+ \seq_gpush:Nn \g__xpg_active_shorthands_seq { #1 }
}
}
\DeclareDocumentCommand \xpg@deactivate@shorthands { O{"} }
{
- \seq_if_in:NnT \__xpg_active_shorthands { #1 }
+ \seq_if_in:NnT \g__xpg_active_shorthands_seq { #1 }
{
\cs_if_exist:cT{initiate@active@char}{\bbl@deactivate{#1}}
- \seq_remove_all:Nn \__xpg_active_shorthands {#1}
+ \seq_remove_all:Nn \g__xpg_active_shorthands_seq {#1}
}
}
-% compatibility
-\newif\ifsystem@babelshorthands
-\bool_if:nTF \l_polyglossia_babelshorthands_bool {
- \system@babelshorthandstrue
-}{
- \system@babelshorthandsfalse
+% Inherit shorthands in other languages
+\NewDocumentCommand \inheritbabelshorthands { m m }
+{
+ \AddToHook{begindocument/before}{
+ % Load the involved languages if necessary
+ % Error if they do not exist
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpa_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpa_lang_tl .ldf}
+ { \setotherlanguage{#1} }
+ { \xpg@error{ Source~ language~ #1,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ \tl_set:Nn \l__xpg_tmpb_lang_tl { \xpg_alias_base_lang:n{#2} }
+ \clist_if_in:NeF \xpg@loaded {\l__xpg_tmpb_lang_tl}{
+ \file_if_exist:nTF{gloss-\l__xpg_tmpb_lang_tl .ldf}
+ { \setotherlanguage{#2} }
+ { \xpg@error{ Target~ language~ #2,~ used~ in~
+ \string\inheritbabelshorthands,~ does~ not~ exist } }
+ }
+ % Test whether the requested shorthands exist
+ \bool_if_exist:NF \l__xpg_no_shorthands_bool
+ { \bool_new:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { \l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \cs_if_exist:cF { no\l__xpg_tmpa_lang_tl @shorthands }
+ { \bool_set_true:N \l__xpg_no_shorthands_bool }
+ \bool_if:nT { \l__xpg_no_shorthands_bool }
+ {
+ \xpg@error{ No~ babel~ shorthands~ exist~ for~ language~ #1 }
+ }
+ % If so, apply:
+ \bool_if:nF { \l__xpg_no_shorthands_bool }
+ {
+ \exp_args:Ncc \addto { blockextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { inlineextras@\l__xpg_tmpb_lang_tl } { \l__xpg_tmpa_lang_tl @shorthands }
+ \exp_args:Ncc \addto { noextras@\l__xpg_tmpb_lang_tl } { no\l__xpg_tmpa_lang_tl @shorthands }
+ }
+ }
}
-%
-% FIXME these should also be loaded \AtEndOfPackage !!!
-\def\xpg@option#1#2{
- \ifcsundef{xpg@main@language}{\setdefaultlanguage}{\setotherlanguage}
- [#1]{#2}}
+% Activate shorthands of a (loaded) language inline
+\NewDocumentCommand \usebabelshorthands { m }
+{
+ \str_if_eq:nnTF { #1 } { none }
+ {
+ % "none" deactivates any shorthands
+ \languageshorthands{none}
+ }
+ {
+ \tl_set:Nn \l__xpg_tmpa_lang_tl { \xpg_alias_base_lang:n{#1} }
+ \iflanguageloaded{\l__xpg_tmpa_lang_tl}{
+ \use:c{\l__xpg_tmpa_lang_tl @shorthands}
+ }{
+ \xpg@error{ Language~ #1,~ requested~ in~
+ \string\startbabelshorthands,~ is~ not~ loaded }
+ }
+ }
+}
% \end{macrocode}
% \iffalse
@@ -7441,7 +7494,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi}
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -7508,7 +7561,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct
% \begin{macrocode}
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
@@ -8126,7 +8179,7 @@ prepend_to_callback ("hpack_filter",
% \begin{macrocode}
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -8181,7 +8234,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -8549,7 +8602,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters
% \begin{macrocode}
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -8599,7 +8652,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct
% \begin{macrocode}
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -8702,7 +8755,7 @@ polyglossia.desactivate_tibt_eol = desactivate
% \begin{macrocode}
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -8728,20 +8781,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -8853,14 +8899,9 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
% \end{macrocode}
% \iffalse
%</polyglossia.lua>
@@ -10020,63 +10061,13 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \end{macrocode}
% \iffalse
%</xgreek-fixes.def>
-%<*gloss-latex.lde>
-% \fi
-% \clearpage
-%
-% \subsection{gloss-latex.lde}
-% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
-%
-\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/12/11}{v1.66}{polyglossia: module for default language}
-
-\PolyglossiaSetup{latex}{
- bcp47=en-US,
- bcp47-language=en,
- bcp47-region=US,
- bcp47-script=Latn,
- hyphennames={english},
- hyphenmins={2,3},
- langtag=ENG,
- fontsetup=true,
- % ignore command
- DefineCommandsCmd={use_none:n}
-}
-
-\def\captionslatex{%
- \def\prefacename{Preface}%
- \def\refname{References}%
- \def\abstractname{Abstract}%
- \def\bibname{Bibliography}%
- \def\chaptername{Chapter}%
- \def\appendixname{Appendix}%
- \def\contentsname{Contents}%
- \def\listfigurename{List of Figures}%
- \def\listtablename{List of Tables}%
- \def\indexname{Index}%
- \def\figurename{Figure}%
- \def\tablename{Table}%
- \def\partname{Part}%
- \def\enclname{encl}%
- \def\ccname{cc}%
- \def\headtoname{To}%
- \def\pagename{Page}%
- \def\seename{see}%
- \def\alsoname{see also}%
- \def\proofname{Proof}%
-}
-
-
-% \end{macrocode}
-% \iffalse
-%</gloss-latex.lde>
%<*gloss-acadien.ldf>
% \fi
% \clearpage
%
% \subsection{gloss-acadien.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-acadien.ldf}[polyglossia: module for Canadian (Acadian) French]
@@ -10093,7 +10084,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-aeb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-aeb.ldf}[polyglossia: module for aeb (Arabic)]
@@ -10110,7 +10101,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-af.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-af.ldf}[polyglossia: module for af (Afrikaans)]
@@ -10127,7 +10118,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-afb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afb.ldf}[polyglossia: module for afb (Arabic)]
@@ -10144,7 +10135,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-afrikaans.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-afrikaans.ldf}[polyglossia: module for Afrikaans]
@@ -10249,7 +10240,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-albanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-albanian.ldf}[polyglossia: module for Albanian]
@@ -10306,7 +10297,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-am.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-am.ldf}[polyglossia: module for am (Amharic)]
@@ -10323,7 +10314,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-american.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-american.ldf}[polyglossia: module for American English]
@@ -10340,7 +10331,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-amharic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-amharic.ldf}[polyglossia: module for Amharic]
\PolyglossiaSetup{amharic}{
@@ -10560,7 +10551,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-apd.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-apd.ldf}[polyglossia: module for apd (Arabic)]
@@ -10577,7 +10568,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-IQ.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-IQ.ldf}[polyglossia: module for ar-IQ (Arabic)]
@@ -10596,7 +10587,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-JO.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-JO.ldf}[polyglossia: module for ar-JO (Arabic)]
@@ -10615,7 +10606,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-LB.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-LB.ldf}[polyglossia: module for ar-LB (Arabic)]
@@ -10634,7 +10625,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-MR.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-MR.ldf}[polyglossia: module for ar-MR (Arabic)]
@@ -10653,7 +10644,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-PS.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-PS.ldf}[polyglossia: module for ar-PS (Arabic)]
@@ -10672,7 +10663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-SY.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-SY.ldf}[polyglossia: module for ar-SY (Arabic)]
@@ -10691,7 +10682,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar-YE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar-YE.ldf}[polyglossia: module for ar-YE (Arabic)]
@@ -10710,7 +10701,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ar.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ar.ldf}[polyglossia: module for ar (Arabic)]
@@ -10727,7 +10718,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arabic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arabic.ldf}[polyglossia: module for Arabic]
\RequireBidi
@@ -11117,7 +11108,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-armenian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-armenian.ldf}[polyglossia: module for Armenian]
@@ -11325,7 +11316,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arq.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arq.ldf}[polyglossia: module for arq (Arabic)]
@@ -11342,7 +11333,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ary.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ary.ldf}[polyglossia: module for ary (Arabic)]
@@ -11359,7 +11350,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-arz.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-arz.ldf}[polyglossia: module for arz (Arabic)]
@@ -11376,7 +11367,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ast.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ast.ldf}[polyglossia: module for ast (Asturian)]
@@ -11393,7 +11384,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-asturian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Xuacu <xuacusk8 at gmail dot com>
% Contributed by Kevin Godby <godbyk at gmail dot com>
@@ -11453,7 +11444,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-australian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-australian.ldf}[polyglossia: module for Australian English]
@@ -11470,7 +11461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-austrian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-austrian.ldf}[polyglossia: module for Austrian German (old spelling)]
@@ -11487,7 +11478,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ayl.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ayl.ldf}[polyglossia: module for ayl (Arabic)]
@@ -11504,7 +11495,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasa.ldf}[polyglossia: module for Bahasa Indonesia]
@@ -11521,7 +11512,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasai.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasai.ldf}[polyglossia: module for Bahasa Indonesia]
@@ -11539,7 +11530,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bahasam.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bahasam.ldf}[polyglossia: module for Bahasa Melayu]
@@ -11557,7 +11548,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-basque.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-basque.ldf}[polyglossia: module for Basque]
\PolyglossiaSetup{basque}{
@@ -11615,7 +11606,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-be-tarask.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be-tarask.ldf}[polyglossia: module for be-tarask (Belarusian)]
@@ -11632,7 +11623,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-be.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-be.ldf}[polyglossia: module for be (Belarusian)]
@@ -11649,7 +11640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-belarusian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-belarusian.ldf}[polyglossia: module for Belarusian]
@@ -11977,7 +11968,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bengali.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by সাজেদুর রহিম জোয়ারদার <toshazed@gmail.com>
% TODO implement Bengali calendar
@@ -12118,7 +12109,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bg.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bg.ldf}[polyglossia: module for bg (Bulgarian)]
@@ -12135,7 +12126,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bn.ldf}[polyglossia: module for bn (Bengali)]
@@ -12152,7 +12143,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bo.ldf}[polyglossia: module for bo (Tibetan)]
@@ -12169,7 +12160,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bosnian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bosnian.ldf}[polyglossia: module for Bosnian]
@@ -12233,7 +12224,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-br.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-br.ldf}[polyglossia: module for br (Breton)]
@@ -12250,7 +12241,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-brazil.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-brazil.ldf}[polyglossia: module for Brazilian Portuguese]
@@ -12269,7 +12260,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-breton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-breton.ldf}[polyglossia: module for Breton]
\PolyglossiaSetup{breton}{
@@ -12377,7 +12368,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-british.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-british.ldf}[polyglossia: module for British English]
@@ -12394,7 +12385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bs.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bs.ldf}[polyglossia: module for bs (Bosnian)]
@@ -12411,7 +12402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-bulgarian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-bulgarian.ldf}[polyglossia: module for Bulgarian]
\PolyglossiaSetup{bulgarian}{
@@ -12513,7 +12504,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ca.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ca.ldf}[polyglossia: module for ca (Catalan)]
@@ -12530,7 +12521,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-canadian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadian.ldf}[polyglossia: module for Canadian English]
@@ -12547,7 +12538,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-canadien.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-canadien.ldf}[polyglossia: module for Canadian French]
@@ -12564,7 +12555,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-catalan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-catalan.ldf}[polyglossia: module for Catalan]
\PolyglossiaSetup{catalan}{
@@ -12733,7 +12724,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-chinese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-chinese.ldf}[polyglossia: module for Chinese]
@@ -13024,7 +13015,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Arab.ldf}[polyglossia: module for ckb-Arab (Kurdish)]
@@ -13041,7 +13032,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb-Latn.ldf}[polyglossia: module for ckb-Latn (Kurdish)]
@@ -13058,7 +13049,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ckb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ckb.ldf}[polyglossia: module for ckb (Kurdish)]
@@ -13075,7 +13066,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cop.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cop.ldf}[polyglossia: module for cop (Coptic)]
@@ -13092,7 +13083,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-coptic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-coptic.ldf}[polyglossia: module for Coptic]
\PolyglossiaSetup{coptic}{
@@ -13148,7 +13139,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-croatian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-croatian.ldf}[polyglossia: module for Croatian]
\PolyglossiaSetup{croatian}{
@@ -13424,7 +13415,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cy.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cy.ldf}[polyglossia: module for cy (Welsh)]
@@ -13441,7 +13432,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-cz.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-cz.ldf}[polyglossia: module for cz (Czech)]
@@ -13458,7 +13449,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-czech.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-czech.ldf}[polyglossia: module for Czech]
@@ -13717,7 +13708,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-da.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-da.ldf}[polyglossia: module for da (Danish)]
@@ -13734,7 +13725,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-danish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-danish.ldf}[polyglossia: module for Danish]
\PolyglossiaSetup{danish}{
@@ -13791,7 +13782,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901.ldf}[polyglossia: module for de-AT-1901 (Austrian German, old spelling)]
@@ -13808,7 +13799,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996.ldf}[polyglossia: module for de-AT-1996 (Austrian German)]
@@ -13825,7 +13816,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-AT.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT.ldf}[polyglossia: module for de-AT (Austrian German)]
@@ -13842,7 +13833,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901.ldf}[polyglossia: module for de-CH-1901 (Swiss German, old spelling)]
@@ -13859,7 +13850,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996.ldf}[polyglossia: module for de-CH-1996 (Swiss German)]
@@ -13876,7 +13867,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH.ldf}[polyglossia: module for de-CH (Swiss German)]
@@ -13893,7 +13884,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901.ldf}[polyglossia: module for de-DE-1901 (Germany's German, old spelling)]
@@ -13910,7 +13901,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996.ldf}[polyglossia: module for de-DE-1996 (Germany's German)]
@@ -13927,7 +13918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-DE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE.ldf}[polyglossia: module for de-DE (Germany's German)]
@@ -13944,7 +13935,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1901-Latf.ldf}[polyglossia: module for de-AT-1901-Latf (Austrian German, old spelling)]
@@ -13961,7 +13952,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-1996-Latf.ldf}[polyglossia: module for de-AT-1996-Latf (Austrian German)]
@@ -13978,7 +13969,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-AT.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-AT-Latf.ldf}[polyglossia: module for de-AT-Latf (Austrian German)]
@@ -13995,7 +13986,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1901-Latf.ldf}[polyglossia: module for de-CH-1901-Latf (Swiss German, old spelling)]
@@ -14012,7 +14003,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-1996-Latf.ldf}[polyglossia: module for de-CH-1996-Latf (Swiss German)]
@@ -14029,7 +14020,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-CH-Latf.ldf}[polyglossia: module for de-CH-Latf (Swiss German)]
@@ -14046,7 +14037,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE-1901.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1901-Latf.ldf}[polyglossia: module for de-DE-1901-Latf (Germany's German, old spelling)]
@@ -14063,7 +14054,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE-1996.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-1996-Latf.ldf}[polyglossia: module for de-DE-1996-Latf (Germany's German)]
@@ -14080,7 +14071,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf-DE.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-DE-Latf.ldf}[polyglossia: module for de-DE-Latf (Germany's German)]
@@ -14097,7 +14088,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de-Latf.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de-Latf.ldf}[polyglossia: module for de-Latf (German)]
@@ -14114,7 +14105,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-de.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-de.ldf}[polyglossia: module for de (German)]
@@ -14131,7 +14122,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-divehi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-divehi.ldf}[polyglossia: module for Divehi]
@@ -14186,7 +14177,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dsb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dsb.ldf}[polyglossia: module for dsb (Sorbian)]
@@ -14203,7 +14194,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dutch.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dutch.ldf}[polyglossia: module for Dutch]
\PolyglossiaSetup{dutch}{
@@ -14413,7 +14404,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-dv.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-dv.ldf}[polyglossia: module for dv (Divehi)]
@@ -14430,7 +14421,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el-monoton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-monoton.ldf}[polyglossia: module for el-monoton (Greek)]
@@ -14447,7 +14438,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el-polyton.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el-polyton.ldf}[polyglossia: module for el-polyton (Greek)]
@@ -14464,7 +14455,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-el.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-el.ldf}[polyglossia: module for el (Greek)]
@@ -14481,7 +14472,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-AU.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-AU.ldf}[polyglossia: module for en-AU (Australian English)]
@@ -14498,7 +14489,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-CA.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-CA.ldf}[polyglossia: module for en-CA (Canadan English)]
@@ -14515,7 +14506,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-GB.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-GB.ldf}[polyglossia: module for en-GB (British English)]
@@ -14532,7 +14523,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-NZ.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-NZ.ldf}[polyglossia: module for en-NZ (Newzealand English)]
@@ -14549,7 +14540,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en-US.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en-US.ldf}[polyglossia: module for en-US (American English)]
@@ -14566,7 +14557,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-en.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-en.ldf}[polyglossia: module for en (English)]
@@ -14583,7 +14574,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-english.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-english.ldf}[polyglossia: module for English]
@@ -14794,7 +14785,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-eo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eo.ldf}[polyglossia: module for eo (Esperanto)]
@@ -14811,7 +14802,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es-ES.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-ES.ldf}[polyglossia: module for es-ES (Spain's Spanish)]
@@ -14828,7 +14819,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es-MX.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es-MX.ldf}[polyglossia: module for es-MX (Mexican Spanish)]
@@ -14845,7 +14836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-es.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-es.ldf}[polyglossia: module for es (Spanish)]
@@ -14862,7 +14853,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-esperanto.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-esperanto.ldf}[polyglossia: module for Esperanto]
\PolyglossiaSetup{esperanto}{
@@ -14942,7 +14933,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-estonian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-estonian.ldf}[polyglossia: module for Estonian]
\PolyglossiaSetup{estonian}{
@@ -14999,7 +14990,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-et.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-et.ldf}[polyglossia: module for et (Estonian)]
@@ -15016,7 +15007,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-eu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-eu.ldf}[polyglossia: module for eu (Basque)]
@@ -15033,7 +15024,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fa.ldf}[polyglossia: module for fa (Persian)]
@@ -15050,7 +15041,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-farsi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-farsi.ldf}[polyglossia: module for Farsi]
@@ -15068,7 +15059,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fi.ldf}[polyglossia: module for fi (Finnish)]
@@ -15085,7 +15076,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-finnish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-finnish.ldf}[polyglossia: module for Finnish]
\PolyglossiaSetup{finnish}{
@@ -15105,10 +15096,37 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\define@boolkey{finnish}[finnish@]{babelshorthands}[true]{}
-\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{}
+\newif\if@finnish@schoolhyphens
+\newif\if@finnish@babelhyphens
+\define@choicekey*+{finnish}{hyphens}[\xpg@val\xpg@nr]{default,school,babel}[default]{%
+ \ifcase\xpg@nr\relax
+ % default:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphensfalse
+ \or
+ % school:
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \or
+ % babel:
+ \@finnish@schoolhyphensfalse
+ \@finnish@babelhyphenstrue
+ \fi
+ \xpg@info{Option: Finnish, hyphens=\xpg@val}%
+}{\xpg@warning{Unknown Finnish hyphens `#1'}}
+
+% backwards compatibility
+\define@boolkey{finnish}[finnish@]{schoolhyphens}[true]{%
+ \iffinnish@schoolhyphens
+ \@finnish@schoolhyphenstrue
+ \@finnish@babelhyphensfalse
+ \else
+ \@finnish@schoolhyphensfalse
+ \fi
+}
% Register default options
-\xpg@initialize@gloss@options{finnish}{babelshorthands=false,schoolhyphens=false}
+\xpg@initialize@gloss@options{finnish}{babelshorthands=false,hyphens=default}
\ifsystem@babelshorthands
\setkeys{finnish}{babelshorthands=true}
@@ -15129,7 +15147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\declare@shorthand{finnish}{"|}{\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}}{}}%
\declare@shorthand{finnish}{""}{\hskip\z@skip}%
\declare@shorthand{finnish}{"~}{\textormath{\leavevmode\hbox{-}}{-}}%
- \declare@shorthand{finnish}{"=}{\penalty\@M-\hskip\z@skip}%
+ \declare@shorthand{finnish}{"=}{\hbox{-}\bbl@allowhyphens}%
\declare@shorthand{finnish}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
}
@@ -15164,7 +15182,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
}
\def\finnish@language{%
- \iffinnish@schoolhyphens
+ \if@finnish@schoolhyphens
\xpg@ifdefined{schoolfinnish}{%
\polyglossia@setup@language@patterns{schoolfinnish}%
}{%
@@ -15177,6 +15195,28 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\fi
}
+% activate babel-style hyphen settings if requested
+\AtBeginDocument{%
+ \if@finnish@babelhyphens
+ \let\xpg@save@hyphenpenalty\hyphenpenalty%
+ \let\xpg@save@exhyphenpenalty\exhyphenpenalty%
+ \let\xpg@save@doublehyphendemerits\doublehyphendemerits%
+ \let\xpg@save@finalhyphendemerits\finalhyphendemerits%
+ \addto\blockextras@finnish{%
+ \hyphenpenalty=30%
+ \exhyphenpenalty=30%
+ \doublehyphendemerits=5000%
+ \finalhyphendemerits=5000%
+ }%
+ \addto\noextras@finnish{%
+ \let\hyphenpenalty\xpg@save@hyphenpenalty%
+ \let\exhyphenpenalty\xpg@save@exhyphenpenalty%
+ \let\doublehyphendemerits\xpg@save@doublehyphendemerits%
+ \let\finalhyphendemerits\xpg@save@finalhyphendemerits%
+ }%
+ \fi
+}
+
\def\datefinnish{%
\def\today{\number\day.~\ifcase\month\or
tammikuuta\or helmikuuta\or maaliskuuta\or huhtikuuta\or
@@ -15205,7 +15245,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CA-u-sd-canb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA-u-sd-canb.ldf}[polyglossia: module for fr-CA-u-sd-canb (Canadian French, Acadian subvariety)]
@@ -15222,7 +15262,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CA.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CA.ldf}[polyglossia: module for fr-CA (Canadian French)]
@@ -15239,7 +15279,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-CH.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-CH.ldf}[polyglossia: module for fr-CH (Swiss French)]
@@ -15256,7 +15296,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr-FR.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr-FR.ldf}[polyglossia: module for fr-FR (France's French)]
@@ -15273,7 +15313,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fr.ldf}[polyglossia: module for fr (French)]
@@ -15290,7 +15330,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-french.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-french.ldf}[polyglossia: module for French]
@@ -15765,8 +15805,6 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\renewcommand{\labelitemiii}{\french@itemiii}%
\renewcommand{\labelitemiv}{\french@itemiv}%
}{\xpg@warning{Option 'frenchitemlabels' only supported if French is main language!}}%
- \else
- \let\@makefntext\xpg@orig@makefntext
\fi
\@xpg@french@itemlabels@settrue%
\fi%
@@ -15836,7 +15874,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-friulan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulan.ldf}[polyglossia: module for Friulian]
@@ -15853,7 +15891,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-friulian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-friulian.ldf}[polyglossia: module for Friulian]
@@ -15939,7 +15977,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-fur.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-fur.ldf}[polyglossia: module for fur (Friulian)]
@@ -15956,7 +15994,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ga.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ga.ldf}[polyglossia: module for ga (Gaelic)]
@@ -15973,7 +16011,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gaelic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gaelic.ldf}[polyglossia: module for Gaelic]
@@ -16103,7 +16141,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-galician.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-galician.ldf}[polyglossia: module for Galician]
\PolyglossiaSetup{galician}{
@@ -16160,7 +16198,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gd.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gd.ldf}[polyglossia: module for gd (Gaelic)]
@@ -16177,7 +16215,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-georgian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-georgian.ldf}[polyglossia: module for Georgian]
@@ -16425,7 +16463,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-german.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-german.ldf}[polyglossia: module for German]
@@ -16658,6 +16696,11 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
\declare@shorthand{german}{"/}{\textormath
{\bbl@allowhyphens\discretionary{/}{}{/}\bbl@allowhyphens}{}}%
\def\ck{\allowhyphens\discretionary{k-}{k}{ck}\allowhyphens}%
+ \def\mkgender{*}%
+ \declare@shorthand{german}{":}{\nobreak:\bbl@allowhyphens}%
+ \declare@shorthand{german}{"*}{\nobreak*\bbl@allowhyphens}%
+ \declare@shorthand{german}{"_}{\nobreak\_\bbl@allowhyphens}%
+ \declare@shorthand{german}{"x}{\nobreak\mkgender\bbl@allowhyphens}%
}
\def\nogerman@shorthands{%
@@ -16774,7 +16817,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-germanb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-germanb.ldf}[polyglossia: module for German (old spelling)]
@@ -16791,7 +16834,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-gl.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-gl.ldf}[polyglossia: module for gl (Galician)]
@@ -16808,7 +16851,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-grc.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-grc.ldf}[polyglossia: module for grc (Greek)]
@@ -16825,7 +16868,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-greek.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-greek.ldf}[polyglossia: module for Greek]
@@ -17293,7 +17336,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-he.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-he.ldf}[polyglossia: module for he (Hebrew)]
@@ -17310,7 +17353,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hebrew.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for Hebrew]
@@ -17484,7 +17527,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hi.ldf}[polyglossia: module for hi (Hindi)]
@@ -17501,7 +17544,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hindi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by Zdenĕk Wagner, 10-03-2008
% with corrections and additional contributions by Anshuman Pandey
@@ -17620,7 +17663,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hr.ldf}[polyglossia: module for hr (Croatian)]
@@ -17637,7 +17680,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hsb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hsb.ldf}[polyglossia: module for hsb (Higher Sorbian)]
@@ -17654,7 +17697,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hu.ldf}[polyglossia: module for hu (Hungarian)]
@@ -17671,7 +17714,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hungarian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hungarian.ldf}[polyglossia: module for Hungarian]
@@ -18070,7 +18113,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-hy.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-hy.ldf}[polyglossia: module for hy (Armenian)]
@@ -18087,7 +18130,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ia.ldf}[polyglossia: module for ia (Interlingua)]
@@ -18104,7 +18147,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-icelandic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-icelandic.ldf}[polyglossia: module for Icelandic]
\PolyglossiaSetup{icelandic}{
@@ -18162,7 +18205,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-id.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-id.ldf}[polyglossia: module for id (Malay)]
@@ -18179,7 +18222,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-interlingua.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-interlingua.ldf}[polyglossia: module for Interlingua]
\PolyglossiaSetup{interlingua}{
@@ -18237,7 +18280,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-irish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-irish.ldf}[polyglossia: module for Irish]
@@ -18255,7 +18298,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-is.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-is.ldf}[polyglossia: module for is (Icelandic)]
@@ -18272,7 +18315,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-it.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-it.ldf}[polyglossia: module for it (Italian)]
@@ -18290,7 +18333,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-italian.ldf}
% \begin{macrocode}
% !TEX encoding = UTF-8 Unicode
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian]
\PolyglossiaSetup{italian}{
@@ -18442,7 +18485,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ja.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ja.ldf}[polyglossia: module for ja (Japanese)]
@@ -18459,7 +18502,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-japanese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-japanese.ldf}[polyglossia: module for Japanese]
@@ -18469,6 +18512,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
bcp47-region=JP,
bcp47-script=Hrkt,
script=CJK,
+ scripttag=kana,
language=Japanese,
langtag=JAN,
hyphennames={nohyphenation},
@@ -18697,7 +18741,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ka.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ka.ldf}[polyglossia: module for ka (Georgian)]
@@ -18715,7 +18759,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-kannada.ldf}
% \begin{macrocode}
%% gloss-kannada.ldf
-%% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+%% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%%
%% Copyright 2011 Aravinda VK <hallimanearavind AT gmail.com>,
%% Shankar Prasad <prasad.mvs AT gmail.com>,
@@ -18838,7 +18882,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-khmer.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-khmer.ldf}[polyglossia: module for Khmer]
\PolyglossiaSetup{khmer}{
@@ -19021,7 +19065,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-km.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-km.ldf}[polyglossia: module for km (Khmer)]
@@ -19038,7 +19082,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Arab.ldf}[polyglossia: module for kmr-Arab (Kurdish)]
@@ -19055,7 +19099,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr-Latn.ldf}[polyglossia: module for kmr-Latn (Kurdish)]
@@ -19072,7 +19116,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kmr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kmr.ldf}[polyglossia: module for kmr (Kurdish)]
@@ -19089,7 +19133,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kn.ldf}[polyglossia: module for kn (Kannada)]
@@ -19106,7 +19150,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ko.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ko.ldf}[polyglossia: module for ko (Korean)]
@@ -19123,7 +19167,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-korean.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean]
@@ -19603,7 +19647,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku-Arab.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Arab.ldf}[polyglossia: module for ku-Arab (Kurdish)]
@@ -19620,7 +19664,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku-Latn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku-Latn.ldf}[polyglossia: module for ku-Latn (Kurdish)]
@@ -19637,7 +19681,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ku.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ku.ldf}[polyglossia: module for ku (Kurdish)]
@@ -19654,7 +19698,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kurdish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Created on September 1, 2019
% Last updated on May 17, 2020
@@ -20151,7 +20195,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-kurmanji.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-kurmanji.ldf}[polyglossia: module for Kurmanji Kurdish]
@@ -20168,7 +20212,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-classic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xclassic.ldf}[polyglossia: module for la-xclassic (Latin)]
@@ -20185,7 +20229,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-ecclesia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xecclesiastic.ldf}[polyglossia: module for la-xecclesiastic (Latin)]
@@ -20202,7 +20246,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la-x-medieval.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la-xmedieval.ldf}[polyglossia: module for la-xmedieval (Latin)]
@@ -20219,7 +20263,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-la.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-la.ldf}[polyglossia: module for la (Latin)]
@@ -20236,7 +20280,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lao.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao]
@@ -20341,13 +20385,63 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \end{macrocode}
% \iffalse
%</gloss-lao.ldf>
+%<*gloss-latex.ldf>
+% \fi
+% \clearpage
+%
+% \subsection{gloss-latex.ldf}
+% \begin{macrocode}
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
+%
+\ProvidesFile{gloss-latex.ldf}[polyglossia: module for default language]
+
+\PolyglossiaSetup{latex}{
+ bcp47=en-US,
+ bcp47-language=en,
+ bcp47-region=US,
+ bcp47-script=Latn,
+ hyphennames={english},
+ hyphenmins={2,3},
+ langtag=ENG,
+ fontsetup=true,
+ % ignore command
+ DefineCommandsCmd={use_none:n}
+}
+
+\def\captionslatex{%
+ \def\prefacename{Preface}%
+ \def\refname{References}%
+ \def\abstractname{Abstract}%
+ \def\bibname{Bibliography}%
+ \def\chaptername{Chapter}%
+ \def\appendixname{Appendix}%
+ \def\contentsname{Contents}%
+ \def\listfigurename{List of Figures}%
+ \def\listtablename{List of Tables}%
+ \def\indexname{Index}%
+ \def\figurename{Figure}%
+ \def\tablename{Table}%
+ \def\partname{Part}%
+ \def\enclname{encl}%
+ \def\ccname{cc}%
+ \def\headtoname{To}%
+ \def\pagename{Page}%
+ \def\seename{see}%
+ \def\alsoname{see also}%
+ \def\proofname{Proof}%
+}
+
+
+% \end{macrocode}
+% \iffalse
+%</gloss-latex.ldf>
%<*gloss-latin.ldf>
% \fi
% \clearpage
%
% \subsection{gloss-latin.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin]
@@ -21462,7 +21556,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinclassic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinclassic.ldf}[polyglossia: module for classic Latin]
@@ -21479,7 +21573,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinecclesiastic.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinecclesiastic.ldf}[polyglossia: module for ecclesiastic Latin]
@@ -21496,7 +21590,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latinmedieval.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latinmedieval.ldf}[polyglossia: module for medieval Latin]
@@ -21513,7 +21607,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-latvian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-latvian.ldf}[polyglossia: module for Latvian]
\PolyglossiaSetup{latvian}{
@@ -21571,7 +21665,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lithuanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translated by Paulius Sladkevičius <komsas@gmail.com>
@@ -21653,7 +21747,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lo.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lo.ldf}[polyglossia: module for lo (Lao)]
@@ -21670,7 +21764,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lowersorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lowersorbian.ldf}[polyglossia: module for Lower Sorbian]
@@ -21687,7 +21781,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lsorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lsorbian.ldf}[polyglossia: module for Lower Sorbian]
@@ -21705,7 +21799,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lt.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lt.ldf}[polyglossia: module for lt (Lithuanian)]
@@ -21722,7 +21816,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-lv.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-lv.ldf}[polyglossia: module for lv (Latvian)]
@@ -21739,7 +21833,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-macedonian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-macedonian.ldf}[polyglossia: module for Macedonian]
\PolyglossiaSetup{macedonian}{
@@ -21838,7 +21932,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-magyar.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-magyar.ldf}[polyglossia: module for Hungarian (Magyar)]
@@ -21855,7 +21949,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-malay.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malay.ldf}[polyglossia: module for Malay]
@@ -22054,7 +22148,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-malayalam.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for Malayalam]
@@ -22124,7 +22218,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-marathi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by Abhijit Navale <abhi_navale@live.in>
% Ordinals (1-100) added by Niranjan Tambe <niranjanvikastambe@gmail.com> on 14th December, 2019
@@ -22274,7 +22368,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mk.ldf}[polyglossia: module for mk (Macedonian)]
@@ -22291,7 +22385,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ml.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ml.ldf}[polyglossia: module for ml (Malayalam)]
@@ -22308,7 +22402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mn.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mn.ldf}[polyglossia: module for mn (Mongolian)]
@@ -22325,7 +22419,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mongolian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mongolian.ldf}[polyglossia: module for Mongolian]
@@ -22564,7 +22658,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-mr.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-mr.ldf}[polyglossia: module for mr (Marathi)]
@@ -22581,7 +22675,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-naustrian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-naustrian.ldf}[polyglossia: module for Austrian German (current spelling)]
@@ -22598,7 +22692,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nb.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nb.ldf}[polyglossia: module for nb (Norwegian)]
@@ -22615,7 +22709,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-newzealand.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-newzealand.ldf}[polyglossia: module for Newzealand English]
@@ -22632,7 +22726,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ngerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ngerman.ldf}[polyglossia: module for German (current spelling)]
@@ -22649,7 +22743,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nko.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko]
\PolyglossiaSetup{nko}{%
@@ -22747,7 +22841,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-norsk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norsk.ldf}[polyglossia: module for Norwegian (Bokmal)]
@@ -22765,7 +22859,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-norwegian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-norwegian.ldf}[polyglossia: module for Norwegian]
\PolyglossiaSetup{norwegian}{
@@ -22892,7 +22986,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nswissgerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nswissgerman.ldf}[polyglossia: module for Swiss German (current spelling)]
@@ -22909,7 +23003,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-nynorsk.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-nynorsk.ldf}[polyglossia: module for Norwegian (Nynorsk)]
@@ -22927,7 +23021,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-occitan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%
%% This is file `gloss-occitan.ldf',
@@ -23108,7 +23202,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-odia.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% Translations provided by ଅଶୋକ ଦାସ୍ <das@pas.rochester.edu> and ଅଭିଷେକ ଜେନା <avisekjena@gmail.com>
% TODO implement Odia calendar
@@ -23268,7 +23362,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-or.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-odia.ldf}[polyglossia: module for or (Odia)]
@@ -23285,7 +23379,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-pa.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-pa.ldf}[polyglossia: module for pa (Punjabi)]
@@ -23302,7 +23396,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-persian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-persian.ldf}[polyglossia: module for Persian]
@@ -23543,7 +23637,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
% \subsection{gloss-piedmontese.ldf}
% \begin{macrocode}
% !TEX encoding = UTF-8 Unicode
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for Piedmontese]
\makeatletter
@@ -23673,7 +23767,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-polish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polish.ldf}[polyglossia: module for Polish]
@@ -23932,7 +24026,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-polutonikogreek.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-polutonikogreek.ldf}[polyglossia: module for polytonic Greek]
@@ -23949,7 +24043,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-portuges.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuges.ldf}[polyglossia: module for Portuguese]
@@ -23969,7 +24063,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-portuguese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-portuguese.ldf}[polyglossia: module for Portuguese]
@@ -24200,7 +24294,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-punjabi.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
% UTF-8 strings kindly provided by
% Arvinder Singh Kang, <17-11-2022>
@@ -24308,7 +24402,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-romanian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romanian.ldf}[polyglossia: module for Romanian]
@@ -24367,7 +24461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-romansh.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-romansh.ldf}[polyglossia: module for Romansh]
\makeatletter
@@ -24425,7 +24519,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-russian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-russian.ldf}[polyglossia: module for Russian]
@@ -24824,7 +24918,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sami.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sami.ldf}[polyglossia: module for Sami]
@@ -24928,7 +25022,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-samin.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-samin.ldf}[polyglossia: module for Northern Sami]
@@ -24946,7 +25040,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sanskrit.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sanskrit.ldf}[polyglossia: module for Sanskrit]
@@ -25105,7 +25199,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-scottish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-scottish.ldf}[polyglossia: module for Scottish Gaelic]
@@ -25123,7 +25217,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-serbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbian.ldf}[polyglossia: module for Serbian]
%TODO split into gloss-serbiancyr.ldf and gloss-serbianlat.ldf
@@ -25546,7 +25640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-serbianc.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-serbianc.ldf}[polyglossia: module for Serbian (cyrillic)]
@@ -25563,7 +25657,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovak.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak]
@@ -25830,7 +25924,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovene.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovene.ldf}[polyglossia: module for Slovenian]
@@ -25847,7 +25941,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-slovenian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-slovenian.ldf}[polyglossia: module for Slovenian]
@@ -25939,7 +26033,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-sorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-sorbian.ldf}[polyglossia: module for Sorbian]
@@ -26130,7 +26224,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-spanish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanish.ldf}[polyglossia: module for Spanish]
@@ -26370,7 +26464,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-spanishmx.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-spanishmx.ldf}[polyglossia: module for Mexican Spanish]
@@ -26387,7 +26481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-swedish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swedish.ldf}[polyglossia: module for Swedish]
@@ -26452,7 +26546,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-swissgerman.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-swissgerman.ldf}[polyglossia: module for Swiss German (old spelling)]
@@ -26469,7 +26563,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-syriac.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac]
@@ -26742,7 +26836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-tamil.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tamil.ldf}[polyglossia: module for Tamil]
@@ -26812,7 +26906,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-telugu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-telugu.ldf}[polyglossia: module for Telugu]
@@ -26885,7 +26979,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-thai.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-thai.ldf}[polyglossia: module for Thai]
%% This is partly based on thai-latex for Babel:
@@ -27043,7 +27137,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-tibetan.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for Tibetan]
%% Copyright 2013 Elie Roux
@@ -27269,7 +27363,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-turkish.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkish.ldf}[polyglossia: module for Turkish]
\RequirePackage{hijrical}
@@ -27387,7 +27481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-turkmen.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-turkmen.ldf}[polyglossia: module for Turkmen]
%% Translations provided by Nazar Annagurban <nazartm at gmail dot com>
@@ -27445,7 +27539,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ug.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ug.ldf}[polyglossia: module for ug (Uyghur)]
% BCP 47 tag for Uyghur
@@ -27461,7 +27555,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-ukrainian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-ukrainian.ldf}[polyglossia: module for Ukrainian]
% Strings taken from Babel
@@ -27760,7 +27854,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-uppersorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uppersorbian.ldf}[polyglossia: module for Upper Sorbian]
@@ -27777,7 +27871,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-urdu.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
%%% Adapted from a file contributed by Kamal Abdali
\ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu]
@@ -28027,7 +28121,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-usorbian.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-usorbian.ldf}[polyglossia: module for Upper Sorbian]
@@ -28045,7 +28139,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-uyghur.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-uyghur.ldf}[polyglossia: module for Uyghur]
%% Translations provided by Osman Tursun (Github Account: neouyghur)
@@ -28486,7 +28580,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-vietnamese.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-vietnamese.ldf}[polyglossia: module for Vietnamese]
%% Strings contributed by Daniel Owens < dhowens . pmbx . net >
@@ -28545,7 +28639,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-welsh.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-welsh.ldf}[polyglossia: module for Welsh]
@@ -28645,7 +28739,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-zh-CN.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-CN.ldf}[polyglossia: module for zh-CN (Chinese)]
@@ -28662,7 +28756,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages
%
% \subsection{gloss-zh-TW.ldf}
% \begin{macrocode}
-% Language definition file (part of polyglossia v1.66 -- 2023/12/11)
+% Language definition file (part of polyglossia v2.0 -- 2024/02/17)
%
\ProvidesFile{gloss-zh-TW.ldf}[polyglossia: module for zh-TW (Chinese)]
@@ -28856,7 +28950,7 @@ U+0039 <> U+0E59 ;
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -28923,7 +29017,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct
% \begin{macrocode}
--
-- polyglossia-korean.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local glyph_id = node.id"glyph"
@@ -29541,7 +29635,7 @@ prepend_to_callback ("hpack_filter",
% \begin{macrocode}
--
-- polyglossia-latin.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -29596,7 +29690,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct
% \begin{macrocode}
--
-- polyglossia-punct.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -29964,7 +30058,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters
% \begin{macrocode}
--
-- polyglossia-sanskrit.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia-punct')
@@ -30014,7 +30108,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct
% \begin{macrocode}
--
-- polyglossia-tibt.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
require('polyglossia') -- just in case...
@@ -30117,7 +30211,7 @@ polyglossia.desactivate_tibt_eol = desactivate
% \begin{macrocode}
--
-- polyglossia.lua
--- part of polyglossia v1.66 -- 2023/12/11
+-- part of polyglossia v2.0 -- 2024/02/17
--
local module_name = "polyglossia"
@@ -30143,20 +30237,13 @@ end
polyglossia = polyglossia or {}
local polyglossia = polyglossia
-local function select_language(lang, id)
- polyglossia.current_language = lang
-end
-
-local function set_default_language(lang, id)
- polyglossia.default_language = lang
-end
-
local function load_tibt_eol()
require('polyglossia-tibt')
end
-- predefined l@nohyphenation or LuaTeX's maximum value for \language
local nohyphid = luatexbase.registernumber'l@nohyphenation' or 16383
+token.set_char('l@nohyphenation', nohyphid)
-- key `nohyphenation` is for .sty file when possibly undefined l@nohyphenation
local newloader_loaded_languages = { nohyphenation = nohyphid }
@@ -30268,14 +30355,9 @@ local function newloader(langentry)
end
end
-polyglossia.select_language = select_language
-polyglossia.set_default_language = set_default_language
polyglossia.load_tibt_eol = load_tibt_eol
polyglossia.newloader = newloader
polyglossia.newloader_loaded_languages = newloader_loaded_languages
--- global variables:
--- polyglossia.default_language
--- polyglossia.current_language
% \end{macrocode}
% \iffalse
%</polyglossia.lua>
diff --git a/macros/unicodetex/latex/polyglossia/polyglossia.pdf b/macros/unicodetex/latex/polyglossia/polyglossia.pdf
index 6d76a007bd..1050ac71d1 100644
--- a/macros/unicodetex/latex/polyglossia/polyglossia.pdf
+++ b/macros/unicodetex/latex/polyglossia/polyglossia.pdf
Binary files differ