From f0961a9b26a462e4b8cedc92a65e77199739b077 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 11 Dec 2023 21:10:55 +0000 Subject: polyglossia (11dec23) git-svn-id: svn://tug.org/texlive/trunk@69093 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/polyglossia/polyglossia.dtx | 1536 ++++++++++---------- 1 file changed, 743 insertions(+), 793 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx index 06fa02dd7ad..2adeb09db92 100644 --- a/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx +++ b/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx @@ -8,7 +8,7 @@ \iffalse % %<*README> -# THE POLYGLOSSIA PACKAGE v1.65 +# THE POLYGLOSSIA PACKAGE v1.66 ## Multilingual typesetting with XeLaTeX and LuaLaTeX This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX. @@ -37,7 +37,7 @@ 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 +Copyright (c) 2019-2023 Bastien Roucariès, 2019-2023 Jürgen Spitzmüller, 2023 Udi Fogiel Except where otherwise noted, Polyglossia is placed under the terms of the MIT licence (https://opensource.org/licenses/MIT). @@ -307,6 +307,8 @@ to track the issues and follow progress. \generate{\file{gloss-nswissgerman.ldf}{\from{polyglossia.dtx}{gloss-nswissgerman.ldf}}} \generate{\file{gloss-nynorsk.ldf}{\from{polyglossia.dtx}{gloss-nynorsk.ldf}}} \generate{\file{gloss-occitan.ldf}{\from{polyglossia.dtx}{gloss-occitan.ldf}}} +\generate{\file{gloss-odia.ldf}{\from{polyglossia.dtx}{gloss-odia.ldf}}} +\generate{\file{gloss-or.ldf}{\from{polyglossia.dtx}{gloss-or.ldf}}} \generate{\file{gloss-pa.ldf}{\from{polyglossia.dtx}{gloss-pa.ldf}}} \generate{\file{gloss-persian.ldf}{\from{polyglossia.dtx}{gloss-persian.ldf}}} \generate{\file{gloss-piedmontese.ldf}{\from{polyglossia.dtx}{gloss-piedmontese.ldf}}} @@ -354,6 +356,7 @@ to track the issues and follow progress. \generate{\file{devanagaridigits.map}{\from{polyglossia.dtx}{devanagaridigits.map}}} \generate{\file{farsidigits.map}{\from{polyglossia.dtx}{farsidigits.map}}} \generate{\file{gurmukhidigits.map}{\from{polyglossia.dtx}{gurmukhidigits.map}}} +\generate{\file{odiadigits.map}{\from{polyglossia.dtx}{odiadigits.map}}} \generate{\file{thaidigits.map}{\from{polyglossia.dtx}{thaidigits.map}}} \def\MetaPrefix{-- } \generate{\file{polyglossia-french.lua}{\from{polyglossia.dtx}{polyglossia-french.lua}}} @@ -397,7 +400,7 @@ to track the issues and follow progress. hyperindex=false, hyperfootnotes=false, pdftitle={Polyglossia: Modern multilingual typesetting with XeLaTeX and LuaLaTeX}, - pdfauthor={F Charette, A Reutenauer, B Roucariès, J Spitzmüller}, + pdfauthor={F Charette, A Reutenauer, U Fogiel, B Roucariès, J Spitzmüller}, pdfkeywords={xetex, xelatex, luatex, lualatex, multilingual, babel, hyphenation} ]{hyperref} \usepackage{array} @@ -550,7 +553,7 @@ to track the issues and follow progress. % \\[16pt] % \color{xpgblue}Polyglossia: Modern multilingual typesetting with \XeLaTeX\ and \LuaLaTeX} % \author{\TA{François Charette} \and \TA{Arthur Reutenauer}\thanks{Current maintainer} -% \and \TA{Bastien Roucariès} \and \TA{Jürgen Spitzmüller}} +% \and \TA{Udi Fogiel} \and \TA{Bastien Roucariès} \and \TA{Jürgen Spitzmüller}} % \date{\filedate \qquad \fileversion\thanks{Please report bugs to \url{http://github.com/reutenauer/polyglossia/issues}}\\ % \footnotesize (\textsc{pdf} file generated on \today)} % @@ -644,29 +647,29 @@ to track the issues and follow progress. % % \begin{table}[ht]\centering % \caption{\label{tab:lang}Languages currently supported in \pkg{polyglossia}} -% ^^A Produced with tools/insert-language-list.rb -- JS, 2022-11-23 -% ^^A Edited by hand -- JS, 2022-11-23 +% ^^A Produced with tools/insert-language-list.rb -- JS, 2023-11-06 % \begin{tabular}{lllll} % \toprule -% \TX{afrikaans} & danish & icelandic & nko & \TX{spanish} \\ -% albanian & divehi & interlingua & \TX{norwegian}& swedish \\ -% amharic & \TX{dutch} & \TX{italian} & occitan & \TX{syriac} \\ -% \TX{arabic} & \TX{english} & japanese & \TX{persian} & tamil \\ -% \TX{armenian} & \TX{esperanto}& kannada & piedmontese & telugu \\ -% asturian & estonian & khmer & \TX{polish} & \TX{thai} \\ -% basque & \TX{finnish} & \TX{korean} &\TX{portuguese}& \TX{tibetan} \\ -% \TX{belarusian} & \TX{french} & \TX{kurdish} & \TX{punjabi} & turkish \\ -% \TX{bengali} & friulian & \TX{lao} & romanian & turkmen \\ -% bosnian & \TX{gaelic} & \TX{latin} & romansh & \TX{ukrainian}\\ -% breton & galician & latvian & \TX{russian} & \TX{urdu} \\ -% bulgarian & \TX{georgian} & lithuanian & \TX{sami} & \TX{uyghur} \\ -% \TX{catalan} & \TX{german} & macedonian & \TX{sanskrit} & vietnamese \\ -% \TX{chinese} & \TX{greek} & \TX{malay} & \TX{serbian} & \TX{welsh} \\ -% coptic & \TX{hebrew} & malayalam & \TX{slovak} & \\ -% \TX{croatian} & \TX{hindi} & \TX{marathi} & \TX{slovenian}& \\ -% \TX{czech} & \TX{hungarian}& \TX{mongolian}& \TX{sorbian} & \\ +% \TX{afrikaans} & danish & icelandic & nko & \TX{sorbian}\\ +% albanian & divehi & interlingua & \TX{norwegian} & \TX{spanish}\\ +% amharic & \TX{dutch} & \TX{italian} & occitan & swedish \\ +% \TX{arabic} & \TX{english} & japanese & \TX{odia} & \TX{syriac}\\ +% \TX{armenian} & \TX{esperanto} & kannada & \TX{persian} & tamil \\ +% asturian & estonian & khmer & piedmontese & telugu \\ +% basque & \TX{finnish} & \TX{korean} & \TX{polish} & \TX{thai} \\ +% \TX{belarusian} & \TX{french} & \TX{kurdish} & \TX{portuguese} & \TX{tibetan}\\ +% \TX{bengali} & friulian & \TX{lao} & \TX{punjabi} & turkish \\ +% bosnian & \TX{gaelic} & \TX{latin} & romanian & turkmen \\ +% breton & galician & latvian & romansh & \TX{ukrainian}\\ +% bulgarian & \TX{georgian} & lithuanian & \TX{russian} & \TX{urdu} \\ +% \TX{catalan} & \TX{german} & macedonian & \TX{sami} & \TX{uyghur}\\ +% \TX{chinese} & \TX{greek} & \TX{malay} & \TX{sanskrit} & vietnamese\\ +% coptic & \TX{hebrew} & malayalam & \TX{serbian} & \TX{welsh}\\ +% \TX{croatian} & \TX{hindi} & \TX{marathi} & \TX{slovak} & \\ +% \TX{czech} & \TX{hungarian} & \TX{mongolian} & \TX{slovenian} & \\ % \bottomrule % \end{tabular} +% % \end{table} % % \paragraph{Version Notes} The support for Amharic\new{1.0.1} should be considered an experimental attempt to @@ -692,6 +695,8 @@ to track the issues and follow progress. % compatibility reasons. % Version 1.46\new{1.46} introduces support for Afrikaans, Belarusian, Bosnian and Georgian. % Version 1.52\new{1.52} introduces support for Uyghur. +% Version 1.59\new{1.59} adds support for (simplified and traditional) Chinese and for Punjabi. +% Version 1.66\new{1.66} introduces support for Odia. % % % \subsection{Relation to and use of Babel language names}\label{sec:babelnames} @@ -907,6 +912,7 @@ to track the issues and follow progress. % nl & dutch & \tabularnewline % nn & norwegian & variant=nynorsk [\emph{default}] \tabularnewline % oc & occitan & \tabularnewline +% or & odia & changecounternumbering=false, numerals=Devanagari [\emph{default}] \tabularnewline % pa & punjabi & numerals=gurmukhi \tabularnewline % pl & polish & \tabularnewline % pms & piedmontese & \tabularnewline @@ -2099,6 +2105,14 @@ to track the issues and follow progress. % \item \xpgchoicekey[1.45]{variant}{\xpgvalue{bokmal} or \xpgpresetvalue{nynorsk}} % \end{itemize} % +% \subsection[odia]{odia\new{1.66}}\label{odia} +% \paragraph*{Options:} +% \begin{itemize} +% \item \xpgchoicekey{numerals}{\xpgvalue{western}, \xpgpresetvalue{devanagari}, or \xpgvalue{odia}} +% \item \xpgboolkeyfalse{changecounternumbering} +% Use specified numerals for headings and page numbers. +% \end{itemize} +% % \subsection{persian}\label{persian} % \paragraph*{Options:} % \begin{itemize} @@ -2735,6 +2749,7 @@ to track the issues and follow progress. % \item \Cmd\khmerdigits % \item \Cmd\laodigits % \item \Cmd\nkodigits +% \item \Cmd\odiadigits % \item \Cmd\thaidigits % \item \Cmd\tibetandigits % \end{itemize} @@ -2926,6 +2941,10 @@ to track the issues and follow progress. % Example: ¦\charifavailable{1E9E}{SS}¦ prints the capital version of the German letter ⟨ß⟩ if available % (\ie \charifavailable{1E9E}{SS}), else it prints the substitution digraph SS. % +% With the test\new{1.66} \displaycmd{\IfCharIsAvailableTF\marg{char code}\marg{true condition}\marg{false condition}}{\IfCharIsAvailableTF} +% you can test for the availability of a character and execute different code depending whether or not this is the case +% (this replaces the undocument internal command \cmd{\xpg@if@char@available}). +% % % \section{Accessing language information}\label{sec:langinfo} % @@ -3007,9 +3026,31 @@ to track the issues and follow progress. % \noindent Finally, if you want to know whether a specific language option has been set, you can use\new{1.47} % \displaycmd{\iflanguageoption\marg{lang}\marg{key}\marg{value}\marg{true}\marg{false}}{\iflanguageoption} % +% % \section{Revision history} % % \bgroup\footnotesize +% \subsection*{1.66 (2023/12/02)} +% +% \subsubsection*{Bug fixes} +% \begin{itemize} +% \item Fix OpenType language and script tags in Chinese (\TXI{606}). +% \item Fix resetting of language specifications at the end of a local font +% set with \pkg{babel} legacy means (\cmd{\foreignlanguage} or \texttt{otherlanguage*} +% environment) (\TXI{607}). +% \item Fix lowercasing of \cmd{\textlang}'s first mandatory argument. +% Now the casing does not change (language tag was lower-cased always) (\TXI{608}). +% \item Add missing BCP-47 alias for Khmer (\TXI{611}). +% \item Stop \cmd{\charifavailable} from looking ahead for more numbers or gobbling a space (\TXI{613}). +% \end{itemize} +% +% \subsubsection*{New Features} +% \begin{itemize} +% \item Add support for Odia, provided by \TA{Avisek Jena} and \TA{Ashok Das}. +% \item New auxiliary package ¦odiadigits¦ +% \item Add auxiliary command \cmd{\IfCharIsAvailableTF} to complement \cmd{\charifavailable}. +% \end{itemize} +% % \subsection*{1.65 (2023/10/01)} % % \subsubsection*{Bug fixes} @@ -4027,13 +4068,14 @@ to track the issues and follow progress. % \section{More acknowledgements (by the current development team)} % Many thanks to all the people who have contributed bugfixes and new features to \pkg{polyglossia} % since we took over. -% In alphabetical order: \TA{Ignas Anikevicius}, \TA{Sina Ahmadi}, \TA{Wouter Bolsterlee}, \TA{Christian Buhtz}, -% \TA{Zgarbul Andrey}, \TA{Oleg Domanov}, user \TA{fakhriaunur}, \TA{Udi Fogiel}, \TA{Philipp Gesang}, \TA{Kevin Godby}, +% In alphabetical order: \TA{Ignas Anikevicius}, \TA{Sina Ahmadi}, \TA{Matthew Bertucci}, \TA{Wouter Bolsterlee}, \TA{Christian Buhtz}, +% \TA{Ashok Das}, \TA{Oleg Domanov}, user \TA{fakhriaunur}, \TA{Philipp Gesang}, \TA{Kevin Godby}, % \TA{Enrico Gregorio}, \TA{Khaled Hosny}, \TA{Najib Idrissi}, user \TA{julroy67}, \TA{Dohyun Kim}, \TA{Phil Kime}, % \TA{Mike Kroutikov}, \TA{Ivan Kokan}, \TA{Caleb Maclennan}, \TA{Gyula Magyarkuti}, \TA{José Mancera}, \TA{Miquel Ortega}, % \TA{Yevgen Pogribnyi}, \TA{Will Robertson}, \TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy}, \TA{Guy Rutenberg}, -% \TA{Marcin Serwin}, \TA{Arvinder Singh}, \TA{Philipp Stephani}, \TA{Niranjan Tambe}, \TA{Takuji Tanaka}, \TA{Osman Tursun}, -% \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev}, \TA{Yan Zhou}, and \TA{Stefan Zlatinov}. +% \TA{Marcin Serwin}, \TA{Arvinder Singh}, \TA{Avisek Jena}, \TA{Philipp Stephani}, \TA{Niranjan Tambe}, \TA{Takuji Tanaka}, +% \TA{Osman Tursun}, \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Andrey Zgarbul}, \TA{Maksim Zholudev}, +% \TA{Yan Zhou}, and \TA{Stefan Zlatinov}. % Their respective contributions can be identified from the contributor statistics on % \href{https://github.com/reutenauer/polyglossia/graphs/contributors}{GitHub}. % @@ -4059,20 +4101,14 @@ to track the issues and follow progress. % \subsection{polyglossia.sty} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{polyglossia}[2023/10/01 v1.65 - Modern multilingual typesetting with XeLaTeX and LuaLaTeX] +\ProvidesExplPackage + {polyglossia} {2023/12/11} {v1.66} + {Modern multilingual typesetting with XeLaTeX and LuaLaTeX} \RequirePackage{etoolbox} -\RequirePackage{makecmds} \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} -\RequirePackage{expl3} -\RequirePackage{l3keys2e} -\RequirePackage{xparse} - -% fontspec now uses LaTeX3 packages such as expl3, so we need this: -\ExplSyntaxOn % Execute code #3 if package #1 has been loaded already, else % add to package hook #2 @@ -4080,23 +4116,7 @@ to track the issues and follow progress. \@ifpackageloaded{#1}{#3}{\AddToHook{#2}{#3}}% } -% safe according to expl3 bug #960 -\cs_generate_variant:Nn \prop_item:Nn { Ne, Nf, No, Nx } -\cs_generate_variant:Nn \clist_set:Nn { Ne, Nf, No, Nx } -\cs_generate_variant:Nn \clist_gput_right:Nn {Ne} -\cs_generate_variant:Nn \prop_get:NnN {NeN} -\cs_generate_variant:Nn \prop_gput:Nnn {Nne, Nee, Nen} -\cs_generate_variant:Nn \cs_gset:Npn {Npe} -\cs_generate_variant:Nn \cs_new:Nn {Ne} -\cs_generate_variant:Nn \cs_new_nopar:Nn {Ne} -\cs_generate_variant:Nn \cs_gset_nopar:Npn {Npe} -\cs_generate_variant:Nn \cs_gset_nopar:Npn {cpe} -\cs_generate_variant:Nn \tl_set:Nn {Ne} -\cs_generate_variant:Nn \str_foldcase:n {e} -\prg_generate_conditional_variant:Nnn \file_if_exist:n {e} {TF, T, F, p} -\prg_generate_conditional_variant:Nnn \tl_if_blank:n {e} {TF, T, F, p} -\prg_generate_conditional_variant:Nnn \clist_if_in:Nn {Ne} {TF, T, F, p} -\prg_generate_conditional_variant:Nnn \prop_if_in:Nn {Ne} {TF, T, F, p} +\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}} @@ -4105,10 +4125,10 @@ to track the issues and follow progress. %% 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} -\AtEndPreamble{\let\bbl@set@language\xpg@set@language@aux} %for biblatex -\AtEndPreamble{\let\bbl@main@language\xpg@main@language} %for biblatex -\AtEndPreamble{ - \providecommand\texorpdfstring[2]{#1} % dummy command if hyperref is not loaded +\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 } \sys_if_engine_luatex:T{ @@ -4201,7 +4221,7 @@ to track the issues and follow progress. % error out if lang is not loaded \cs_new_nopar:Nn \polyglossia@error@iflangnotloaded:n { - \seq_if_in:NxF \__xpg_langs_loaded {#1} + \seq_if_in:NeF \__xpg_langs_loaded {#1} { \xpg@error{language~ #1~ is~ not~ loaded.~ Please~ load~ it~ before~ using~ it.} } @@ -4237,16 +4257,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{ - \str_case_e:nnF{\c_sys_engine_str}{ - {luatex}{\ifx\@onlypreamble\@notprerr\else\RequirePackage{luabidi}\fi} - {xetex}{\ifx\@onlypreamble\@notprerr\else\RequirePackage{bidi}\fi} - } +\def\RequireBidi { - \xpg@warning{You’re running a TeX engine that is not LuaTeX or XeTeX.\MessageBreak - That is almost guaranteed to cause problems.} + \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} @@ -4296,7 +4312,6 @@ to track the issues and follow progress. \RLE } } - \ExplSyntaxOff } \__xpg_at_package_hook:nnn{luabidi}{package/luabidi/after}{ \cs_gset_nopar:Nn{\polyglossia@setpardirection:n}{ @@ -4320,18 +4335,9 @@ to track the issues and follow progress. } % emulate \RTLmain -\cs_new_nopar:Nn \__xpg_setRTLmain: {} -\str_case_e:nnF{\c_sys_engine_str}{ - {luatex}{\cs_gset:Nn \__xpg_setRTLmain: {\setRTLmain}} - {xetex}{\cs_gset:Nn \__xpg_setRTLmain: {\@RTLmaintrue\setnonlatin}} -} -{ - \cs_gset:Nn \__xpg_setRTLmain: - { - \xpg@warning{You’re~ running a~ TeX~ engine~ that~ is~ not~ LuaTeX~ or~ XeTeX.\MessageBreak - That~ is~ almost~ guaranteed~ to~ cause~ problems.} - } -} +\sys_if_engine_luatex:TF + { \cs_new_nopar:Nn \__xpg_setRTLmain: { \setRTLmain } } + { \cs_new_nopar:Nn \__xpg_setRTLmain: { \@RTLmaintrue\setnonlatin } } %% compatibility with babel \let\addto\gappto % gappto is defined in etoolbox @@ -4356,7 +4362,6 @@ to track the issues and follow progress. \newcommand*\PolyglossiaSetup[2]{ \polyglossia@keys_define_lang:n{#1} \keys_set:nn { polyglossia / #1 } { #2 } - \prop_log:N{\polyglossia@langsetup} \polyglossia_setup_hyphen:n {#1} %define booleans etoolbox style and set defaults %% TODO ? \providetoggle{#1@setup@done}% @@ -4364,16 +4369,18 @@ to track the issues and follow progress. \csgdef{init@extras@#1}{} \csgdef{init@noextras@#1}{} % we don't use this yet: remove? % here we do the fontsetup: - \polyglossia@lang@autosetupfont:n{#1} + \xpg__auto_setupfont:n { #1 } %% TODO? \toggletrue{#1@setup@done} - % reinit \do - \def\do##1{\setotherlanguage{##1}} % register base alias \xpg_language_alias { #1 } { #1 } } -% Adjust language key setting after initial setup -% This is needed, e.g., for languages with varying script +% Adjust language key setting after initial setup. +% Principally any key can be altered this way. +% The command is mainly used in gloss file where +% different options (variant, script, etc.) result +% in different babel names, bcp47 specification, +% or OpenType language or script tags. \DeclareDocumentCommand \SetLanguageKeys { m m } { \clist_map_inline:nn { #1 } { \keys_set:nn { polyglossia / ##1 } { #2 } } @@ -4475,8 +4482,8 @@ to track the issues and follow progress. #1 / script .code:n = { \prop_gput:Nnn{\polyglossia@langsetup}{#1/script}{##1} - \prop_gput:Nnx{\polyglossia@langsetup}{#1/lcscript} - {\tl_if_empty:nF{##1}{\str_lowercase:n##1}} + \prop_gput:Nne{\polyglossia@langsetup}{#1/lcscript} + {\tl_if_empty:nF{##1}{\str_lowercase:n{##1}}} }, #1 / script .value_required:n = true, @@ -4495,7 +4502,7 @@ to track the issues and follow progress. #1 / language .value_required:n = true, #1 / language - .initial:x = {\str_upper_case:n#1}, + .initial:x = {\str_uppercase:n#1}, % the language tag #1 / langtag .code:n = {\prop_gput:Nnn{\polyglossia@langsetup}{#1/langtag}{##1}}, @@ -4570,7 +4577,7 @@ to track the issues and follow progress. #1 / hyphennames .code:n = { \clist_set:Nn{\l_tmpa_clist}{##1} - \prop_gput:Nnx{\polyglossia@langsetup}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}} + \prop_gput:Nne{\polyglossia@langsetup}{#1/hyphennames}{\clist_use:Nn \l_tmpa_clist {,}} }, #1 / hyphennames .value_required:n = true, @@ -4615,50 +4622,17 @@ to track the issues and follow progress. #1 / totalhyphenmin .value_required:n = false, % frenchspacing - #1 / frenchspacing - .code:n = { - \str_case_e:nnTF{##1}{ - {true}{} - {false}{} - } - {} - {\xpg@error{frenchspacing~should~be~true~or~false. Is~ "##1"~ for~ language~ "#1"}} - \prop_gput:Nnn{\polyglossia@langsetup}{#1/frenchspacing}{##1} - }, - #1 / frenchspacing - .default:n = true, - #1 / frenchspacing - .initial:n = false, + #1 / frenchspacing .bool_gset:c = g__xpg_#1_fs_bool , + #1 / frenchspacing .default:n = true , + #1 / frenchspacing .initial:n = false , % indent first line - #1 / indentfirst - .code:n = { - \str_case_e:nnTF{##1}{ - {true}{} - {false}{} - } - {} - {\xpg@error{indentfirst~should~be~true~or~false. Is~ "##1"~ for~ language "#1"}} - \prop_gput:Nnn{\polyglossia@langsetup}{#1/indentfirst}{##1} - }, - #1 / indentfirst - .default:n = true, - #1 / indentfirst - .initial:n = false, + #1 / indentfirst .bool_gset:c = g__xpg_#1_if_bool , + #1 / indentfirst .default:n = true , + #1 / indentfirst .initial:n = false , % fontsetup - #1 / fontsetup - .code:n = { - \str_case_e:nnTF{##1}{ - {true}{} - {false}{} - } - {} - {\xpg@error{fontsetup~should~be~true~or~false. Is "##1"~ for~ language~ "#1"}} - \prop_gput:Nnn{\polyglossia@langsetup}{#1/fontsetup}{##1} - }, - #1 / fontsetup - .default:n = true, - #1 / fontsetup - .initial:n = false, + #1 / fontsetup .bool_gset:c = g__xpg_#1_fontsetup_bool , + #1 / fontsetup .default:n = true , + #1 / fontsetup .initial:n = false , % environment name #1 / envname .code:n = { @@ -4703,220 +4677,64 @@ to track the issues and follow progress. \polyglossia@Clang@@arabic{#2} } -% print using main language -% #2 is the numeral to print -% #3 is the mainlanguage (should be expanded) -% #4 is the current language (should be expanded) -% #1 is the option list (should be expanded) -% #5 is the name of the field to use -\cs_new:Nn \polyglossia_localnumeral_mainlang:nnnnn { - \foreignlanguage{#3}{\use:c {\prop_item:Nn \polyglossia@langsetup {#3/#5}} {#1} {#2}} -} - +\tl_new:N \l__xpg_localnumeral_tl +\bool_new:N \l__xpg_localnumeral_bool -% print using local language -% #2 is the numeral to print -% #3 is the mainlanguage (should be expanded) -% #4 is the current language (should be expanded) -% #1 is the option list (should be expanded) -% #5 is the name of the field to use -\cs_new:Nn \polyglossia_localnumeral_locallang:nnnnn { - \use:c {\prop_item:Nn \polyglossia@langsetup {#4/#5}} {#1} {#2} -} - -% this function try to resolve some simple parameter about lang -% call #2 then branching if found -% call parameter #3 if not found -% (use curing) -\cs_new:Npn \polyglossia_localnumeral_callshortcutorlong:nF #1#2 { - \str_case:nnF{#1}{ - {lang=local}{\polyglossia_localnumeral_locallang:nnnnn} - } - {#2} -} - -\cs_new:Npn \polyglossia_iii_map_csv_field_split_kv_iii_localnumeral:w #1 = #2 \q_stop { - \str_case:nnF{#2}{ - {local} {\clist_map_break:n{\use_i:nn \polyglossia_localnumeral_locallang:nnnnn }} - {default}{\clist_map_break:n{\use_i:nn \polyglossia_localnumeral_locallang:nnnnn }} - {*} {\clist_map_break:n{\use_i:nn\polyglossia_localnumeral_mainlang:nnnnn }} - {main} {\clist_map_break:n{\use_i:nn\polyglossia_localnumeral_mainlang:nnnnn }} - }{ - \clist_map_break:n{ \use_i_ii:nnn \polyglossia_localnumeral_langlang:nnnnnn {{#2}} } - } -} - - -% call the language -% #3 is the numeral to print -% #4 is the mainlanguage (should be expanded) -% #5 is the current language (should be expanded) -% #2 is the option list (should be expanded) -% #6 is the name of the field to use -% #1 is the language used -\cs_new:Nn \polyglossia_localnumeral_langlang:nnnnnn { - \foreignlanguage{#1}{\use:c {\prop_item:Nn \polyglossia@langsetup {#1/#6}} {#2} {#3}} -} - - -% check if empty value -\cs_new:Npn \polyglossia_iii_map_csv_field_split_kv_ii_localnumeral:w #1 #2 = #3 \q_stop { - \quark_if_no_value:NTF {#3} +\keys_define:nn { polyglossia / localnumeral } { - \clist_map_break:n{\use_i:nn \polyglossia_localnumeral_locallang:nnnnn} + 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 } , } + +\cs_new:Npn \__xpg_localnumeral:nnn #1 #2 #3 { - \polyglossia_iii_map_csv_field_split_kv_iii_localnumeral:w #1 \q_stop + \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: } -} -\cs_new:Npn \polyglossia_iii_map_csv_field_split_kv_i_localnumeral:nw #1 #2 = #3 \q_stop { - % parse only lang tag - \tl_trim_spaces_apply:nN {#2} \str_if_eq:nnT {lang} +\NewDocumentCommand \localnumeral { s ={ lang } O{ local } m } { - % if empty value - \quark_if_nil:nTF{#3} - { - \clist_map_break:n{\use_i:nn \polyglossia_localnumeral_locallang:nnnn} - } - { - % here we know what we have an equal sign - \polyglossia_iii_map_csv_field_split_kv_ii_localnumeral:w {#1} #1 \q_no_value \q_stop - } + \IfBooleanTF { #1 } + { + \exp_args:Nc \__xpg_localnumeral:nnn { c@#3 } { #2 } { localnumeral } + } + { + \__xpg_localnumeral:nnn { #3 } { #2 } { localnumeral } + } } -} -% map function -\cs_new:Nn \polyglossia_iii_map_csv_localnumeral:n { - % fast case is do nothing is empty - \tl_if_empty:nF{#1} +\NewDocumentCommand \Localnumeral { s ={ lang } O{ local } m } { - \polyglossia_iii_map_csv_field_split_kv_i_localnumeral:nw {#1} #1 = \q_nil \q_stop + \IfBooleanTF { #1 } + { + \exp_args:Nc \__xpg_localnumeral:nnn { c@#3 } { #2 } { Localnumeral } + } + { + \__xpg_localnumeral:nnn { #3 } { #2 } { Localnumeral } + } } -} - -% treat option is empty and option is lang=local -% #2 number -% #3 mainlanguage -% #4 locallanguage -% #5 field to call -% #1 option -% strip space to option -\cs_new:Nn \polyglossia_iii_localnumeral:nnnnn { - \tl_if_blank:nTF{#1} - { - \polyglossia_localnumeral_mainlang:nnnnn +\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 { - \str_if_eq:nnTF{#1}{lang=local} - { - \polyglossia_localnumeral_locallang:nnnnn - } - { - % use postscript like trick push to stack {#1} {#2} {#3} {#4} - \polyglossia_localnumeral_callshortcutorlong:nF {#1} - { - % same trick here if found we emit \use_i:nn - % thus discarding the default choice that is not lang specified thus local - \clist_map_function:nN {#1} {\polyglossia_iii_map_csv_localnumeral:n} - \polyglossia_localnumeral_locallang:nnnnn - } - } - {#1} {#2} {#3} {#4} {#5} + \bool_if:cTF { g__xpg_#1_if_bool } + { \french@indent } { \nofrench@indent } } -} - - -% internal helper useful for oeee and onnn -% #1 number -% #2 mainlanguage -% #3 locallanguage -% #4 option -% #5 field to call -% strip space to option -\cs_new:Nn \polyglossia_ii_localnumeral:nnnnn { - \tl_trim_spaces_apply:nN {#4} \polyglossia_iii_localnumeral:nnnnn {#1}{#2}{#3}{#5} -} -\cs_generate_variant:Nn \polyglossia_ii_localnumeral:nnnnn { - eeenn, eeeon, eeeen -} - -% convert the counter to value -% #1 counter -% #2 mainlanguage -% #3 locallanguage -% #4 option -\cs_new:Nn \polyglossia_i_localnumeral:nnnnn -{ - \polyglossia_ii_localnumeral:eeeen {\int_value:w #1} {#2} {#3} {#4} {#5} -} - -% print number usage \localnumeral[option]{numeral} -% or \localnumeral*[option]{counter} -% \Localnumeral[]{numeral} use main language -% \localnumeral{numeral} use local language -\NewExpandableDocumentCommand{\localnumeral}{som} -{ - \IfBooleanTF{#1}% - {% starred: take counter - \exp_args:Nc \polyglossia_i_localnumeral:nnnnn {c@#3} - {\mainlanguagename} {\languagename} {\IfNoValueTF {#2}{lang=local}{#2}} {localnumeral} - }{% unstarred: take number - \polyglossia_ii_localnumeral:eeeen {\int_eval:n{#3}} - {\mainlanguagename} {\languagename} {\IfNoValueTF {#2}{lang=local}{#2}} {localnumeral} - } -} - -% print number usage \Localnumeral[option]{numeral} -% or \Localnumeral*[option]{counter} -% \Localnumeral[]{numeral} use main language -% \localnumeral{numeral} use local language -\NewExpandableDocumentCommand{\Localnumeral}{som} -{ - \IfBooleanTF{#1} - {% starred: take counter - \exp_args:Nc \polyglossia_i_localnumeral:nnnnn {c@#3} - {\mainlanguagename} {\languagename} {\IfNoValueTF {#2}{lang=local}{#2}} {Localnumeral} - }{% unstarred: take number - \polyglossia_ii_localnumeral:eeeon {\int_eval:n{#3}} - {\mainlanguagename} {\languagename} {\IfNoValueTF {#2}{lang=local}{#2}} {Localnumeral} - } -} - -\cs_new_nopar:Nn{\polyglossia@lang@frenchspacing:n}{ - \prop_get:NxNTF \polyglossia@langsetup {#1/frenchspacing} \l_tmpa_tl - { - \str_case_e:nnF{\l_tmpa_tl}{ - {true}{\frenchspacing} - {false}{\nonfrenchspacing} - } - {\xpg@error{frenchspacing~should~be~true~or~false. Is~"\l_tmpa_ttl"~ for~ language~ "#1"}} - } - { - \xpg@error{Could~ not~ retrieve~ key~ frenchspacing~ for~ language~ "#1"} - \prop_show:N{\polyglossia@langsetup} - } -} - -\cs_new_nopar:Nn{\polyglossia@lang@indentfirst:n}{ - \prop_get:NxNTF \polyglossia@langsetup {#1/indentfirst} \l_tmpa_tl - { - \str_case_e:nnF{\l_tmpa_tl}{ - {true}{\french@indent} - {false}{\nofrench@indent} - } - {\xpg@error{indentfirst~should~be~true~or~false. Is~"\l_tmpa_ttl"~ for~ language~ "#1"}} - } - { - \xpg@error{Could~ not~ retrieve~ key~ indentfirst~ for~ language~ "#1"} - \prop_show:N{\polyglossia@langsetup} - } -} - \cs_new:Nn{\polyglossia@lang@setpardirection:n}{ - \prop_get:NxNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl + \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl { \polyglossia@setpardirection:n{\l_tmpa_tl} } @@ -4928,7 +4746,7 @@ to track the issues and follow progress. \cs_new:Nn{\polyglossia@lang@settextdirection:nn}{ - \prop_get:NxNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl + \prop_get:NeNTF \polyglossia@langsetup {#1/direction} \l_tmpa_tl { \polyglossia@settextdirection:n{\l_tmpa_tl}{#2} } @@ -4938,10 +4756,6 @@ to track the issues and follow progress. } } -\AtEndDocument{ - \prop_log:N{\polyglossia@langsetup} - \prop_log:N{\__xpg_alias} -} \def\xpg@lastlanguage{0} \providebool{xpg@hyphenation@disabled} @@ -4983,8 +4797,8 @@ to track the issues and follow progress. %\def\xpg@fontsetup@none#1{\csgdef{#1@font}{\ifcsdef{#1font}{\csname #1font\endcsname}{}}} %<-- simplistic %\def\xpg@fontsetup@custom#1{\csuse{#1@font}} -\cs_new:Nn \polyglossia@lang@autosetupfont:n { - \str_if_eq:eeTF{\prop_item:Nn{\polyglossia@langsetup}{#1/fontsetup}}{true} +\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} {\xpg@fontsetup@latin{#1}} @@ -5223,8 +5037,7 @@ to track the issues and follow progress. %% when no patterns are available, we use \l@nohyphenation, assigned to 255 %% (suggestion by Enrico Gregorio) -\str_case_e:nn{\c_sys_engine_str}{ - {luatex} +\sys_if_engine_luatex:TF { \@ifundefined{l@nohyphenation} {\chardef\l@nohyphenation=\directlua{ @@ -5232,12 +5045,9 @@ to track the issues and follow progress. } {} } - {xetex} { \@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{ @@ -5300,7 +5110,7 @@ to track the issues and follow progress. % try to load a language file \cs_new:Nn \polyglossia_load_lang_definition:nn { - \file_if_exist:eTF{gloss-#2.lde} + \file_if_exist:nTF{gloss-#2.lde} { \RequireLanguageDefinitionExtension[#1]{#2} \setkeys{#2}{#1} @@ -5333,14 +5143,14 @@ to track the issues and follow progress. % load a master language from an alias file \newcommand*\xpg@load@master@language[1] { - \file_if_exist:eTF{gloss-#1.lde} + \file_if_exist:nTF{gloss-#1.lde} { \RequireLanguageDefinitionExtension{#1} } { \xpg@input{gloss-#1.ldf} } - \seq_if_in:NxF \__xpg_langs_loaded {#1} + \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} { @@ -5375,9 +5185,6 @@ to track the issues and follow progress. } \cs_generate_variant:Nn \xpg_define_language_commands:n {e} -\AtBeginDocument{ - \prop_log:N{\__xpg_alias} -} % resolve alias property #1 lang #2 item \cs_new:Nn \xpg_alias_prop_item:nn { @@ -5489,19 +5296,17 @@ to track the issues and follow progress. % The starred version does not define commands and environments \IfBooleanF {#1} { - \exp_args:Nc \providecommand {text#4} [2][] {} - \exp_args:Nc \renewcommand {text#4} [2][] - { - \__xpg_textlanguage:een{##1}{#4}{##2} - } - \exp_args:Nc \providecommand {#4} {} - \exp_args:Ne \renewenvironment {#4} - { - \begin{otherlanguage}{#4} - } - { - \end{otherlanguage} - } + \exp_args:Nc \DeclareDocumentCommand {text#4} { O{} m } + { + \__xpg_textlanguage:een {##1} {#4} {##2} + } + \DeclareDocumentEnvironment { #4 } { } + { + \begin{otherlanguage}{#4} + } + { + \end{otherlanguage} + } } \tl_clear_new:N \__xpg_alias_option_tl \prop_clear_new:N \__xpg_language_alias_prop @@ -5543,7 +5348,7 @@ to track the issues and follow progress. \clist_gput_right:Ne \xpg@loaded {\xpg_alias_base_lang:n{##2}} } } - \seq_if_in:NxF \__xpg_langs_loaded {#2} + \seq_if_in:NeF \__xpg_langs_loaded {#2} { \polyglossia_load_lang_definition:nn{#1}{#2} % define environment and command if not alias @@ -5552,9 +5357,9 @@ to track the issues and follow progress. {#2/DefineCommandsCmd}} {#2} } - \exp_args:Nnx \seq_gput_right:Nn \__xpg_langs_loaded {#2} + \seq_gput_right:Ne \__xpg_langs_loaded {#2} } - \polyglossia@set@default@language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}} + \exp_args:Nee \polyglossia@set@default@language:nn {\xpg_alias_add_to_option_i:nn{#2}{#1}} {\xpg_alias_base_lang:n{#2}} } @@ -5628,18 +5433,11 @@ to track the issues and follow progress. % Set luatex main language \sys_if_engine_luatex:T { - \directlua{polyglossia.set_default_language('\luatexluaescapestring{\string#2}')}% + \directlua{polyglossia.set_default_language('\luaescapestring{\string#2}')}% } } -\cs_generate_variant:Nn\polyglossia@set@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 -} -\let\setmainlanguage=\setdefaultlanguage +\DeclareCommandCopy \setmainlanguage \setdefaultlanguage % Returns the language ID of the current language % Currently supported: bcp-47 @@ -5975,7 +5773,7 @@ to track the issues and follow progress. % Declare secondary language #2 with language options #1 \DeclareDocumentCommand \setotherlanguage { O{} m } { - \seq_if_in:NxF \__xpg_langs_loaded {#2} + \seq_if_in:NeF \__xpg_langs_loaded {#2} { \polyglossia_load_lang_definition:ee {#1} {#2} % define environment and command if not alias @@ -5986,7 +5784,7 @@ to track the issues and follow progress. } \polyglossia@set@other@language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}} {\xpg_alias_base_lang:n{#2}} - \exp_args:Nnx \seq_gput_right:Nn \__xpg_langs_loaded {#2} + \seq_gput_right:Ne \__xpg_langs_loaded {#2} } } @@ -5999,7 +5797,7 @@ to track the issues and follow progress. \polyglossia@set@lang@options:nnn {#2} {#1} {@xpg@other@langvariant} \csgdef{#2@gvar}{\otherlanguagevariant} - \prop_get:NxNT \polyglossia@langsetup {#2/babelname} \l_tmpa_tl + \prop_get:NeNT \polyglossia@langsetup {#2/babelname} \l_tmpa_tl { \xdef\otherlanguagebabelname{\l_tmpa_tl} } \cs_gset_eq:cc{#2@gbabelname}{otherlanguagebabelname} } @@ -6017,9 +5815,10 @@ to track the issues and follow progress. \gdef\otherlanguagevariant{#1} } -\newcommand\setotherlanguages[1]{ - \def\do##1{\setotherlanguage{##1}} - \exp_args:Nx\docsvlist{#1}} +\NewDocumentCommand \setotherlanguages { m } + { + \clist_map_function:eN { #1 } \setotherlanguage + } \def\common@language{% FIXME is this really needed??? \ifbool{xpg@hyphenation@disabled}{ @@ -6040,9 +5839,13 @@ to track the issues and follow progress. % where \text would cause clashes % (e.g., \textit) \newcommand\textlang[3][]{ - \xpg@str@lowercase{\xpg@tmp@lang}{#2} - \__xpg_textlanguage:een {#1} {\xpg@tmp@lang} {#3} -}% + \__xpg_textlanguage:een {#1} {#2} {#3} +} + +% prevent the language tag in \textlang +% (second argument) from being affected +% inside case changing commands (e.g. \MakeUppercase) +\tl_put_right:Nn \l_text_case_exclude_arg_tl { \textlang } % Alias to {}, but more suitable % for specific (esp. tag-based) aliases @@ -6121,6 +5924,30 @@ to track the issues and follow progress. \polyglossia@setforeignlanguage[#1]{#2} } +% Stack to store matrix languages +\seq_new:N \__xpg_current_matrixlang_stack + +% Store embedding language when an embedded language is switched to +\cs_new_nopar:Nn \__xpg_store_matrixlang: +{ + \seq_gput_left:Nn \__xpg_current_matrixlang_stack \languagename +} + +% When an embedded language is closed, reset to the embedding language +% and remove stored matrix language from stack +\cs_new_nopar:Nn \__xpg_reset_to_matrixlang: +{ + % if stack is empty, use main language + \seq_gpop_left:NNTF \__xpg_current_matrixlang_stack \l_tmpa_tl + { \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} + {\resetfontlatin} + % In case a \font is defined, re-activate that + \exp_args:Ne \xpg@set@normalfont{\__xpg_current_matrixlang} +} + % internal wrapper for foreign language % #1 option % #2 alias @@ -6132,10 +5959,12 @@ to track the issues and follow progress. { \msg_show:nnn { polyglossia } { languagenotloaded } {#2} }{ + \__xpg_store_matrixlang: \group_begin: \xpg@otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3} \polyglossia@lang@settextdirection:nn{#3}{#4} \group_end: + \__xpg_reset_to_matrixlang: } } \cs_generate_variant:Nn \__xpg_foreignlanguage:nnnn {eeen} @@ -6146,9 +5975,13 @@ to track the issues and follow progress. \renewenvironment{otherlanguage*}[2][] {% + \__xpg_store_matrixlang: \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}} } -{\egroup} +{ + \egroup + \__xpg_reset_to_matrixlang: +} % internal wrapper % #1 option @@ -6196,8 +6029,7 @@ to track the issues and follow progress. \msg_show:nnn { polyglossia } { languagenotloaded } {#2} } { - % Store embedding language name - \global\let\xpg@save@languagename\languagename + \__xpg_store_matrixlang: \group_begin: \bool_set_true:N \__xpg_inline_lang \xpg@otherlanguage[#1]{#3} @@ -6207,11 +6039,7 @@ to track the issues and follow progress. \cs_if_exist_use:c{date@bbl@\babelname} \polyglossia@lang@settextdirection:nn{#3}{#4} \group_end: - % Reset the language's/script's font families if the embedding script is latin - \str_if_eq:eeT{\prop_item:Ne{\polyglossia@langsetup}{\xpg@save@languagename/lcscript}}{latin} - {\resetfontlatin} - % In case a \font is defined, re-activate that - \xpg@set@normalfont{\xpg@save@languagename} + \__xpg_reset_to_matrixlang: } } \cs_generate_variant:Nn \__xpg_textlanguage:nnnn {nnen} @@ -6273,7 +6101,7 @@ to track the issues and follow progress. } \sys_if_engine_luatex:T { - \directlua{polyglossia.select_language('\luatexluaescapestring{\string#3}', + \directlua{polyglossia.select_language('\luaescapestring{\string#3}', \the\csname l@#3\endcsname)} } \polyglossia@register@language:nn{#2}{#3} @@ -6418,36 +6246,28 @@ to track the issues and follow progress. } % Check if the current font has a given glyph -\prg_set_conditional:Npnn \polyglossia@check@if@char@available:N #1 { p , T , F , TF } -{ - \str_case_e:nnF{\c_sys_engine_str}{ - {luatex}{ - \int_compare:nNnTF { \directlua{polyglossia.check_char(0x#1)} } > { 0 } - {\prg_return_true:} - {\prg_return_false:} - } - {xetex}{ - \int_compare:nNnTF { \the\XeTeXcharglyph"#1 } > { 0 } - {\prg_return_true:} - {\prg_return_false:} - } - } +\prg_new_conditional:Npnn \__polyglossia_if_char:N #1 { TF } { - \xpg@warning{You’re ~ running ~ a ~ TeX engine ~ that ~ is ~ - not ~ LuaTeX ~ or ~ XeTeX.\MessageBreak - That~ is~ almost~ guaranteed~ to~ cause~ problems.} - \prg_return_false: + \iffontchar\font\int_from_hex:n { #1 }~ + \prg_return_true: + \else: + \prg_return_false: + \fi: } -} % Test if a char (by char code) is available in the current font -\newcommand*\xpg@if@char@available[3]{ - \polyglossia@check@if@char@available:NTF{#1}{#2}{#3} -} +% 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 } + } -\newcommand*\charifavailable[2]{ - \xpg@if@char@available{#1}{\char"#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 } + { + \__polyglossia_if_char:NTF{#1}{#2}{#3} + } \newcommand*{\xpg@set@language@nonaux}[2][]{ @@ -6582,24 +6402,10 @@ to track the issues and follow progress. % Set hyphenation patterns for a given language. This does the right % thing both for XeTeX and LuaTeX \newcommand*\xpg@set@hyphenation@patterns[1]{ - \str_case_e:nnF{\c_sys_engine_str}{ - {luatex} - { - \polyglossia@luatex@load@lang{#1} - \language=\csname l@#1\endcsname - } - {xetex} - { - \language=\csname l@#1\endcsname - } - } - { - \xpg@warning{You’re~running~a~TeX~engine~that~is~not~LuaTeX~or~XeTeX.\MessageBreak - That~is~almost~guaranteed~to~cause~problems.} - } + \sys_if_engine_luatex:T { \polyglossia@luatex@load@lang{#1} } + \language=\csname l@#1\endcsname } - \newcommand*\@select@language[2][]{ % hook for compatibility with biblatex \select@language{#2} @@ -6617,7 +6423,7 @@ to track the issues and follow progress. \cs_if_exist_use:c{date@bbl@\babelname} \polyglossia@local@marks:n{#2} \csuse{init@extras@#2}% - \polyglossia@lang@indentfirst: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) @@ -6676,14 +6482,12 @@ 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} - \polyglossia@lang@frenchspacing:n{#2} + \xpg__french_spacing:n { #2 } } \let\xpg@pop@language\relax -\provideenvironment{otherlanguage}{}{} - % % Keep track of the active (nested) languages and options % @@ -6696,13 +6500,11 @@ to track the issues and follow progress. \cs_generate_variant:Nn \polyglossia@stack@language:nn {nx} -\cs_generate_variant:Nn \seq_set_split:Nnn {Nnx} - \cs_new:Nn \polyglossia@unstack@language:n { \clist_gpop:NNTF \l_xpg_lang_stack \l_tmpa_tl { % Stored format = options:language => split: - \seq_set_split:Nnx \l_tmpa_seq {:} \l_tmpa_tl + \seq_set_split:Nne \l_tmpa_seq {:} \l_tmpa_tl \seq_get_left:NN \l_tmpa_seq \l_tmpb_tl \seq_get_right:NN \l_tmpa_seq \l_tmpc_tl % Execute passed command with language and maybe options @@ -6715,22 +6517,22 @@ to track the issues and follow progress. {} } -\renewenvironment{otherlanguage}[2][] -{ - % Get real current (pre-switch) options (incl. defaults) - \clist_clear_new:N \l_xpg_current_options - \prop_map_inline:cn {xpg@current@options@\languagename} +\DeclareDocumentEnvironment { otherlanguage } { O{} m } { - \clist_put_right:Nn \l_xpg_current_options {##1=##2} + % Get real current (pre-switch) options (incl. defaults) + \clist_clear_new:N \l_xpg_current_options + \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} + \selectlanguage[#1]{#2} + } + { + % restore previous language in aux file and remove closed one from stack + \polyglossia@unstack@language:n{xpg@set@language@only@aux} } - % Store current (pre-switch) options and language on stack - \polyglossia@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} -} \newcommand{\setlocalhyphenmins}[3]{ \xpg@ifdefined{#1}{ @@ -6793,7 +6595,7 @@ to track the issues and follow progress. } \sys_if_engine_luatex:T{ % Set \totalhyphenmin if specified - \prop_get:NxNTF \polyglossia@langsetup {#2/totalhyphenmin} \l_tmpa_tl + \prop_get:NeNTF \polyglossia@langsetup {#2/totalhyphenmin} \l_tmpa_tl { \xpg@info{totalhyphenmin: '\l_tmpa_tl'} \expandafter\hyphenationmin \l_tmpa_tl @@ -6805,25 +6607,23 @@ to track the issues and follow progress. % Babel previously compiled in hyphenrules into the kernel (via hyphen.cfg) % but this is no longer the case. In any case, we roll our own one now % and possibly overwrite babel's. -\provideenvironment{hyphenrules}{}{} - % As opposed to the one inherited from switch.def/babel, our environment % supports language options and aliases. -\renewenvironment{hyphenrules}[2][] -{ - % Check for real language name and options - \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} - % Now switch patterns - \__xpg_use_or_warn:c{\use:c{xpg@tmp@lang}@language} - % And activate hyphenmins - \use@localhyphenmins[\xpg@tmp@opts]{\xpg@tmp@lang} -} -{} +\DeclareDocumentEnvironment { hyphenrules } { O{} m } + { + % Check for real language name and options + \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} + % Now switch patterns + \__xpg_use_or_warn:c{\use:c{xpg@tmp@lang}@language} + % And activate hyphenmins + \use@localhyphenmins[\xpg@tmp@opts]{\xpg@tmp@lang} + } + { } -\AtEndPreamble{ +\AddToHook{begindocument/before}{ \@ifpackageloaded{bidi}{ \providecommand*{\aemph}[1]{$\overline{\hboxR{#1}}$} }{} @@ -6872,7 +6672,7 @@ to track the issues and follow progress. % load by default latex \setmainlanguage{latex} % then process key in order to overwrite -\ProcessKeysOptions{polyglossia} +\ProcessKeyOptions[polyglossia] % Set the LuaTeX renderer. As opposed to fontspec, we use Harfbuzz by default. % This can be changed via the luatexrenderer package option. @@ -6933,7 +6733,6 @@ to track the issues and follow progress. \def\xpg@option#1#2{ \ifcsundef{xpg@main@language}{\setdefaultlanguage}{\setotherlanguage} [#1]{#2}} -\ExplSyntaxOff % \end{macrocode} % \iffalse @@ -7642,7 +7441,7 @@ Shawwāl\or Dhū ’l-Qaʿda\or Dhū ’l-Ḥijja\fi} % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia-punct') @@ -7709,7 +7508,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct % \begin{macrocode} -- -- polyglossia-korean.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- local glyph_id = node.id"glyph" @@ -8327,7 +8126,7 @@ prepend_to_callback ("hpack_filter", % \begin{macrocode} -- -- polyglossia-latin.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia-punct') @@ -8382,7 +8181,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia') -- just in case... @@ -8750,7 +8549,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters % \begin{macrocode} -- -- polyglossia-sanskrit.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia-punct') @@ -8800,7 +8599,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct % \begin{macrocode} -- -- polyglossia-tibt.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia') -- just in case... @@ -8903,7 +8702,7 @@ polyglossia.desactivate_tibt_eol = desactivate % \begin{macrocode} -- -- polyglossia.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- local module_name = "polyglossia" @@ -8937,34 +8736,6 @@ local function set_default_language(lang, id) polyglossia.default_language = lang end -local byte = utf8.codepoint -- use standard module of lua 5.3 - -local check_char - -if luaotfload and luaotfload.aux and luaotfload.aux.font_has_glyph then - local font_has_glyph = luaotfload.aux.font_has_glyph - function check_char(chr) - local codepoint = tonumber(chr) or byte(chr) - if font_has_glyph(font.current(), codepoint) then - tex.sprint('1') - else - tex.sprint('0') - end - end -else - function check_char(chr) -- always in current font - local fontid = font.current() - local fontdata = font.getfont(fontid) or font.fonts[fontid] - local chardata = fontdata.characters - local codepoint = tonumber(chr) or byte(chr) - if chardata and chardata[codepoint] then - tex.sprint('1') - else - tex.sprint('0') - end - end -end - local function load_tibt_eol() require('polyglossia-tibt') end @@ -9084,7 +8855,6 @@ end polyglossia.select_language = select_language polyglossia.set_default_language = set_default_language -polyglossia.check_char = check_char polyglossia.load_tibt_eol = load_tibt_eol polyglossia.newloader = newloader polyglossia.newloader_loaded_languages = newloader_loaded_languages @@ -10256,9 +10026,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latex.lde} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % -\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/10/01}{v1.65}{polyglossia: module for default language} +\ProvidesLanguageDefinitionExtension{gloss-latex}{2023/12/11}{v1.66}{polyglossia: module for default language} \PolyglossiaSetup{latex}{ bcp47=en-US, @@ -10306,7 +10076,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-acadien.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-acadien.ldf}[polyglossia: module for Canadian (Acadian) French] @@ -10323,7 +10093,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-aeb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-aeb.ldf}[polyglossia: module for aeb (Arabic)] @@ -10340,7 +10110,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-af.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-af.ldf}[polyglossia: module for af (Afrikaans)] @@ -10357,7 +10127,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-afb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-afb.ldf}[polyglossia: module for afb (Arabic)] @@ -10374,7 +10144,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-afrikaans.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-afrikaans.ldf}[polyglossia: module for Afrikaans] @@ -10479,7 +10249,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-albanian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-albanian.ldf}[polyglossia: module for Albanian] @@ -10536,7 +10306,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-am.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-am.ldf}[polyglossia: module for am (Amharic)] @@ -10553,7 +10323,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-american.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-american.ldf}[polyglossia: module for American English] @@ -10570,7 +10340,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-amharic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-amharic.ldf}[polyglossia: module for Amharic] \PolyglossiaSetup{amharic}{ @@ -10790,7 +10560,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-apd.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-apd.ldf}[polyglossia: module for apd (Arabic)] @@ -10807,7 +10577,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-IQ.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-IQ.ldf}[polyglossia: module for ar-IQ (Arabic)] @@ -10826,7 +10596,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-JO.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-JO.ldf}[polyglossia: module for ar-JO (Arabic)] @@ -10845,7 +10615,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-LB.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-LB.ldf}[polyglossia: module for ar-LB (Arabic)] @@ -10864,7 +10634,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-MR.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-MR.ldf}[polyglossia: module for ar-MR (Arabic)] @@ -10883,7 +10653,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-PS.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-PS.ldf}[polyglossia: module for ar-PS (Arabic)] @@ -10902,7 +10672,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-SY.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-SY.ldf}[polyglossia: module for ar-SY (Arabic)] @@ -10921,7 +10691,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar-YE.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar-YE.ldf}[polyglossia: module for ar-YE (Arabic)] @@ -10940,7 +10710,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ar.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ar.ldf}[polyglossia: module for ar (Arabic)] @@ -10957,7 +10727,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-arabic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-arabic.ldf}[polyglossia: module for Arabic] \RequireBidi @@ -11347,7 +11117,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-armenian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-armenian.ldf}[polyglossia: module for Armenian] @@ -11555,7 +11325,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-arq.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-arq.ldf}[polyglossia: module for arq (Arabic)] @@ -11572,7 +11342,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ary.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ary.ldf}[polyglossia: module for ary (Arabic)] @@ -11589,7 +11359,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-arz.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-arz.ldf}[polyglossia: module for arz (Arabic)] @@ -11606,7 +11376,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ast.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ast.ldf}[polyglossia: module for ast (Asturian)] @@ -11623,7 +11393,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-asturian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % Translated by Xuacu % Contributed by Kevin Godby @@ -11683,7 +11453,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-australian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-australian.ldf}[polyglossia: module for Australian English] @@ -11700,7 +11470,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-austrian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-austrian.ldf}[polyglossia: module for Austrian German (old spelling)] @@ -11717,7 +11487,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ayl.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ayl.ldf}[polyglossia: module for ayl (Arabic)] @@ -11734,7 +11504,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bahasa.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bahasa.ldf}[polyglossia: module for Bahasa Indonesia] @@ -11751,7 +11521,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bahasai.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bahasai.ldf}[polyglossia: module for Bahasa Indonesia] @@ -11769,7 +11539,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bahasam.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bahasam.ldf}[polyglossia: module for Bahasa Melayu] @@ -11787,7 +11557,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-basque.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-basque.ldf}[polyglossia: module for Basque] \PolyglossiaSetup{basque}{ @@ -11845,7 +11615,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-be-tarask.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-be-tarask.ldf}[polyglossia: module for be-tarask (Belarusian)] @@ -11862,7 +11632,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-be.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-be.ldf}[polyglossia: module for be (Belarusian)] @@ -11879,7 +11649,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-belarusian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-belarusian.ldf}[polyglossia: module for Belarusian] @@ -12207,7 +11977,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bengali.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % Translations provided by সাজেদুর রহিম জোয়ারদার % TODO implement Bengali calendar @@ -12348,7 +12118,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bg.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bg.ldf}[polyglossia: module for bg (Bulgarian)] @@ -12365,7 +12135,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bn.ldf}[polyglossia: module for bn (Bengali)] @@ -12382,7 +12152,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bo.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bo.ldf}[polyglossia: module for bo (Tibetan)] @@ -12399,7 +12169,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bosnian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bosnian.ldf}[polyglossia: module for Bosnian] @@ -12463,7 +12233,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-br.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-br.ldf}[polyglossia: module for br (Breton)] @@ -12480,7 +12250,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-brazil.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-brazil.ldf}[polyglossia: module for Brazilian Portuguese] @@ -12499,7 +12269,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-breton.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-breton.ldf}[polyglossia: module for Breton] \PolyglossiaSetup{breton}{ @@ -12607,7 +12377,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-british.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-british.ldf}[polyglossia: module for British English] @@ -12624,7 +12394,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bs.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bs.ldf}[polyglossia: module for bs (Bosnian)] @@ -12641,7 +12411,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-bulgarian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-bulgarian.ldf}[polyglossia: module for Bulgarian] \PolyglossiaSetup{bulgarian}{ @@ -12743,7 +12513,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ca.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ca.ldf}[polyglossia: module for ca (Catalan)] @@ -12760,7 +12530,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-canadian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-canadian.ldf}[polyglossia: module for Canadian English] @@ -12777,7 +12547,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-canadien.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-canadien.ldf}[polyglossia: module for Canadian French] @@ -12794,7 +12564,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-catalan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-catalan.ldf}[polyglossia: module for Catalan] \PolyglossiaSetup{catalan}{ @@ -12842,7 +12612,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \else \leftllkern=0pt\rightllkern=0pt\raiselldim=0pt% \setbox0\hbox{l}% - \xpg@if@char@available{00B7}% + \IfCharIsAvailableTF{00B7}% {\setbox2\hbox{\char"00B7}\setbox1\hbox{l}}% {\setbox2\hbox{.}\setbox1\hbox{l\/}}% \setbox3\hbox{.}% @@ -12870,7 +12640,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \else \leftllkern=0pt\rightllkern=0pt\raiselldim=0pt% \setbox0\hbox{L}% - \xpg@if@char@available{00B7}% + \IfCharIsAvailableTF{00B7}% {\setbox2\hbox{\char"00B7}\setbox1\hbox{L}}% {\setbox2\hbox{.}\setbox1\hbox{L\/}}% \setbox3\hbox{.}% @@ -12963,7 +12733,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-chinese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-chinese.ldf}[polyglossia: module for Chinese] @@ -12974,7 +12744,8 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages bcp47-script=Hans, script=CJK, scripttag=hani, - language=Chinese, + language={Chinese Simplified}, + langtag=ZHS, hyphennames={nohyphenation}, frenchspacing=false, fontsetup=true, @@ -13005,22 +12776,22 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \ifcase\xpg@nr\relax % cn: \chinese@traditionalfalse - \SetLanguageKeys{chinese}{bcp47=zh-CN,bcp47-language=zh,bcp47-region=CN,bcp47-script=Hans}% + \SetLanguageKeys{chinese}{language={Chinese Simplified},langtag=ZHS,bcp47=zh-CN,bcp47-language=zh,bcp47-region=CN,bcp47-script=Hans}% \xpg@info{Option: Chinese, variant=simplified}% \or % simplified: \chinese@traditionalfalse - \SetLanguageKeys{chinese}{bcp47=zh-CN,bcp47-language=zh,bcp47-region=CN,bcp47-script=Hans}% + \SetLanguageKeys{chinese}{language={Chinese Simplified},langtag=ZHS,bcp47=zh-CN,bcp47-language=zh,bcp47-region=CN,bcp47-script=Hans}% \xpg@info{Option: Chinese, variant=simplified}% \or % tw: \chinese@traditionaltrue - \SetLanguageKeys{chinese}{bcp47=zh-TW,bcp47-language=zh,bcp47-region=TW,bcp47-script=Hant}% + \SetLanguageKeys{chinese}{language={Chinese Traditional},langtag=ZHT,bcp47=zh-TW,bcp47-language=zh,bcp47-region=TW,bcp47-script=Hant}% \xpg@info{Option: Chinese, variant=traditional}% \or % traditional: \chinese@traditionaltrue - \SetLanguageKeys{chinese}{bcp47=zh-TW,bcp47-language=zh,bcp47-region=TW,bcp47-script=Hant}% + \SetLanguageKeys{chinese}{language={Chinese Traditional},langtag=ZHT,bcp47=zh-TW,bcp47-language=zh,bcp47-region=TW,bcp47-script=Hant}% \xpg@info{Option: Chinese, variant=traditional}% \fi }{\xpg@warning{Unknown Chinese variant `#1'}} @@ -13253,7 +13024,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ckb-Arab.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ckb-Arab.ldf}[polyglossia: module for ckb-Arab (Kurdish)] @@ -13270,7 +13041,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ckb-Latn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ckb-Latn.ldf}[polyglossia: module for ckb-Latn (Kurdish)] @@ -13287,7 +13058,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ckb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ckb.ldf}[polyglossia: module for ckb (Kurdish)] @@ -13304,7 +13075,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-cop.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-cop.ldf}[polyglossia: module for cop (Coptic)] @@ -13321,7 +13092,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-coptic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-coptic.ldf}[polyglossia: module for Coptic] \PolyglossiaSetup{coptic}{ @@ -13377,7 +13148,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-croatian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-croatian.ldf}[polyglossia: module for Croatian] \PolyglossiaSetup{croatian}{ @@ -13653,7 +13424,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-cy.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-cy.ldf}[polyglossia: module for cy (Welsh)] @@ -13670,7 +13441,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-cz.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-cz.ldf}[polyglossia: module for cz (Czech)] @@ -13687,7 +13458,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-czech.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-czech.ldf}[polyglossia: module for Czech] @@ -13946,7 +13717,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-da.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-da.ldf}[polyglossia: module for da (Danish)] @@ -13963,7 +13734,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-danish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-danish.ldf}[polyglossia: module for Danish] \PolyglossiaSetup{danish}{ @@ -14020,7 +13791,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-AT-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-AT-1901.ldf}[polyglossia: module for de-AT-1901 (Austrian German, old spelling)] @@ -14037,7 +13808,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-AT-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-AT-1996.ldf}[polyglossia: module for de-AT-1996 (Austrian German)] @@ -14054,7 +13825,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-AT.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-AT.ldf}[polyglossia: module for de-AT (Austrian German)] @@ -14071,7 +13842,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-CH-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-CH-1901.ldf}[polyglossia: module for de-CH-1901 (Swiss German, old spelling)] @@ -14088,7 +13859,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-CH-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-CH-1996.ldf}[polyglossia: module for de-CH-1996 (Swiss German)] @@ -14105,7 +13876,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-CH.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-CH.ldf}[polyglossia: module for de-CH (Swiss German)] @@ -14122,7 +13893,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-DE-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-DE-1901.ldf}[polyglossia: module for de-DE-1901 (Germany's German, old spelling)] @@ -14139,7 +13910,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-DE-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-DE-1996.ldf}[polyglossia: module for de-DE-1996 (Germany's German)] @@ -14156,7 +13927,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-DE.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-DE.ldf}[polyglossia: module for de-DE (Germany's German)] @@ -14173,7 +13944,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-AT-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-AT-1901-Latf.ldf}[polyglossia: module for de-AT-1901-Latf (Austrian German, old spelling)] @@ -14190,7 +13961,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-AT-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-AT-1996-Latf.ldf}[polyglossia: module for de-AT-1996-Latf (Austrian German)] @@ -14207,7 +13978,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-AT.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-AT-Latf.ldf}[polyglossia: module for de-AT-Latf (Austrian German)] @@ -14224,7 +13995,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-CH-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-CH-1901-Latf.ldf}[polyglossia: module for de-CH-1901-Latf (Swiss German, old spelling)] @@ -14241,7 +14012,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-CH-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-CH-1996-Latf.ldf}[polyglossia: module for de-CH-1996-Latf (Swiss German)] @@ -14258,7 +14029,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-CH.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-CH-Latf.ldf}[polyglossia: module for de-CH-Latf (Swiss German)] @@ -14275,7 +14046,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-DE-1901.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-DE-1901-Latf.ldf}[polyglossia: module for de-DE-1901-Latf (Germany's German, old spelling)] @@ -14292,7 +14063,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-DE-1996.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-DE-1996-Latf.ldf}[polyglossia: module for de-DE-1996-Latf (Germany's German)] @@ -14309,7 +14080,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf-DE.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-DE-Latf.ldf}[polyglossia: module for de-DE-Latf (Germany's German)] @@ -14326,7 +14097,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de-Latf.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de-Latf.ldf}[polyglossia: module for de-Latf (German)] @@ -14343,7 +14114,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-de.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-de.ldf}[polyglossia: module for de (German)] @@ -14360,7 +14131,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-divehi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-divehi.ldf}[polyglossia: module for Divehi] @@ -14415,7 +14186,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-dsb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-dsb.ldf}[polyglossia: module for dsb (Sorbian)] @@ -14432,7 +14203,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-dutch.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-dutch.ldf}[polyglossia: module for Dutch] \PolyglossiaSetup{dutch}{ @@ -14642,7 +14413,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-dv.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-dv.ldf}[polyglossia: module for dv (Divehi)] @@ -14659,7 +14430,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-el-monoton.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-el-monoton.ldf}[polyglossia: module for el-monoton (Greek)] @@ -14676,7 +14447,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-el-polyton.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-el-polyton.ldf}[polyglossia: module for el-polyton (Greek)] @@ -14693,7 +14464,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-el.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-el.ldf}[polyglossia: module for el (Greek)] @@ -14710,7 +14481,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-AU.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-en-AU.ldf}[polyglossia: module for en-AU (Australian English)] @@ -14727,7 +14498,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-CA.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-en-CA.ldf}[polyglossia: module for en-CA (Canadan English)] @@ -14744,7 +14515,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-GB.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-en-GB.ldf}[polyglossia: module for en-GB (British English)] @@ -14761,7 +14532,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-NZ.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-en-NZ.ldf}[polyglossia: module for en-NZ (Newzealand English)] @@ -14778,7 +14549,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en-US.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-en-US.ldf}[polyglossia: module for en-US (American English)] @@ -14795,7 +14566,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-en.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-en.ldf}[polyglossia: module for en (English)] @@ -14812,7 +14583,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-english.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-english.ldf}[polyglossia: module for English] @@ -15023,7 +14794,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-eo.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-eo.ldf}[polyglossia: module for eo (Esperanto)] @@ -15040,7 +14811,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-es-ES.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-es-ES.ldf}[polyglossia: module for es-ES (Spain's Spanish)] @@ -15057,7 +14828,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-es-MX.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-es-MX.ldf}[polyglossia: module for es-MX (Mexican Spanish)] @@ -15074,7 +14845,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-es.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-es.ldf}[polyglossia: module for es (Spanish)] @@ -15091,7 +14862,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-esperanto.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-esperanto.ldf}[polyglossia: module for Esperanto] \PolyglossiaSetup{esperanto}{ @@ -15171,7 +14942,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-estonian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-estonian.ldf}[polyglossia: module for Estonian] \PolyglossiaSetup{estonian}{ @@ -15228,7 +14999,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-et.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-et.ldf}[polyglossia: module for et (Estonian)] @@ -15245,7 +15016,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-eu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-eu.ldf}[polyglossia: module for eu (Basque)] @@ -15262,7 +15033,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fa.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fa.ldf}[polyglossia: module for fa (Persian)] @@ -15279,7 +15050,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-farsi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-farsi.ldf}[polyglossia: module for Farsi] @@ -15297,7 +15068,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fi.ldf}[polyglossia: module for fi (Finnish)] @@ -15314,7 +15085,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-finnish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-finnish.ldf}[polyglossia: module for Finnish] \PolyglossiaSetup{finnish}{ @@ -15434,7 +15205,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.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fr-CA-u-sd-canb.ldf}[polyglossia: module for fr-CA-u-sd-canb (Canadian French, Acadian subvariety)] @@ -15451,7 +15222,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr-CA.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fr-CA.ldf}[polyglossia: module for fr-CA (Canadian French)] @@ -15468,7 +15239,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr-CH.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fr-CH.ldf}[polyglossia: module for fr-CH (Swiss French)] @@ -15485,7 +15256,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr-FR.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fr-FR.ldf}[polyglossia: module for fr-FR (France's French)] @@ -15502,7 +15273,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fr.ldf}[polyglossia: module for fr (French)] @@ -15519,7 +15290,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-french.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-french.ldf}[polyglossia: module for French] @@ -16065,7 +15836,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-friulan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-friulan.ldf}[polyglossia: module for Friulian] @@ -16082,7 +15853,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-friulian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-friulian.ldf}[polyglossia: module for Friulian] @@ -16168,7 +15939,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-fur.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-fur.ldf}[polyglossia: module for fur (Friulian)] @@ -16185,7 +15956,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ga.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ga.ldf}[polyglossia: module for ga (Gaelic)] @@ -16202,7 +15973,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-gaelic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-gaelic.ldf}[polyglossia: module for Gaelic] @@ -16332,7 +16103,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-galician.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-galician.ldf}[polyglossia: module for Galician] \PolyglossiaSetup{galician}{ @@ -16389,7 +16160,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-gd.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-gd.ldf}[polyglossia: module for gd (Gaelic)] @@ -16406,7 +16177,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-georgian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-georgian.ldf}[polyglossia: module for Georgian] @@ -16654,7 +16425,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-german.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-german.ldf}[polyglossia: module for German] @@ -17003,7 +16774,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-germanb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-germanb.ldf}[polyglossia: module for German (old spelling)] @@ -17020,7 +16791,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-gl.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-gl.ldf}[polyglossia: module for gl (Galician)] @@ -17037,7 +16808,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-grc.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-grc.ldf}[polyglossia: module for grc (Greek)] @@ -17054,7 +16825,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-greek.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-greek.ldf}[polyglossia: module for Greek] @@ -17522,7 +17293,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-he.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-he.ldf}[polyglossia: module for he (Hebrew)] @@ -17539,7 +17310,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hebrew.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hebrew.ldf}[polyglossia: module for Hebrew] @@ -17713,7 +17484,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hi.ldf}[polyglossia: module for hi (Hindi)] @@ -17730,7 +17501,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hindi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % UTF-8 strings kindly provided by Zdenĕk Wagner, 10-03-2008 % with corrections and additional contributions by Anshuman Pandey @@ -17849,7 +17620,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hr.ldf}[polyglossia: module for hr (Croatian)] @@ -17866,7 +17637,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hsb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hsb.ldf}[polyglossia: module for hsb (Higher Sorbian)] @@ -17883,7 +17654,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hu.ldf}[polyglossia: module for hu (Hungarian)] @@ -17900,7 +17671,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hungarian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hungarian.ldf}[polyglossia: module for Hungarian] @@ -18299,7 +18070,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-hy.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-hy.ldf}[polyglossia: module for hy (Armenian)] @@ -18316,7 +18087,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ia.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ia.ldf}[polyglossia: module for ia (Interlingua)] @@ -18333,7 +18104,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-icelandic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-icelandic.ldf}[polyglossia: module for Icelandic] \PolyglossiaSetup{icelandic}{ @@ -18391,7 +18162,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-id.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-id.ldf}[polyglossia: module for id (Malay)] @@ -18408,7 +18179,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-interlingua.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-interlingua.ldf}[polyglossia: module for Interlingua] \PolyglossiaSetup{interlingua}{ @@ -18466,7 +18237,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-irish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-irish.ldf}[polyglossia: module for Irish] @@ -18484,7 +18255,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-is.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-is.ldf}[polyglossia: module for is (Icelandic)] @@ -18501,7 +18272,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-it.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-it.ldf}[polyglossia: module for it (Italian)] @@ -18519,7 +18290,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.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-italian.ldf}[polyglossia: module for Italian] \PolyglossiaSetup{italian}{ @@ -18671,7 +18442,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ja.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ja.ldf}[polyglossia: module for ja (Japanese)] @@ -18688,7 +18459,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-japanese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-japanese.ldf}[polyglossia: module for Japanese] @@ -18926,7 +18697,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ka.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ka.ldf}[polyglossia: module for ka (Georgian)] @@ -18944,7 +18715,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \subsection{gloss-kannada.ldf} % \begin{macrocode} %% gloss-kannada.ldf -%% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +%% Language definition file (part of polyglossia v1.66 -- 2023/12/11) %% %% Copyright 2011 Aravinda VK , %% Shankar Prasad , @@ -19067,7 +18838,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-khmer.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-khmer.ldf}[polyglossia: module for Khmer] \PolyglossiaSetup{khmer}{ @@ -19082,6 +18853,10 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages fontsetup=true,% localnumeral=khmernumerals% } + +% BCP-47 compliant aliases +\setlanguagealias*{khmer}{km} + \newif\if@khmer@numerals \def\tmp@khmer{khmer} \define@key{khmer}{numerals}[arabic]{% @@ -19094,7 +18869,9 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \SetLanguageKeys{khmer}{bcp47-extension-u=nu-latn}% \fi% } + \setkeys{khmer}{numerals} + \def\captionskhmer{% \def\prefacename{អារម្ភកថា}% \def\refname{ឯកសារយោង}% @@ -19244,7 +19021,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-km.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-km.ldf}[polyglossia: module for km (Khmer)] @@ -19261,7 +19038,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kmr-Arab.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-kmr-Arab.ldf}[polyglossia: module for kmr-Arab (Kurdish)] @@ -19278,7 +19055,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kmr-Latn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-kmr-Latn.ldf}[polyglossia: module for kmr-Latn (Kurdish)] @@ -19295,7 +19072,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kmr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-kmr.ldf}[polyglossia: module for kmr (Kurdish)] @@ -19312,7 +19089,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-kn.ldf}[polyglossia: module for kn (Kannada)] @@ -19329,7 +19106,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ko.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ko.ldf}[polyglossia: module for ko (Korean)] @@ -19346,7 +19123,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-korean.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-korean.ldf}[polyglossia: module for Korean] @@ -19826,7 +19603,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ku-Arab.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ku-Arab.ldf}[polyglossia: module for ku-Arab (Kurdish)] @@ -19843,7 +19620,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ku-Latn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ku-Latn.ldf}[polyglossia: module for ku-Latn (Kurdish)] @@ -19860,7 +19637,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ku.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ku.ldf}[polyglossia: module for ku (Kurdish)] @@ -19877,7 +19654,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kurdish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % Created on September 1, 2019 % Last updated on May 17, 2020 @@ -20239,7 +20016,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \if@western@numerals \number#1% \else - \xpg@if@char@available{06F0}% + \IfCharIsAvailableTF{06F0}% {\@ensure@LTR{\farsidigits{\number#1}}}% {\@ensure@LTR{\arabicdigits{\number#1}}}% \fi @@ -20374,7 +20151,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-kurmanji.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-kurmanji.ldf}[polyglossia: module for Kurmanji Kurdish] @@ -20391,7 +20168,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la-x-classic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-la-xclassic.ldf}[polyglossia: module for la-xclassic (Latin)] @@ -20408,7 +20185,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la-x-ecclesia.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-la-xecclesiastic.ldf}[polyglossia: module for la-xecclesiastic (Latin)] @@ -20425,7 +20202,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la-x-medieval.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-la-xmedieval.ldf}[polyglossia: module for la-xmedieval (Latin)] @@ -20442,7 +20219,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-la.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-la.ldf}[polyglossia: module for la (Latin)] @@ -20459,7 +20236,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lao.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-lao.ldf}[polyglossia: module for Lao] @@ -20570,7 +20347,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latin.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin] @@ -21685,7 +21462,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latinclassic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-latinclassic.ldf}[polyglossia: module for classic Latin] @@ -21702,7 +21479,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latinecclesiastic.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-latinecclesiastic.ldf}[polyglossia: module for ecclesiastic Latin] @@ -21719,7 +21496,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latinmedieval.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-latinmedieval.ldf}[polyglossia: module for medieval Latin] @@ -21736,7 +21513,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-latvian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-latvian.ldf}[polyglossia: module for Latvian] \PolyglossiaSetup{latvian}{ @@ -21794,7 +21571,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lithuanian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % Translated by Paulius Sladkevičius @@ -21876,7 +21653,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lo.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-lo.ldf}[polyglossia: module for lo (Lao)] @@ -21893,7 +21670,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lowersorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-lowersorbian.ldf}[polyglossia: module for Lower Sorbian] @@ -21910,7 +21687,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lsorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-lsorbian.ldf}[polyglossia: module for Lower Sorbian] @@ -21928,7 +21705,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lt.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-lt.ldf}[polyglossia: module for lt (Lithuanian)] @@ -21945,7 +21722,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-lv.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-lv.ldf}[polyglossia: module for lv (Latvian)] @@ -21962,7 +21739,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-macedonian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-macedonian.ldf}[polyglossia: module for Macedonian] \PolyglossiaSetup{macedonian}{ @@ -22061,7 +21838,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-magyar.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-magyar.ldf}[polyglossia: module for Hungarian (Magyar)] @@ -22078,7 +21855,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-malay.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-malay.ldf}[polyglossia: module for Malay] @@ -22277,7 +22054,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-malayalam.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-malayalam.ldf}[polyglossia: module for Malayalam] @@ -22347,7 +22124,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-marathi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % Translations provided by Abhijit Navale % Ordinals (1-100) added by Niranjan Tambe on 14th December, 2019 @@ -22497,7 +22274,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mk.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-mk.ldf}[polyglossia: module for mk (Macedonian)] @@ -22514,7 +22291,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ml.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ml.ldf}[polyglossia: module for ml (Malayalam)] @@ -22531,7 +22308,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mn.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-mn.ldf}[polyglossia: module for mn (Mongolian)] @@ -22548,7 +22325,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mongolian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-mongolian.ldf}[polyglossia: module for Mongolian] @@ -22787,7 +22564,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-mr.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-mr.ldf}[polyglossia: module for mr (Marathi)] @@ -22804,7 +22581,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-naustrian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-naustrian.ldf}[polyglossia: module for Austrian German (current spelling)] @@ -22821,7 +22598,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nb.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-nb.ldf}[polyglossia: module for nb (Norwegian)] @@ -22838,7 +22615,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-newzealand.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-newzealand.ldf}[polyglossia: module for Newzealand English] @@ -22855,7 +22632,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ngerman.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ngerman.ldf}[polyglossia: module for German (current spelling)] @@ -22872,7 +22649,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nko.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-nko.ldf}[Polyglossia: module for N’Ko] \PolyglossiaSetup{nko}{% @@ -22970,7 +22747,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-norsk.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-norsk.ldf}[polyglossia: module for Norwegian (Bokmal)] @@ -22988,7 +22765,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-norwegian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-norwegian.ldf}[polyglossia: module for Norwegian] \PolyglossiaSetup{norwegian}{ @@ -23115,7 +22892,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nswissgerman.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-nswissgerman.ldf}[polyglossia: module for Swiss German (current spelling)] @@ -23132,7 +22909,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-nynorsk.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-nynorsk.ldf}[polyglossia: module for Norwegian (Nynorsk)] @@ -23150,7 +22927,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-occitan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % %% %% This is file `gloss-occitan.ldf', @@ -23325,13 +23102,190 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % \end{macrocode} % \iffalse % +%<*gloss-odia.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-odia.ldf} +% \begin{macrocode} +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) +% +% Translations provided by ଅଶୋକ ଦାସ୍ and ଅଭିଷେକ ଜେନା +% TODO implement Odia calendar + +\ProvidesFile{gloss-odia.ldf}[polyglossia: module for Odia] + +\RequirePackage{devanagaridigits} +\RequirePackage{odiadigits} + +\PolyglossiaSetup{odia}{ + bcp47=or, + bcp47-language=or, + bcp47-script=Orya, + script=Odia, + scripttag=odia, + langtag=ODI, + hyphennames={odia}, + hyphenmins={2,2},%CHECK + fontsetup=true, + localnumeral=odianumerals + %TODO nouppercase=true, +} + +% BCP-47 compliant aliases +\setlanguagealias*{odia}{or} + + +%Adapted from gloss-bengali.ldf + +\newif\ifodia@devanagari@numerals +\newif\ifodia@odia@numerals +\define@choicekey*+{odia}{numerals}[\xpg@val\xpg@nr]{Devanagari,Odia,Western}[Devanagari]{% + \ifcase\xpg@nr\relax + % Devanagari: + \odia@odia@numeralsfalse% + \odia@devanagari@numeralstrue% + \SetLanguageKeys{odia}{bcp47=or,bcp47-language=or,bcp47-extension-u=nu-deva}% + \or + % Odia: + \odia@odia@numeralstrue% + \odia@devanagari@numeralsfalse% + \or + % Western: + \odia@odia@numeralsfalse% + \odia@devanagari@numeralsfalse% + \SetLanguageKeys{odia}{bcp47=or,bcp47-language=or,bcp47-extension-u=nu-latn}% + \fi + \xpg@info{Option: Odia, numerals=\xpg@val}% +}{\xpg@warning{Unknown Odia numeral `#1'}} + +\def\extras@odia{} +\def\noextras@odia{} + +\define@boolkey{odia}[odia@]{changecounternumbering}[true]{} + +% Register default options +\xpg@initialize@gloss@options{odia}{changecounternumbering=false,numerals=Devanagari} + +\def\captionsodia{% + \def\refname{ସନ୍ଦର୍ଭ}% + \def\abstractname{ସାରାଂଶ}% + \def\bibname{ସୂଚନା}% + \def\prefacename{ପ୍ରାରମ୍ଭ}% + \def\chaptername{ଅଧ୍ୟାୟ}% + \def\appendixname{ପରିଶିଷ୍ଟ}% + \def\contentsname{ସୁଚୀ ପତ୍ର}% + \def\listfigurename{ପ୍ରତିଛବି ତାଲିକା}% + \def\listtablename{ଟେବୁଲ ତାଲିକା}% + \def\indexname{ସୂଚକାଙ୍କ}% + \def\figurename{ପ୍ରତିଛବି}% + \def\tablename{ଟେବୁଲ୍}% + \def\partname{ବିଭାଗ}% + \def\pagename{ପୃଷ୍ଠା}% + \def\seename{ଦେଖନ୍ତୁ}% + \def\alsoname{ଅଧିକ ଦେଖନ୍ତୁ}% + \def\enclname{ସଂଲଗ୍ନ}% + \def\ccname{କପି କରନ୍ତୁ}% + \def\headtoname{ପ୍ରତି}% + \def\proofname{ପ୍ରମାଣ}% + \def\glossaryname{ଶବ୍ଦର ଶବ୍ଦକୋଷ}% +} +\def\dateodia{% + \def\odiamonth{% + \ifcase\month\or + ଜାନୁଆରୀ\or + ଫେବୃଆରୀ\or + ମାର୍ଚ୍ଚ\or + ଏପ୍ରିଲ୍\or + ମେ\or + ଜୁନ୍\or + ଜୁଲାଇ\or + ଅଗଷ୍ଟ\or + ସେପ୍ଟେମ୍ବର\or + ଅକ୍ଟୋବର\or + ନଭେମ୍ବର\or + ଡିସେମ୍ବର\fi}% + \def\today{\odianumber\day\space\odiamonth\space\odianumber\year}% +} + +\newcommand{\odianumerals}[2]{\odianumber{#2}} + +\def\odianumber#1{% + \ifodia@devanagari@numerals + \devanagaridigits{\number#1}% + \else + \ifodia@odia@numerals + \odiadigits{\number#1}% + \else % Assumed Western + \number#1% + \fi + \fi% +} + +\def\odia@globalnumbers{% + \ifodia@changecounternumbering + \let\@arabic\odianumber% + \renewcommand\thefootnote{\localnumeral*{footnote}}% + \fi +} + +%Adapted from gloss-marathi.ldf + +\def\odia@akshar#1{\ifcase#1\or ଅ\or ଆ\or ଇ\or ଈ\or ଉ\or ଊ\or ଋ\or ଏ\or ଐ\or ଓ\or ଔ\else\@ctrerr\fi} + +\def\odia@alph#1{% + \ifcase#1\or କ\or ଖ\or ଗ\or ଘ\or ଙ\or ଚ\or ଛ\or ଜ\or ଝ\or ଞ\or ଟ\or ଠ\or ଡ\or ଢ\or ଣ\or ତ\or ଥ\or ଦ% + \or ଧ\or ନ\or ପ\or ଫ\or ବ\or ଭ\or ମ\or ଯ\or ର\or ଲ\or ଳ\or ଶ\or ସ\or ଷ\or ହ\or କ୍ଷ \else\@ctrerr% + \fi% +} + +\def\odia@numbers{% + \let\@alph\odia@alph + \let\@Alph\devanagari@letter + \let\@roman\odia@akshar + \let\@Roman\devanagari@letter +} + + +% Store original definition +\let\xpg@save@arabic\@arabic + +\def\noodia@globalnumbers{% + \let\@arabic\xpg@save@arabic% +} + + + +\def\blockextras@odia{\extras@odia} +\def\inlineextras@odia{\extras@odia} + +% \end{macrocode} +% \iffalse +% +%<*gloss-or.ldf> +% \fi +% \clearpage +% +% \subsection{gloss-or.ldf} +% \begin{macrocode} +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) +% +\ProvidesFile{gloss-odia.ldf}[polyglossia: module for or (Odia)] + +% We provide this as a bcp47-compliant alias + +\xpg@load@master@language{odia} + +% \end{macrocode} +% \iffalse +% %<*gloss-pa.ldf> % \fi % \clearpage % % \subsection{gloss-pa.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-pa.ldf}[polyglossia: module for pa (Punjabi)] @@ -23348,7 +23302,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-persian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-persian.ldf}[polyglossia: module for Persian] @@ -23457,7 +23411,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages \if@western@numerals \number#1% \else - \xpg@if@char@available{06F0}% + \IfCharIsAvailableTF{06F0}% {\@ensure@LTR{\farsidigits{\number#1}}}% {\@ensure@LTR{\arabicdigits{\number#1}}}% \fi @@ -23589,7 +23543,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.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-piedmontese.ldf}[2013/02/12 v1.0 polyglossia: module for Piedmontese] \makeatletter @@ -23719,7 +23673,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-polish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-polish.ldf}[polyglossia: module for Polish] @@ -23978,7 +23932,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-polutonikogreek.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-polutonikogreek.ldf}[polyglossia: module for polytonic Greek] @@ -23995,7 +23949,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-portuges.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-portuges.ldf}[polyglossia: module for Portuguese] @@ -24015,7 +23969,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-portuguese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-portuguese.ldf}[polyglossia: module for Portuguese] @@ -24246,7 +24200,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-punjabi.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % % UTF-8 strings kindly provided by % Arvinder Singh Kang, <17-11-2022> @@ -24354,7 +24308,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-romanian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-romanian.ldf}[polyglossia: module for Romanian] @@ -24413,7 +24367,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-romansh.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-romansh.ldf}[polyglossia: module for Romansh] \makeatletter @@ -24471,7 +24425,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-russian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-russian.ldf}[polyglossia: module for Russian] @@ -24870,7 +24824,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-sami.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-sami.ldf}[polyglossia: module for Sami] @@ -24974,7 +24928,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-samin.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-samin.ldf}[polyglossia: module for Northern Sami] @@ -24992,7 +24946,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-sanskrit.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-sanskrit.ldf}[polyglossia: module for Sanskrit] @@ -25151,7 +25105,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-scottish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-scottish.ldf}[polyglossia: module for Scottish Gaelic] @@ -25169,7 +25123,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-serbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-serbian.ldf}[polyglossia: module for Serbian] %TODO split into gloss-serbiancyr.ldf and gloss-serbianlat.ldf @@ -25592,7 +25546,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-serbianc.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-serbianc.ldf}[polyglossia: module for Serbian (cyrillic)] @@ -25609,7 +25563,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-slovak.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-slovak.ldf}[polyglossia: module for Slovak] @@ -25876,7 +25830,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-slovene.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-slovene.ldf}[polyglossia: module for Slovenian] @@ -25893,7 +25847,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-slovenian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-slovenian.ldf}[polyglossia: module for Slovenian] @@ -25985,7 +25939,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-sorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-sorbian.ldf}[polyglossia: module for Sorbian] @@ -26176,7 +26130,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-spanish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-spanish.ldf}[polyglossia: module for Spanish] @@ -26416,7 +26370,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-spanishmx.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-spanishmx.ldf}[polyglossia: module for Mexican Spanish] @@ -26433,7 +26387,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-swedish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-swedish.ldf}[polyglossia: module for Swedish] @@ -26498,7 +26452,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-swissgerman.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-swissgerman.ldf}[polyglossia: module for Swiss German (old spelling)] @@ -26515,7 +26469,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-syriac.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-syriac.ldf}[polyglossia: module for Syriac] @@ -26650,7 +26604,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages %%% we test for the presence of one of ١٢٣٤٥٦٧٨٩٠ in the Syriac font, %%% else we try \arabicfont if defined (and give a warning), %%% else we fall back to the Western numerals. - \xpg@if@char@available{0661}% + \IfCharIsAvailableTF{0661}% {\@ensure@LTR{\protect\arabicdigits{\number#1}}}% {\@ensure@LTR{\arabicdigits{\number#1}} \ifcsdef{arabicfont}% @@ -26788,7 +26742,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-tamil.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-tamil.ldf}[polyglossia: module for Tamil] @@ -26858,7 +26812,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-telugu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-telugu.ldf}[polyglossia: module for Telugu] @@ -26931,7 +26885,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-thai.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-thai.ldf}[polyglossia: module for Thai] %% This is partly based on thai-latex for Babel: @@ -27089,7 +27043,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-tibetan.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-tibetan.ldf}[polyglossia: module for Tibetan] %% Copyright 2013 Elie Roux @@ -27315,7 +27269,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-turkish.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-turkish.ldf}[polyglossia: module for Turkish] \RequirePackage{hijrical} @@ -27433,7 +27387,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-turkmen.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-turkmen.ldf}[polyglossia: module for Turkmen] %% Translations provided by Nazar Annagurban @@ -27491,7 +27445,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ug.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ug.ldf}[polyglossia: module for ug (Uyghur)] % BCP 47 tag for Uyghur @@ -27507,7 +27461,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-ukrainian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-ukrainian.ldf}[polyglossia: module for Ukrainian] % Strings taken from Babel @@ -27806,7 +27760,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-uppersorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-uppersorbian.ldf}[polyglossia: module for Upper Sorbian] @@ -27823,7 +27777,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-urdu.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % %%% Adapted from a file contributed by Kamal Abdali \ProvidesFile{gloss-urdu.ldf}[polyglossia: module for Urdu] @@ -28073,7 +28027,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-usorbian.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-usorbian.ldf}[polyglossia: module for Upper Sorbian] @@ -28091,7 +28045,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-uyghur.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-uyghur.ldf}[polyglossia: module for Uyghur] %% Translations provided by Osman Tursun (Github Account: neouyghur) @@ -28532,7 +28486,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-vietnamese.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-vietnamese.ldf}[polyglossia: module for Vietnamese] %% Strings contributed by Daniel Owens < dhowens . pmbx . net > @@ -28591,7 +28545,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-welsh.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-welsh.ldf}[polyglossia: module for Welsh] @@ -28691,7 +28645,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-zh-CN.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-zh-CN.ldf}[polyglossia: module for zh-CN (Chinese)] @@ -28708,7 +28662,7 @@ polyglossia.newloader_loaded_languages = newloader_loaded_languages % % \subsection{gloss-zh-TW.ldf} % \begin{macrocode} -% Language definition file (part of polyglossia v1.65 -- 2023/10/01) +% Language definition file (part of polyglossia v1.66 -- 2023/12/11) % \ProvidesFile{gloss-zh-TW.ldf}[polyglossia: module for zh-TW (Chinese)] @@ -28844,6 +28798,31 @@ U+0039 <> U+0A6F ; % \end{macrocode} % \iffalse % +%<*odiadigits.map> +% \fi +% \clearpage +% +% \subsection{odiadigits.map} +% \begin{macrocode} +; FC ... +LHSName "Digits" +RHSName "OdiaDigits" + +pass(Unicode) +U+0030 <> U+0B66 ; +U+0031 <> U+0B67 ; +U+0032 <> U+0B68 ; +U+0033 <> U+0B69 ; +U+0034 <> U+0B6A ; +U+0035 <> U+0B6B ; +U+0036 <> U+0B6C ; +U+0037 <> U+0B6D ; +U+0038 <> U+0B6E ; +U+0039 <> U+0B6F ; + +% \end{macrocode} +% \iffalse +% %<*thaidigits.map> % \fi % \clearpage @@ -28877,7 +28856,7 @@ U+0039 <> U+0E59 ; % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia-punct') @@ -28944,7 +28923,7 @@ polyglossia.deactivate_french_punct = deactivate_french_punct % \begin{macrocode} -- -- polyglossia-korean.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- local glyph_id = node.id"glyph" @@ -29562,7 +29541,7 @@ prepend_to_callback ("hpack_filter", % \begin{macrocode} -- -- polyglossia-latin.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia-punct') @@ -29617,7 +29596,7 @@ polyglossia.deactivate_latin_punct = deactivate_latin_punct % \begin{macrocode} -- -- polyglossia-punct.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia') -- just in case... @@ -29985,7 +29964,7 @@ polyglossia.clear_spaced_characters = clear_spaced_characters % \begin{macrocode} -- -- polyglossia-sanskrit.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia-punct') @@ -30035,7 +30014,7 @@ polyglossia.deactivate_sanskrit_punct = deactivate_sanskrit_punct % \begin{macrocode} -- -- polyglossia-tibt.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- require('polyglossia') -- just in case... @@ -30138,7 +30117,7 @@ polyglossia.desactivate_tibt_eol = desactivate % \begin{macrocode} -- -- polyglossia.lua --- part of polyglossia v1.65 -- 2023/10/01 +-- part of polyglossia v1.66 -- 2023/12/11 -- local module_name = "polyglossia" @@ -30172,34 +30151,6 @@ local function set_default_language(lang, id) polyglossia.default_language = lang end -local byte = utf8.codepoint -- use standard module of lua 5.3 - -local check_char - -if luaotfload and luaotfload.aux and luaotfload.aux.font_has_glyph then - local font_has_glyph = luaotfload.aux.font_has_glyph - function check_char(chr) - local codepoint = tonumber(chr) or byte(chr) - if font_has_glyph(font.current(), codepoint) then - tex.sprint('1') - else - tex.sprint('0') - end - end -else - function check_char(chr) -- always in current font - local fontid = font.current() - local fontdata = font.getfont(fontid) or font.fonts[fontid] - local chardata = fontdata.characters - local codepoint = tonumber(chr) or byte(chr) - if chardata and chardata[codepoint] then - tex.sprint('1') - else - tex.sprint('0') - end - end -end - local function load_tibt_eol() require('polyglossia-tibt') end @@ -30319,7 +30270,6 @@ end polyglossia.select_language = select_language polyglossia.set_default_language = set_default_language -polyglossia.check_char = check_char polyglossia.load_tibt_eol = load_tibt_eol polyglossia.newloader = newloader polyglossia.newloader_loaded_languages = newloader_loaded_languages -- cgit v1.2.3