diff options
Diffstat (limited to 'tex/context/base/lang-ini.mkiv')
-rw-r--r-- | tex/context/base/lang-ini.mkiv | 117 |
1 files changed, 99 insertions, 18 deletions
diff --git a/tex/context/base/lang-ini.mkiv b/tex/context/base/lang-ini.mkiv index 492128706..cfe3f84b8 100644 --- a/tex/context/base/lang-ini.mkiv +++ b/tex/context/base/lang-ini.mkiv @@ -86,51 +86,100 @@ \installcorenamespace{language} \installcorenamespace{languagelinked} +\def\currentusedlanguage{\currentlanguage} + \def\defaultlanguage#1% {\ifcsname\??language#1\s!default\endcsname - \expandafter\defaultlanguage\csname\??language#1\s!default\endcsname + %\expandafter\defaultlanguage\csname\??language#1\s!default\endcsname + \expandafter\defaultlanguage\lastnamedcs \else #1% \fi} +% \def\languageparameter#1% +% {\ifcsname\??language\currentlanguage#1\endcsname +% \csname\??language\currentlanguage#1\endcsname +% \else\ifcsname\??language\currentlanguage\s!default\endcsname +% \expandafter\specificlanguageparameter\csname\??language\currentlanguage\s!default\endcsname{#1}% +% \else\ifcsname\??language\s!default#1\endcsname +% \csname\??language\s!default#1\endcsname +% \fi\fi\fi} +% +% \def\specificlanguageparameter#1#2% +% {\ifcsname\??language#1#2\endcsname +% \csname\??language#1#2\endcsname +% \else\ifcsname\??language#1\s!default\endcsname +% \expandafter\specificlanguageparameter\csname\??language#1\s!default\endcsname{#2}% +% \else\ifcsname\??language\s!default#2\endcsname +% \csname\??language\s!default#2\endcsname +% \fi\fi\fi} +% +% \def\mainlanguageparameter#1% +% {\ifcsname\??language\currentmainlanguage#1\endcsname +% \csname\??language\currentmainlanguage#1\endcsname +% \else\ifcsname\??language\currentmainlanguage\s!default\endcsname +% \expandafter\specificlanguageparameter\csname\??language\currentmainlanguage\s!default\endcsname{#1}% +% \else\ifcsname\??language\s!default#1\endcsname +% \csname\??language\s!default#1\endcsname +% \fi\fi\fi} + \def\languageparameter#1% {\ifcsname\??language\currentlanguage#1\endcsname - \csname\??language\currentlanguage#1\endcsname + %\csname\??language\currentlanguage#1\endcsname + \expandafter\empty\lastnamedcs \else\ifcsname\??language\currentlanguage\s!default\endcsname - \expandafter\specificlanguageparameter\csname\??language\currentlanguage\s!default\endcsname{#1}% + %\expandafter\specificlanguageparameter\csname\??language\currentlanguage\s!default\endcsname{#1}% + \expandafter\specificlanguageparameter\lastnamedcs{#1}% \else\ifcsname\??language\s!default#1\endcsname - \csname\??language\s!default#1\endcsname + %\csname\??language\s!default#1\endcsname + \expandafter\empty\lastnamedcs \fi\fi\fi} \def\specificlanguageparameter#1#2% {\ifcsname\??language#1#2\endcsname - \csname\??language#1#2\endcsname + %\csname\??language#1#2\endcsname + \expandafter\empty\lastnamedcs \else\ifcsname\??language#1\s!default\endcsname - \expandafter\specificlanguageparameter\csname\??language#1\s!default\endcsname{#2}% + %\expandafter\specificlanguageparameter\csname\??language#1\s!default\endcsname{#2}% + \expandafter\specificlanguageparameter\lastnamedcs{#2}% \else\ifcsname\??language\s!default#2\endcsname - \csname\??language\s!default#2\endcsname + %\csname\??language\s!default#2\endcsname + \expandafter\empty\lastnamedcs \fi\fi\fi} \def\mainlanguageparameter#1% {\ifcsname\??language\currentmainlanguage#1\endcsname - \csname\??language\currentmainlanguage#1\endcsname + %\csname\??language\currentmainlanguage#1\endcsname + \expandafter\empty\lastnamedcs \else\ifcsname\??language\currentmainlanguage\s!default\endcsname - \expandafter\specificlanguageparameter\csname\??language\currentmainlanguage\s!default\endcsname{#1}% + %\expandafter\specificlanguageparameter\csname\??language\currentmainlanguage\s!default\endcsname{#1}% + \expandafter\specificlanguageparameter\lastnamedcs{#1}% \else\ifcsname\??language\s!default#1\endcsname - \csname\??language\s!default#1\endcsname + %\csname\??language\s!default#1\endcsname + \expandafter\empty\lastnamedcs \fi\fi\fi} -\def\currentusedlanguage{\currentlanguage} - \let\usedlanguageparameter\languageparameter +% \def\askedlanguageparameter#1% assumes \currentusedlanguage being set +% {\ifcsname\??language\currentusedlanguage#1\endcsname +% \csname\??language\currentusedlanguage#1\endcsname +% \else\ifcsname\??language\currentusedlanguage\s!default\endcsname +% \expandafter\specificlanguageparameter\csname\??language\currentusedlanguage\s!default\endcsname{#1}% +% \else\ifcsname\??language\s!default#1\endcsname +% \csname\??language\s!default#1\endcsname +% \fi\fi\fi} + \def\askedlanguageparameter#1% assumes \currentusedlanguage being set {\ifcsname\??language\currentusedlanguage#1\endcsname - \csname\??language\currentusedlanguage#1\endcsname + %\csname\??language\currentusedlanguage#1\endcsname + \expandafter\empty\lastnamedcs \else\ifcsname\??language\currentusedlanguage\s!default\endcsname - \expandafter\specificlanguageparameter\csname\??language\currentusedlanguage\s!default\endcsname{#1}% + %\expandafter\specificlanguageparameter\csname\??language\currentusedlanguage\s!default\endcsname{#1}% + \expandafter\specificlanguageparameter\lastnamedcs{#1}% \else\ifcsname\??language\s!default#1\endcsname - \csname\??language\s!default#1\endcsname + %\csname\??language\s!default#1\endcsname + \expandafter\empty\lastnamedcs \fi\fi\fi} \unexpanded\def\setlanguageparameter#1% @@ -223,7 +272,8 @@ \let\doiflanguageelse\doifelselanguage \def\reallanguagetag#1% - {\ifcsname\??languagelinked#1\endcsname\csname\??languagelinked#1\endcsname\else#1\fi} + %{\ifcsname\??languagelinked#1\endcsname\csname\??languagelinked#1\endcsname\else#1\fi} + {\ifcsname\??languagelinked#1\endcsname\lastnamedcs\else#1\fi} % \language[#1] gave unwanted side effect of loading language specifics @@ -546,10 +596,22 @@ %D Fast switcher +% \def\lang_basics_switch_asked +% {\ifx\askedlanguage\empty \else +% \ifcsname\??languagelinked\askedlanguage\endcsname +% \edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% +% \ifx\currentlanguage\askedlanguage \else +% \setcurrentlanguage\currentmainlanguage\askedlanguage +% \lang_basics_synchronize +% \fi +% \fi +% \fi} + \def\lang_basics_switch_asked {\ifx\askedlanguage\empty \else \ifcsname\??languagelinked\askedlanguage\endcsname - \edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% + %\edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% + \edef\askedlanguage{\lastnamedcs}% \ifx\currentlanguage\askedlanguage \else \setcurrentlanguage\currentmainlanguage\askedlanguage \lang_basics_synchronize @@ -574,11 +636,30 @@ \newcount\mainlanguagenumber +% \unexpanded\def\mainlanguage[#1]% +% {\edef\askedlanguage{#1}% +% \ifx\askedlanguage\empty \else +% \ifcsname\??languagelinked\askedlanguage\endcsname +% \edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% +% \ifx\currentlanguage\askedlanguage +% \ifx\currentmainlanguage\askedlanguage \else +% \setcurrentlanguage\askedlanguage\askedlanguage +% \lang_basics_synchronize +% \fi +% \else +% \setcurrentlanguage\askedlanguage\askedlanguage +% \lang_basics_synchronize +% \fi +% \fi +% \fi +% \mainlanguagenumber\normallanguage} + \unexpanded\def\mainlanguage[#1]% {\edef\askedlanguage{#1}% \ifx\askedlanguage\empty \else \ifcsname\??languagelinked\askedlanguage\endcsname - \edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% + %\edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% + \edef\askedlanguage{\lastnamedcs}% \ifx\currentlanguage\askedlanguage \ifx\currentmainlanguage\askedlanguage \else \setcurrentlanguage\askedlanguage\askedlanguage |