summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2025-02-02 20:56:23 +0000
committerKarl Berry <karl@freefriends.org>2025-02-02 20:56:23 +0000
commit7b472dd48c47e27d78281816ad44b9e2701a99c1 (patch)
tree7fb2360f0311e513db20fb39a3a8a4199aac678a /Master
parent08b0746432f1e79e41c89bdb353aad78ef71b472 (diff)
babel (2feb25)
git-svn-id: svn://tug.org/texlive/trunk@73699 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/babel/README.md18
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel-code.pdfbin736883 -> 736912 bytes
-rw-r--r--Master/texmf-dist/doc/latex/babel/babel.pdfbin529510 -> 544025 bytes
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.dtx116
-rw-r--r--Master/texmf-dist/source/latex/babel/babel.ins2
-rw-r--r--Master/texmf-dist/source/latex/babel/bbcompat.dtx2
-rw-r--r--Master/texmf-dist/source/latex/babel/locale.zipbin1102215 -> 1115502 bytes
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def10
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.sty12
-rw-r--r--Master/texmf-dist/tex/generic/babel/hyphen.cfg6
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/bew/babel-betawi.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/bew/babel-bew.ini142
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/osa/babel-osa.ini142
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/osa/babel-osage.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/oui/babel-oui.ini3
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/vec/babel-vec.ini141
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/vec/babel-venetian.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/vmw/babel-makhuwa.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/vmw/babel-vmw.ini141
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/xnr/babel-kangri.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/xnr/babel-xnr.ini142
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/za/babel-za.ini141
-rw-r--r--Master/texmf-dist/tex/generic/babel/locale/za/babel-zhuang.tex12
-rw-r--r--Master/texmf-dist/tex/generic/babel/luababel.def2
-rw-r--r--Master/texmf-dist/tex/generic/babel/nil.ldf2
25 files changed, 1010 insertions, 84 deletions
diff --git a/Master/texmf-dist/doc/latex/babel/README.md b/Master/texmf-dist/doc/latex/babel/README.md
index 6b479029c2b..6524d9941ec 100644
--- a/Master/texmf-dist/doc/latex/babel/README.md
+++ b/Master/texmf-dist/doc/latex/babel/README.md
@@ -1,6 +1,6 @@
-## Babel 25.2
+## Babel 25.3
-2025-01-25
+2025-02-02
`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 @@ features.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 25.2 are described in:
+Changes in version 25.3 are described in:
-https://latex3.github.io/babel/news/whats-new-in-babel-25.2.html
+https://latex3.github.io/babel/news/whats-new-in-babel-25.3.html
Apart from the manual, you can find information and examples in:
@@ -59,9 +59,13 @@ respective authors.
### Summary of latest changes
```
-25.2 2025-01-25
- * Fixes in Welsh and \BCPdata.
- * Locales: Old Uighur, Algerian Arabic.
+25.3 2025-02-02
+ * Fix error raised with amsbook + CJK + onchar.
+ * Fixes with \MakeUpppercase: \babelhyphen not working and
+ optional arguments in \localedate not recognized.
+ * Manual: direct links to the basic guides in the babel site and
+ to languages on CTAN.
+ * New locales: Betawi, Kangri, Makhuwa, Osage, Venetian, Zhuang.
```
### Previous changes
diff --git a/Master/texmf-dist/doc/latex/babel/babel-code.pdf b/Master/texmf-dist/doc/latex/babel/babel-code.pdf
index d11c1ce49f4..14ed441e4ca 100644
--- a/Master/texmf-dist/doc/latex/babel/babel-code.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/babel/babel.pdf b/Master/texmf-dist/doc/latex/babel/babel.pdf
index b76fbdcc5d3..9778c232f0e 100644
--- a/Master/texmf-dist/doc/latex/babel/babel.pdf
+++ b/Master/texmf-dist/doc/latex/babel/babel.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/babel/babel.dtx b/Master/texmf-dist/source/latex/babel/babel.dtx
index 509e62d4070..424dfe4c717 100644
--- a/Master/texmf-dist/source/latex/babel/babel.dtx
+++ b/Master/texmf-dist/source/latex/babel/babel.dtx
@@ -37,7 +37,7 @@
lang = en-001,
}
\ProvidesFile{babel.dtx}%
- [2025/01/25 v25.2
+ [2025/02/02 v25.3
The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
@@ -113,12 +113,12 @@
\ifnum\bbltempa>2 \ifnum\bbltempb>34
\href{https://latex3.github.io/babel/news/%
whats-new-in-babel-\bbltempa.\bbltempb.html}%
- {\raisebox{.15ex}{$\oplus$}}%
+ {\scriptsize ※}%
\fi\fi
\ifnum\bbltempa>23
\href{https://latex3.github.io/babel/news/%
whats-new-in-babel-\bbltempa.\bbltempb.html}%
- {\raisebox{.15ex}{$\oplus$}}%
+ {\scriptsize ※}%
\fi}}}\enspace\ignorespaces}
\ExplSyntaxOff
\definecolor{thered}{rgb}{0.65,0.04,0.07}
@@ -340,7 +340,7 @@ of loading a language, which is usually all you need.
\item[\sffamily\color{messages}What if I’m interested only in the
latest changes?] Changes and new features with relation to version 3.8
are highlighted with \New{X.XX}\hspace{-.5em}
-(\raisebox{.15ex}{$\oplus$} is a link to the \babel{} site), and there
+({\scriptsize ※} is a link to the \babel{} site), and there
are some notes for the latest versions in
\href{https://latex3.github.io/babel/}{the \babel{} site}. The most
recent features can still be unstable. Remember version 24.1 follows
@@ -866,8 +866,15 @@ encoding files, a preprocessor or even a complete framework (like
\bigskip\hrule\nobreak
\makeatletter
-\def\tag#1#2{\par
- \hspace{-2em}\textcolor{thered}{\texttt{#1}}#2\enspace}
+\newcommand\tag[3][?]{\par
+ \hspace{-2em}\textcolor{thered}{\texttt{#2}}#3\enspace
+ \ifx\relax#1\relax\else
+ \ifx?#1%
+ \href{https://ctan.org/pkg/babel-#2}{\scriptsize ※}%
+ \else
+ \href{https://ctan.org/pkg/#1}{\scriptsize ※}%
+ \fi
+ \fi}
\def\subtag#1#2{\par
\hspace{-1em}\texttt{#1}#2\enspace}
\def\subtagalt#1#2{\par
@@ -885,15 +892,16 @@ encoding files, a preprocessor or even a complete framework (like
Recommended names are set in \textcolor{thered}{red}.\\
Additional languages are set in \textcolor[gray]{.4}{gray}.\\
Discouraged and deprecated names are not included.\\
-There are some notes in a few languages.
+There are some notes in a few languages.\\
+The reference mark ({\scriptsize ※}) is a link to CTAN.
\bigskip\hrule\nobreak
\begin{multicols}{2}
\leftskip2em\parindent0pt
-\tag{afrikaans}{}
+\tag[babel-dutch]{afrikaans}{}
\tag{albanian}{}
-\tag{arabic}{}
+\tag[arabi]{arabic}{}
\note{Requires \textsf{arabi}.}
\tag{azerbaijani}{}
\tag{basque}{}
@@ -917,12 +925,12 @@ There are some notes in a few languages.
\tag{esperanto}{}
\tag{estonian}{}
\tagmin{ethiop}{} %%%%%%
-\tag{farsi}{}
+\tag[arabi]{farsi}{}
\note{Requires \textsf{arabi}.}
\tag{finnish}{}
\tag{french}{}
\subtagalt{acadian}{}
-\tag{friulian}{}
+\tag[babel-friulan]{friulian}{}
\tag{galician}{}
\tag{georgian}{}
\tag{german}{}
@@ -936,7 +944,7 @@ the names in the block \textsf{ngerman}.}
\subtagmin{ibycus}{}
\subtagmin{bgreek}{}
\tag{hebrew}{}
-\tag{hindi}{}
+\tag[devanagari]{hindi}{}
\note{Requires \textsf{velthuis}.}
\tag{hungarian}{}
\subtag{magyar}{}
@@ -953,36 +961,36 @@ the names in the block \textsf{ngerman}.}
% \subtagalt{ecclesiasticlatin}{}
\tag{latvian}{}
\tag{lithuanian}{}
-\tag{lowersorbian}{}
+\tag[babel-sorbian]{lowersorbian}{}
\tag{macedonian}{}
\tag{malay}{}
-\tag{mongolian}{}
-\tag{ngerman}{}
+\tag[mongolian-babel]{mongolian}{}
+\tag[babel-german]{ngerman}{}
\note{This block refers to the new ortography.}
\subtagalt{naustrian}{}
\subtagalt{nswissgerman}{}
\note{Swiss High German}
-\tag{northernsami}{}
-\tag{norwegian}{}
+\tag[babel-samin]{northernsami}{}
+\tag[babel-norsk]{norwegian}{}
\subtag{norsk}{}
-\tag{nynorsk}{}
+\tag[babel-norsk]{nynorsk}{}
\tag{occitan}{}
\tag{piedmontese}{}
\tagmin{pinyin}{}
\tag{polish}{}
-\tag{portuguese}{}
+\tag[babel-portuges]{portuguese}{}
\subtagalt{brazilian}{}
\tag{romanian}{}
\tag{romansh}{}
\tag{russian}{}
-\tag{scottishgaelic}{}
+\tag[babel-scottish]{scottishgaelic}{}
\subtag{scottish}{}
\tag{serbianc}{}
\note{Cyrillic script}
\subtagalt{serbian}{}
\note{Latin script}
\tag{slovak}{}
-\tag{slovene}{}
+\tag[]{slovene}{}
\tag{slovenian}{} %%%%%% <- and ini
\tag{spanglish}{}
\tag{spanish}{}
@@ -990,9 +998,9 @@ the names in the block \textsf{ngerman}.}
\tag{thai}{}
\subtagmin{thaicjk}{}
\tag{turkish}{}
-\tag{turkmen}{}
+\tag[turkmen]{turkmen}{}
\tag{ukrainian}{}
-\tag{uppersorbian}{}
+\tag[sorbian]{uppersorbian}{}
\tag{vietnamese}{}
\tag{welsh}{}
\end{multicols}
@@ -1000,21 +1008,6 @@ the names in the block \textsf{ngerman}.}
\hrule
\bigskip
-% \begin{note}
-% There are also some deprecated names (a few has been even removed):
-% \textsf{frenchb} or \textsf{francais}, as well as \textsf{canadien}
-% (\textsf{french}), \textsf{germanb} (\textsf{german}),
-% \textsf{bahasa}, \textsf{indon} or \textsf{bahasai}
-% (\textsf{indonesian}), \textsf{lsorbian} (\textsf{lowersorbian}),
-% \textsf{bahasam} (\textsf{malay}), \textsf{portuges}
-% (\textsf{portuguese}), \textsf{brazil} (\textsf{brazilian}),
-% \textsf{russianb} (\textsf{russian}), \textsf{usorbian}
-% (\textsf{uppersorbian}), \textsf{vietnam} (\textsf{vietnamese}),
-% \textsf{samin} (\textsf{northernsami}), \textsf{ukraineb}
-% (\textsf{ukrainian}). Deprecated names come in many cases from the
-% times when they had to be shortened to 8 characters.
-% \end{note}
-
\begin{example}
An example of a language requiring a preprocessor and a separate
package is \texttt{hindi}. If you have got the
@@ -1045,8 +1038,8 @@ Following the current common practice (for example, the Unicode CLDR),
all locales are organized in a flat structure. This eases their
identification and customization.
-Many locale are quite usable, provided captions and dates are
-not required (which is a very frequent case, particularly in ancient
+Many locale are quite usable, provided captions and dates are not
+required (which is a very frequent case, particularly in ancient
languages). So, they are included in the default \babel{} distribution.
This can serve to encourage contributions, too. A warning will remember
they are ‘bare minimum locales’. They are set in
@@ -1058,7 +1051,8 @@ they are ‘bare minimum locales’. They are set in
\makeatletter
\def\tag#1#2#3{\par
\hspace{-2em}\textcolor{thered}{\texttt{#1}}#2\enspace
- \mbox{\footnotesize(#3)}}
+ \mbox{\footnotesize(#3)}\enspace
+ \href{https://latex3.github.io/babel/guides/locale-#1.html}{\scriptsize ※}}
\def\subtag#1#2#3{\par
\hspace{-1em}\texttt{#1}#2\enspace
\mbox{\footnotesize(#3)}}
@@ -1067,7 +1061,8 @@ they are ‘bare minimum locales’. They are set in
\mbox{\footnotesize(#3)}}
\def\tagmin#1#2#3{\par
\hspace{-2em}\textcolor[gray]{.4}{\texttt{#1}}#2\enspace
- \mbox{\footnotesize(#3)}}
+ \mbox{\footnotesize(#3)}\enspace
+ \href{https://latex3.github.io/babel/guides/locale-#1.html}{\scriptsize ※}}
\def\subtagmin#1#2#3{\par
\hspace{-1em}\textcolor[gray]{.4}{\texttt{#1}}#2\enspace
\mbox{\footnotesize(#3)}}
@@ -1084,7 +1079,8 @@ highlighted), prefer the full forms.\\
Bare minimum locales are set in \textcolor[gray]{.4}{gray}.\\
Discouraged and deprecated names are not included.\\
\hascapu{} means Unicode captions; \hascapl{} means LICR captions.\\
-There are some notes in a few locales.
+There are some notes in a few locales.\\
+The reference mark ({\scriptsize ※}) is a link to the \babel{} site.
\bigskip\hrule\nobreak
@@ -1157,6 +1153,7 @@ language from \texttt{greek}.}
\tag{belarusian}{\hascapu\hascapl}{be}
\tag{bemba}{}{bem}
\tag{bena}{}{bez}
+\tag{betawi}{}{bew}
\tag{bhojpuri}{}{bho}
\tag{blin}{}{byn}
\tag{bodo}{}{brx}
@@ -1225,10 +1222,12 @@ Egypt, with tag \texttt{ar-EG}.}
\tag{english}{\hascapu\hascapl}{en}
\subtagalt{american}{\hascapu\hascapl}{en-US}
\subtag{americanenglish}{\hascapu\hascapl}{en-US}
+\subtag{usenglish}{\hascapu\hascapl}{en-US}
\subtagalt{australian}{\hascapu\hascapl}{en-AU}
\subtag{australianenglish}{\hascapu\hascapl}{en-AU}
\subtagalt{british}{\hascapu\hascapl}{en-GB}
\subtag{britishenglish}{\hascapu\hascapl}{en-GB}
+\subtag{ukenglish}{\hascapu\hascapl}{en-GB}
\subtagalt{canadian}{\hascapu\hascapl}{en-CA}
\subtag{canadianenglish}{\hascapu\hascapl}{en-CA}
\subtag{english-australia}{\hascapu\hascapl}{en-AU}
@@ -1238,6 +1237,7 @@ Egypt, with tag \texttt{ar-EG}.}
\subtag{english-unitedkingdom}{\hascapu\hascapl}{en-GB}
\subtag{english-gb}{\hascapu\hascapl}{en-GB}
\subtag{english-newzealand}{\hascapu\hascapl}{en-NZ}
+\subtag{newzealand}{\hascapu\hascapl}{en-NZ}
\subtag{english-unitedstates}{\hascapu\hascapl}{en-US}
\subtag{english-nz}{\hascapu\hascapl}{en-NZ}
\subtag{english-us}{\hascapu\hascapl}{en-US}
@@ -1297,7 +1297,8 @@ with tag \texttt{gsw} is a different language.}
\tag{hebrew}{\hascapu\hascapl}{he}
\tag{hindi}{\hascapu}{hi}
\tag{hmongnjua}{}{hnj}
-\tag{hungarian}{\hascapu\hascapl\hascapl\hascapl}{hu}
+\tag{hungarian}{\hascapu\hascapl}{hu}
+\subtag{magyar}{\hascapu\hascapl}{hu}
\tag{icelandic}{\hascapu\hascapl}{is}
\tag{igbo}{}{ig}
\tag{inarisami}{}{smn}
@@ -1319,6 +1320,7 @@ with tag \texttt{gsw} is a different language.}
\tag{kalaallisut}{}{kl}
\tag{kalenjin}{}{kln}
\tag{kamba}{}{kam}
+\tag{kangri}{}{xnr}
\tag{kannada}{\hascapu}{kn}
\tag{kashmiri}{}{ks}
\tag{kazakh}{}{kk}
@@ -1362,11 +1364,11 @@ with tag \texttt{gsw} is a different language.}
\tag{luyia}{}{luy}
\tag{macedonian}{\hascapu\hascapl}{mk}
\tag{machame}{}{jmc}
-\tag{magyar}{\hascapu\hascapl\hascapl\hascapl}{hu}
\tag{maithili}{}{mai}
\tagmin{makasar}{}{mak}
\subtagmin{makasar-bugi}{}{mak-Bugi}
\subtagmin{makasar-buginese}{}{mak-Bugi}
+\tag{makhuwa}{}{vmw}
\tag{makhuwameetto}{}{mgh}
\tag{makonde}{}{kde}
\tag{malagasy}{}{mg}
@@ -1395,7 +1397,6 @@ with tag \texttt{gsw} is a different language.}
\tagmin{navajo}{}{nv}
\tag{nepali}{}{ne}
\tagmin{newari}{}{new}
-\tag{newzealand}{\hascapu\hascapl}{en-NZ}
% \tag{ngerman}{\hascapu\hascapl}{de}
\tag{ngiemboon}{}{nnh}
\tag{ngomba}{}{jgo}
@@ -1417,7 +1418,6 @@ with tag \texttt{gsw} is a different language.}
\note{In the CLDR, \texttt{norwegianbokmal} (nb) just inherites from
\texttt{norwegian}, so use the latter.}
% \tag{norwegianbokmal}{\hascapu\hascapl}{nb}
-\tag{nswissgerman}{\hascapu\hascapl}{de-CH}
\tag{nuer}{}{nus}
\tag{nyanja}{}{ny}
\tag{nyankole}{}{nyn}
@@ -1429,6 +1429,7 @@ with tag \texttt{gsw} is a different language.}
\tagmin{olduighur}{}{oui}
% \tag{oriya}{\hascapu}{or}
\tag{oromo}{}{om}
+\tag{osage}{}{osa}
\tag{ossetic}{}{os}
\tag{papiamento}{}{pap}
\tag{pashto}{}{ps}
@@ -1570,12 +1571,9 @@ in Switzerland.}
\tag{turkish}{\hascapu\hascapl}{tr}
\tag{turkmen}{\hascapu\hascapl}{tk}
\tag{tyap}{}{kcg}
-\tag{ukenglish}{\hascapu\hascapl}{en-GB}
\tag{ukrainian}{\hascapu\hascapl}{uk}
\tag{uppersorbian}{\hascapu\hascapl}{hsb}
\tag{urdu}{\hascapu}{ur}
-\tag{usenglish}{\hascapu\hascapl}{en-US}
-\tag{usorbian}{\hascapu\hascapl}{hsb}
\tag{uyghur}{\hascapu}{ug}
\tag{uzbek}{}{uz}
\subtag{uzbek-arabic}{}{uz-Arab}
@@ -1590,6 +1588,7 @@ in Switzerland.}
\subtag{vai-vai}{}{vai-Vaii}
\subtag{vai-vaii}{}{vai-Vaii}
\tag{venda}{}{ve}
+\tag{venetian}{}{vec}
\tag{vietnamese}{\hascapu\hascapl}{vi}
\tag{volapuk}{}{vo}
\tag{vunjo}{}{vun}
@@ -1604,6 +1603,7 @@ in Switzerland.}
\tag{yiddish}{}{yi}
\tag{yoruba}{}{yo}
\tag{zarma}{}{dje}
+\tag{zhuang}{}{za}
\tag{zulu}{}{zu}
\end{multicols}
\endgroup
@@ -1746,7 +1746,7 @@ replace the red line above with, say:
\end{example}
\begin{example}
-Thanks to this high level interface to |fontenc|, the roman fonts for
+Thanks to this high level interface to |fontspec|, the roman fonts for
all secondary languages in the Cyrillic and Greek scripts can be set
at once with the following single line:
\setengine{luatex/xetex}
@@ -5205,7 +5205,7 @@ is far from exhaustive):
\subsection{Indexing}
For multilingual indexing, see \textsf{upmendex} and \textsf{xindex},
-currently preferred to \textit{xindy}.
+currently preferred to \textsf{xindy}.
\section{Tentative and experimental code}
@@ -6035,8 +6035,8 @@ wouldn’t exist.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=25.2>>
-%<<date=2025/01/25>>
+%<<version=25.3>>
+%<<date=2025/02/02>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -9274,9 +9274,9 @@ wouldn’t exist.
\def\bbl@hyphen{%
\@ifstar{\bbl@hyphen@i @}{\bbl@hyphen@i\@empty}}
\def\bbl@hyphen@i#1#2{%
- \bbl@ifunset{bbl@hy@#1#2\@empty}%
+ \lowercase{\bbl@ifunset{bbl@hy@#1#2\@empty}}%
{\csname bbl@#1usehyphen\endcsname{\discretionary{#2}{}{#2}}}%
- {\csname bbl@hy@#1#2\@empty\endcsname}}
+ {\lowercase{\csname bbl@hy@#1#2\@empty\endcsname}}}
% \end{macrocode}
%
% The following two commands are used to wrap the ``hyphen'' and
@@ -11229,8 +11229,8 @@ wouldn’t exist.
\edef\bbl@tempe{%
\bbl@ifunset{bbl@calpr@\languagename}{}{\bbl@cl{calpr}},%
#1}%
+ \bbl@exp{\lowercase{\edef\\\bbl@tempe{\bbl@tempe}}}%
\bbl@replace\bbl@tempe{ }{}%
- \bbl@replace\bbl@tempe{CONVERT}{convert=}% Hackish
\bbl@replace\bbl@tempe{convert}{convert=}%
\let\bbl@ld@calendar\@empty
\let\bbl@ld@variant\@empty
@@ -14951,7 +14951,7 @@ wouldn’t exist.
local LOCALE = node.get_attribute(item,
Babel.attr_locale)
- local props = Babel.locale_props[LOCALE]
+ local props = Babel.locale_props[LOCALE] or {}
local class = Babel.cjk_class[item.char].c
diff --git a/Master/texmf-dist/source/latex/babel/babel.ins b/Master/texmf-dist/source/latex/babel/babel.ins
index c94d42ac84b..c404737cd23 100644
--- a/Master/texmf-dist/source/latex/babel/babel.ins
+++ b/Master/texmf-dist/source/latex/babel/babel.ins
@@ -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/01/25}
+\def\filedate{2025/02/02}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/Master/texmf-dist/source/latex/babel/bbcompat.dtx b/Master/texmf-dist/source/latex/babel/bbcompat.dtx
index 162d15cd98d..f287c7815f3 100644
--- a/Master/texmf-dist/source/latex/babel/bbcompat.dtx
+++ b/Master/texmf-dist/source/latex/babel/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2025/01/25 v25.2]
+\ProvidesFile{bbcompat.dtx}[2025/02/02 v25.3]
%</dtx>
%
%% File 'bbcompat.dtx'
diff --git a/Master/texmf-dist/source/latex/babel/locale.zip b/Master/texmf-dist/source/latex/babel/locale.zip
index d5ca44216d6..c892a984cf6 100644
--- a/Master/texmf-dist/source/latex/babel/locale.zip
+++ b/Master/texmf-dist/source/latex/babel/locale.zip
Binary files differ
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 3d4a4a0630b..d9d14f8af88 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -39,7 +39,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2025/01/25 v25.2 Babel common definitions]
+\ProvidesFile{babel.def}[2025/02/02 v25.3 Babel common definitions]
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\def\loadlocalcfg#1{%
@@ -595,8 +595,8 @@
\toks@\expandafter{\bbl@tempc#3}%
\expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
\fi}
-\def\bbl@version{25.2}
-\def\bbl@date{2025/01/25}
+\def\bbl@version{25.3}
+\def\bbl@date{2025/02/02}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -1801,9 +1801,9 @@
\def\bbl@hyphen{%
\@ifstar{\bbl@hyphen@i @}{\bbl@hyphen@i\@empty}}
\def\bbl@hyphen@i#1#2{%
- \bbl@ifunset{bbl@hy@#1#2\@empty}%
+ \lowercase{\bbl@ifunset{bbl@hy@#1#2\@empty}}%
{\csname bbl@#1usehyphen\endcsname{\discretionary{#2}{}{#2}}}%
- {\csname bbl@hy@#1#2\@empty\endcsname}}
+ {\lowercase{\csname bbl@hy@#1#2\@empty\endcsname}}}
\def\bbl@usehyphen#1{%
\leavevmode
\ifdim\lastskip>\z@\mbox{#1}\else\nobreak#1\fi
diff --git a/Master/texmf-dist/tex/generic/babel/babel.sty b/Master/texmf-dist/tex/generic/babel/babel.sty
index ab1322d2a30..58dde589f58 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.sty
+++ b/Master/texmf-dist/tex/generic/babel/babel.sty
@@ -34,7 +34,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{babel}%
- [2025/01/25 v25.2
+ [2025/02/02 v25.3
The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX]
\@ifpackagewith{babel}{debug}
{\providecommand\bbl@trace[1]{\message{^^J[ #1 ]}}%
@@ -466,8 +466,8 @@
\expandafter\@secondoftwo
\fi}
\fi
-\def\bbl@version{25.2}
-\def\bbl@date{2025/01/25}
+\def\bbl@version{25.3}
+\def\bbl@date{2025/02/02}
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
@@ -1672,9 +1672,9 @@
\def\bbl@hyphen{%
\@ifstar{\bbl@hyphen@i @}{\bbl@hyphen@i\@empty}}
\def\bbl@hyphen@i#1#2{%
- \bbl@ifunset{bbl@hy@#1#2\@empty}%
+ \lowercase{\bbl@ifunset{bbl@hy@#1#2\@empty}}%
{\csname bbl@#1usehyphen\endcsname{\discretionary{#2}{}{#2}}}%
- {\csname bbl@hy@#1#2\@empty\endcsname}}
+ {\lowercase{\csname bbl@hy@#1#2\@empty\endcsname}}}
\def\bbl@usehyphen#1{%
\leavevmode
\ifdim\lastskip>\z@\mbox{#1}\else\nobreak#1\fi
@@ -2975,8 +2975,8 @@
\edef\bbl@tempe{%
\bbl@ifunset{bbl@calpr@\languagename}{}{\bbl@cl{calpr}},%
#1}%
+ \bbl@exp{\lowercase{\edef\\\bbl@tempe{\bbl@tempe}}}%
\bbl@replace\bbl@tempe{ }{}%
- \bbl@replace\bbl@tempe{CONVERT}{convert=}% Hackish
\bbl@replace\bbl@tempe{convert}{convert=}%
\let\bbl@ld@calendar\@empty
\let\bbl@ld@variant\@empty
diff --git a/Master/texmf-dist/tex/generic/babel/hyphen.cfg b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
index fcb60c0cc7b..6706e078787 100644
--- a/Master/texmf-dist/tex/generic/babel/hyphen.cfg
+++ b/Master/texmf-dist/tex/generic/babel/hyphen.cfg
@@ -37,10 +37,10 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{hyphen.cfg}[2025/01/25 v25.2 Babel hyphens]
+\ProvidesFile{hyphen.cfg}[2025/02/02 v25.3 Babel hyphens]
\xdef\bbl@format{\jobname}
-\def\bbl@version{25.2}
-\def\bbl@date{2025/01/25}
+\def\bbl@version{25.3}
+\def\bbl@date{2025/02/02}
\ifx\AtBeginDocument\@undefined
\def\@empty{}
\fi
diff --git a/Master/texmf-dist/tex/generic/babel/locale/bew/babel-betawi.tex b/Master/texmf-dist/tex/generic/babel/locale/bew/babel-betawi.tex
new file mode 100644
index 00000000000..833500ec3ee
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/bew/babel-betawi.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{bew}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/bew/babel-bew.ini b/Master/texmf-dist/tex/generic/babel/locale/bew/babel-bew.ini
new file mode 100644
index 00000000000..96e5943bf2a
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/bew/babel-bew.ini
@@ -0,0 +1,142 @@
+; This file is part of babel. For further details see:
+; https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2025-02-01
+name.local = Betawi
+name.english = Betawi
+name.babel = betawi
+tag.bcp47 = bew
+language.tag.bcp47 = bew
+tag.bcp47.likely = bew-Latn-ID
+; see https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags
+tag.opentype =
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+; xetex, luatex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[captions.licr]
+; pdftex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[date.gregorian]
+date.long = [d][ ][MMMM] [y]
+date.short = [dd]/[MM]/[yy]
+months.wide.1 = Januari
+months.wide.2 = Pèbruari
+months.wide.3 = Maret
+months.wide.4 = April
+months.wide.5 = Méi
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = Agustus
+months.wide.9 = Sèptèmber
+months.wide.10 = Oktober
+months.wide.11 = Nopèmber
+months.wide.12 = Désèmber
+
+[date.gregorian.licr]
+months.wide.1 = Januari
+months.wide.2 = P\`ebruari
+months.wide.3 = Maret
+months.wide.4 = April
+months.wide.5 = M\'ei
+months.wide.6 = Juni
+months.wide.7 = Juli
+months.wide.8 = Agustus
+months.wide.9 = S\`ept\`ember
+months.wide.10 = Oktober
+months.wide.11 = Nop\`ember
+months.wide.12 = D\'es\`ember
+
+[time.gregorian]
+time.medium = [HH].[mm].[ss]
+time.short = [HH].[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules =
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes =
+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 =
+punctuation = [\\- ‐‑ – — , ; \\: ! ? . … '‘’ \"“” ( ) \\[ \\] § @ * / \\& # † ‡ ′ ″]
+
+[numbers]
+defaultNumberingSystem =
+minimumGroupingDigits =
+decimal = ,
+exponential =
+group = .
+infinity =
+list =
+minusSign =
+nan =
+perMille =
+percentSign =
+plusSign =
+superscriptingExponent =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/osa/babel-osa.ini b/Master/texmf-dist/tex/generic/babel/locale/osa/babel-osa.ini
new file mode 100644
index 00000000000..3d23041e1a8
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/osa/babel-osa.ini
@@ -0,0 +1,142 @@
+; This file is part of babel. For further details see:
+; https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2025-02-01
+name.local = 𐓏𐓘𐓻𐓘𐓻𐓟
+name.english = Osage
+name.babel = osage
+tag.bcp47 = osa
+language.tag.bcp47 = osa
+tag.bcp47.likely = osa-Osge-US
+; see https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags
+tag.opentype =
+script.name = Osage
+script.tag.bcp47 = Osge
+script.tag.opentype = osge
+level = 1
+encodings =
+derivate = no
+
+[captions]
+; xetex, luatex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[captions.licr]
+; pdftex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[date.gregorian]
+date.long = [MMMM] [d], [y]
+date.short = [M]/[d]/[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.licr]
+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 =
+
+[time.gregorian]
+time.medium = [h]:[mm]:[ss] [a]
+time.short = [h]:[mm] [a]
+
+[typography]
+frenchspacing = yes
+hyphenrules =
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes =
+auxiliary =
+exemplarCharacters = [𐓘{𐓘́}{𐓘́͘}{𐓘̋}{𐓘̋͘}{𐓘̄}{𐓘̄͘}{𐓘͘} 𐓙{𐓙́}{𐓙̋}{𐓙̄} 𐓚{𐓚́}{𐓚̋}{𐓚̄} 𐓛{𐓛͘} 𐓜 𐓝 𐓞 𐓟{𐓟́}{𐓟̋}{𐓟̄} 𐓠{𐓠́}{𐓠̋}{𐓠̄} 𐓡 𐓢 𐓣{𐓣́}{𐓣́͘}{𐓣̋}{𐓣̋͘}{𐓣̄}{𐓣̄͘}{𐓣͘} 𐓤 𐓥 𐓦 𐓧 𐓨 𐓩 𐓪{𐓪́}{𐓪́͘}{𐓪̋}{𐓪̋͘}{𐓪̄}{𐓪̄͘}{𐓪͘} 𐓫{𐓫́}{𐓫̋}{𐓫̄} 𐓬 𐓭 𐓮 𐓯 𐓰 𐓱 𐓲 𐓳 𐓴 𐓵 𐓶{𐓶́}{𐓶̋}{𐓶̄} 𐓷 𐓸 𐓹 𐓺 𐓻]
+index = [𐒰{𐒰͘} 𐒱 𐒲 𐒳 𐒴 𐒵 𐒶 𐒷 𐒸 𐒹 𐒺 𐒻{𐒻͘} 𐒼 𐒽 𐒾 𐒿 𐓀 𐓁 𐓂{𐓂͘} 𐓃 𐓄 𐓅 𐓆 𐓇 𐓈 𐓉 𐓊 𐓋 𐓌 𐓍 𐓎 𐓏 𐓐 𐓑 𐓒 𐓓]
+punctuation = [\\- ‐‑ – — , ; \\: ! ? . … '‘’ \"“” ( ) \\[ \\] § @ * / \\& # † ‡ ′ ″]
+
+[numbers]
+defaultNumberingSystem =
+minimumGroupingDigits =
+decimal =
+exponential =
+group =
+infinity =
+list =
+minusSign =
+nan =
+perMille =
+percentSign =
+plusSign =
+superscriptingExponent =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/osa/babel-osage.tex b/Master/texmf-dist/tex/generic/babel/locale/osa/babel-osage.tex
new file mode 100644
index 00000000000..d5840c565ef
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/osa/babel-osage.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{osa}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/oui/babel-oui.ini b/Master/texmf-dist/tex/generic/babel/locale/oui/babel-oui.ini
index 59b735b5cbe..968ad19a10e 100644
--- a/Master/texmf-dist/tex/generic/babel/locale/oui/babel-oui.ini
+++ b/Master/texmf-dist/tex/generic/babel/locale/oui/babel-oui.ini
@@ -9,7 +9,8 @@
charset = utf8
version = 0.1
date = 2025-01-19
-name.local =
+; Tentative
+name.local = 𐽳𐽸𐽹𐽰𐽷
; As per BCP 47, the name is with i
name.english = Old Uighur
name.babel = olduighur
diff --git a/Master/texmf-dist/tex/generic/babel/locale/vec/babel-vec.ini b/Master/texmf-dist/tex/generic/babel/locale/vec/babel-vec.ini
new file mode 100644
index 00000000000..1e480dbc95b
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/vec/babel-vec.ini
@@ -0,0 +1,141 @@
+; This file is part of babel. For further details see:
+; https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2025-02-01
+name.local = veneto
+name.english = Venetian
+name.babel = venetian
+tag.bcp47 = vec
+language.tag.bcp47 = vec
+tag.bcp47.likely = vec-Latn-IT
+tag.opentype = VEC
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+; xetex, luatex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[captions.licr]
+; pdftex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[date.gregorian]
+date.long = [d][ ][MMMM] [y]
+date.short = [dd]/[MM]/[yy]
+months.wide.1 = jenaro
+months.wide.2 = febraro
+months.wide.3 = marso
+months.wide.4 = aprile
+months.wide.5 = majo
+months.wide.6 = jugno
+months.wide.7 = lujo
+months.wide.8 = agosto
+months.wide.9 = setenbre
+months.wide.10 = otobre
+months.wide.11 = novenbre
+months.wide.12 = desenbre
+
+[date.gregorian.licr]
+months.wide.1 = jenaro
+months.wide.2 = febraro
+months.wide.3 = marso
+months.wide.4 = aprile
+months.wide.5 = majo
+months.wide.6 = jugno
+months.wide.7 = lujo
+months.wide.8 = agosto
+months.wide.9 = setenbre
+months.wide.10 = otobre
+months.wide.11 = novenbre
+months.wide.12 = desenbre
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules =
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes =
+auxiliary = [ªá ćç ḑ ʣ ǵ í k ł º q ş ţ ʦ ú w y {z̧}]
+exemplarCharacters = [aà b c d eéè f g h iì j l m n oóò p r s t uù v x z]
+index =
+punctuation = [\\- ‐‑ ‒ – — ― ⁓ , ; \\: ! ? . … · '‘’ \"“” « » ( ) \\[ \\] \\{ \\} 〈 〉 @ * / \\\\ \\& # + = ⁄]
+
+[numbers]
+defaultNumberingSystem =
+minimumGroupingDigits =
+decimal = ,
+exponential =
+group =  
+infinity =
+list =
+minusSign =
+nan =
+perMille =
+percentSign =
+plusSign =
+superscriptingExponent =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/vec/babel-venetian.tex b/Master/texmf-dist/tex/generic/babel/locale/vec/babel-venetian.tex
new file mode 100644
index 00000000000..05e4bdf19db
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/vec/babel-venetian.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{vec}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/vmw/babel-makhuwa.tex b/Master/texmf-dist/tex/generic/babel/locale/vmw/babel-makhuwa.tex
new file mode 100644
index 00000000000..98088bb5118
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/vmw/babel-makhuwa.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{vmw}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/vmw/babel-vmw.ini b/Master/texmf-dist/tex/generic/babel/locale/vmw/babel-vmw.ini
new file mode 100644
index 00000000000..e33f55d8da9
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/vmw/babel-vmw.ini
@@ -0,0 +1,141 @@
+; This file is part of babel. For further details see:
+; https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2025-02-01
+name.local = emakhuwa
+name.english = Makhuwa
+name.babel = makhuwa
+tag.bcp47 = vmw
+language.tag.bcp47 = vmw
+tag.bcp47.likely = vmw-Latn-MZ
+tag.opentype = MAK
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+; xetex, luatex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[captions.licr]
+; pdftex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[date.gregorian]
+date.long = [d][ ][MMMM] [y]
+date.short = [y]-[MM]-[dd]
+months.wide.1 = janeiru
+months.wide.2 = fevereiru
+months.wide.3 = marsu
+months.wide.4 = abril
+months.wide.5 = maiu
+months.wide.6 = junyu
+months.wide.7 = julyu
+months.wide.8 = agostu
+months.wide.9 = setembru
+months.wide.10 = outubru
+months.wide.11 = novembru
+months.wide.12 = dezembru
+
+[date.gregorian.licr]
+months.wide.1 = janeiru
+months.wide.2 = fevereiru
+months.wide.3 = marsu
+months.wide.4 = abril
+months.wide.5 = maiu
+months.wide.6 = junyu
+months.wide.7 = julyu
+months.wide.8 = agostu
+months.wide.9 = setembru
+months.wide.10 = outubru
+months.wide.11 = novembru
+months.wide.12 = dezembru
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules =
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes =
+auxiliary = [b d g q]
+exemplarCharacters = [a c e f h i j k {kh} l m n o p {ph} r s t {th} {tt} {tth} u v w x y z]
+index =
+punctuation = [\\- ‐‑ – — , ; \\: ! ? . … '‘’ \"“” ( ) \\[ \\] @ / \\& # ′ ″]
+
+[numbers]
+defaultNumberingSystem =
+minimumGroupingDigits =
+decimal = ,
+exponential =
+group = .
+infinity =
+list =
+minusSign =
+nan =
+perMille =
+percentSign =
+plusSign =
+superscriptingExponent =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/xnr/babel-kangri.tex b/Master/texmf-dist/tex/generic/babel/locale/xnr/babel-kangri.tex
new file mode 100644
index 00000000000..1ca05b26798
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/xnr/babel-kangri.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{xnr}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/locale/xnr/babel-xnr.ini b/Master/texmf-dist/tex/generic/babel/locale/xnr/babel-xnr.ini
new file mode 100644
index 00000000000..b8dda5fa2b6
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/xnr/babel-xnr.ini
@@ -0,0 +1,142 @@
+; This file is part of babel. For further details see:
+; https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2025-02-01
+name.local = कांगड़ी
+name.english = Kangri
+name.babel = kangri
+tag.bcp47 = xnr
+language.tag.bcp47 = xnr
+tag.bcp47.likely = xnr-Deva-IN
+; see https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags
+tag.opentype =
+script.name = Devanagari
+script.tag.bcp47 = Deva
+script.tag.opentype = deva
+level = 1
+encodings =
+derivate = no
+
+[captions]
+; xetex, luatex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[captions.licr]
+; pdftex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[date.gregorian]
+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.licr]
+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 =
+
+[time.gregorian]
+time.medium = [h]:[mm]:[ss] [a]
+time.short = [h]:[mm] [a]
+
+[typography]
+frenchspacing = yes
+hyphenrules =
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes =
+auxiliary = [ॄ]
+exemplarCharacters = [\u200C\u200D ़ ँ ंः ॐ अ आ इ ई उ ऊ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श स ह ऽ ा ि ी ु ू ृ ॅ े ै ॉ ो ौ ्]
+index =
+punctuation = [\\- ‑ , ; \\: ! ? . '‘’ \"“” ( ) \\[ \\] \\{ \\} ॰]
+
+[numbers]
+defaultNumberingSystem =
+minimumGroupingDigits =
+decimal =
+exponential =
+group =
+infinity =
+list =
+minusSign =
+nan =
+perMille =
+percentSign =
+plusSign =
+superscriptingExponent =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/za/babel-za.ini b/Master/texmf-dist/tex/generic/babel/locale/za/babel-za.ini
new file mode 100644
index 00000000000..d6935b150aa
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/za/babel-za.ini
@@ -0,0 +1,141 @@
+; This file is part of babel. For further details see:
+; https://www.ctan.org/pkg/babel
+; Data has been collected mainly from the following sources:
+; * Common Locale Data Repository (license Unicode):
+; http://cldr.unicode.org/
+; http://unicode.org/copyright.html
+
+[identification]
+charset = utf8
+version = 1.0
+date = 2025-02-01
+name.local = Vahcuengh
+name.english = Zhuang
+name.babel = zhuang
+tag.bcp47 = za
+language.tag.bcp47 = za
+tag.bcp47.likely = za-Latn-CN
+tag.opentype = ZHA
+script.name = Latin
+script.tag.bcp47 = Latn
+script.tag.opentype = latn
+level = 1
+encodings = T1 OT1 LY1
+derivate = no
+
+[captions]
+; xetex, luatex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[captions.licr]
+; pdftex
+preface =
+ref =
+abstract =
+bib =
+chapter =
+appendix =
+contents =
+listfigure =
+listtable =
+index =
+figure =
+table =
+part =
+encl =
+cc =
+headto =
+page =
+see =
+also =
+proof =
+glossary =
+
+[date.gregorian]
+date.long = [d][ ][MMMM] [y]
+date.short = [y]-[MM]-[dd]
+months.wide.1 = ndwenit
+months.wide.2 = ndwenngeih
+months.wide.3 = ndwensam
+months.wide.4 = ndwenseiq
+months.wide.5 = ndwenngux
+months.wide.6 = ndwenloeg
+months.wide.7 = ndwencaet
+months.wide.8 = ndwenbet
+months.wide.9 = ndwengouj
+months.wide.10 = ndwencib
+months.wide.11 = ndwencib’it
+months.wide.12 = ndwencibngeih
+
+[date.gregorian.licr]
+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 =
+
+[time.gregorian]
+time.medium = [HH]:[mm]:[ss]
+time.short = [HH]:[mm]
+
+[typography]
+frenchspacing = yes
+hyphenrules =
+lefthyphenmin =
+righthyphenmin =
+hyphenchar =
+prehyphenchar =
+posthyphenchar =
+exhyphenchar =
+preexhyphenchar =
+postexhyphenchar =
+hyphenationmin =
+
+[characters]
+delimiters.quotes =
+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 = [\\- ‐‑ – — , ; \\: ! ? . … '‘’ \"“” ( ) \\[ \\] § @ * / \\& # † ‡ ′ ″]
+
+[numbers]
+defaultNumberingSystem =
+minimumGroupingDigits =
+decimal =
+exponential =
+group =
+infinity =
+list =
+minusSign =
+nan =
+perMille =
+percentSign =
+plusSign =
+superscriptingExponent =
diff --git a/Master/texmf-dist/tex/generic/babel/locale/za/babel-zhuang.tex b/Master/texmf-dist/tex/generic/babel/locale/za/babel-zhuang.tex
new file mode 100644
index 00000000000..b4a862b7250
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/babel/locale/za/babel-zhuang.tex
@@ -0,0 +1,12 @@
+% This file is part of babel. For further details see:
+% https://www.ctan.org/pkg/babel
+\ifx\BabelBeforeIni\undefined
+ \PackageError{babel}%
+ {This file is a component of babel and cannot\MessageBreak
+ be loaded directly. I'll stop immediately}%
+ {Just use babel as documented.}%
+ \stop
+\fi
+\BabelBeforeIni{za}{%
+}
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/tex/generic/babel/luababel.def b/Master/texmf-dist/tex/generic/babel/luababel.def
index 34b0e699353..ea44591b6cb 100644
--- a/Master/texmf-dist/tex/generic/babel/luababel.def
+++ b/Master/texmf-dist/tex/generic/babel/luababel.def
@@ -494,7 +494,7 @@
local LOCALE = node.get_attribute(item,
Babel.attr_locale)
- local props = Babel.locale_props[LOCALE]
+ local props = Babel.locale_props[LOCALE] or {}
local class = Babel.cjk_class[item.char].c
diff --git a/Master/texmf-dist/tex/generic/babel/nil.ldf b/Master/texmf-dist/tex/generic/babel/nil.ldf
index a42e59d81ce..49cb6e7c519 100644
--- a/Master/texmf-dist/tex/generic/babel/nil.ldf
+++ b/Master/texmf-dist/tex/generic/babel/nil.ldf
@@ -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/01/25 v25.2 Nil language]
+\ProvidesLanguage{nil}[2025/02/02 v25.3 Nil language]
\LdfInit{nil}{datenil}
\ifx\l@nil\@undefined
\newlanguage\l@nil