summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel/babel.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-06-28 20:38:19 +0000
committerKarl Berry <karl@freefriends.org>2021-06-28 20:38:19 +0000
commita977864eac6d306a206d3c4535fe0e397a10ab4a (patch)
treeeef32e46d36c0092e1062db037e8000e4862fc26 /Master/texmf-dist/tex/generic/babel/babel.def
parent472bc9cb1b41fa04197e7684ac38bb1ea6550ee0 (diff)
babel (28jun21)
git-svn-id: svn://tug.org/texlive/trunk@59740 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.def')
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def251
1 files changed, 155 insertions, 96 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 4424be14a61..9797455fe42 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -12,6 +12,7 @@
%% any individual authors listed elsewhere in this file.
%% All rights reserved.
%%
+%%
%% This file is part of the Babel system.
%% --------------------------------------
%%
@@ -26,7 +27,6 @@
%% This work has the LPPL maintenance status "maintained".
%%
%% The Current Maintainer of this work is Javier Bezos.
-
%%
%% The list of derived (unpacked) files belonging to the distribution
%% and covered by LPPL is defined by the unpacking scripts (with
@@ -40,7 +40,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2021/06/02 3.60 Babel common definitions]
+\ProvidesFile{babel.def}[2021/06/28 3.61 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
% == Code for plain ==
\def\@empty{}
@@ -398,8 +398,8 @@
\fi
\countdef\last@language=19 % TODO. why? remove?
\def\addlanguage{\csname newlanguage\endcsname}
-\def\bbl@version{3.60}
-\def\bbl@date{2021/06/02}
+\def\bbl@version{3.61}
+\def\bbl@date{2021/06/28}
\def\adddialect#1#2{%
\global\chardef#1#2\relax
\bbl@usehooks{adddialect}{{#1}{#2}}%
@@ -587,13 +587,14 @@
\expandafter\ifx\csname date\languagename\endcsname\relax\else
\if@filesw
\ifx\babel@aux\@gobbletwo\else % Set if single in the first, redundant
- % \bbl@savelastskip
+ \bbl@savelastskip
\protected@write\@auxout{}{\string\babel@aux{\bbl@auxname}{}}%
- % \bbl@restorelastskip
+ \bbl@restorelastskip
\fi
\bbl@usehooks{write}{}%
\fi
\fi}
+\let\bbl@restorelastskip\relax
\def\bbl@savelastskip{%
\let\bbl@restorelastskip\relax
\ifvmode
@@ -1093,6 +1094,16 @@
\else
\expandafter\@firstofone
\fi}
+\def\bbl@extras@wrap#1#2#3{% 1:in-test, 2:before, 3:after
+ \toks@\expandafter\expandafter\expandafter{%
+ \csname extras\languagename\endcsname}%
+ \bbl@exp{\\\in@{#1}{\the\toks@}}%
+ \ifin@\else
+ \@temptokena{#2}%
+ \edef\bbl@tempc{\the\@temptokena\the\toks@}%
+ \toks@\expandafter{\bbl@tempc#3}%
+ \expandafter\edef\csname extras\languagename\endcsname{\the\toks@}%
+ \fi}
\bbl@trace{Compatibility with language.def}
\ifx\bbl@languages\@undefined
\ifx\directlua\@undefined
@@ -1363,7 +1374,7 @@
\def\@initiate@active@char#1#2#3{%
\bbl@csarg\edef{oricat@#2}{\catcode`#2=\the\catcode`#2\relax}%
\ifx#1\@undefined
- \bbl@csarg\edef{oridef@#2}{\let\noexpand#1\noexpand\@undefined}%
+ \bbl@csarg\def{oridef@#2}{\def#1{\active@prefix#1\@undefined}}%
\else
\bbl@csarg\let{oridef@@#2}#1%
\bbl@csarg\edef{oridef@#2}{%
@@ -1541,8 +1552,8 @@
#1%
\bbl@activate{#2}}%
{\bbl@error
- {Cannot declare a shorthand turned off (\string#2)}
- {Sorry, but you cannot use shorthands which have been\\%
+ {I can't declare a shorthand turned off (\string#2)}
+ {Sorry, but you can't use shorthands which have been\\%
turned off in the package options}}}
\def\user@language@group{user@\language@group}
\def\bbl@set@user@generic#1#2{%
@@ -1767,6 +1778,29 @@
\bbl@elt{\string.}\@m{3000}\bbl@elt{\string?}\@m{3000}%
\bbl@elt{\string!}\@m{3000}\bbl@elt{\string:}\@m{2000}%
\bbl@elt{\string;}\@m{1500}\bbl@elt{\string,}\@m{1250}}
+\def\bbl@pre@fs{%
+ \def\bbl@elt##1##2##3{\sfcode`##1=\the\sfcode`##1\relax}%
+ \edef\bbl@save@sfcodes{\bbl@fs@chars}}%
+\def\bbl@post@fs{%
+ \bbl@save@sfcodes
+ \edef\bbl@tempa{\bbl@cl{frspc}}%
+ \edef\bbl@tempa{\expandafter\@car\bbl@tempa\@nil}%
+ \if u\bbl@tempa % do nothing
+ \else\if n\bbl@tempa % non french
+ \def\bbl@elt##1##2##3{%
+ \ifnum\sfcode`##1=##2\relax
+ \babel@savevariable{\sfcode`##1}%
+ \sfcode`##1=##3\relax
+ \fi}%
+ \bbl@fs@chars
+ \else\if y\bbl@tempa % french
+ \def\bbl@elt##1##2##3{%
+ \ifnum\sfcode`##1=##3\relax
+ \babel@savevariable{\sfcode`##1}%
+ \sfcode`##1=##2\relax
+ \fi}%
+ \bbl@fs@chars
+ \fi\fi\fi}
\bbl@trace{Short tags}
\def\babeltags#1{%
\edef\bbl@tempa{\zap@space#1 \@empty}%
@@ -2347,13 +2381,14 @@
\input xebabel.def
\fi
\bbl@trace{Creating languages and reading ini files}
+\let\bbl@extend@ini\@gobble
\newcommand\babelprovide[2][]{%
\let\bbl@savelangname\languagename
\edef\bbl@savelocaleid{\the\localeid}%
% Set name and locale id
\edef\languagename{#2}%
- % \global\@namedef{bbl@lcname@#2}{#2}%
\bbl@id@assign
+ % Initialize keys
\let\bbl@KVP@captions\@nil
\let\bbl@KVP@date\@nil
\let\bbl@KVP@import\@nil
@@ -2376,27 +2411,34 @@
\let\bbl@KVP@labels\@nil
\bbl@csarg\let{KVP@labels*}\@nil
\global\let\bbl@inidata\@empty
+ \global\let\bbl@extend@ini\@gobble
+ \gdef\bbl@key@list{;}%
\bbl@forkv{#1}{% TODO - error handling
\in@{/}{##1}%
\ifin@
+ \global\let\bbl@extend@ini\bbl@extend@ini@aux
\bbl@renewinikey##1\@@{##2}%
\else
\bbl@csarg\def{KVP@##1}{##2}%
\fi}%
+ \chardef\bbl@howloaded=% 0:none; 1:ldf without ini; 2:ini
+ \bbl@ifunset{date#2}\z@{\bbl@ifunset{bbl@llevel@#2}\@ne\tw@}%
% == init ==
\ifx\bbl@screset\@undefined
\bbl@ldfinit
\fi
% ==
\let\bbl@lbkflag\relax % \@empty = do setup linebreak
- \bbl@ifunset{date#2}%
- {\let\bbl@lbkflag\@empty}% new
- {\ifx\bbl@KVP@hyphenrules\@nil\else
- \let\bbl@lbkflag\@empty
- \fi
- \ifx\bbl@KVP@import\@nil\else
+ \ifcase\bbl@howloaded
+ \let\bbl@lbkflag\@empty % new
+ \else
+ \ifx\bbl@KVP@hyphenrules\@nil\else
\let\bbl@lbkflag\@empty
- \fi}%
+ \fi
+ \ifx\bbl@KVP@import\@nil\else
+ \let\bbl@lbkflag\@empty
+ \fi
+ \fi
% == import, captions ==
\ifx\bbl@KVP@import\@nil\else
\bbl@exp{\\\bbl@ifblank{\bbl@KVP@import}}%
@@ -2418,13 +2460,19 @@
\bbl@replace\bbl@KVP@transforms{ }{,}%
\fi
% Load ini
- \bbl@ifunset{date#2}%
- {\bbl@provide@new{#2}}%
- {\bbl@ifblank{#1}%
+ \ifcase\bbl@howloaded
+ \bbl@provide@new{#2}%
+ \else
+ \bbl@ifblank{#1}%
{}% With \bbl@load@basic below
- {\bbl@provide@renew{#2}}}%
+ {\bbl@provide@renew{#2}}%
+ \fi
% Post tasks
% ----------
+ % == subsequent calls after the first provide for a locale ==
+ \ifx\bbl@inidata\@empty\else
+ \bbl@extend@ini{#2}%
+ \fi
% == ensure captions ==
\ifx\bbl@KVP@captions\@nil\else
\bbl@ifunset{bbl@extracaps@#2}%
@@ -2543,7 +2591,7 @@
\bbl@csarg\edef{intsp@#2}{\bbl@KVP@intraspace}%
\fi
\bbl@provide@intraspace
- %
+ % == Line breaking: justification ==
\ifx\bbl@KVP@justification\@nil\else
\let\bbl@KVP@linebreaking\bbl@KVP@justification
\fi
@@ -2557,7 +2605,7 @@
\bbl@xin@{/e}{/\bbl@cl{lnbrk}}%
\ifin@\else\bbl@xin@{/k}{/\bbl@cl{lnbrk}}\fi
\ifin@\bbl@arabicjust\fi
- % == Line breaking: hyphenate.other.locale/.script==
+ % == Line breaking: hyphenate.other.(locale|script) ==
\ifx\bbl@lbkflag\@empty
\bbl@ifunset{bbl@hyotl@\languagename}{}%
{\bbl@csarg\bbl@replace{hyotl@\languagename}{ }{,}%
@@ -2642,25 +2690,21 @@
% restored correctly when exiting the language, so we ignore
% this change with the \bbl@alph@saved trick.
\ifx\bbl@KVP@alph\@nil\else
- \toks@\expandafter\expandafter\expandafter{%
- \csname extras\languagename\endcsname}%
+ \bbl@extras@wrap{\\\bbl@alph@saved}%
+ {\let\bbl@alph@saved\@alph}%
+ {\let\@alph\bbl@alph@saved
+ \babel@save\@alph}%
\bbl@exp{%
- \def\<extras\languagename>{%
- \let\\\bbl@alph@saved\\\@alph
- \the\toks@
- \let\\\@alph\\\bbl@alph@saved
- \\\babel@save\\\@alph
+ \\\bbl@add\<extras\languagename>{%
\let\\\@alph\<bbl@cntr@\bbl@KVP@alph @\languagename>}}%
\fi
\ifx\bbl@KVP@Alph\@nil\else
- \toks@\expandafter\expandafter\expandafter{%
- \csname extras\languagename\endcsname}%
+ \bbl@extras@wrap{\\\bbl@Alph@saved}%
+ {\let\bbl@Alph@saved\@Alph}%
+ {\let\@Alph\bbl@Alph@saved
+ \babel@save\@Alph}%
\bbl@exp{%
- \def\<extras\languagename>{%
- \let\\\bbl@Alph@saved\\\@Alph
- \the\toks@
- \let\\\@Alph\\\bbl@Alph@saved
- \\\babel@save\\\@Alph
+ \\\bbl@add\<extras\languagename>{%
\let\\\@Alph\<bbl@cntr@\bbl@KVP@Alph @\languagename>}}%
\fi
% == require.babel in ini ==
@@ -2674,8 +2718,17 @@
\bbl@input@texini{\bbl@cs{rqtex@\languagename}}%
\catcode`\@=\atcatcode
\let\atcatcode\relax
+ \global\bbl@csarg\let{rqtex@\languagename}\relax
\fi}%
\fi
+ % == frenchspacing ==
+ \ifcase\bbl@howloaded\in@true\else\in@false\fi
+ \ifin@\else\bbl@xin@{typography/frenchspacing}{\bbl@key@list}\fi
+ \ifin@
+ \bbl@extras@wrap{\\\bbl@pre@fs}%
+ {\bbl@pre@fs}%
+ {\bbl@post@fs}%
+ \fi
% == Release saved transforms ==
\bbl@release@transforms\relax % \relax closes the last item.
% == main ==
@@ -2719,36 +2772,11 @@
\gdef\<#1hyphenmins>{%
{\bbl@ifunset{bbl@lfthm@#1}{2}{\bbl@cs{lfthm@#1}}}%
{\bbl@ifunset{bbl@rgthm@#1}{3}{\bbl@cs{rgthm@#1}}}}}%
- % == hyphenrules ==
+ % == hyphenrules (also in renew) ==
\bbl@provide@hyphens{#1}%
- % == frenchspacing == (only if new)
- \bbl@ifunset{bbl@frspc@#1}{}%
- {\edef\bbl@tempa{\bbl@cl{frspc}}%
- \edef\bbl@tempa{\expandafter\@car\bbl@tempa\@nil}%
- \if u\bbl@tempa % do nothing
- \else\if n\bbl@tempa % non french
- \expandafter\bbl@add\csname extras#1\endcsname{%
- \let\bbl@elt\bbl@fs@elt@i
- \bbl@fs@chars}%
- \else\if y\bbl@tempa % french
- \expandafter\bbl@add\csname extras#1\endcsname{%
- \let\bbl@elt\bbl@fs@elt@ii
- \bbl@fs@chars}%
- \fi\fi\fi}%
- %
\ifx\bbl@KVP@main\@nil\else
\expandafter\main@language\expandafter{#1}%
\fi}
-\def\bbl@fs@elt@i#1#2#3{%
- \ifnum\sfcode`#1=#2\relax
- \babel@savevariable{\sfcode`#1}%
- \sfcode`#1=#3\relax
- \fi}%
-\def\bbl@fs@elt@ii#1#2#3{%
- \ifnum\sfcode`#1=#3\relax
- \babel@savevariable{\sfcode`#1}%
- \sfcode`#1=#2\relax
- \fi}%
\def\bbl@provide@renew#1{%
\ifx\bbl@KVP@captions\@nil\else
\StartBabelCommands*{#1}{captions}%
@@ -2761,16 +2789,16 @@
\bbl@savedate
\EndBabelCommands
\fi
- % == hyphenrules ==
+ % == hyphenrules (also in new) ==
\ifx\bbl@lbkflag\@empty
\bbl@provide@hyphens{#1}%
\fi}
\def\bbl@load@basic#1{%
- \bbl@ifunset{bbl@inidata@\languagename}{}%
- {\getlocaleproperty\bbl@tempa{\languagename}{identification/load.level}%
- \ifcase\bbl@tempa
- \bbl@csarg\let{lname@\languagename}\relax
- \fi}%
+ \ifcase\bbl@howloaded\or\or
+ \ifcase\csname bbl@llevel@\languagename\endcsname
+ \bbl@csarg\let{lname@\languagename}\relax
+ \fi
+ \fi
\bbl@ifunset{bbl@lname@#1}%
{\def\BabelBeforeIni##1##2{%
\begingroup
@@ -2834,16 +2862,17 @@
\bbl@esphack}
\def\bbl@iniline#1\bbl@iniline{%
\@ifnextchar[\bbl@inisect{\@ifnextchar;\bbl@iniskip\bbl@inistore}#1\@@}% ]
-\def\bbl@inisect[#1]#2\@@{\def\bbl@section{#1}}%
+\def\bbl@inisect[#1]#2\@@{\def\bbl@section{#1}}
\def\bbl@iniskip#1\@@{}% if starts with ;
\def\bbl@inistore#1=#2\@@{% full (default)
\bbl@trim@def\bbl@tempa{#1}%
\bbl@trim\toks@{#2}%
- \bbl@ifunset{bbl@KVP@\bbl@section/\bbl@tempa}%
- {\bbl@exp{%
+ \bbl@xin@{;\bbl@section/\bbl@tempa;}{\bbl@key@list}%
+ \ifin@\else
+ \bbl@exp{%
\\\g@addto@macro\\\bbl@inidata{%
- \\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}}%
- {}}%
+ \\\bbl@elt{\bbl@section}{\bbl@tempa}{\the\toks@}}}%
+ \fi}
\def\bbl@inistore@min#1=#2\@@{% minimal (maybe set in \bbl@read@ini)
\bbl@trim@def\bbl@tempa{#1}%
\bbl@trim\toks@{#2}%
@@ -2851,11 +2880,12 @@
\ifin@
\bbl@exp{\\\g@addto@macro\\\bbl@inidata{%
\\\bbl@elt{identification}{\bbl@tempa}{\the\toks@}}}%
- \fi}%
+ \fi}
\ifx\bbl@readstream\@undefined
\csname newread\endcsname\bbl@readstream
\fi
\def\bbl@read@ini#1#2{%
+ \global\let\bbl@extend@ini\@gobble
\openin\bbl@readstream=babel-#1.ini
\ifeof\bbl@readstream
\bbl@error
@@ -2864,7 +2894,7 @@
is not complete.}%
{Fix the name or reinstall babel.}%
\else
- % Store ini data in \bbl@inidata
+ % == Store ini data in \bbl@inidata ==
\catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\&=12
\catcode`\;=12 \catcode`\|=12 \catcode`\%=14 \catcode`\-=12
\bbl@info{Importing
@@ -2887,28 +2917,56 @@
\expandafter\bbl@iniline\bbl@line\bbl@iniline
\fi
\repeat
- % Process stored data
+ % == Process stored data ==
\bbl@csarg\xdef{lini@\languagename}{#1}%
- \let\bbl@savestrings\@empty
- \let\bbl@savetoday\@empty
- \let\bbl@savedate\@empty
- \def\bbl@elt##1##2##3{%
- \def\bbl@section{##1}%
- \in@{=date.}{=##1}% Find a better place
- \ifin@
- \bbl@ini@calendar{##1}%
- \fi
- \global\bbl@csarg\let{bbl@KVP@##1/##2}\relax
- \bbl@ifunset{bbl@inikv@##1}{}%
- {\csname bbl@inikv@##1\endcsname{##2}{##3}}}%
- \bbl@inidata
- % 'Export' data
+ \bbl@read@ini@aux
+ % == 'Export' data ==
\bbl@ini@exports{#2}%
\global\bbl@csarg\let{inidata@\languagename}\bbl@inidata
\global\let\bbl@inidata\@empty
\bbl@exp{\\\bbl@add@list\\\bbl@ini@loaded{\languagename}}%
\bbl@toglobal\bbl@ini@loaded
\fi}
+\def\bbl@read@ini@aux{%
+ \let\bbl@savestrings\@empty
+ \let\bbl@savetoday\@empty
+ \let\bbl@savedate\@empty
+ \def\bbl@elt##1##2##3{%
+ \def\bbl@section{##1}%
+ \in@{=date.}{=##1}% Find a better place
+ \ifin@
+ \bbl@ini@calendar{##1}%
+ \fi
+ \bbl@ifunset{bbl@inikv@##1}{}%
+ {\csname bbl@inikv@##1\endcsname{##2}{##3}}}%
+ \bbl@inidata}
+\def\bbl@extend@ini@aux#1{%
+ \bbl@startcommands*{#1}{captions}%
+ % Activate captions/... and modify exports
+ \bbl@csarg\def{inikv@captions.licr}##1##2{%
+ \setlocalecaption{#1}{##1}{##2}}%
+ \def\bbl@inikv@captions##1##2{%
+ \bbl@ini@captions@aux{##1}{##2}}%
+ \def\bbl@stringdef##1##2{\gdef##1{##2}}%
+ \def\bbl@exportkey##1##2##3{%
+ \bbl@ifunset{bbl@@kv@##2}{}%
+ {\expandafter\ifx\csname bbl@@kv@##2\endcsname\@empty\else
+ \bbl@exp{\global\let\<bbl@##1@\languagename>\<bbl@@kv@##2>}%
+ \fi}}%
+ % As with \bbl@read@ini, but with some changes
+ \bbl@read@ini@aux
+ \bbl@ini@exports\tw@
+ % Update inidata@lang by pretending the ini is read.
+ \def\bbl@elt##1##2##3{%
+ \def\bbl@section{##1}%
+ \bbl@iniline##2=##3\bbl@iniline}%
+ \csname bbl@inidata@#1\endcsname
+ \global\bbl@csarg\let{inidata@#1}\bbl@inidata
+ \StartBabelCommands*{#1}{date}% And from the import stuff
+ \def\bbl@stringdef##1##2{\gdef##1{##2}}%
+ \bbl@savetoday
+ \bbl@savedate
+ \bbl@endcommands}
\def\bbl@ini@calendar#1{%
\lowercase{\def\bbl@tempa{=#1=}}%
\bbl@replace\bbl@tempa{=date.gregorian}{}%
@@ -2932,7 +2990,7 @@
\edef\bbl@tempb{\zap@space #2 \@empty}% key
\bbl@trim\toks@{#3}% value
\bbl@exp{%
- \global\let\<bbl@KVP@\bbl@tempa/\bbl@tempb>\\\@empty % just a flag
+ \edef\\\bbl@key@list{\bbl@key@list \bbl@tempa/\bbl@tempb;}%
\\\g@addto@macro\\\bbl@inidata{%
\\\bbl@elt{\bbl@tempa}{\bbl@tempb}{\the\toks@}}}}%
\def\bbl@exportkey#1#2#3{%
@@ -2960,6 +3018,7 @@
\or
\bbl@iniwarning{.xelatex}%
\fi%
+ \bbl@exportkey{llevel}{identification.load.level}{}%
\bbl@exportkey{elname}{identification.name.english}{}%
\bbl@exp{\\\bbl@exportkey{lname}{identification.name.opentype}%
{\csname bbl@elname@\languagename\endcsname}}%
@@ -2985,9 +3044,9 @@
\bbl@exportkey{hyotl}{typography.hyphenate.other.locale}{}%
\bbl@exportkey{hyots}{typography.hyphenate.other.script}{}%
\bbl@exportkey{intsp}{typography.intraspace}{}%
+ \bbl@exportkey{frspc}{typography.frenchspacing}{u}%
\bbl@exportkey{chrng}{characters.ranges}{}%
\bbl@exportkey{dgnat}{numbers.digits.native}{}%
- \bbl@exportkey{frspc}{typography.frenchspacing}{u}%
\ifnum#1=\tw@ % only (re)new
\bbl@exportkey{rqtex}{identification.require.babel}{}%
\bbl@toglobal\bbl@savetoday
@@ -3121,6 +3180,7 @@
\bbl@replace\bbl@toreplace{[}{\csname the}%
\bbl@replace\bbl@toreplace{]}{\endcsname{}}%
\toks@\expandafter{\bbl@toreplace}%
+ % TODO. Execute only once:
\bbl@exp{%
\\\bbl@add\<extras\languagename>{%
\\\babel@save\<labelenum\romannumeral\bbl@tempa>%
@@ -3207,9 +3267,7 @@
\bbl@trim@def\bbl@toreplace{#5}%
\bbl@TG@@date
\bbl@ifunset{bbl@date@\languagename @}%
- {\global\bbl@csarg\let{date@\languagename @}\bbl@toreplace
- % TODO. Move to a better place.
- \bbl@exp{%
+ {\bbl@exp{% TODO. Move to a better place.
\gdef\<\languagename date>{\\\protect\<\languagename date >}%
\gdef\<\languagename date >####1####2####3{%
\\\bbl@usedategrouptrue
@@ -3220,6 +3278,7 @@
\<\languagename date>%
{\\\the\year}{\\\the\month}{\\\the\day}}}}}%
{}%
+ \global\bbl@csarg\let{date@\languagename @}\bbl@toreplace
\ifx\bbl@tempb\@empty\else
\global\bbl@csarg\let{date@\languagename @\bbl@tempb}\bbl@toreplace
\fi}%