texlive[63369] Master/texmf-dist: babel (22may22)

commits+karl at tug.org commits+karl at tug.org
Sun May 22 22:24:01 CEST 2022


Revision: 63369
          http://tug.org/svn/texlive?view=revision&revision=63369
Author:   karl
Date:     2022-05-22 22:24:00 +0200 (Sun, 22 May 2022)
Log Message:
-----------
babel (22may22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/babel/README.md
    trunk/Master/texmf-dist/doc/latex/babel/babel.pdf
    trunk/Master/texmf-dist/source/latex/babel/babel.dtx
    trunk/Master/texmf-dist/source/latex/babel/babel.ins
    trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
    trunk/Master/texmf-dist/source/latex/babel/locale.zip
    trunk/Master/texmf-dist/tex/generic/babel/babel.def
    trunk/Master/texmf-dist/tex/generic/babel/babel.sty
    trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-DZ.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-MA.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SY.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-AU.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-NZ.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CH.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-classic.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-ecclesia.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-medieval.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/lt/babel-lt.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini
    trunk/Master/texmf-dist/tex/generic/babel/luababel.def
    trunk/Master/texmf-dist/tex/generic/babel/nil.ldf

Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md	2022-05-22 20:24:00 UTC (rev 63369)
@@ -1,4 +1,4 @@
-## Babel 3.74
+## Babel 3.75
 
 This package manages culturally-determined typographical (and other)
 rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@
 
 The latest stable version is available on <https://ctan.org/pkg/babel>.
 
-Changes in version 3.74 are described in:
+Changes in version 3.75 are described in:
 
-https://latex3.github.io/babel/news/whats-new-in-babel-3.74.html
+https://latex3.github.io/babel/news/whats-new-in-babel-3.75.html
 
 Apart from the manual, you can find information on some aspects of babel at:
 
@@ -46,11 +46,20 @@
 
 ### Summary of latest changes
 ```
-3.74   2022-04-30
+3.75   2022-05-22
+       * `\BabelEnsureInfo` is active by default, to make sure the BCP 47
+         codes are always available, as they may be required by the
+         LaTeX kernel.
+       * `\localeinfo*` is like `\localeinfo` but expands to empty if
+         unknown (fully expandable).
+       * The key `character`/`ranges` in `ini` files now sets the
+         corresponding Unicode script ranges (as used by `onchar`).
        * Fixes:
-         - Error in transforms if | is active.
-         - Minor fixes in Khemer, Turkmen, Marathi.
-       * RTL math improved (with luatex).
+         - Misplaced rule un diagbox (#43)
+         - Caption names of 'chapter' and 'part' swapped in Chinese (#180).
+         - Captions after numbers in Lithuanian.
+         - `hyphenrules` in the `ini` files for `en-AU` and
+           `en-NZ` where set to `english` instead of `ukenglish`.
 ```
 
 ### Previous changes

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

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2022-05-22 20:24:00 UTC (rev 63369)
@@ -32,7 +32,7 @@
 %
 % \iffalse
 %<*filedriver>
-\ProvidesFile{babel.dtx}[2022/04/30 v3.74 The Babel package]
+\ProvidesFile{babel.dtx}[2022/05/22 v3.75 The Babel package]
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
 \usepackage{fontspec}
@@ -184,11 +184,7 @@
    Poppelier, Piet van Oostrum and many others have been used.
    Bernd Raichle has provided many helpful suggestions.}}
 \author{Johannes Braams\\
-        Kersengaarde 33\\
-        2723 BP Zoetermeer\\
-        The Netherlands\\
-        \normalsize From version 3.9 on, Javier Bezos\\
-        \normalsize \texttt{www.texnia.com}}
+        Javier Bezos}
 
 \date{Typeset \today}
 \begin{titlepage}
@@ -213,12 +209,12 @@
 
 \LARGE
 \vspace{1.2cm}
+Javier Bezos\\[-.5ex]
+{\large Current maintainer}
+
+\vspace{.3cm}
 Johannes L. Braams\\[-.5ex]
 {\large Original author}
-
-\vspace{.3cm}
-Javier Bezos\\[-.5ex]
-{\large Current maintainer}
 \end{minipage}
 &\cellcolor[rgb]{.92, .86, .73}
 \vspace{2cm}
@@ -2890,7 +2886,8 @@
 the actions to take if the result of the test is true or false
 respectively.
 
-\Describe{\localeinfo}{\marg{field}}
+\Describe{\localeinfo}{%
+ \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}{\marg{field}}}
 
 \New{3.38} If an |ini| file has been loaded for the current language,
 you may access the information stored in it. This macro is fully
@@ -2902,15 +2899,30 @@
 %%% activated because the bug in \languagename is far from trivial.
 \item[|tag.ini|] is the tag of the |ini| file (the way this
   file is identified in its name).
-\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below).
+\item[|tag.bcp47|] is the full BCP 47 tag (see the warning below). This
+  is the value to be used for the ‘real' provided tag (\babel{} may
+  fill other fields if they are considered necessary).
 \item[|language.tag.bcp47|] is the BCP 47 language tag.
 \item[|tag.opentype|] is the tag used by OpenType (usually, but not
   always, the same as BCP 47).
 \item[|script.name|], as provided by the Unicode CLDR.
 \item[|script.tag.bcp47|] is the BCP 47 tag of the script
-  used by this locale.
+  used by this locale. This is a required field for the fonts to be
+  correctly set up, and therefore it should be always defined.
 \item[|script.tag.opentype|] is the tag used by OpenType (usually,
   but not always, the same as BCP 47).
+\item[|region.tag.bcp47|] is the BCP 47 tag of the region or territory.
+  Defined only if the locale loaded actually contains it (eg, |es-MX|
+  does, but |es| doesn’t), which is how locales behave in the CLDR.
+  \New{3.75}
+\item[|variant.tag.bcp47|] is the BCP 47 tag of the variant (in the BCP 47
+  sense, like |1901| for German). \New{3.75}
+\item[|extension.|\m{s}|.tag.bcp47|] is the BCP 47 value of the
+  extension whose singleton is \m{s} (currently the recognized
+  singletons are |x|, |t| and |u|). The internal syntax can be somewhat
+  complex, and this feature is still somewhat tentative. An example is
+  \textsf{classiclatin} which sets |extension.x.tag.bcp47| to classic.
+  \New{3.75}
 \end{description}
 
 \begin{warning}
@@ -2919,6 +2931,18 @@
   counterintuitive.
 \end{warning}
 
+\New{3.75} Sometimes, it comes in handy to be able to use |\localeinfo|
+in an expandable way even if something went wrong (for example, the
+locale currently active is undefined). For these cases, |localeinfo*|
+just returns an empty string instead of raising an error. Bear in mind
+that \babel{}, following the CLDR, may leave the region unset, which
+means |\getlanguageproperty*|, described below, is the preferred
+command, so that the existence of a field can be checked before. This
+also means building a string with the language and the region with
+|\localeinfo*{language.tab.bcp47}|\allowbreak |-|\allowbreak
+|\localeinfo*{region.tab.bcp47}| is not usually a good idea (because of
+the hyphen).
+
 \Describe{\getlocaleproperty}{%
   \colorbox{thegrey}{\ttfamily\hskip-.2em*\hskip-.2em}%
   \marg{macro}\marg{locale}\marg{property}}
