texlive[74774] Master/texmf-dist: babel (28mar25)

commits+karl at tug.org commits+karl at tug.org
Fri Mar 28 22:31:52 CET 2025


Revision: 74774
          https://tug.org/svn/texlive?view=revision&revision=74774
Author:   karl
Date:     2025-03-28 22:31:52 +0100 (Fri, 28 Mar 2025)
Log Message:
-----------
babel (28mar25)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/babel/README.md
    trunk/Master/texmf-dist/doc/latex/babel/babel-code.pdf
    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-transforms.lua
    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-EG.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-IQ.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-JO.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-LB.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-PS.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SA.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-TN.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.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-Hant-HK.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.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

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/generic/babel/locale/shared/
    trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Arab.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Deva.ini
    trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Hani.ini

Modified: trunk/Master/texmf-dist/doc/latex/babel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/babel/README.md	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/doc/latex/babel/README.md	2025-03-28 21:31:52 UTC (rev 74774)
@@ -1,6 +1,6 @@
-## Babel 25.5
+## Babel 25.6
 
-2025-03-10
+2025-03-27
 
 `Babel` is the multilingual framework to localize documents. It fully
 supports pdfLaTeX and the Unicode engines LuaLaTeX and XeLaTeX. A few
@@ -21,9 +21,9 @@
 
 The latest stable version is available on <https://ctan.org/pkg/babel>.
 
-Changes in version 25.5 are described in:
+Changes in version 25.6 are described in:
 
-https://latex3.github.io/babel/news/whats-new-in-babel-25.5.html
+https://latex3.github.io/babel/news/whats-new-in-babel-25.6.html
 
 Apart from the manual, you can find information and examples in:
 
@@ -59,14 +59,12 @@
 
 ### Summary of latest changes
 ```
-25.5   2025-03-10
-       * German: new transform longs.unifraktur, with heuristic rules
-         for long s.
-       * Dutch: new transform diaeresis.hyphen.
-       * Fixes:
-         - Some wrong bidi text in \hbox.
-         - Extra space with CJK and lazy loading. 
-         - LaTeX hook for newly defined font families.
+25.6   2025-03-27
+       * Transforms for Chinese and Japanese:
+         - Improved 'spacing.basic'.
+         - New: 'input.nospaces.
+       * @include directive in ini files.
+       * Fix error with CJK in lists (tex.sx 739783).
 ```
 
 ### Previous changes

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

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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.dtx	2025-03-28 21:31:52 UTC (rev 74774)
@@ -37,7 +37,7 @@
   lang       = en-001,
 }
 \ProvidesFile{babel.dtx}%
-  [2025/03/10 v25.5
+  [2025/03/27 v25.6
    The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX] 
 \documentclass{ltxdoc}
 \GetFileInfo{babel.dtx}
@@ -2903,7 +2903,7 @@
 \begin{verbatim}
 \babelprovide[typography/prehyphenchar = 0]{english}
 \end{verbatim}
-This setting \textit{may} work with `xetex`, but getting rid of the
+This setting \textit{may} work with |xetex|, but getting rid of the
 hyphen char in this engine is not trivial, because you must rely on the
 font, and not all fonts behave the same.
 \end{example}
@@ -2916,7 +2916,7 @@
     alph = acute                % Assign it to \alph
   ]{english}
 \end{verbatim}
-You can choose the name, and instead of `alphabetic` it can be another one.
+You can choose the name, and instead of |acute| it can be another one.
 \end{example}
 
 \subsection{Hooks}
@@ -2984,7 +2984,7 @@
   \protected at edef\BabelString{\BabelString}}
 \end{verbatim}
 \item[initiateactive] (char as active, char as other, original char)
-  \New{3.9i} Executed just after a shorthand has been `initiated'. The three
+  \New{3.9i} Executed just after a shorthand has been ‘initiated’. The three
   parameters are the same character with different catcodes: active,
   other (|\string|'ed) and the original one.
 \item[afterreset] \New{3.9i} Executed when selecting a language just after
@@ -4284,6 +4284,12 @@
 devised by Yannis Haralambous for \textsf{dad} (simple and
 \TeX-friendly). Not yet complete, but sufficient for most texts.}
 
+\trans{Chinese, Japanese}{input.nospaces}{With it, and just for
+convenience, spaces (and new lines) in the input are ignored.}
+
+\trans{Chinese, Japanese}{spacing.basic}{Basic rules for readjusting
+spacing. See \New{25.6} for further details.}
+
 \trans{Croatian}{digraphs.ligatures}{Ligatures \textit{DŽ}, \textit{Dž},
 \textit{dž}, \textit{LJ}, \textit{Lj}, \textit{lj}, \textit{NJ},
 \textit{Nj}, \textit{nj}. It assumes they exist. This is not the
@@ -4332,11 +4338,14 @@
 based on that devised by Christian Justen for `cjhebrew`. Final letters
 are not converted, and the furtive patah is not shifted.}
 
+\trans{Hindi, Sanskrit}{punctuation.space}{Inserts a space before the
+following four characters: \textit{!?:;}\,.}
+
 \trans{Hindi, Sanskrit}{transliteration.hk}{The Harvard-Kyoto system to
 romanize Devanagari.}
 
-\trans{Hindi, Sanskrit}{punctuation.space}{Inserts a space before the
-following four characters: \textit{!?:;}\,.}
+\trans{Hindi, Sanskrit}{transliteration.iast}{The IAST system to
+romanize Devanagari (thanks to Maximilian Mehner).}
 
 \trans{Hungarian}{digraphs.hyphen}{Hyphenates the long digraphs
 \textit{ccs}, \textit{ddz}, \textit{ggy}, \textit{lly}, \textit{nny},
@@ -4360,8 +4369,6 @@
 \trans{Latin}{letters.uv}{Replaces \textit{v}, \textit{U} with
 \textit{u}, \textit{V}.}
 
-\trans{Sanskrit}{transliteration.iast}{The IAST system to
-romanize Devanagari (thanks to Maximilian Mehner).}
 
 \trans{Serbian}{transliteration.gajica}{(Note |serbian| with |ini|
 files refers to the Cyrillic script, which is here the target.) The
@@ -6069,8 +6076,8 @@
 % \section{Tools}
 %
 %    \begin{macrocode}
-%<<version=25.5>>
-%<<date=2025/03/10>>
+%<<version=25.6>>
+%<<date=2025/03/27>>
 %    \end{macrocode}
 %
 % \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -10752,15 +10759,17 @@
 \def\bbl at inistore#1=#2\@@{%      full (default)
   \bbl at trim@def\bbl at tempa{#1}%
   \bbl at trim\toks@{#2}%
-  \bbl at xin@{;\bbl at section/\bbl at tempa;}{\bbl at key@list}%
-  \ifin@\else
-    \bbl at xin@{,identification/include.}%
-             {,\bbl at section/\bbl at tempa}%
-    \ifin@\xdef\bbl at included@inis{\the\toks@}\fi
-    \bbl at exp{%
-      \\\g at addto@macro\\\bbl at inidata{%
-        \\\bbl at elt{\bbl at section}{\bbl at tempa}{\the\toks@}}}%
-  \fi}
+  \bbl at ifsamestring{\bbl at tempa}{@include}%
+    {\bbl at read@subini{\the\toks@}}%
+    {\bbl at xin@{;\bbl at section/\bbl at tempa;}{\bbl at key@list}%
+     \ifin@\else
+       \bbl at xin@{,identification/include.}%
+                {,\bbl at section/\bbl at tempa}%
+       \ifin@\xdef\bbl at included@inis{\the\toks@}\fi
+       \bbl at exp{%
+         \\\g at addto@macro\\\bbl at inidata{%
+           \\\bbl at elt{\bbl at section}{\bbl at tempa}{\the\toks@}}}%
+     \fi}}
 \def\bbl at inistore@min#1=#2\@@{%  minimal (maybe set in \bbl at read@ini)
   \bbl at trim@def\bbl at tempa{#1}%
   \bbl at trim\toks@{#2}%
@@ -10773,27 +10782,43 @@
 %
 % \subsection{Main loop in ‘provide’}
 %
-% Now, the ‘main loop’, which \textbf{**must be executed inside a
-% group**}. At this point, |\bbl at inidata| may contain data declared in
-% |\babelprovide|, with ‘slashed’ keys. There are 3 steps: first read
-% the ini file and store it; then traverse the stored values, and
-% process some groups if required (date, captions, labels, counters);
-% finally, ‘export’ some values by defining global macros
+% Now, the ‘main loop’, |\bbl at read@ini|, which \textbf{**must be
+% executed inside a group**}. At this point, |\bbl at inidata| may contain
+% data declared in |\babelprovide|, with ‘slashed’ keys. There are 3
+% steps: first read the ini file and store it; then traverse the stored
+% values, and process some groups if required (date, captions, labels,
+% counters); finally, ‘export’ some values by defining global macros
 % (identification, typography, characters, numbers). The second
 % argument is 0 when called to read the minimal data for fonts; with
 % |\babelprovide| it's either 1 or 2.
 %
+% |\bbl at loop@ini| is the reader, line by line (1: stream), and calls
+% |\bbl at iniline| to save the key/value pairs. If |\bbl at inistore| finds
+% the |@include| directive, the input stream is switched temporarily and
+% |\bbl at read@subini| is called.
+%
 %    \begin{macrocode}
-\def\bbl at loop@ini{%
+\def\bbl at loop@ini#1{%
   \loop
-    \if T\ifeof\bbl at readstream F\fi T\relax % Trick, because inside \loop
+    \if T\ifeof#1 F\fi T\relax % Trick, because inside \loop
       \endlinechar\m at ne
-      \read\bbl at readstream to \bbl at line
+      \read#1 to \bbl at line
       \endlinechar`\^^M
       \ifx\bbl at line\@empty\else
         \expandafter\bbl at iniline\bbl at line\bbl at iniline
       \fi
     \repeat}
