From 0a15d53f945a675ce82e9e38f353bbb4a9c9fcd4 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Fri, 22 Jun 2018 13:01:08 +0200 Subject: [PATCH] Locale: Use TeX language codes Using language codes in macro names is tricky, because \newlanguage uses \chardef, so we assign the code to a temporary counter first. --- ucw-algo.tex | 8 ++++---- ucw-lang-cs.tex | 8 ++++---- ucwmac.tex | 17 ++++++++++------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/ucw-algo.tex b/ucw-algo.tex index 420e31f..32f3c30 100644 --- a/ucw-algo.tex +++ b/ucw-algo.tex @@ -14,10 +14,10 @@ % \endalgo % Localized strings -\localedef{en}{alg:alg}{Algorithm} -\localedef{en}{alg:proc}{Procedure} -\localedef{en}{alg:in}{Input} -\localedef{en}{alg:out}{Output} +\localedef{0}{alg:alg}{Algorithm} +\localedef{0}{alg:proc}{Procedure} +\localedef{0}{alg:in}{Input} +\localedef{0}{alg:out}{Output} % Item indent \newdimen\algoindent diff --git a/ucw-lang-cs.tex b/ucw-lang-cs.tex index 4132548..2ca2508 100644 --- a/ucw-lang-cs.tex +++ b/ucw-lang-cs.tex @@ -4,7 +4,7 @@ \ucwdefmodule{lang-cs} -\localedef{cs}{alg:alg}{Algoritmus} -\localedef{cs}{alg:proc}{Procedura} -\localedef{cs}{alg:in}{Vstup} -\localedef{cs}{alg:out}{Výstup} +\localedef{\czech}{alg:alg}{Algoritmus} +\localedef{\czech}{alg:proc}{Procedura} +\localedef{\czech}{alg:in}{Vstup} +\localedef{\czech}{alg:out}{Výstup} diff --git a/ucwmac.tex b/ucwmac.tex index 61b2103..a42fe48 100644 --- a/ucwmac.tex +++ b/ucwmac.tex @@ -29,6 +29,11 @@ \directlua{kpse.init_prog("luatex", 600, "ljfour")} \fi +%%% Temporary registers %%% + +\newcount\tmpcount +\newdimen\tmpdimen + %%% Auxiliary macros %%% % Prepend/append #2 to the definition of #1 @@ -347,18 +352,16 @@ %%% Localization %%% -% Current language -\def\localelang{en} - % Define a new localized string: \localedef{language}{identifier}{message} -\def\localedef#1#2{\expandafter\def\csname loc:#1:#2\endcsname} +% (we use \language codes to identify languages) +\def\localedef#1#2{\tmpcount=#1\expandafter\def\csname loc:\the\tmpcount:#2\endcsname} % Expand a localized string in the current language: \localemsg{identifier} \def\localestr#1{% - \ifcsname loc:\localelang:#1\endcsname - \csname loc:\localelang:#1\endcsname + \ifcsname loc:\the\language:#1\endcsname + \csname loc:\the\language:#1\endcsname \else - \ucwwarn{Localized string #1 not defined in language \localelang}% + \ucwwarn{Localized string #1 not defined in language \the\language}% ???% \fi } -- 2.39.2