@@ -2955,12 +2979,15 @@
 the current item, so that |\LocaleForEach{\message{ **#1** }}| just
 shows the loaded |ini|’s. 
 
-\Describe{\BabelEnsureInfo}{}
-|ini| files are loaded with |\babelprovide| and also when languages are
-selected if there is a |\babelfont| or they have not been explicitly
-declared. To ensure the |ini| files are loaded (and therefore the
-corresponding data) even if these two conditions are not met, write
-|\BabelEnsureInfo| in the preamble.
+\Describe{ensureinfo=off}{}
+\New{3.75} Previously, |ini| files are loaded only with |\babelprovide|
+and also when languages are selected if there is a |\babelfont| or they
+have not been explicitly declared. Now the |ini| files are loaded (and
+therefore the corresponding data) even if these two conditions are not
+met (in previous versions you had to enable it with |\BabelEnsureInfo|
+in the preamble). Because of the way this feature works, problems are
+very unlikely, but there is switch as a package option to turn the new
+behavior off (|ensureinfo=off|).
 
 \subsection{Hyphenation and line breaking}
 
@@ -5116,8 +5143,8 @@
 % \section{Tools}
 %
 %    \begin{macrocode}
-%<<version=3.74>>
-%<<date=2022/04/30>>
+%<<version=3.75>>
+%<<date=2022/05/22>>
 %    \end{macrocode}
 %
 % \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -9748,6 +9775,11 @@
   \ifx\bbl at KVP@language\@nil\else
     \bbl at csarg\edef{lname@#2}{\bbl at KVP@language}%
   \fi
+  \ifcase\bbl at engine\or
+    \bbl at ifunset{bbl at chrng@\languagename}{}%
+      {\directlua{
+         Babel.set_chranges_b('\bbl at cl{sbcp}', '\bbl at cl{chrng}') }}%
+  \fi
    % == onchar ==
   \ifx\bbl at KVP@onchar\@nil\else
     \bbl at luahyphenate
@@ -10251,6 +10283,10 @@
     \ifin@
       \bbl at ini@calendar{##1}%
     \fi
+    \in@{=identification/extension.}{=##1/##2}%
+    \ifin@
+      \bbl at ini@extension{##2}%
+    \fi
     \bbl at ifunset{bbl at inikv@##1}{}%
       {\csname bbl at inikv@##1\endcsname{##2}{##3}}}%
   \bbl at inidata}
@@ -10360,7 +10396,25 @@
        Reported }}}
 %
 \let\bbl at release@transforms\@empty
+%    \end{macrocode}
 %
+% BCP 47 extensions are separated by a single letter (eg,
+% |latin-x-medieval|. The following macro handles this special case to
+% create correctly the correspondig info.
+%
+%    \begin{macrocode}
+\def\bbl at ini@extension#1{%
+  \def\bbl at tempa{#1}%
+  \bbl at replace\bbl at tempa{extension.}{}%
+  \bbl at replace\bbl at tempa{.tag.bcp47}{}%
+  \bbl at ifunset{bbl at info@#1}%
+    {\bbl at csarg\xdef{info@#1}{ext/\bbl at tempa}%
+     \bbl at exp{%   
+       \\\g at addto@macro\\\bbl at moreinfo{%
+         \\\bbl at exportkey{ext/\bbl at tempa}{identification.#1}{}}}}%
+    {}}
+\let\bbl at moreinfo\@empty
+%
 \def\bbl at ini@exports#1{%
   % Identification always exported
   \bbl at iniwarning{}%
@@ -10383,6 +10437,9 @@
     {\csname bbl at esname@\languagename\endcsname}}%
   \bbl at exportkey{sbcp}{identification.script.tag.bcp47}{}%
   \bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}%
+  \bbl at exportkey{rbcp}{identification.region.tag.bcp47}{}%
+  \bbl at exportkey{vbcp}{identification.variant.tag.bcp47}{}%
+  \bbl at moreinfo
   % Also maps bcp47 -> languagename
   \ifbbl at bcptoname
     \bbl at csarg\xdef{bcp at map@\bbl at cl{tbcp}}{\languagename}%
@@ -10951,13 +11008,21 @@
 % following macro just exposes it with a user command.
 %
 %    \begin{macrocode}
+\def\bbl at localeinfo#1#2{%
+  \bbl at ifunset{bbl at info@#2}{#1}%
+    {\bbl at ifunset{bbl@\csname bbl at info@#2\endcsname @\languagename}{#1}%
+      {\bbl at cs{\csname bbl at info@#2\endcsname @\languagename}}}}
 \newcommand\localeinfo[1]{%
-  \bbl at ifunset{bbl@\csname bbl at info@#1\endcsname @\languagename}%
-    {\bbl at error{I've found no info for the current locale.\\%
-                The corresponding ini file has not been loaded\\%
-                Perhaps it doesn't exist}%
-               {See the manual for details.}}%
-    {\bbl at cs{\csname bbl at info@#1\endcsname @\languagename}}}
+  \ifx*#1\@empty   % TODO. A bit hackish to make it expandable.
+    \bbl at afterelse\bbl at localeinfo{}%
+  \else
+    \bbl at localeinfo
+      {\bbl at error{I've found no info for the current locale.\\%
+                  The corresponding ini file has not been loaded\\%
+                  Perhaps it doesn't exist}%
+                 {See the manual for details.}}%
+      {#1}%
+  \fi}
 % \@namedef{bbl at info@name.locale}{lcname}
 \@namedef{bbl at info@tag.ini}{lini}
 \@namedef{bbl at info@name.english}{elname}
@@ -10968,7 +11033,22 @@
 \@namedef{bbl at info@script.name}{esname}
 \@namedef{bbl at info@script.name.opentype}{sname}
 \@namedef{bbl at info@script.tag.bcp47}{sbcp} 
-\@namedef{bbl at info@script.tag.opentype}{sotf} 
+\@namedef{bbl at info@script.tag.opentype}{sotf}
+\@namedef{bbl at info@region.tag.bcp47}{rbcp}
+\@namedef{bbl at info@variant.tag.bcp47}{vbcp}
+% Extensions are dealt with in a special way
+% Now, an internal \LaTeX{} macro:
+\providecommand\BCPdata[1]{\localeinfo*{#1.tag.bcp47}}
+%    \end{macrocode}
+%
+% With version 3.75 |\BabelEnsureInfo| is executed always, but there is
+% an option to disable it.
+% 
+%    \begin{macrocode} 
+%<<*More package options>>
+\DeclareOption{ensureinfo=off}{}
+%<</More package options>>
+%
 \let\bbl at ensureinfo\@gobble
 \newcommand\BabelEnsureInfo{%
   \ifx\InputIfFileExists\@undefined\else
@@ -10978,12 +11058,15 @@
   \bbl at foreach\bbl at loaded{{%
     \def\languagename{##1}%
     \bbl at ensureinfo{##1}}}}
+\@ifpackagewith{babel}{ensureinfo=off}{}%
+  {\AtEndOfPackage{% Test for plain.
+    \ifx\@undefined\bbl at loaded\else\BabelEnsureInfo\fi}}
 %    \end{macrocode}
 %
 % More general, but non-expandable, is |\getlocaleproperty|. To inspect
 % every possible loaded |ini|, we define |\LocaleForEach|, where
 % |\bbl at ini@loaded| is a comma-separated list of locales, built by
-% |\bbl at read@ini|. 
+% |\bbl at read@ini|.
 %
 %    \begin{macrocode}   
 \newcommand\getlocaleproperty{%
@@ -11791,11 +11874,7 @@
 % latter solution will be eventually removed).
 %
 %    \begin{macrocode}
-\bbl at ifformatlater{2021-06-01}%
-  {\def\bbl at patchfont#1{\AddToHook{selectfont}{#1}}}
-  {\def\bbl at patchfont#1{%
-     \expandafter\bbl at add\csname selectfont \endcsname{#1}%
-     \expandafter\bbl at toglobal\csname selectfont \endcsname}}
+\def\bbl at patchfont#1{\AddToHook{selectfont}{#1}}
 %    \end{macrocode}
 %
 % \end{macro}
@@ -13524,6 +13603,15 @@
     end
     return has_bidi
   end
+  function Babel.set_chranges_b (script, chrng) 
+    if chrng == '' then return end
+    texio.write('Replacing ' .. script .. ' script ranges')
+    Babel.script_blocks[script] = {}
+    for s, e in string.gmatch(chrng..' ', '(.-)%.%.(.-)%s') do
+      table.insert(
+        Babel.script_blocks[script], {tonumber(s,16), tonumber(e,16)})
+    end
+  end
 }
 \endgroup
 \ifx\newattribute\@undefined\else
@@ -14767,22 +14855,21 @@
        % \(text|par)dir required in pgf:
        \def\bbl at pictresetdir{\bodydir TRT\pardir TRT\textdir TRT\relax}%
      \fi}%
-   \ifx\AddToHook\@undefined\else
-     \AddToHook{env/picture/begin}{\bbl at pictsetdir\tw@}%
-     \directlua{
-       Babel.get_picture_dir = true
-       Babel.picture_has_bidi = 0
-       %
-       function Babel.picture_dir (head)
-         if not Babel.get_picture_dir then return head end
-         if Babel.hlist_has_bidi(head) then 
-           Babel.picture_has_bidi = 1
-         end
-         return head
+   \AddToHook{env/picture/begin}{\bbl at pictsetdir\tw@}%
+   \directlua{
+     Babel.get_picture_dir = true
+     Babel.picture_has_bidi = 0
+     %
+     function Babel.picture_dir (head)
+       if not Babel.get_picture_dir then return head end
+       if Babel.hlist_has_bidi(head) then 
+         Babel.picture_has_bidi = 1
        end
-       luatexbase.add_to_callback("hpack_filter", Babel.picture_dir,
-         "Babel.picture_dir")
-     }%
+       return head
+     end
+     luatexbase.add_to_callback("hpack_filter", Babel.picture_dir,
+       "Babel.picture_dir")
+   }%
    \AtBeginDocument{%
      \long\def\put(#1,#2)#3{%
        \@killglue 
@@ -14797,7 +14884,7 @@
          \setbox\z@\hb at xt@\z@{%
            \@defaultunitsset\@tempdimc{#1}\unitlength
            \kern\@tempdimc
-           #3\hss}%
+           #3\hss}% TODO: #3 executed twice (below). That’s bad.
          \edef\bbl at tempc{\directlua{tex.print(Babel.picture_has_bidi)}}%
        \fi
        % Do:
@@ -14807,35 +14894,26 @@
          \kern\@tempdimc
          {\ifnum\bbl at tempc>\z@\bbl at pictresetdir\fi#3}\hss}% 
        \ignorespaces}%
-       \MakeRobust\put}%
-   \fi
+     \MakeRobust\put}%
    \AtBeginDocument
-     {\ifx\pgfpicture\@undefined\else % TODO. Allow deactivate?
-        \ifx\AddToHook\@undefined
-          \bbl at sreplace\pgfpicture{\pgfpicturetrue}%
-            {\bbl at pictsetdir\z@\pgfpicturetrue}%
-        \else
-          \AddToHook{env/pgfpicture/begin}{\bbl at pictsetdir\@ne}%
-        \fi
+     {\AddToHook{cmd/diagbox at pict/before}{\let\bbl at pictsetdir\@gobble}%
+      \ifx\pgfpicture\@undefined\else % TODO. Allow deactivate?
+        \AddToHook{env/pgfpicture/begin}{\bbl at pictsetdir\@ne}%
         \bbl at add\pgfinterruptpicture{\bbl at pictresetdir}%
         \bbl at add\pgfsys at beginpicture{\bbl at pictsetdir\z@}%
       \fi
-      \ifx\tikzpicture\@undefined\else     
-        \ifx\AddToHook\@undefined\else
-          \AddToHook{env/tikzpicture/begin}{\bbl at pictsetdir\z@}%
-        \fi
+      \ifx\tikzpicture\@undefined\else    
+        \AddToHook{env/tikzpicture/begin}{\bbl at pictsetdir\z@}%
         \bbl at add\tikz at atbegin@node{\bbl at pictresetdir}%
         \bbl at sreplace\tikz{\begingroup}{\begingroup\bbl at pictsetdir\tw@}%
       \fi
-      \ifx\AddToHook\@undefined\else
-        \ifx\tcolorbox\@undefined\else
-          \AddToHook{env/tcolorbox/begin}{\bbl at pictsetdir\@ne}%
-          \bbl at sreplace\tcb at savebox
-            {\ignorespaces}{\ignorespaces\bbl at pictresetdir}%
-          \ifx\tikzpicture at tcb@hooked\@undefined\else
-            \bbl at sreplace\tikzpicture at tcb@hooked{\noexpand\tikzpicture}%
-              {\textdir TLT\noexpand\tikzpicture}%
-          \fi
+      \ifx\tcolorbox\@undefined\else
+        \AddToHook{env/tcolorbox/begin}{\bbl at pictsetdir\@ne}%
+        \bbl at sreplace\tcb at savebox
+          {\ignorespaces}{\ignorespaces\bbl at pictresetdir}%
+        \ifx\tikzpicture at tcb@hooked\@undefined\else
+          \bbl at sreplace\tikzpicture at tcb@hooked{\noexpand\tikzpicture}%
+            {\textdir TLT\noexpand\tikzpicture}%
         \fi
       \fi
     }}
@@ -22564,6 +22642,39 @@
 % \end{macro}
 % \end{macro}
 %
+% There is no locale file for this pseudo-language, so the
+% corresponding fields are defined here.
+%
+%    \begin{macrocode}
+\def\bbl at inidata@nil{%
+  \bbl at elt{identification}{tag.ini}{und}%
+  \bbl at elt{identification}{load.level}{0}%
+  \bbl at elt{identification}{charset}{utf8}%
+  \bbl at elt{identification}{version}{1.0}%
+  \bbl at elt{identification}{date}{2022-05-16}%
+  \bbl at elt{identification}{name.local}{nil}%
+  \bbl at elt{identification}{name.english}{nil}%
+  \bbl at elt{identification}{name.babel}{nil}%
+  \bbl at elt{identification}{tag.bcp47}{und}%
+  \bbl at elt{identification}{language.tag.bcp47}{und}%
+  \bbl at elt{identification}{tag.opentype}{dflt}%
+  \bbl at elt{identification}{script.name}{Latin}%
+  \bbl at elt{identification}{script.tag.bcp47}{Latn}%
+  \bbl at elt{identification}{script.tag.opentype}{DFLT}%
+  \bbl at elt{identification}{level}{1}%
+  \bbl at elt{identification}{encodings}{}%
+  \bbl at elt{identification}{derivate}{no}}
+\@namedef{bbl at tbcp@nil}{und}
+\@namedef{bbl at lbcp@nil}{und}
+\@namedef{bbl at lotf@nil}{dflt}
+\@namedef{bbl at elname@nil}{nil}
+\@namedef{bbl at lname@nil}{nil}
+\@namedef{bbl at esname@nil}{Latin}
+\@namedef{bbl at sname@nil}{Latin}
+\@namedef{bbl at sbcp@nil}{Latn}
+\@namedef{bbl at sotf@nil}{Latn}
+%    \end{macrocode}
+%
 %    The macro |\ldf at finish| takes care of looking for a
 %    configuration file, setting the main language to be switched on
 %    at |\begin{document}| and resetting the category code of

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins	2022-05-22 20:24:00 UTC (rev 63369)
@@ -26,7 +26,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension .ins) which are part of the distribution.
 %%
-\def\filedate{2022/04/30}
+\def\filedate{2022/05/22}
 \def\batchfile{babel.ins}
 \input docstrip.tex
 

Modified: trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2022-05-22 20:24:00 UTC (rev 63369)
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2022/04/30 v3.74]
+\ProvidesFile{bbcompat.dtx}[2022/05/22 v3.75]
 %</dtx>
 %
 %% File 'bbcompat.dtx'

Modified: trunk/Master/texmf-dist/source/latex/babel/locale.zip
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def	2022-05-22 20:24:00 UTC (rev 63369)
@@ -40,7 +40,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{babel.def}[2022/04/30 3.74 Babel common definitions]
+\ProvidesFile{babel.def}[2022/05/22 3.75 Babel common definitions]
 \ifx\AtBeginDocument\@undefined  % TODO. change test.
   \def\@empty{}
 \def\loadlocalcfg#1{%
@@ -406,8 +406,8 @@
 \expandafter\newif\csname ifbbl at single\endcsname
 \chardef\bbl at bidimode\z@
 \fi
-\def\bbl at version{3.74}
-\def\bbl at date{2022/04/30}
+\def\bbl at version{3.75}
+\def\bbl at date{2022/05/22}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -2521,6 +2521,11 @@
   \ifx\bbl at KVP@language\@nil\else
     \bbl at csarg\edef{lname@#2}{\bbl at KVP@language}%
   \fi
+  \ifcase\bbl at engine\or
+    \bbl at ifunset{bbl at chrng@\languagename}{}%
+      {\directlua{
+         Babel.set_chranges_b('\bbl at cl{sbcp}', '\bbl at cl{chrng}') }}%
+  \fi
    % == onchar ==
   \ifx\bbl at KVP@onchar\@nil\else
     \bbl at luahyphenate
@@ -2976,6 +2981,10 @@
     \ifin@
       \bbl at ini@calendar{##1}%
     \fi
+    \in@{=identification/extension.}{=##1/##2}%
+    \ifin@
+      \bbl at ini@extension{##2}%
+    \fi
     \bbl at ifunset{bbl at inikv@##1}{}%
       {\csname bbl at inikv@##1\endcsname{##2}{##3}}}%
   \bbl at inidata}
@@ -3047,6 +3056,17 @@
        \bbl at cs{@kv at identification.warning#1}\\%
        Reported }}}
 \let\bbl at release@transforms\@empty
+\def\bbl at ini@extension#1{%
+  \def\bbl at tempa{#1}%
+  \bbl at replace\bbl at tempa{extension.}{}%
+  \bbl at replace\bbl at tempa{.tag.bcp47}{}%
+  \bbl at ifunset{bbl at info@#1}%
+    {\bbl at csarg\xdef{info@#1}{ext/\bbl at tempa}%
+     \bbl at exp{%
+       \\\g at addto@macro\\\bbl at moreinfo{%
+         \\\bbl at exportkey{ext/\bbl at tempa}{identification.#1}{}}}}%
+    {}}
+\let\bbl at moreinfo\@empty
 \def\bbl at ini@exports#1{%
   % Identification always exported
   \bbl at iniwarning{}%
@@ -3069,6 +3089,9 @@
     {\csname bbl at esname@\languagename\endcsname}}%
   \bbl at exportkey{sbcp}{identification.script.tag.bcp47}{}%
   \bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}%
+  \bbl at exportkey{rbcp}{identification.region.tag.bcp47}{}%
+  \bbl at exportkey{vbcp}{identification.variant.tag.bcp47}{}%
+  \bbl at moreinfo
   % Also maps bcp47 -> languagename
   \ifbbl at bcptoname
     \bbl at csarg\xdef{bcp at map@\bbl at cl{tbcp}}{\languagename}%
@@ -3518,13 +3541,21 @@
 \def\bbl at alphnum@invalid#1{%
   \bbl at error{Alphabetic numeral too large (#1)}%
     {Currently this is the limit.}}
+\def\bbl at localeinfo#1#2{%
+  \bbl at ifunset{bbl at info@#2}{#1}%
+    {\bbl at ifunset{bbl@\csname bbl at info@#2\endcsname @\languagename}{#1}%
+      {\bbl at cs{\csname bbl at info@#2\endcsname @\languagename}}}}
 \newcommand\localeinfo[1]{%
-  \bbl at ifunset{bbl@\csname bbl at info@#1\endcsname @\languagename}%
-    {\bbl at error{I've found no info for the current locale.\\%
-                The corresponding ini file has not been loaded\\%
-                Perhaps it doesn't exist}%
-               {See the manual for details.}}%
-    {\bbl at cs{\csname bbl at info@#1\endcsname @\languagename}}}
+  \ifx*#1\@empty   % TODO. A bit hackish to make it expandable.
+    \bbl at afterelse\bbl at localeinfo{}%
+  \else
+    \bbl at localeinfo
+      {\bbl at error{I've found no info for the current locale.\\%
+                  The corresponding ini file has not been loaded\\%
+                  Perhaps it doesn't exist}%
+                 {See the manual for details.}}%
+      {#1}%
+  \fi}
 \@namedef{bbl at info@tag.ini}{lini}
 \@namedef{bbl at info@name.english}{elname}
 \@namedef{bbl at info@name.opentype}{lname}
@@ -3535,6 +3566,9 @@
 \@namedef{bbl at info@script.name.opentype}{sname}
 \@namedef{bbl at info@script.tag.bcp47}{sbcp}
 \@namedef{bbl at info@script.tag.opentype}{sotf}
+\@namedef{bbl at info@region.tag.bcp47}{rbcp}
+\@namedef{bbl at info@variant.tag.bcp47}{vbcp}
+\providecommand\BCPdata[1]{\localeinfo*{#1.tag.bcp47}}
 \let\bbl at ensureinfo\@gobble
 \newcommand\BabelEnsureInfo{%
   \ifx\InputIfFileExists\@undefined\else
@@ -3544,6 +3578,9 @@
   \bbl at foreach\bbl at loaded{{%
     \def\languagename{##1}%
     \bbl at ensureinfo{##1}}}}
+\@ifpackagewith{babel}{ensureinfo=off}{}%
+  {\AtEndOfPackage{% Test for plain.
+    \ifx\@undefined\bbl at loaded\else\BabelEnsureInfo\fi}}
 \newcommand\getlocaleproperty{%
   \@ifstar\bbl at getproperty@s\bbl at getproperty@x}
 \def\bbl at getproperty@s#1#2#3{%

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2022-05-22 20:24:00 UTC (rev 63369)
@@ -34,7 +34,7 @@
 %%
 
 \NeedsTeXFormat{LaTeX2e}[2005/12/01]
-\ProvidesPackage{babel}[2022/04/30 3.74 The Babel package]
+\ProvidesPackage{babel}[2022/05/22 3.75 The Babel package]
 \@ifpackagewith{babel}{debug}
   {\providecommand\bbl at trace[1]{\message{^^J[ #1 ]}}%
    \let\bbl at debug\@firstofone
@@ -357,6 +357,7 @@
 \DeclareOption{hyphenmap=select}{\chardef\bbl at opt@hyphenmap\tw@}
 \DeclareOption{hyphenmap=other}{\chardef\bbl at opt@hyphenmap\thr@@}
 \DeclareOption{hyphenmap=other*}{\chardef\bbl at opt@hyphenmap4\relax}
+\DeclareOption{ensureinfo=off}{}
 \DeclareOption{safe=none}{\let\bbl at opt@safe\@empty}
 \DeclareOption{safe=bib}{\def\bbl at opt@safe{B}}
 \DeclareOption{safe=ref}{\def\bbl at opt@safe{R}}
@@ -458,8 +459,8 @@
       \expandafter\@secondoftwo
     \fi}
 \fi
-\def\bbl at version{3.74}
-\def\bbl at date{2022/04/30}
+\def\bbl at version{3.75}
+\def\bbl at date{2022/05/22}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -2573,6 +2574,11 @@
   \ifx\bbl at KVP@language\@nil\else
     \bbl at csarg\edef{lname@#2}{\bbl at KVP@language}%
   \fi
+  \ifcase\bbl at engine\or
+    \bbl at ifunset{bbl at chrng@\languagename}{}%
+      {\directlua{
+         Babel.set_chranges_b('\bbl at cl{sbcp}', '\bbl at cl{chrng}') }}%
+  \fi
    % == onchar ==
   \ifx\bbl at KVP@onchar\@nil\else
     \bbl at luahyphenate
@@ -3028,6 +3034,10 @@
     \ifin@
       \bbl at ini@calendar{##1}%
     \fi
+    \in@{=identification/extension.}{=##1/##2}%
+    \ifin@
+      \bbl at ini@extension{##2}%
+    \fi
     \bbl at ifunset{bbl at inikv@##1}{}%
       {\csname bbl at inikv@##1\endcsname{##2}{##3}}}%
   \bbl at inidata}
@@ -3099,6 +3109,17 @@
        \bbl at cs{@kv at identification.warning#1}\\%
        Reported }}}
 \let\bbl at release@transforms\@empty
+\def\bbl at ini@extension#1{%
+  \def\bbl at tempa{#1}%
+  \bbl at replace\bbl at tempa{extension.}{}%
+  \bbl at replace\bbl at tempa{.tag.bcp47}{}%
+  \bbl at ifunset{bbl at info@#1}%
+    {\bbl at csarg\xdef{info@#1}{ext/\bbl at tempa}%
+     \bbl at exp{%
+       \\\g at addto@macro\\\bbl at moreinfo{%
+         \\\bbl at exportkey{ext/\bbl at tempa}{identification.#1}{}}}}%
+    {}}
+\let\bbl at moreinfo\@empty
 \def\bbl at ini@exports#1{%
   % Identification always exported
   \bbl at iniwarning{}%
@@ -3121,6 +3142,9 @@
     {\csname bbl at esname@\languagename\endcsname}}%
   \bbl at exportkey{sbcp}{identification.script.tag.bcp47}{}%
   \bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}%
+  \bbl at exportkey{rbcp}{identification.region.tag.bcp47}{}%
+  \bbl at exportkey{vbcp}{identification.variant.tag.bcp47}{}%
+  \bbl at moreinfo
   % Also maps bcp47 -> languagename
   \ifbbl at bcptoname
     \bbl at csarg\xdef{bcp at map@\bbl at cl{tbcp}}{\languagename}%
@@ -3570,13 +3594,21 @@
 \def\bbl at alphnum@invalid#1{%
   \bbl at error{Alphabetic numeral too large (#1)}%
     {Currently this is the limit.}}
+\def\bbl at localeinfo#1#2{%
+  \bbl at ifunset{bbl at info@#2}{#1}%
+    {\bbl at ifunset{bbl@\csname bbl at info@#2\endcsname @\languagename}{#1}%
+      {\bbl at cs{\csname bbl at info@#2\endcsname @\languagename}}}}
 \newcommand\localeinfo[1]{%
-  \bbl at ifunset{bbl@\csname bbl at info@#1\endcsname @\languagename}%
-    {\bbl at error{I've found no info for the current locale.\\%
-                The corresponding ini file has not been loaded\\%
-                Perhaps it doesn't exist}%
-               {See the manual for details.}}%
-    {\bbl at cs{\csname bbl at info@#1\endcsname @\languagename}}}
+  \ifx*#1\@empty   % TODO. A bit hackish to make it expandable.
+    \bbl at afterelse\bbl at localeinfo{}%
+  \else
+    \bbl at localeinfo
+      {\bbl at error{I've found no info for the current locale.\\%
+                  The corresponding ini file has not been loaded\\%
+                  Perhaps it doesn't exist}%
+                 {See the manual for details.}}%
+      {#1}%
+  \fi}
 \@namedef{bbl at info@tag.ini}{lini}
 \@namedef{bbl at info@name.english}{elname}
 \@namedef{bbl at info@name.opentype}{lname}
@@ -3587,6 +3619,9 @@
 \@namedef{bbl at info@script.name.opentype}{sname}
 \@namedef{bbl at info@script.tag.bcp47}{sbcp}
 \@namedef{bbl at info@script.tag.opentype}{sotf}
+\@namedef{bbl at info@region.tag.bcp47}{rbcp}
+\@namedef{bbl at info@variant.tag.bcp47}{vbcp}
+\providecommand\BCPdata[1]{\localeinfo*{#1.tag.bcp47}}
 \let\bbl at ensureinfo\@gobble
 \newcommand\BabelEnsureInfo{%
   \ifx\InputIfFileExists\@undefined\else
@@ -3596,6 +3631,9 @@
   \bbl at foreach\bbl at loaded{{%
     \def\languagename{##1}%
     \bbl at ensureinfo{##1}}}}
+\@ifpackagewith{babel}{ensureinfo=off}{}%
+  {\AtEndOfPackage{% Test for plain.
+    \ifx\@undefined\bbl at loaded\else\BabelEnsureInfo\fi}}
 \newcommand\getlocaleproperty{%
   \@ifstar\bbl at getproperty@s\bbl at getproperty@x}
 \def\bbl at getproperty@s#1#2#3{%
@@ -3989,11 +4027,7 @@
 \else
   \DeclareTextFontCommand{\textlatin}{\latintext}
 \fi
-\bbl at ifformatlater{2021-06-01}%
-  {\def\bbl at patchfont#1{\AddToHook{selectfont}{#1}}}
-  {\def\bbl at patchfont#1{%
-     \expandafter\bbl at add\csname selectfont \endcsname{#1}%
-     \expandafter\bbl at toglobal\csname selectfont \endcsname}}
+\def\bbl at patchfont#1{\AddToHook{selectfont}{#1}}
 \bbl at trace{Loading basic (internal) bidi support}
 \ifodd\bbl at engine
 \else % TODO. Move to txtbabel

Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2022-05-22 20:24:00 UTC (rev 63369)
@@ -38,10 +38,10 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{hyphen.cfg}[2022/04/30 3.74 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2022/05/22 3.75 Babel hyphens]
 \xdef\bbl at format{\jobname}
-\def\bbl at version{3.74}
-\def\bbl at date{2022/04/30}
+\def\bbl at version{3.75}
+\def\bbl at date{2022/05/22}
 \ifx\AtBeginDocument\@undefined
   \def\@empty{}
 \fi

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-DZ.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-DZ.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-DZ.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.9
-date = 2021-06-25
+version = 1.10
+date = 2022-05-15
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-algeria arabic-dz
@@ -153,10 +153,10 @@
 
 [characters]
 delimiters.quotes = ”“’‘
-auxiliary = [\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]
+auxiliary = [ـ\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]
 exemplarCharacters = [\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 \u0670 ء أ ؤ إ ئ ا آ ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ى ي]
 index = [ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]
-punctuation = [\\- ‐ – — ، ؛ \\: ! ؟ . ' \" ( ) \\[ \\]]
+punctuation = [\\- ‐ ‑ – — ، ؛ \\: ! ؟ . … ' \" « » ( ) \\[ \\]]
 
 [numbers]
 defaultNumberingSystem = latn
@@ -180,6 +180,6 @@
 
 [transforms.prehyphenation]
 kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 = { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[اأإآ] }
-kashida.plain.2.1 = { kashida = 0 }
+kashida.plain.1.1 =   { kashida = 500 }
+kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
+kashida.plain.2.1 =   { kashida = 0 }

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-MA.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-MA.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-MA.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.9
-date = 2021-06-25
+version = 1.10
+date = 2022-05-15
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-morocco arabic-ma
@@ -156,7 +156,7 @@
 auxiliary = [\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک ڭ گ ݣ ی]
 exemplarCharacters = [\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 \u0670 ء أ ؤ إ ئ ا آ ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ى ي]
 index = [ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]
-punctuation = [\\- ‐ – — ، ؛ \\: ! ؟ . ' \" ( ) \\[ \\]]
+punctuation = [\\- ‐ ‑ – — ، ؛ \\: ! ؟ . … ' \" « » ( ) \\[ \\]]
 
 [numbers]
 defaultNumberingSystem = latn
@@ -180,6 +180,6 @@
 
 [transforms.prehyphenation]
 kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 = { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[اأإآ] }
-kashida.plain.2.1 = { kashida = 0 }
+kashida.plain.1.1 =   { kashida = 500 }
+kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
+kashida.plain.2.1 =   { kashida = 0 }

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SY.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SY.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SY.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.9
-date = 2021-06-25
+version = 1.10
+date = 2022-05-15
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-syria arabic-sy
@@ -152,10 +152,10 @@
 
 [characters]
 delimiters.quotes = ”“’‘
-auxiliary = [\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]
+auxiliary = [ـ\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]
 exemplarCharacters = [\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 \u0670 ء أ ؤ إ ئ ا آ ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ى ي]
 index = [ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]
-punctuation = [\\- ‐ – — ، ؛ \\: ! ؟ . ' \" ( ) \\[ \\]]
+punctuation = [\\- ‐ ‑ – — ، ؛ \\: ! ؟ . … ' \" « » ( ) \\[ \\]]
 
 [numbers]
 defaultNumberingSystem = arab
@@ -179,7 +179,7 @@
 
 [transforms.prehyphenation]
 kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 = { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[اأإآ] }
-kashida.plain.2.1 = { kashida = 0 }
+kashida.plain.1.1 =   { kashida = 500 }
+kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
+kashida.plain.2.1 =   { kashida = 0 }
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2021-09-29
+version = 1.14
+date = 2022-05-15
 name.local = العربية
 name.english = Arabic
 name.babel = arabic
@@ -151,10 +151,10 @@
 
 [characters]
 delimiters.quotes = ”“’‘
-auxiliary = [\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]
+auxiliary = [ـ\u200C\u200D\u200E\u200F پ چ ژ ڜ ڢ ڤ ڥ ٯ ڧ ڨ ک گ ی]
 exemplarCharacters = [\u064B \u064C \u064D \u064E \u064F \u0650 \u0651 \u0652 \u0670 ء أ ؤ إ ئ ا آ ب ة ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ى ي]
 index = [ا ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه و ي]
-punctuation = [\\- ‐ – — ، ؛ \\: ! ؟ . ' \" ( ) \\[ \\]]
+punctuation = [\\- ‐ ‑ – — ، ؛ \\: ! ؟ . … ' \" « » ( ) \\[ \\]]
 
 [numbers]
 defaultNumberingSystem = arab
@@ -193,12 +193,12 @@
 transliteration.dad.3.2 =   { remove }
 transliteration.dad.4.0 = { ([tAa]){*} }
 transliteration.dad.4.1 =   { string = {1|tAa|ةٱٰ} }
-transliteration.dad.4.2 =   { remove } 
+transliteration.dad.4.2 =   { remove }
 transliteration.dad.5.0 = { ([tds])h }
 transliteration.dad.5.1 =   { string = {1|tds|ثذش} }
 transliteration.dad.5.2 =   { remove }
 transliteration.dad.6.0 = { {+}([aui]) }
-transliteration.dad.6.1 =   { string = {1|aui|َُِ} } 
+transliteration.dad.6.1 =   { string = {1|aui|َُِ} }
 transliteration.dad.6.2 =   { string = ّ }
 transliteration.dad.7.0 = { '([AauiIbnf]) }
 transliteration.dad.7.1 =   { remove }
@@ -205,11 +205,11 @@
 transliteration.dad.7.2 =   { string = {1|AauiIbnf|آأؤإئٮںڡ} }
 ; 1-letter
 transliteration.dad.8.0 = { ([{007C}AbtjHxdrzsSDTZ`RfqklmnhUIYaui+opCvgJe]) }
-transliteration.dad.8.1 =   { string = {1|{007C}AbtjHxdrzsSDTZ`RfqklmnhUIYaui+opCvgJe|ءابتجحخدرزسصضطظعغفقكلمنهوىيَُِّْپچڤگژۀ} }
+transliteration.dad.8.1 = { string = {1|{007C}AbtjHxdrzsSDTZ`RfqklmnhUIYaui+opCvgJe|ءابتجحخدرزسصضطظعغفقكلمنهوىيَُِّْپچڤگژۀ} }
 ; 
 kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 = { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[اأإآ] }
-kashida.plain.2.1 = { kashida = 0 }
+kashida.plain.1.1 =   { kashida = 500 }
+kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
+kashida.plain.2.1 =   { kashida = 0 }
 
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1901.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2022-05-17
 name.local = Deutsch
 name.english = German
 name.babel = german
@@ -23,6 +23,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+variant.tag.bcp47 = 1901
 level = 1
 encodings = T1 OT1 LY1
 derivate = no

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-1996.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2022-05-17
 name.local = Deutsch
 name.english = German
 name.babel = german
@@ -22,6 +22,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+variant.tag.bcp47 = 1996
 level = 1
 encodings = T1 OT1 LY1
 derivate = no

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1901.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2022-05-17
 name.local = Deutsch
 name.english = German
 name.babel = austrian german-austria german-at
@@ -26,6 +26,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+variant.tag.bcp47 = 1901
 polyglossia.variant = austrian
 polyglossia.spelling = old
 level = 1

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-AT-1996.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2020-06-30
+version = 1.4
+date = 2022-05-17
 name.local = Deutsch
 name.english = German
 name.babel = austrian german-austria german-at
@@ -26,6 +26,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+variant.tag.bcp47 = 1996
 polyglossia.variant = austrian
 polyglossia.spelling = new
 level = 1

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1901.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,14 +11,12 @@
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2021-09-29
+version = 1.5
+date = 2022-05-1729
 name.local = Deutsch
 name.english = German
 name.babel = german-switzerland german-ch nswissgerman
 name.polyglossia = german
-; The following conflicts with gsw:
-name.babel.C = swissgerman
 tag.bcp47 = de-CH-1901
 language.tag.bcp47 = de
 tag.opentype = DEU
@@ -28,6 +26,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+variant.tag.bcp47 = 1901
 polyglossia.variant = swiss
 polyglossia.spelling = old
 level = 1

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH-1996.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2021-09-29
+version = 1.5
+date = 2022-05-17
 name.local = Deutsch
 name.english = German
 name.babel = german-switzerland german-ch nswissgerman
@@ -28,6 +28,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+variant.tag.bcp47 = 1996
 polyglossia.variant = swiss
 polyglossia.spelling = new
 level = 1

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/de/babel-de-CH.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,14 +11,12 @@
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2021-09-29
+version = 1.5
+date = 2022-05-17
 name.local = Deutsch
 name.english = German
 name.babel = german-switzerland german-ch nswissgerman
 name.polyglossia = german
-; The following conflicts with gsw:
-name.babel.C = swissgerman
 tag.bcp47 = de-CH
 language.tag.bcp47 = de
 tag.opentype = DEU

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-AU.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-AU.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-AU.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2021-09-29
+version = 1.4
+date = 2022-05-17
 name.local = English
 name.english = English
 name.babel = english-australia english-au australian
@@ -150,7 +150,7 @@
 
 [typography]
 frenchspacing = no
-hyphenrules = english
+hyphenrules = ukenglish
 lefthyphenmin = 2
 righthyphenmin = 3
 hyphenchar = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-NZ.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-NZ.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/en/babel-en-NZ.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2021-09-29
+version = 1.4
+date = 2022-05-17
 name.local = English
 name.english = English
 name.babel = english-newzealand english-nz newzealand
@@ -150,7 +150,7 @@
 
 [typography]
 frenchspacing = no
-hyphenrules = english
+hyphenrules = ukenglish
 lefthyphenmin = 2
 righthyphenmin = 3
 hyphenchar = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-BE.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 0.98
-date = 2020-06-30
+version = 0.981
+date = 2022-05-14
 name.local = français
 name.english = French
 name.babel = french-belgium french-be
@@ -161,14 +161,14 @@
 postexhyphenchar = 
 hyphenationmin = 
 ; The syntax is liable to change in 'other' values
-hyphenate.other.locale = "27 
+hyphenate.other.locale = "27
 
 [characters]
 delimiters.quotes = «»«»
-auxiliary = [á å ä ã ā ē í ì ī ñ ó ò ö ø ú ǔ]
+auxiliary = [á å ä ã ā ć ē í ì ī ij ñ ó ò ö õ ø ř š ſ ß ú ǔ]
 exemplarCharacters = [a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô œ p q r s t u ù û ü v w x y ÿ z]
 index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
-punctuation = [\\- ‐ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
+punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
 
 [numbers]
 defaultNumberingSystem = latn
@@ -175,7 +175,7 @@
 minimumGroupingDigits = 1
 decimal = ,
 exponential = E
-group =  
+group =  
 infinity = ∞
 list = ;
 minusSign = -
@@ -186,4 +186,4 @@
 superscriptingExponent = ×
 
 [counters]
-date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
\ No newline at end of file
+date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CA.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,11 +11,11 @@
 
 [identification]
 charset = utf8
-version = 0.981
-date = 2021-09-29
-name.local = français
-name.english = French
-name.babel = french-canada french-ca
+version = 0.982
+date = 2022-05-14
+name.local = français canadien
+name.english = Canadian French
+name.babel = canadien french-canada french-ca
 tag.bcp47 = fr-CA
 language.tag.bcp47 = fr
 tag.opentype = FRA
@@ -77,7 +77,7 @@
 
 [date.gregorian]
 date.long = [d|date.day] [MMMM] [y]
-date.short = [yy]-[MM]-[dd]
+date.short = [y]-[MM]-[dd]
 months.wide.1 = janvier
 months.wide.2 = février
 months.wide.3 = mars
@@ -145,7 +145,7 @@
 months.wide.12 = d\'ecembre
 
 [time.gregorian]
-time.medium = [HH]:[mm]:[ss]
+time.medium = [HH] h [mm] min [ss] s
 time.short = [HH] h [mm]
 
 [typography]
@@ -168,7 +168,7 @@
 auxiliary = [á å ä ã ā ē í ì ī ñ ó ò ö ø ú ǔ]
 exemplarCharacters = [a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô œ p q r s t u ù û ü v w x y ÿ z]
 index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
-punctuation = [\\- ‐ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
+punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
 
 [numbers]
 defaultNumberingSystem = latn
@@ -186,4 +186,4 @@
 superscriptingExponent = ×
 
 [counters]
-date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
\ No newline at end of file
+date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CH.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CH.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-CH.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,10 +11,10 @@
 
 [identification]
 charset = utf8
-version = 0.981
-date = 2021-09-29
-name.local = français
-name.english = French
+version = 0.982
+date = 2022-05-14
+name.local = français suisse
+name.english = Swiss French
 name.babel = french-switzerland french-ch
 tag.bcp47 = fr-CH
 language.tag.bcp47 = fr
@@ -165,17 +165,17 @@
 
 [characters]
 delimiters.quotes = «»‹›
-auxiliary = [á å ä ã ā ē í ì ī ñ ó ò ö ø ú ǔ]
+auxiliary = [á å ä ã ā ć ē í ì ī ij ñ ó ò ö õ ø ř š ſ ß ú ǔ]
 exemplarCharacters = [a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô œ p q r s t u ù û ü v w x y ÿ z]
 index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
-punctuation = [\\- ‐ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
+punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
 
 [numbers]
 defaultNumberingSystem = latn
 minimumGroupingDigits = 1
-decimal = .
+decimal = ,
 exponential = E
-group =  
+group =  
 infinity = ∞
 list = ;
 minusSign = -
@@ -186,4 +186,4 @@
 superscriptingExponent = ×
 
 [counters]
-date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
\ No newline at end of file
+date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr-LU.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 0.981
-date = 2021-09-29
+version = 0.982
+date = 2022-05-14
 name.local = français
 name.english = French
 name.babel = french-luxembourg french-lu
@@ -161,14 +161,14 @@
 postexhyphenchar = 
 hyphenationmin = 
 ; The syntax is liable to change in 'other' values
-hyphenate.other.locale = "27 
+hyphenate.other.locale = "27
 
 [characters]
 delimiters.quotes = «»«»
-auxiliary = [á å ä ã ā ē í ì ī ñ ó ò ö ø ú ǔ]
+auxiliary = [á å ä ã ā ć ē í ì ī ij ñ ó ò ö õ ø ř š ſ ß ú ǔ]
 exemplarCharacters = [a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô œ p q r s t u ù û ü v w x y ÿ z]
 index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
-punctuation = [\\- ‐ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
+punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
 
 [numbers]
 defaultNumberingSystem = latn
@@ -186,4 +186,4 @@
 superscriptingExponent = ×
 
 [counters]
-date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
\ No newline at end of file
+date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 0.98
-date = 2020-06-30
+version = 0.981
+date = 2022-05-14
 name.local = français
 name.english = French
 name.babel = french
@@ -164,10 +164,10 @@
 
 [characters]
 delimiters.quotes = «»«»
-auxiliary = [á å ä ã ā ē í ì ī ñ ó ò ö ø ú ǔ]
+auxiliary = [á å ä ã ā ć ē í ì ī ij ñ ó ò ö õ ø ř š ſ ß ú ǔ]
 exemplarCharacters = [a à â æ b c ç d e é è ê ë f g h i î ï j k l m n o ô œ p q r s t u ù û ü v w x y ÿ z]
 index = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]
-punctuation = [\\- ‐ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
+punctuation = [\\- ‐ ‑ – — , ; \\: ! ? . … ’ \" “ ” « » ( ) \\[ \\] § @ * / \\& # † ‡]
 
 [numbers]
 defaultNumberingSystem = latn
@@ -174,7 +174,7 @@
 minimumGroupingDigits = 1
 decimal = ,
 exponential = E
-group =  
+group =  
 infinity = ∞
 list = ;
 minusSign = -
@@ -185,4 +185,4 @@
 superscriptingExponent = ×
 
 [counters]
-date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
\ No newline at end of file
+date.day = 1\textsuperscript{er} 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-classic.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-classic.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-classic.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2021-11-15
+version = 1.4
+date = 2022-05-17
 name.english = Classic Latin
 tag.bcp47 = la-x-classic
 language.tag.bcp47 = la
@@ -20,6 +20,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+extension.x.tag.bcp47 = classic
 level = 1
 encodings = T1 OT1 LY1
 derivate = no

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-ecclesia.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-ecclesia.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-ecclesia.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2021-11-15
+version = 1.4
+date = 2022-05-17
 name.english = Ecclesiastic Latin
 tag.bcp47 = la-x-ecclesia
 language.tag.bcp47 = la
@@ -20,6 +20,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+extension.x.tag.bcp47 = ecclesia
 level = 1
 encodings = T1 OT1 LY1
 derivate = no

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-medieval.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-medieval.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/la/babel-la-x-medieval.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.3
-date = 2021-11-15
+version = 1.4
+date = 2022-05-17
 name.english = Medieval Latin
 tag.bcp47 = la-x-medieval
 language.tag.bcp47 = la
@@ -20,6 +20,7 @@
 script.name = Latin
 script.tag.bcp47 = Latn
 script.tag.opentype = latn
+extension.x.tag.bcp47 = medieval
 level = 1
 encodings = T1 OT1 LY1
 derivate = no

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/lt/babel-lt.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/lt/babel-lt.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/lt/babel-lt.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2020-06-30
+version = 1.3
+date = 2022-05-11
 name.local = lietuvių
 name.english = Lithuanian
 name.babel = lithuanian
@@ -33,15 +33,20 @@
 ref = Literatūra
 abstract = Santrauka
 bib = Literatūra
+chapter.template = [chapter][ ][[chapter]]
 chapter = skyrius
-appendix = Priedas
+appendix.template = [chapter][ ][[appendix]]
+appendix = priedas
 contents = Turinys
 listfigure = Iliustracijų sąrašas
 listtable = Lentelių sąrašas
 index = Rodyklė
+figure.template = [figure][ ][[figure]]
 figure = pav.
+table.template = [table][ ][[table]]
 table = lentelė
-part = Dalis
+part.template = [part][ ][[part]]
+part = dalis
 encl = Įdėta
 cc = Kopijos
 headto =
@@ -48,8 +53,8 @@
 page = puslapis
 see = žiūrėk
 also = taip pat
-proof = 
-glossary = 
+proof = Įrodymas
+glossary = Glosarijus
 
 [captions.licr]
 preface = Pratarm\.e
@@ -56,23 +61,28 @@
 ref = Literat\=ura
 abstract = Santrauka
 bib = Literat\=ura
+chapter.template = [chapter][ ][[chapter]]
 chapter = skyrius
-appendix = Priedas
+appendix.template = [chapter][ ][[appendix]]
+appendix = priedas
 contents = Turinys
 listfigure = Iliustracij\k u\space s\k ara\v sas
 listtable = Lenteli\k u\space s\k ara\v sas
 index = Rodykl\.e
+figure.template = [figure][ ][[figure]]
 figure = pav.
+table.template = [table][ ][[table]]
 table = lentel\.e
-part = Dalis
+part.template = [part][ ][[part]]
+part = dalis
 encl = \k Id\.eta
 cc = Kopijos
-headto\space=
+headto =
 page = puslapis
 see = \v zi\=ur\.ek
-also = taip\space pat
-proof =
-glossary = 
+also = taip pat
+proof = \k Irodymas
+glossary = Glosarijus
 
 [date.gregorian]
 date.long = [y] m. [MMMM] [d] d.

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sr/babel-sr.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.4
-date = 2021-04-24
+version = 1.5
+date = 2022-05-14
 name.local = српски
 name.english = Serbian
 name.babel = serbian
@@ -74,6 +74,22 @@
 proof = \CYRD\cyro\cyrk\cyra\cyrz
 glossary = \CYRR\cyre\cyrch\cyrn\cyri\cyrk
 
+[date.gregorian.Genitive]
+date.long = [d].[ ][MMMM] [y].
+date.short = [d].[M].[yy].
+months.wide.1 =    јануара
+months.wide.2 =    фебруара
+months.wide.3 =    марта
+months.wide.4 =    априла
+months.wide.5 =    маја
+months.wide.6 =    јуна
+months.wide.7 =    јула
+months.wide.8 =    августа
+months.wide.9 =    септембра
+months.wide.10 =   октобра
+months.wide.11 =   новембра
+months.wide.12 =   децембра
+
 [date.gregorian]
 date.long = [d].[ ][MMMM] [y].
 date.short = [d].[M].[yy].
@@ -129,6 +145,20 @@
 dayPeriods.wide.am = пре подне
 dayPeriods.wide.pm = по подне
 
+[date.gregorian.Genitive.licr]
+months.wide.1 =  \cyrje\cyra\cyrn\cyru\cyra\cyrr\cyra
+months.wide.2 =  \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr\cyra
+months.wide.3 =  \cyrm\cyra\cyrr\cyrt\cyra
+months.wide.4 =  \cyra\cyrp\cyrr\cyri\cyrl\cyra
+months.wide.5 =  \cyrm\cyra\cyrje\cyra
+months.wide.6 =  \cyrje\cyru\cyrn\cyra
+months.wide.7 =  \cyrje\cyru\cyrl\cyra
+months.wide.8 =  \cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra
+months.wide.9 =  \cyrs\cyre\cyrp\cyrt\cyre\cyrm\cyrb\cyrr\cyra
+months.wide.10 = \cyro\cyrk\cyrt\cyro\cyrb\cyrr\cyra
+months.wide.11 = \cyrn\cyro\cyrv\cyre\cyrm\cyrb\cyrr\cyra
+months.wide.12 = \cyrd\cyre\cyrc\cyre\cyrm\cyrb\cyrr\cyra
+
 [date.gregorian.licr]
 months.wide.1 = \cyrje\cyra\cyrn\cyru\cyra\cyrr
 months.wide.2 = \cyrf\cyre\cyrb\cyrr\cyru\cyra\cyrr

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -13,8 +13,8 @@
 
 [identification]
 charset = utf8
-version = 1.10
-date = 2021-09-29
+version = 1.11
+date = 2022-05-10
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -37,7 +37,7 @@
 bib = 参考文献
 chapter.template = [[prechapter]] [chapter] [[postchapter]]
 prechapter = 第
-postchapter = 部分
+postchapter = 章
 appendix = 附录
 contents = 目录
 listfigure = 插图
@@ -47,7 +47,7 @@
 table = 表
 part.template = [[prepart]] [part] [[postpart]]
 prepart = 第
-postpart = 章
+postpart = 部分
 encl = 
 cc = 
 headto = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini	2022-05-22 20:24:00 UTC (rev 63369)
@@ -13,8 +13,8 @@
 
 [identification]
 charset = utf8
-version = 1.10
-date = 2021-09-29
+version = 1.11
+date = 2022-05-10
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -38,7 +38,7 @@
 bib = 参考文献
 chapter.template = [[prechapter]] [chapter] [[postchapter]]
 prechapter = 第
-postchapter = 部分
+postchapter = 章
 appendix = 附录
 contents = 目录
 listfigure = 插图
@@ -48,7 +48,7 @@
 table = 表
 part.template = [[prepart]] [part] [[postpart]]
 prepart = 第
-postpart = 章
+postpart = 部分
 encl = 
 cc = 
 headto = 

Modified: trunk/Master/texmf-dist/tex/generic/babel/luababel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2022-05-22 20:24:00 UTC (rev 63369)
@@ -272,6 +272,15 @@
     end
     return has_bidi
   end
+  function Babel.set_chranges_b (script, chrng)
+    if chrng == '' then return end
+    texio.write('Replacing ' .. script .. ' script ranges')
+    Babel.script_blocks[script] = {}
+    for s, e in string.gmatch(chrng..' ', '(.-)%.%.(.-)%s') do
+      table.insert(
+        Babel.script_blocks[script], {tonumber(s,16), tonumber(e,16)})
+    end
+  end
 }
 \endgroup
 \ifx\newattribute\@undefined\else
@@ -1565,22 +1574,21 @@
        % \(text|par)dir required in pgf:
        \def\bbl at pictresetdir{\bodydir TRT\pardir TRT\textdir TRT\relax}%
      \fi}%
-   \ifx\AddToHook\@undefined\else
-     \AddToHook{env/picture/begin}{\bbl at pictsetdir\tw@}%
-     \directlua{
-       Babel.get_picture_dir = true
-       Babel.picture_has_bidi = 0
-       %
-       function Babel.picture_dir (head)
-         if not Babel.get_picture_dir then return head end
-         if Babel.hlist_has_bidi(head) then
-           Babel.picture_has_bidi = 1
-         end
-         return head
+   \AddToHook{env/picture/begin}{\bbl at pictsetdir\tw@}%
+   \directlua{
+     Babel.get_picture_dir = true
+     Babel.picture_has_bidi = 0
+     %
+     function Babel.picture_dir (head)
+       if not Babel.get_picture_dir then return head end
+       if Babel.hlist_has_bidi(head) then
+         Babel.picture_has_bidi = 1
        end
-       luatexbase.add_to_callback("hpack_filter", Babel.picture_dir,
-         "Babel.picture_dir")
-     }%
+       return head
+     end
+     luatexbase.add_to_callback("hpack_filter", Babel.picture_dir,
+       "Babel.picture_dir")
+   }%
    \AtBeginDocument{%
      \long\def\put(#1,#2)#3{%
        \@killglue
@@ -1595,7 +1603,7 @@
          \setbox\z@\hb at xt@\z@{%
            \@defaultunitsset\@tempdimc{#1}\unitlength
            \kern\@tempdimc
-           #3\hss}%
+           #3\hss}% TODO: #3 executed twice (below). That’s bad.
          \edef\bbl at tempc{\directlua{tex.print(Babel.picture_has_bidi)}}%
        \fi
        % Do:
@@ -1605,35 +1613,26 @@
          \kern\@tempdimc
          {\ifnum\bbl at tempc>\z@\bbl at pictresetdir\fi#3}\hss}%
        \ignorespaces}%
-       \MakeRobust\put}%
-   \fi
+     \MakeRobust\put}%
    \AtBeginDocument
-     {\ifx\pgfpicture\@undefined\else % TODO. Allow deactivate?
-        \ifx\AddToHook\@undefined
-          \bbl at sreplace\pgfpicture{\pgfpicturetrue}%
-            {\bbl at pictsetdir\z@\pgfpicturetrue}%
-        \else
-          \AddToHook{env/pgfpicture/begin}{\bbl at pictsetdir\@ne}%
-        \fi
+     {\AddToHook{cmd/diagbox at pict/before}{\let\bbl at pictsetdir\@gobble}%
+      \ifx\pgfpicture\@undefined\else % TODO. Allow deactivate?
+        \AddToHook{env/pgfpicture/begin}{\bbl at pictsetdir\@ne}%
         \bbl at add\pgfinterruptpicture{\bbl at pictresetdir}%
         \bbl at add\pgfsys at beginpicture{\bbl at pictsetdir\z@}%
       \fi
       \ifx\tikzpicture\@undefined\else
-        \ifx\AddToHook\@undefined\else
-          \AddToHook{env/tikzpicture/begin}{\bbl at pictsetdir\z@}%
-        \fi
+        \AddToHook{env/tikzpicture/begin}{\bbl at pictsetdir\z@}%
         \bbl at add\tikz at atbegin@node{\bbl at pictresetdir}%
         \bbl at sreplace\tikz{\begingroup}{\begingroup\bbl at pictsetdir\tw@}%
       \fi
-      \ifx\AddToHook\@undefined\else
-        \ifx\tcolorbox\@undefined\else
-          \AddToHook{env/tcolorbox/begin}{\bbl at pictsetdir\@ne}%
-          \bbl at sreplace\tcb at savebox
-            {\ignorespaces}{\ignorespaces\bbl at pictresetdir}%
-          \ifx\tikzpicture at tcb@hooked\@undefined\else
-            \bbl at sreplace\tikzpicture at tcb@hooked{\noexpand\tikzpicture}%
-              {\textdir TLT\noexpand\tikzpicture}%
-          \fi
+      \ifx\tcolorbox\@undefined\else
+        \AddToHook{env/tcolorbox/begin}{\bbl at pictsetdir\@ne}%
+        \bbl at sreplace\tcb at savebox
+          {\ignorespaces}{\ignorespaces\bbl at pictresetdir}%
+        \ifx\tikzpicture at tcb@hooked\@undefined\else
+          \bbl at sreplace\tikzpicture at tcb@hooked{\noexpand\tikzpicture}%
+            {\textdir TLT\noexpand\tikzpicture}%
         \fi
       \fi
     }}

Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2022-05-22 20:22:48 UTC (rev 63368)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2022-05-22 20:24:00 UTC (rev 63369)
@@ -33,7 +33,7 @@
 %% extension |.ins|) which are part of the distribution.
 %%
 
-\ProvidesLanguage{nil}[2022/04/30 3.74 Nil language]
+\ProvidesLanguage{nil}[2022/05/22 3.75 Nil language]
 \LdfInit{nil}{datenil}
 \ifx\l at nil\@undefined
   \newlanguage\l at nil
@@ -45,6 +45,33 @@
 \providehyphenmins{\CurrentOption}{\m at ne\m at ne}
 \let\captionsnil\@empty
 \let\datenil\@empty
+\def\bbl at inidata@nil{%
+  \bbl at elt{identification}{tag.ini}{und}%
+  \bbl at elt{identification}{load.level}{0}%
+  \bbl at elt{identification}{charset}{utf8}%
+  \bbl at elt{identification}{version}{1.0}%
+  \bbl at elt{identification}{date}{2022-05-16}%
+  \bbl at elt{identification}{name.local}{nil}%
+  \bbl at elt{identification}{name.english}{nil}%
+  \bbl at elt{identification}{name.babel}{nil}%
+  \bbl at elt{identification}{tag.bcp47}{und}%
+  \bbl at elt{identification}{language.tag.bcp47}{und}%
+  \bbl at elt{identification}{tag.opentype}{dflt}%
+  \bbl at elt{identification}{script.name}{Latin}%
+  \bbl at elt{identification}{script.tag.bcp47}{Latn}%
+  \bbl at elt{identification}{script.tag.opentype}{DFLT}%
+  \bbl at elt{identification}{level}{1}%
+  \bbl at elt{identification}{encodings}{}%
+  \bbl at elt{identification}{derivate}{no}}
+\@namedef{bbl at tbcp@nil}{und}
+\@namedef{bbl at lbcp@nil}{und}
+\@namedef{bbl at lotf@nil}{dflt}
+\@namedef{bbl at elname@nil}{nil}
+\@namedef{bbl at lname@nil}{nil}
+\@namedef{bbl at esname@nil}{Latin}
+\@namedef{bbl at sname@nil}{Latin}
+\@namedef{bbl at sbcp@nil}{Latn}
+\@namedef{bbl at sotf@nil}{Latn}
 \ldf at finish{nil}
 \endinput
 %%



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