+\def\bbl at read@subini#1{%
+  \ifx\bbl at readsubstream\@undefined
+    \csname newread\endcsname\bbl at readsubstream
+  \fi
+  \openin\bbl at readsubstream=babel-#1.ini
+  \ifeof\bbl at readsubstream
+    \bbl at error{no-ini-file}{#1}{}{}%
+  \else
+    {\bbl at loop@ini\bbl at readsubstream}%
+  \fi
+  \closein\bbl at readsubstream}
 \ifx\bbl at readstream\@undefined
   \csname newread\endcsname\bbl at readstream
 \fi
@@ -10817,7 +10842,7 @@
     \def\bbl at section{identification}%
     \bbl at exp{\\\bbl at inistore tag.ini=#1\\\@@}%
     \bbl at inistore load.level=#2\@@
-    \bbl at loop@ini
+    \bbl at loop@ini\bbl at readstream
     % == Process stored data ==
     \bbl at csarg\xdef{lini@\languagename}{#1}%
     \bbl at read@ini at aux
@@ -15007,32 +15032,24 @@
       local quad = 655360      % 10 pt = 655360 = 10 * 65536
       local last_class = nil
       local last_lang = nil
-
       for item in node.traverse(head) do
         if item.id == GLYPH then
-
           local lang = item.lang
-
           local LOCALE = node.get_attribute(item,
                 Babel.attr_locale)
           local props = Babel.locale_props[LOCALE] or {}
-
           local class = Babel.cjk_class[item.char].c
-
           if props.cjk_quotes and props.cjk_quotes[item.char] then
             class = props.cjk_quotes[item.char]
           end
-
           if class == 'cp' then class = 'cl' % )] as CL
           elseif class == 'id' then class = 'I'
           elseif class == 'cj' then class = 'I' % loose
           end
-
           local br = 0
           if class and last_class and Babel.cjk_breaks[last_class][class] then 
             br = Babel.cjk_breaks[last_class][class]
           end
-
           if br == 1 and props.linebreak == 'c' and
               lang ~= \the\l at nohyphenation\space and
               last_lang ~= \the\l at nohyphenation then
@@ -15049,7 +15066,6 @@
                             intraspace.m * quad)
             node.insert_before(head, item, n)
           end
-
           if font.getfont(item.font) then
             quad = font.getfont(item.font).size
           end
@@ -17002,7 +17018,11 @@
             dummy_node = nil
           end
 
-          if (not enabled) or (crep and next(crep) == nil) then -- = {}
+          if not enabled then
+            last_match = save_last
+            goto next
+          
+          elseif crep and next(crep) == nil then -- = {}
             if step == 0 then
               last_match = save_last    -- Optimization
             else

Modified: trunk/Master/texmf-dist/source/latex/babel/babel.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/babel/babel.ins	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/source/latex/babel/babel.ins	2025-03-28 21:31:52 UTC (rev 74774)
@@ -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{2025/03/10}
+\def\filedate{2025/03/27}
 \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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/source/latex/babel/bbcompat.dtx	2025-03-28 21:31:52 UTC (rev 74774)
@@ -30,7 +30,7 @@
 %
 % \iffalse
 %<*dtx>
-\ProvidesFile{bbcompat.dtx}[2025/03/10 v25.5]
+\ProvidesFile{bbcompat.dtx}[2025/03/27 v25.6]
 %</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-transforms.lua
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel-transforms.lua	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel-transforms.lua	2025-03-28 21:31:52 UTC (rev 74774)
@@ -341,7 +341,11 @@
             dummy_node = nil
           end
 
-          if (not enabled) or (crep and next(crep) == nil) then -- = {}
+          if not enabled then
+            last_match = save_last
+            goto next
+
+          elseif crep and next(crep) == nil then -- = {}
             if step == 0 then
               last_match = save_last    -- Optimization
             else

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.def	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.def	2025-03-28 21:31:52 UTC (rev 74774)
@@ -39,7 +39,7 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{babel.def}[2025/03/10 v25.5 Babel common definitions]
+\ProvidesFile{babel.def}[2025/03/27 v25.6 Babel common definitions]
 \ifx\AtBeginDocument\@undefined
   \def\@empty{}
 \def\loadlocalcfg#1{%
@@ -603,8 +603,8 @@
     \toks@\expandafter{\bbl at tempc#3}%
     \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
   \fi}
-\def\bbl at version{25.5}
-\def\bbl at date{2025/03/10}
+\def\bbl at version{25.6}
+\def\bbl at date{2025/03/27}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi

