summaryrefslogtreecommitdiff
path: root/tex/context/base/lang-ini.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/lang-ini.mkiv')
-rw-r--r--tex/context/base/lang-ini.mkiv117
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