Modified: trunk/Master/texmf-dist/tex/generic/babel/babel.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/babel.sty	2025-03-28 21:31:52 UTC (rev 74774)
@@ -34,7 +34,7 @@
 %%
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{babel}%
-  [2025/03/10 v25.5
+  [2025/03/27 v25.6
    The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX]
 \@ifpackagewith{babel}{debug}
   {\providecommand\bbl at trace[1]{\message{^^J[ #1 ]}}%
@@ -474,8 +474,8 @@
       \expandafter\@secondoftwo
     \fi}
 \fi
-\def\bbl at version{25.5}
-\def\bbl at date{2025/03/10}
+\def\bbl at version{25.6}
+\def\bbl at date{2025/03/27}
 \ifx\language\@undefined
   \csname newcount\endcsname\language
 \fi
@@ -2581,15 +2581,17 @@
 \def\bbl at inistore#1=#2\@@{%      full (default)
   \bbl at trim@def\bbl at tempa{#1}%
   \bbl at trim\toks@{#2}%
-  \bbl at xin@{;\bbl at section/\bbl at tempa;}{\bbl at key@list}%
-  \ifin@\else
-    \bbl at xin@{,identification/include.}%
-             {,\bbl at section/\bbl at tempa}%
-    \ifin@\xdef\bbl at included@inis{\the\toks@}\fi
-    \bbl at exp{%
-      \\\g at addto@macro\\\bbl at inidata{%
-        \\\bbl at elt{\bbl at section}{\bbl at tempa}{\the\toks@}}}%
-  \fi}
+  \bbl at ifsamestring{\bbl at tempa}{@include}%
+    {\bbl at read@subini{\the\toks@}}%
+    {\bbl at xin@{;\bbl at section/\bbl at tempa;}{\bbl at key@list}%
+     \ifin@\else
+       \bbl at xin@{,identification/include.}%
+                {,\bbl at section/\bbl at tempa}%
+       \ifin@\xdef\bbl at included@inis{\the\toks@}\fi
+       \bbl at exp{%
+         \\\g at addto@macro\\\bbl at inidata{%
+           \\\bbl at elt{\bbl at section}{\bbl at tempa}{\the\toks@}}}%
+     \fi}}
 \def\bbl at inistore@min#1=#2\@@{%  minimal (maybe set in \bbl at read@ini)
   \bbl at trim@def\bbl at tempa{#1}%
   \bbl at trim\toks@{#2}%
@@ -2598,16 +2600,27 @@
     \bbl at exp{\\\g at addto@macro\\\bbl at inidata{%
       \\\bbl at elt{identification}{\bbl at tempa}{\the\toks@}}}%
   \fi}
-\def\bbl at loop@ini{%
+\def\bbl at loop@ini#1{%
   \loop
-    \if T\ifeof\bbl at readstream F\fi T\relax % Trick, because inside \loop
+    \if T\ifeof#1 F\fi T\relax % Trick, because inside \loop
       \endlinechar\m at ne
-      \read\bbl at readstream to \bbl at line
+      \read#1 to \bbl at line
       \endlinechar`\^^M
       \ifx\bbl at line\@empty\else
         \expandafter\bbl at iniline\bbl at line\bbl at iniline
       \fi
     \repeat}
+\def\bbl at read@subini#1{%
+  \ifx\bbl at readsubstream\@undefined
+    \csname newread\endcsname\bbl at readsubstream
+  \fi
+  \openin\bbl at readsubstream=babel-#1.ini
+  \ifeof\bbl at readsubstream
+    \bbl at error{no-ini-file}{#1}{}{}%
+  \else
+    {\bbl at loop@ini\bbl at readsubstream}%
+  \fi
+  \closein\bbl at readsubstream}
 \ifx\bbl at readstream\@undefined
   \csname newread\endcsname\bbl at readstream
 \fi
@@ -2631,7 +2644,7 @@
     \def\bbl at section{identification}%
     \bbl at exp{\\\bbl at inistore tag.ini=#1\\\@@}%
     \bbl at inistore load.level=#2\@@
-    \bbl at loop@ini
+    \bbl at loop@ini\bbl at readstream
     % == Process stored data ==
     \bbl at csarg\xdef{lini@\languagename}{#1}%
     \bbl at read@ini at aux

Modified: trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/hyphen.cfg	2025-03-28 21:31:52 UTC (rev 74774)
@@ -37,10 +37,10 @@
     \wlog{File: #1 #4 #3 <#2>}%
     \let\ProvidesFile\@undefined}
 \fi
-\ProvidesFile{hyphen.cfg}[2025/03/10 v25.5 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2025/03/27 v25.6 Babel hyphens]
 \xdef\bbl at format{\jobname}
-\def\bbl at version{25.5}
-\def\bbl at date{2025/03/10}
+\def\bbl at version{25.6}
+\def\bbl at date{2025/03/27}
 \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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-DZ.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-05-16
+version = 1.14
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-algeria arabic-dz
@@ -177,7 +177,4 @@
 maghrebi.abjad = أ ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-EG.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-EG.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-EG.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2022-12-08
+version = 1.3
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-egypt arabic-eg
@@ -196,7 +196,4 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-IQ.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-IQ.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-IQ.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2022-12-08
+version = 1.2
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-iraq arabic-iq
@@ -177,7 +177,4 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-JO.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-JO.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-JO.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2022-12-08
+version = 1.2
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-jordan arabic-jo
@@ -177,7 +177,4 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-LB.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-LB.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-LB.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2022-12-08
+version = 1.2
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-lebanon arabic-lb
@@ -177,7 +177,4 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-MA.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-05-16
+version = 1.14
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-morocco arabic-ma
@@ -177,7 +177,4 @@
 maghrebi.abjad = أ ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-PS.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-PS.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-PS.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2022-12-08
+version = 1.2
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-palestinianterritories arabic-ps
@@ -177,7 +177,4 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SA.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SA.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SA.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.1
-date = 2022-12-08
+version = 1.2
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-saudiarabia arabic-sa
@@ -180,7 +180,4 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-SY.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.12
-date = 2022-12-08
+version = 1.13
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-syria arabic-sy
@@ -176,8 +176,5 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-TN.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-TN.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar-TN.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.2
-date = 2024-05-16
+version = 1.3
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic-tunisia arabic-tn
@@ -177,7 +177,4 @@
 maghrebi.abjad = أ ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
+ at include = Arab

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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ar/babel-ar.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.16
-date = 2023-09-10
+version = 1.17
+date = 2025-03-26
 name.local = العربية
 name.english = Arabic
 name.babel = arabic
@@ -175,51 +175,6 @@
 maghrebi.abjad = ا ب ج د ه‍ و ز ح ط ي ك ل م ن ص ع ف ض ق ر س ت ث خ ذ ظ غ ش
 
 [transforms.prehyphenation]
-; Yannis Haralambous' system in his 'dad'. Only two rules are missing.
-; 3-letter
-transliteration.dad.1.0 = { {+}a{*} }
-transliteration.dad.1.1 =   { string = ٰ }
-transliteration.dad.1.2 =   { string = ّ }
-transliteration.dad.1.3 =   { remove }
-transliteration.dad.2.0 = { {+}([aui])N }
-transliteration.dad.2.1 =   { string = {1|aui|ًٌٍ} }
-transliteration.dad.2.2 =   { string = ّ }
-transliteration.dad.2.3 =   { remove }
-; 2-letter
-transliteration.dad.3.0 = { ([aui])N }
-transliteration.dad.3.1 =   { string = {1|aui|ًٌٍ} }
-transliteration.dad.3.2 =   { remove }
-transliteration.dad.4.0 = { ([tAa]){*} }
-transliteration.dad.4.1 =   { string = {1|tAa|ةٱٰ} }
-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.2 =   { string = ّ }
-transliteration.dad.7.0 = { '([AauiIbnf]) }
-transliteration.dad.7.1 =   { remove }
-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|ءابتجحخدرزسصضطظعغفقكلمنهوىيَُِّْپچڤگژۀ} }
-; 
-kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.plain.1.1 =   { kashida = 500 }
-kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.plain.2.1 =   { kashida = 0 }
-;
-; Contributed by Christian Lück (@lueck)
-kashida.base.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.base.1.1 =   { kashida = 500 }
-; one diacritic mark: insert kashida behind it
-kashida.base.2.0 = { [يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]()[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.base.2.1 =   { kashida = 500 }
-; two diacritic marks: insert kashida behind them
-kashida.base.3.0 = { [يئهشسقفغعضصنمكلظطخحجثتب][ًٍَُِّ]()[ًٍَُِّ]()[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
-kashida.base.3.1 =   { kashida = 500 }
-kashida.base.4.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
-kashida.base.4.1 =   { kashida = 0 }
+ at include = Arab
 
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/hi/babel-hi.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -10,8 +10,8 @@
 
 [identification]
 charset = utf8
-version = 1.12
-date = 2022-09-01
+version = 1.13
+date = 2025-03-26
 name.local = हिन्दी
 name.english = Hindi
 name.babel = hindi
@@ -214,43 +214,4 @@
 punctuation.space.2.1 =   { insert, penalty = 10000 }
 punctuation.space.2.2 =   { insert, spacefactor= .8 .3 .8, data = 1 }
 punctuation.space.2.3 =   {}
-; == Harvard-Kyoto ==
-; Multiletter
-transliteration.hk.1.0  = { lRR }
-transliteration.hk.1.1  =   { string = ॡ }
-transliteration.hk.1.2  =   { remove }
-transliteration.hk.1.3  =   { remove }
-transliteration.hk.2.0  = { OM }
-transliteration.hk.2.1  =   { string = ॐ }
-transliteration.hk.2.2  =   { remove }
-transliteration.hk.3.0  = { {007C}{007C} }
-transliteration.hk.3.1  =   { string = ॥ }
-transliteration.hk.3.2  =   { remove }
-transliteration.hk.4.0  = { ([lR])R }
-transliteration.hk.4.1  =   { string = {1|lR|ऌॠ} }
-transliteration.hk.4.2  =   { remove }
-transliteration.hk.5.0  = { a([iu]) }
-transliteration.hk.5.1  =   { remove }
-transliteration.hk.5.2  =   { string = {1|iu|ऐऔ} }
-; Xh
-transliteration.hk.6.0  = { ([kgcjTDtdpb])h }
-transliteration.hk.6.1  =   { string = {1|kgcjTDtdpb|खघछझठढथधफभ} }
-transliteration.hk.6.2  =   { remove }
-; Single letter
-transliteration.hk.7.0  = { ([MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}']) }
-transliteration.hk.7.1  =   { string = {1|MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}'|ंःअआइईउऊऋएओकगङचजञटडणतदनपबमयरलवशषसहळ।ऽ} }
-; Post-process vowels
-transliteration.hk.8.0  = { [{0915}-{0939}]([आइईउऊऋॠऌॡएऐओऔऎऒ]) }
-transliteration.hk.8.1  =   {}
-transliteration.hk.8.2  =   { string = {1|आइईउऊऋॠऌॡएऐओऔऎऒ|ािीुूृॄॢॣेैोौॆॊ} }
-transliteration.hk.9.0  = { [{0915}-{0939}]([{0915}-{0939}]) }
-transliteration.hk.9.1  =   {}
-transliteration.hk.9.2  =   { string = ^^^^094d{1} }
-; Duplicated (a trick)
-transliteration.hk.10.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
-transliteration.hk.10.1 =   {}
-transliteration.hk.10.2 =   { string = ^^^^094d{1} }
-; Inherent a
-transliteration.hk.11.0 = { [{0915}-{0939}]{0905} }
-transliteration.hk.11.1 =   {}
-transliteration.hk.11.2 =   { remove }
+ at include = Deva
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/ja/babel-ja.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -10,8 +10,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-11-29
+version = 1.14
+date = 2025-03-26
 name.local = 日本語
 name.english = Japanese
 name.babel = japanese
@@ -199,36 +199,13 @@
 fullwidth.upper.alpha = 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
 
 [transforms.prehyphenation]
-linebreak.strict.1.0 = { [々ぁぃぅぇぉっゃゅょゎ゛-ゞァィゥェォッャュョヮヵヶゕゖㇰ-ㇿ・-ヾ・-ゥェ-ー゙] }
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
+;
+linebreak.strict.1.0 = { [々ぁぃぅぇぉっゃゅょゎ゛-ゞァィゥェォッャュョヮヵヶゕゖㇰ-ㇿ-ヾ・-ゥェ-ー゙] }
 linebreak.strict.1.1 =   { insert, penalty = {small.penalty|10000}, step = 1 }
 ; Don’t rely on internal names. Definitive names to be decided.
 linebreak.strict.1.2 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
 linebreak.strict.1.3 =   {}
-; 
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
-;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa-Deva.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 0.13
-date = 2022-10-12
+version = 0.14
+date = 2025-03-26
 name.local = संस्कृत
 name.english = Sanskrit
 name.babel = sanskrit
@@ -118,139 +118,4 @@
 punctuation.space.2.1 =   { insert, penalty = 10000 }
 punctuation.space.2.2 =   { insert, spacefactor= .8 .3 .8, data = 1 }
 punctuation.space.2.3 =   {}
-; == Harvard-Kyoto ==
-; Multiletter
-transliteration.hk.1.0  = { lRR }
-transliteration.hk.1.1  =   { string = ॡ }
-transliteration.hk.1.2  =   { remove }
-transliteration.hk.1.3  =   { remove }
-transliteration.hk.2.0  = { OM }
-transliteration.hk.2.1  =   { string = ॐ }
-transliteration.hk.2.2  =   { remove }
-transliteration.hk.3.0  = { {007C}{007C} }
-transliteration.hk.3.1  =   { string = ॥ }
-transliteration.hk.3.2  =   { remove }
-transliteration.hk.4.0  = { ([lR])R }
-transliteration.hk.4.1  =   { string = {1|lR|ऌॠ} }
-transliteration.hk.4.2  =   { remove }
-transliteration.hk.5.0  = { a([iu]) }
-transliteration.hk.5.1  =   { remove }
-transliteration.hk.5.2  =   { string = {1|iu|ऐऔ} }
-; Xh
-transliteration.hk.6.0  = { ([kgcjTDtdpb])h }
-transliteration.hk.6.1  =   { string = {1|kgcjTDtdpb|खघछझठढथधफभ} }
-transliteration.hk.6.2  =   { remove }
-; Single letter
-transliteration.hk.7.0  = { ([MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}']) }
-transliteration.hk.7.1  =   { string = {1|MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}'|ंःअआइईउऊऋएओकगङचजञटडणतदनपबमयरलवशषसहळ।ऽ} }
-; Post-process vowels
-transliteration.hk.8.0  = { [{0915}-{0939}]([आइईउऊऋॠऌॡएऐओऔऎऒ]) }
-transliteration.hk.8.1  =   {}
-transliteration.hk.8.2  =   { string = {1|आइईउऊऋॠऌॡएऐओऔऎऒ|ािीुूृॄॢॣेैोौॆॊ} }
-transliteration.hk.9.0  = { [{0915}-{0939}]([{0915}-{0939}]) }
-transliteration.hk.9.1  =   {}
-transliteration.hk.9.2  =   { string = ^^^^094d{1} }
-; Duplicated (a trick)
-transliteration.hk.10.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
-transliteration.hk.10.1 =   {}
-transliteration.hk.10.2 =   { string = ^^^^094d{1} }
-; Inherent a
-transliteration.hk.11.0 = { [{0915}-{0939}]{0905} }
-transliteration.hk.11.1 =   {}
-transliteration.hk.11.2 =   { remove }
-; == IAST ==
-; Contributed by Maximilian Mehner
-; uppercase to lowercase
-transliteration.iast.1.0 = { ([AIUṚṜḶḸEOṂḤKGṄCJÑṬḌṆTDNPBMYRLVŚṢSH]) }
-transliteration.iast.1.1 =   { string = {1|AIUṚṜḶḸEOṂḤKGṄCJÑṬḌṆTDNPBMYRLVŚṢSH|aiuṛṝḷḹeoṃḥkgṅcjñṭḍṇtdnpbmyrlvśṣsh} }
-; whitespace
-transliteration.iast.2.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])|([aiuṛṝḷḹeokgṅcjñṭḍṇtdnpbmyrlvśṣsh]) }
-transliteration.iast.2.1 =   { string = {1} }
-transliteration.iast.2.2 =   { remove }
-transliteration.iast.2.3 =   { string = {2} }
-; special strings
-transliteration.iast.3.0 = { oṃ }
-transliteration.iast.3.1 =   { string = ॐ }
-; aspirata with vowels
-transliteration.iast.4.0 = { ([kgcjṭḍtdpb])[h][a]([iu]) }
-transliteration.iast.4.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
-transliteration.iast.4.2 =   { remove }
-transliteration.iast.4.3 =   { remove }
-transliteration.iast.4.4 =   { string = {2|iu|ैौ} }
-;
-transliteration.iast.5.0 = { ([kgcjṭḍtdpb])[h][a] }
-transliteration.iast.5.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
-transliteration.iast.5.2 =   { remove }
-transliteration.iast.5.3 =   { remove }
-;
-transliteration.iast.6.0 = { ([kgcjṭḍtdpb])[h]([āiīuūṛṝḷḹeo]) }
-transliteration.iast.6.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
-transliteration.iast.6.2 =   { remove }
-transliteration.iast.6.3 =   { string = {2|āiīuūṛṝḷḹeo|ािीुूृॄॢॣेो} }
-; aspirata without vowels
-transliteration.iast.7.0 = { ([kgcjṭḍtdpb])[h] }
-transliteration.iast.7.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ}् }
-transliteration.iast.7.2 =   { remove }
-; tenues with vowels
-transliteration.iast.8.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])[a]([iu]) }
-transliteration.iast.8.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
-transliteration.iast.8.2 =   { remove }
-transliteration.iast.8.3 =   { string = {2|iu|ैौ} }
-;
-transliteration.iast.9.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])[a] }
-transliteration.iast.9.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
-transliteration.iast.9.2 =   { remove }
-;
-transliteration.iast.10.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])([āiīuūṛṝḷḹeo]) }
-transliteration.iast.10.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
-transliteration.iast.10.2 =   { string = {2|āiīuūṛṝḷḹeo|ािीुूृॄॢॣेो} }
-; tenues without vowels
-transliteration.iast.11.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh]) }
-transliteration.iast.11.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह}् }
-; vowels
-; initial vowels
-transliteration.iast.12.0 = { ai }
-transliteration.iast.12.1 =   { string = ऐ }
-transliteration.iast.13.0 = { au }
-transliteration.iast.13.1 =   { string = औ }
-transliteration.iast.14.0 = { a }
-transliteration.iast.14.1 =   { string = अ }
-transliteration.iast.15.0 = { ā }
-transliteration.iast.15.1 =   { string = आ }
-transliteration.iast.16.0 = { i }
-transliteration.iast.16.1 =   { string = इ }
-transliteration.iast.17.0 = { ī }
-transliteration.iast.17.1 =   { string = ई }
-transliteration.iast.18.0 = { u }
-transliteration.iast.18.1 =   { string = उ }
-transliteration.iast.19.0 = { ū }
-transliteration.iast.19.1 =   { string = ऊ }
-transliteration.iast.20.0 = { ṛ }
-transliteration.iast.20.1 =   { string = ऋ }
-transliteration.iast.21.0 = { ṝ }
-transliteration.iast.21.1 =   { string = ॠ }
-transliteration.iast.22.0 = { ḷ }
-transliteration.iast.22.1 =   { string = लृ }
-transliteration.iast.23.0 = { ḹ }
-transliteration.iast.23.1 =   { string = लॄ }
-transliteration.iast.24.0 = { e }
-transliteration.iast.24.1 =   { string = ए }
-transliteration.iast.25.0 = { o }
-transliteration.iast.25.1 =   { string = ओ }}
-; special characters
-transliteration.iast.26.0 = { ' }
-transliteration.iast.26.1 =   { string = ऽ }
-transliteration.iast.27.0 = { ṃ }
-transliteration.iast.27.1 =   { string = ं }
-transliteration.iast.28.0 = { ḥ }
-transliteration.iast.28.1 =   { string = ः }
-; numbers
-transliteration.iast.29.0 = { ([0123456789]) }
-transliteration.iast.29.1 =   { string = {1|0123456789|०१२३४५६७८९} }
-; punctuation
-transliteration.iast.30.0 = { [./][./] }
-transliteration.iast.30.1 =   { string = ॥ }
-transliteration.iast.31.0 = { [./] }
-transliteration.iast.31.1 =   { string = । }
-transliteration.iast.32.0 = { [:] }
-transliteration.iast.32.1 =   { string = – }
+ at include = Deva

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/sa/babel-sa.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 0.14
-date = 2023-08-14
+version = 0.15
+date = 2025-03-26
 name.english = Sanskrit
 name.babel = sanskrit
 name.polyglossia = sanskrit
@@ -104,139 +104,4 @@
 punctuation.space.2.1 =   { insert, penalty = 10000 }
 punctuation.space.2.2 =   { insert, spacefactor= .8 .3 .8, data = 1 }
 punctuation.space.2.3 =   {}
-; == Harvard-Kyoto ==
-; Multiletter
-transliteration.hk.1.0  = { lRR }
-transliteration.hk.1.1  =   { string = ॡ }
-transliteration.hk.1.2  =   { remove }
-transliteration.hk.1.3  =   { remove }
-transliteration.hk.2.0  = { OM }
-transliteration.hk.2.1  =   { string = ॐ }
-transliteration.hk.2.2  =   { remove }
-transliteration.hk.3.0  = { {007C}{007C} }
-transliteration.hk.3.1  =   { string = ॥ }
-transliteration.hk.3.2  =   { remove }
-transliteration.hk.4.0  = { ([lR])R }
-transliteration.hk.4.1  =   { string = {1|lR|ऌॠ} }
-transliteration.hk.4.2  =   { remove }
-transliteration.hk.5.0  = { a([iu]) }
-transliteration.hk.5.1  =   { remove }
-transliteration.hk.5.2  =   { string = {1|iu|ऐऔ} }
-; Xh
-transliteration.hk.6.0  = { ([kgcjTDtdpb])h }
-transliteration.hk.6.1  =   { string = {1|kgcjTDtdpb|खघछझठढथधफभ} }
-transliteration.hk.6.2  =   { remove }
-; Single letter
-transliteration.hk.7.0  = { ([MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}']) }
-transliteration.hk.7.1  =   { string = {1|MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}'|ंःअआइईउऊऋएओकगङचजञटडणतदनपबमयरलवशषसहळ।ऽ} }
-; Post-process vowels
-transliteration.hk.8.0  = { [{0915}-{0939}]([आइईउऊऋॠऌॡएऐओऔऎऒ]) }
-transliteration.hk.8.1  =   {}
-transliteration.hk.8.2  =   { string = {1|आइईउऊऋॠऌॡएऐओऔऎऒ|ािीुूृॄॢॣेैोौॆॊ} }
-transliteration.hk.9.0  = { [{0915}-{0939}]([{0915}-{0939}]) }
-transliteration.hk.9.1  =   {}
-transliteration.hk.9.2  =   { string = ^^^^094d{1} }
-; Duplicated (a trick)
-transliteration.hk.10.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
-transliteration.hk.10.1 =   {}
-transliteration.hk.10.2 =   { string = ^^^^094d{1} }
-; Inherent a
-transliteration.hk.11.0 = { [{0915}-{0939}]{0905} }
-transliteration.hk.11.1 =   {}
-transliteration.hk.11.2 =   { remove }
-; == IAST ==
-; Contributed by Maximilian Mehner
-; uppercase to lowercase
-transliteration.iast.1.0 = { ([AIUṚṜḶḸEOṂḤKGṄCJÑṬḌṆTDNPBMYRLVŚṢSH]) }
-transliteration.iast.1.1 =   { string = {1|AIUṚṜḶḸEOṂḤKGṄCJÑṬḌṆTDNPBMYRLVŚṢSH|aiuṛṝḷḹeoṃḥkgṅcjñṭḍṇtdnpbmyrlvśṣsh} }
-; whitespace
-transliteration.iast.2.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])|([aiuṛṝḷḹeokgṅcjñṭḍṇtdnpbmyrlvśṣsh]) }
-transliteration.iast.2.1 =   { string = {1} }
-transliteration.iast.2.2 =   { remove }
-transliteration.iast.2.3 =   { string = {2} }
-; special strings
-transliteration.iast.3.0 = { oṃ }
-transliteration.iast.3.1 =   { string = ॐ }
-; aspirata with vowels
-transliteration.iast.4.0 = { ([kgcjṭḍtdpb])[h][a]([iu]) }
-transliteration.iast.4.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
-transliteration.iast.4.2 =   { remove }
-transliteration.iast.4.3 =   { remove }
-transliteration.iast.4.4 =   { string = {2|iu|ैौ} }
-;
-transliteration.iast.5.0 = { ([kgcjṭḍtdpb])[h][a] }
-transliteration.iast.5.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
-transliteration.iast.5.2 =   { remove }
-transliteration.iast.5.3 =   { remove }
-;
-transliteration.iast.6.0 = { ([kgcjṭḍtdpb])[h]([āiīuūṛṝḷḹeo]) }
-transliteration.iast.6.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
-transliteration.iast.6.2 =   { remove }
-transliteration.iast.6.3 =   { string = {2|āiīuūṛṝḷḹeo|ािीुूृॄॢॣेो} }
-; aspirata without vowels
-transliteration.iast.7.0 = { ([kgcjṭḍtdpb])[h] }
-transliteration.iast.7.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ}् }
-transliteration.iast.7.2 =   { remove }
-; tenues with vowels
-transliteration.iast.8.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])[a]([iu]) }
-transliteration.iast.8.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
-transliteration.iast.8.2 =   { remove }
-transliteration.iast.8.3 =   { string = {2|iu|ैौ} }
-;
-transliteration.iast.9.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])[a] }
-transliteration.iast.9.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
-transliteration.iast.9.2 =   { remove }
-;
-transliteration.iast.10.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])([āiīuūṛṝḷḹeo]) }
-transliteration.iast.10.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
-transliteration.iast.10.2 =   { string = {2|āiīuūṛṝḷḹeo|ािीुूृॄॢॣेो} }
-; tenues without vowels
-transliteration.iast.11.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh]) }
-transliteration.iast.11.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह}् }
-; vowels
-; initial vowels
-transliteration.iast.12.0 = { ai }
-transliteration.iast.12.1 =   { string = ऐ }
-transliteration.iast.13.0 = { au }
-transliteration.iast.13.1 =   { string = औ }
-transliteration.iast.14.0 = { a }
-transliteration.iast.14.1 =   { string = अ }
-transliteration.iast.15.0 = { ā }
-transliteration.iast.15.1 =   { string = आ }
-transliteration.iast.16.0 = { i }
-transliteration.iast.16.1 =   { string = इ }
-transliteration.iast.17.0 = { ī }
-transliteration.iast.17.1 =   { string = ई }
-transliteration.iast.18.0 = { u }
-transliteration.iast.18.1 =   { string = उ }
-transliteration.iast.19.0 = { ū }
-transliteration.iast.19.1 =   { string = ऊ }
-transliteration.iast.20.0 = { ṛ }
-transliteration.iast.20.1 =   { string = ऋ }
-transliteration.iast.21.0 = { ṝ }
-transliteration.iast.21.1 =   { string = ॠ }
-transliteration.iast.22.0 = { ḷ }
-transliteration.iast.22.1 =   { string = लृ }
-transliteration.iast.23.0 = { ḹ }
-transliteration.iast.23.1 =   { string = लॄ }
-transliteration.iast.24.0 = { e }
-transliteration.iast.24.1 =   { string = ए }
-transliteration.iast.25.0 = { o }
-transliteration.iast.25.1 =   { string = ओ }}
-; special characters
-transliteration.iast.26.0 = { ' }
-transliteration.iast.26.1 =   { string = ऽ }
-transliteration.iast.27.0 = { ṃ }
-transliteration.iast.27.1 =   { string = ं }
-transliteration.iast.28.0 = { ḥ }
-transliteration.iast.28.1 =   { string = ः }
-; numbers
-transliteration.iast.29.0 = { ([0123456789]) }
-transliteration.iast.29.1 =   { string = {1|0123456789|०१२३४५६७८९} }
-; punctuation
-transliteration.iast.30.0 = { [./][./] }
-transliteration.iast.30.1 =   { string = ॥ }
-transliteration.iast.31.0 = { [./] }
-transliteration.iast.31.1 =   { string = । }
-transliteration.iast.32.0 = { [:] }
-transliteration.iast.32.1 =   { string = – }
+ at include = Deva

Added: trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Arab.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Arab.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Arab.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -0,0 +1,49 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+
+; Yannis Haralambous' system in his 'dad'. Only two rules are missing.
+; 3-letter
+transliteration.dad.1.0 = { {+}a{*} }
+transliteration.dad.1.1 =   { string = ٰ }
+transliteration.dad.1.2 =   { string = ّ }
+transliteration.dad.1.3 =   { remove }
+transliteration.dad.2.0 = { {+}([aui])N }
+transliteration.dad.2.1 =   { string = {1|aui|ًٌٍ} }
+transliteration.dad.2.2 =   { string = ّ }
+transliteration.dad.2.3 =   { remove }
+; 2-letter
+transliteration.dad.3.0 = { ([aui])N }
+transliteration.dad.3.1 =   { string = {1|aui|ًٌٍ} }
+transliteration.dad.3.2 =   { remove }
+transliteration.dad.4.0 = { ([tAa]){*} }
+transliteration.dad.4.1 =   { string = {1|tAa|ةٱٰ} }
+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.2 =   { string = ّ }
+transliteration.dad.7.0 = { '([AauiIbnf]) }
+transliteration.dad.7.1 =   { remove }
+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|ءابتجحخدرزسصضطظعغفقكلمنهوىيَُِّْپچڤگژۀ} }
+; 
+kashida.plain.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]*[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
+kashida.plain.1.1 =   { kashida = 500 }
+kashida.plain.2.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
+kashida.plain.2.1 =   { kashida = 0 }
+;
+; Contributed by Christian Lück (@lueck)
+kashida.base.1.0 = { ()[يئهشسقفغعضصنمكلظطخحجثتب]()[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
+kashida.base.1.1 =   { kashida = 500 }
+; one diacritic mark: insert kashida behind it
+kashida.base.2.0 = { [يئهشسقفغعضصنمكلظطخحجثتب]()[ًٍَُِّ]()[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
+kashida.base.2.1 =   { kashida = 500 }
+; two diacritic marks: insert kashida behind them
+kashida.base.3.0 = { [يئهشسقفغعضصنمكلظطخحجثتب][ًٍَُِّ]()[ًٍَُِّ]()[يئهشسقفغعضصنمكلظطخحجثتباأإآوؤذدزرة] }
+kashida.base.3.1 =   { kashida = 500 }
+kashida.base.4.0 = { ()ل()[ًٍَُِّ]*[اأإآ] }
+kashida.base.4.1 =   { kashida = 0 }
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Arab.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Deva.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Deva.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Deva.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -0,0 +1,139 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+
+; == Harvard-Kyoto ==
+; Multiletter
+transliteration.hk.1.0  = { lRR }
+transliteration.hk.1.1  =   { string = ॡ }
+transliteration.hk.1.2  =   { remove }
+transliteration.hk.1.3  =   { remove }
+transliteration.hk.2.0  = { OM }
+transliteration.hk.2.1  =   { string = ॐ }
+transliteration.hk.2.2  =   { remove }
+transliteration.hk.3.0  = { {007C}{007C} }
+transliteration.hk.3.1  =   { string = ॥ }
+transliteration.hk.3.2  =   { remove }
+transliteration.hk.4.0  = { ([lR])R }
+transliteration.hk.4.1  =   { string = {1|lR|ऌॠ} }
+transliteration.hk.4.2  =   { remove }
+transliteration.hk.5.0  = { a([iu]) }
+transliteration.hk.5.1  =   { remove }
+transliteration.hk.5.2  =   { string = {1|iu|ऐऔ} }
+; Xh
+transliteration.hk.6.0  = { ([kgcjTDtdpb])h }
+transliteration.hk.6.1  =   { string = {1|kgcjTDtdpb|खघछझठढथधफभ} }
+transliteration.hk.6.2  =   { remove }
+; Single letter
+transliteration.hk.7.0  = { ([MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}']) }
+transliteration.hk.7.1  =   { string = {1|MHaAiIuUReokgGcjJTDNtdnpbmyrlvzSshL{007C}'|ंःअआइईउऊऋएओकगङचजञटडणतदनपबमयरलवशषसहळ।ऽ} }
+; Post-process vowels
+transliteration.hk.8.0  = { [{0915}-{0939}]([आइईउऊऋॠऌॡएऐओऔऎऒ]) }
+transliteration.hk.8.1  =   {}
+transliteration.hk.8.2  =   { string = {1|आइईउऊऋॠऌॡएऐओऔऎऒ|ािीुूृॄॢॣेैोौॆॊ} }
+transliteration.hk.9.0  = { [{0915}-{0939}]([{0915}-{0939}]) }
+transliteration.hk.9.1  =   {}
+transliteration.hk.9.2  =   { string = ^^^^094d{1} }
+; Duplicated (a trick)
+transliteration.hk.10.0 = { [{0915}-{0939}]([{0915}-{0939}]) }
+transliteration.hk.10.1 =   {}
+transliteration.hk.10.2 =   { string = ^^^^094d{1} }
+; Inherent a
+transliteration.hk.11.0 = { [{0915}-{0939}]{0905} }
+transliteration.hk.11.1 =   {}
+transliteration.hk.11.2 =   { remove }
+; == IAST ==
+; Contributed by Maximilian Mehner
+; uppercase to lowercase
+transliteration.iast.1.0 = { ([AIUṚṜḶḸEOṂḤKGṄCJÑṬḌṆTDNPBMYRLVŚṢSH]) }
+transliteration.iast.1.1 =   { string = {1|AIUṚṜḶḸEOṂḤKGṄCJÑṬḌṆTDNPBMYRLVŚṢSH|aiuṛṝḷḹeoṃḥkgṅcjñṭḍṇtdnpbmyrlvśṣsh} }
+; whitespace
+transliteration.iast.2.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])|([aiuṛṝḷḹeokgṅcjñṭḍṇtdnpbmyrlvśṣsh]) }
+transliteration.iast.2.1 =   { string = {1} }
+transliteration.iast.2.2 =   { remove }
+transliteration.iast.2.3 =   { string = {2} }
+; special strings
+transliteration.iast.3.0 = { oṃ }
+transliteration.iast.3.1 =   { string = ॐ }
+; aspirata with vowels
+transliteration.iast.4.0 = { ([kgcjṭḍtdpb])[h][a]([iu]) }
+transliteration.iast.4.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
+transliteration.iast.4.2 =   { remove }
+transliteration.iast.4.3 =   { remove }
+transliteration.iast.4.4 =   { string = {2|iu|ैौ} }
+;
+transliteration.iast.5.0 = { ([kgcjṭḍtdpb])[h][a] }
+transliteration.iast.5.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
+transliteration.iast.5.2 =   { remove }
+transliteration.iast.5.3 =   { remove }
+;
+transliteration.iast.6.0 = { ([kgcjṭḍtdpb])[h]([āiīuūṛṝḷḹeo]) }
+transliteration.iast.6.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ} }
+transliteration.iast.6.2 =   { remove }
+transliteration.iast.6.3 =   { string = {2|āiīuūṛṝḷḹeo|ािीुूृॄॢॣेो} }
+; aspirata without vowels
+transliteration.iast.7.0 = { ([kgcjṭḍtdpb])[h] }
+transliteration.iast.7.1 =   { string = {1|kgcjṭḍtdpb|खघछझठढथधफभ}् }
+transliteration.iast.7.2 =   { remove }
+; tenues with vowels
+transliteration.iast.8.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])[a]([iu]) }
+transliteration.iast.8.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
+transliteration.iast.8.2 =   { remove }
+transliteration.iast.8.3 =   { string = {2|iu|ैौ} }
+;
+transliteration.iast.9.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])[a] }
+transliteration.iast.9.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
+transliteration.iast.9.2 =   { remove }
+;
+transliteration.iast.10.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh])([āiīuūṛṝḷḹeo]) }
+transliteration.iast.10.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह} }
+transliteration.iast.10.2 =   { string = {2|āiīuūṛṝḷḹeo|ािीुूृॄॢॣेो} }
+; tenues without vowels
+transliteration.iast.11.0 = { ([kgṅcjñṭḍṇtdnpbmyrlvśṣsh]) }
+transliteration.iast.11.1 =   { string = {1|kgṅcjñṭḍṇtdnpbmyrlvśṣsh|कगङचजञटडणतदनपबमयरलवशषसह}् }
+; vowels
+; initial vowels
+transliteration.iast.12.0 = { ai }
+transliteration.iast.12.1 =   { string = ऐ }
+transliteration.iast.13.0 = { au }
+transliteration.iast.13.1 =   { string = औ }
+transliteration.iast.14.0 = { a }
+transliteration.iast.14.1 =   { string = अ }
+transliteration.iast.15.0 = { ā }
+transliteration.iast.15.1 =   { string = आ }
+transliteration.iast.16.0 = { i }
+transliteration.iast.16.1 =   { string = इ }
+transliteration.iast.17.0 = { ī }
+transliteration.iast.17.1 =   { string = ई }
+transliteration.iast.18.0 = { u }
+transliteration.iast.18.1 =   { string = उ }
+transliteration.iast.19.0 = { ū }
+transliteration.iast.19.1 =   { string = ऊ }
+transliteration.iast.20.0 = { ṛ }
+transliteration.iast.20.1 =   { string = ऋ }
+transliteration.iast.21.0 = { ṝ }
+transliteration.iast.21.1 =   { string = ॠ }
+transliteration.iast.22.0 = { ḷ }
+transliteration.iast.22.1 =   { string = लृ }
+transliteration.iast.23.0 = { ḹ }
+transliteration.iast.23.1 =   { string = लॄ }
+transliteration.iast.24.0 = { e }
+transliteration.iast.24.1 =   { string = ए }
+transliteration.iast.25.0 = { o }
+transliteration.iast.25.1 =   { string = ओ }}
+; special characters
+transliteration.iast.26.0 = { ' }
+transliteration.iast.26.1 =   { string = ऽ }
+transliteration.iast.27.0 = { ṃ }
+transliteration.iast.27.1 =   { string = ं }
+transliteration.iast.28.0 = { ḥ }
+transliteration.iast.28.1 =   { string = ः }
+; numbers
+transliteration.iast.29.0 = { ([0123456789]) }
+transliteration.iast.29.1 =   { string = {1|0123456789|०१२३४५६७८९} }
+; punctuation
+transliteration.iast.30.0 = { [./][./] }
+transliteration.iast.30.1 =   { string = ॥ }
+transliteration.iast.31.0 = { [./] }
+transliteration.iast.31.1 =   { string = । }
+transliteration.iast.32.0 = { [:] }
+transliteration.iast.32.1 =   { string = – }


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Deva.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Hani.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Hani.ini	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Hani.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -0,0 +1,66 @@
+; This file is part of babel. For further details see:
+;   https://www.ctan.org/pkg/babel
+
+; closing-letter
+spacing.basic.1.0 = { [、。,.)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
+spacing.basic.1.1 =   { insert, kern = -.5, step = -1 }
+spacing.basic.1.2 =   { insert, penalty = 0 }
+spacing.basic.1.3 =   { insert, kern = .5 }
+spacing.basic.1.4 =   { insert, penalty = 10000 }
+spacing.basic.1.5 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
+spacing.basic.1.6 =   {}
+; closing-center
+spacing.basic.2.0 = { [、。,.)]}〉》」』】〕〗〙〛”〞] ()[・:;]() }
+spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
+spacing.basic.2.2 =   { insert, penalty = 10000 }
+spacing.basic.2.3 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
+spacing.basic.2.4 =   {}
+; closing-opening
+spacing.basic.3.0 = { [、。,.)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
+spacing.basic.3.1 =   { insert, kern = -.5 }
+spacing.basic.3.2 =   { insert, penalty = 0 }
+spacing.basic.3.3 =   { insert, kern = .5 }
+spacing.basic.3.4 =   { insert, penalty = 10000 }
+spacing.basic.3.5 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
+spacing.basic.3.6 =   { insert, norule = -.5 0 0 }
+spacing.basic.3.7 =   {}
+; closing-closing
+spacing.basic.4.0 = { [、。,.)]}〉》」』】〕〗〙〛”〞] ()[、。,.)]}〉》」』】〕〗〙〛”〞]() }
+spacing.basic.4.1 =   { insert, kern= -.5, step = -1 }
+spacing.basic.4.2 =   {}
+; opening-opening
+spacing.basic.5.0 = { [([{〈《「『【〔〖〘〚〝] ()[([{〈《「『【〔〖〘〚“〝]() }
+spacing.basic.5.1 =   { insert, kern = -.5, step =- 1 }
+spacing.basic.5.2 =   {}
+; letter-opening 
+spacing.basic.6.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
+spacing.basic.6.1 =   { insert, penalty = 0 }
+spacing.basic.6.2 =   { insert, kern = .5 }
+spacing.basic.6.3 =   { insert, norule = -.5 0 0 }
+spacing.basic.6.4 =   {}
+; letter-center
+spacing.basic.7.0 = { [{a}] ()[:;・]() }
+spacing.basic.7.1 =   { insert, penalty = 10000, step=-1 }
+spacing.basic.7.2 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
+spacing.basic.7.3 =   {}
+; center-letter
+spacing.basic.8.0 = { [:;・] ()[{a}]() }
+spacing.basic.8.1 =   { insert, kern = -.25, step = -1 }
+spacing.basic.8.2 =   { insert, penalty = 0 }
+spacing.basic.8.3 =   { insert, kern = .25 }
+spacing.basic.8.4 =   { insert, penalty = 10000 }
+spacing.basic.8.5 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
+spacing.basic.8.6 =   {}
+; center-opening
+spacing.basic.9.0 = { [:;・] ()[([{〈《「『【〔〖〘〚“〝]()  }
+spacing.basic.9.1 =   { insert, kern = -.25 }
+spacing.basic.9.2 =   { insert, penalty = 0 }
+spacing.basic.9.3 =   { insert, kern = .25 }
+spacing.basic.9.4 =   { insert, penalty = 10000 }
+spacing.basic.9.5 =   { insert, space = {small.natural|intraspace.b} {small.plus|intraspace.p} {small.minus|intraspace.m} }
+spacing.basic.9.6 =   { insert, norule = -.5 0 0 }
+spacing.basic.9.7 =   {}
+; start
+spacing.basic.10.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
+spacing.basic.10.1 =   { insert, kern = -.5 }
+spacing.basic.10.2 =   {}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/generic/babel/locale/shared/babel-Hani.ini
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-HK.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-12-28
+version = 1.14
+date = 2025-03-26
 name.local = 简体中文
 name.english = Simplified Chinese
 name.opentype = Chinese Simplified
@@ -238,30 +238,8 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-MO.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-12-28
+version = 1.14
+date = 2025-03-26
 name.local = 简体中文
 name.english = Simplified Chinese
 name.opentype = Chinese Simplified
@@ -238,30 +238,8 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans-SG.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-12-28
+version = 1.14
+date = 2025-03-26
 name.local = 简体中文
 name.english = Simplified Chinese
 name.opentype = Chinese Simplified
@@ -238,31 +238,9 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 
 

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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hans.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.15
-date = 2024-12-28
+version = 1.16
+date = 2025-03-26
 name.local = 简体中文
 name.english = Simplified Chinese
 name.opentype = Chinese Simplified
@@ -241,30 +241,8 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-HK.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-12-28
+version = 1.14
+date = 2025-03-26
 name.local = 繁體中文
 name.english = Traditional Chinese
 name.opentype = Chinese Traditional
@@ -238,31 +238,9 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant-MO.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -9,8 +9,8 @@
 
 [identification]
 charset = utf8
-version = 1.13
-date = 2024-12-28
+version = 1.14
+date = 2025-03-26
 name.local = 繁體中文
 name.english = Traditional Chinese
 name.opentype = Chinese Traditional
@@ -238,31 +238,9 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 
 

Modified: trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh-Hant.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.14
-date = 2024-12-28
+version = 1.15
+date = 2025-03-26
 name.local = 繁體中文
 name.english = Traditional Chinese
 name.opentype = Chinese Traditional
@@ -243,31 +243,9 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani
 
 

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	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/locale/zh/babel-zh.ini	2025-03-28 21:31:52 UTC (rev 74774)
@@ -11,8 +11,8 @@
 
 [identification]
 charset = utf8
-version = 1.15
-date = 2024-10-27
+version = 1.16
+date = 2025-03-26
 name.local = 中文
 name.english = Chinese
 name.opentype = Chinese Simplified
@@ -242,29 +242,7 @@
 date.day = 初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十
 
 [transforms.prehyphenation]
-spacing.basic.1.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[([{〈《「『【〔〖〘〚“〝]()  }
-spacing.basic.1.1 =   { insert, kern = -.5 }
-spacing.basic.1.2 =   { insert, penalty = 0 }
-spacing.basic.1.3 =   { insert, kern = .5 }
-spacing.basic.1.4 =   { insert, norule = -.5 0 0 }
-spacing.basic.1.5 =   {}
-spacing.basic.2.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[、。,.・:!?)]}〉》」』】〕〗〙〛”〞]() }
-spacing.basic.2.1 =   { insert, kern= -.5, step = -1 }
-spacing.basic.2.2 =   {}
-spacing.basic.3.0 = { [([{〈《「『【〔〖〘〚“〝] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.3.1 =   { insert, kern = -.5, step =- 1 }
-spacing.basic.3.2 =   {}
+input.nospaces.1.0 = { [{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}]()|()[{2E80}-{9FFF}{F900}-{FAFF}{FE10}-{FE6F}{FF00}-{FFEF}{1AFF0}-{1B16F}{20000}-{323AF}] }
+input.nospaces.1.1 =   { remove }
 ;
-spacing.basic.4.0 = { [、。,.・:;!?)]}〉》」』】〕〗〙〛”〞] ()[{a}]() }
-spacing.basic.4.1 =   { insert, kern = -.5, step = -1 }
-spacing.basic.4.2 =   { insert, penalty = 0 }
-spacing.basic.4.3 =   { insert, kern = .5 }
-spacing.basic.4.4 =   {}
-spacing.basic.5.0 = { [{a}] ()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.5.1 =   { insert, penalty = 0 }
-spacing.basic.5.2 =   { insert, kern = .5 }
-spacing.basic.5.3 =   { insert, norule = -.5 0 0 }
-spacing.basic.5.4 =   {}
-spacing.basic.6.0 = { ^()[([{〈《「『【〔〖〘〚“〝]() }
-spacing.basic.6.1 =   { insert, kern = -.5 }
-spacing.basic.6.2 =   {}
+ at include = Hani

Modified: trunk/Master/texmf-dist/tex/generic/babel/luababel.def
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/luababel.def	2025-03-28 21:31:52 UTC (rev 74774)
@@ -486,32 +486,24 @@
       local quad = 655360      % 10 pt = 655360 = 10 * 65536
       local last_class = nil
       local last_lang = nil
-
       for item in node.traverse(head) do
         if item.id == GLYPH then
-
           local lang = item.lang
-
           local LOCALE = node.get_attribute(item,
                 Babel.attr_locale)
           local props = Babel.locale_props[LOCALE] or {}
-
           local class = Babel.cjk_class[item.char].c
-
           if props.cjk_quotes and props.cjk_quotes[item.char] then
             class = props.cjk_quotes[item.char]
           end
-
           if class == 'cp' then class = 'cl' % )] as CL
           elseif class == 'id' then class = 'I'
           elseif class == 'cj' then class = 'I' % loose
           end
-
           local br = 0
           if class and last_class and Babel.cjk_breaks[last_class][class] then
             br = Babel.cjk_breaks[last_class][class]
           end
-
           if br == 1 and props.linebreak == 'c' and
               lang ~= \the\l at nohyphenation\space and
               last_lang ~= \the\l at nohyphenation then
@@ -528,7 +520,6 @@
                             intraspace.m * quad)
             node.insert_before(head, item, n)
           end
-
           if font.getfont(item.font) then
             quad = font.getfont(item.font).size
           end

Modified: trunk/Master/texmf-dist/tex/generic/babel/nil.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2025-03-28 21:30:48 UTC (rev 74773)
+++ trunk/Master/texmf-dist/tex/generic/babel/nil.ldf	2025-03-28 21:31:52 UTC (rev 74774)
@@ -32,7 +32,7 @@
 %% and covered by LPPL is defined by the unpacking scripts (with
 %% extension |.ins|) which are part of the distribution.
 %%
-\ProvidesLanguage{nil}[2025/03/10 v25.5 Nil language]
+\ProvidesLanguage{nil}[2025/03/27 v25.6 Nil language]
 \LdfInit{nil}{datenil}
 \ifx\l at nil\@undefined
   \newlanguage\l at nil



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