diff options
author | Hans Hagen <pragma@wxs.nl> | 2020-11-23 19:48:34 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2020-11-23 19:48:34 +0100 |
commit | 18499e46a49b8ccf4346686d1cf626ada33935b8 (patch) | |
tree | bd0ae7b601b323e20954c10c07598637d9403e00 /tex/context/base/mkiv/lang-lab.mkxl | |
parent | 4b089e589d39346a66a27d04f9857fe16e4b7b41 (diff) | |
download | context-18499e46a49b8ccf4346686d1cf626ada33935b8.tar.gz |
2020-11-23 18:39:00
Diffstat (limited to 'tex/context/base/mkiv/lang-lab.mkxl')
-rw-r--r-- | tex/context/base/mkiv/lang-lab.mkxl | 364 |
1 files changed, 0 insertions, 364 deletions
diff --git a/tex/context/base/mkiv/lang-lab.mkxl b/tex/context/base/mkiv/lang-lab.mkxl deleted file mode 100644 index 8968631a0..000000000 --- a/tex/context/base/mkiv/lang-lab.mkxl +++ /dev/null @@ -1,364 +0,0 @@ -%D \module -%D [ file=lang-lab, -%D version=1997.08.27, -%D title=\CONTEXT\ Language Macros, -%D subtitle=Labels, -%D author=Hans Hagen / Tobias Burnus, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -\writestatus{loading}{ConTeXt Language Macros / Labels} - -\registerctxluafile{lang-lab}{} -\registerctxluafile{lang-txt}{} - -\unprotect - -%D Left-overs: - -\ifdefined\sixperemspace \else - \permanent\def\sixperemspace{\normalUchar"2006} -\fi - -%D In this module we deal with language dependant labels and prefixes, like in {\em -%D Figure~12} and {\em Chapter 1}. In this file we set the default values. Users can -%D easily overrule these. -%D -%D This module is dedicated to the grandfather of Tobias Burnus, who's extensive -%D languages oriented library helped us a lot in finding the right translations. All -%D those labels are collected in files that reflect their common ancestor. -%D -%D Not all languages can be satisfied with the labeling mechanism as provided here. -%D Chinese for instance put a label in front as well as after a part number. This is -%D why the current implementation of labels supports two labels too. - -%D \macros -%D {setupheadtext, setuplabeltext} -%D -%D First we present some macros that deal with what we will call head and label -%D texts. Such texts are defines by: -%D -%D \showsetup{setupheadtext} -%D \showsetup{setuplabeltext} -%D -%D A regular \CONTEXT\ stores some 1500 labels at most. -%D -%D These commands accept all kind of inputs: -%D -%D \starttyping -%D \setuplabeltext [language] [labellabel=text] -%D \setuplabeltext [language] [labellabel=text,labellabel=text,...] -%D \setuplabeltext [labellabel=text] -%D \setuplabeltext [labellabel=text,labellabel=text,...] -%D \stoptyping -%D -%D The last two cases concern the current language. - -\installcorenamespace{label} - -\let\currentlabelcategory\empty - -\permanent\tolerant\protected\def\definelabelclass[#1]#*[#2]% - {\normalexpanded - {\lang_labels_define_class_indeed - {#1}% - {\ifchknum#2\or#2\else\zerocount\fi}% - \expandafter\noexpand\csname lang_labels_#1_text_1\endcsname - \expandafter\noexpand\csname #1language\endcsname - \expandafter\noexpand\csname lang_labels_#1_text_2\endcsname - \expandafter\noexpand\csname left#1text\endcsname - \expandafter\noexpand\csname right#1text\endcsname - \expandafter\noexpand\csname #1texts\endcsname - \expandafter\noexpand\csname #1text\endcsname}} - -% hm, not interfaced - -\let\thetextprefix\empty - -\protected\def\lang_labels_define_class_indeed#1#2#3#4#5#6#7#8#9% - {\permanent\instance\setuvalue {setup#1text}{\protecttextprefixes#2\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}% - \permanent\instance\setuvalue{preset#1text}{\protecttextprefixes 1\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}% - \permanent\instance\setuvalue {copy#1text}{\protecttextprefixes 1\def\currenttextprefixclass{#1}\lang_labels_text_prefix_copy }% - \permanent\instance\setuvalue {start#1text}{\protecttextprefixes 1\def\currenttextprefixclass{#1}\lang_labels_text_prefix_start[#1]}% - \permanent\instance\letvalue {stop#1text}\relax - \permanent\instance\def#4{\reallanguagetag{\defaultlanguage\currentmainlanguage}}% - \ifnum#2=\plustwo % used for math and tags - \instance\def#3{#5#4}% - \instance\def#5##1##2% ##1=language - {\ifcsname\??label\currentlabelcategory#1:##1:##2\endcsname - \lastnamedcs - \orelse\ifcsname\??label#1:##1:##2\endcsname - \lastnamedcs - \orelse\ifcsname\??language##1\s!default\endcsname - \expandafter#5\lastnamedcs{##2}% - \orelse\ifcsname\??label\currentlabelcategory#1:##2\endcsname - \lastnamedcs - \orelse\ifcsname\??label#1:##2\endcsname - \lastnamedcs - \orelse\ifcsname\??label\currentlabelcategory#1:\s!en:##2\endcsname - \lastnamedcs - \orelse\ifcsname\??label#1:\s!en:##2\endcsname - \lastnamedcs - \else - ##2% - \fi}% - \permanent\instance\let#6\gobbleoneargument - \permanent\instance\let#7\gobbleoneargument - \permanent\instance\let#8\gobbletwoarguments - \permanent\instance\let#9#3% - \else - \instance\protected\def#3{#5#4}% - \instance\protected\def#5##1##2% - {\ifcsname\??label#1:##1:##2\endcsname - \enforced\expandafter\let\expandafter\thetextprefix\lastnamedcs - \orelse\ifcsname\??language#4\s!default\endcsname - \expandafter#5\lastnamedcs{##2}% - \orelse\ifcsname\??label#1:##2\endcsname - \enforced\expandafter\let\expandafter\thetextprefix\lastnamedcs - \orelse\ifcsname\??label#1:\s!en:##2\endcsname - \enforced\expandafter\let\expandafter\thetextprefix\lastnamedcs - \else - \enforced\let\thetextprefix\dummytextprefix - \fi}% - \permanent\instance\protected\def#6##1{#3{##1}\expandafter\flushleftlabelclass \thetextprefix}% - \permanent\instance\protected\def#7##1{#3{##1}\expandafter\flushrightlabelclass\thetextprefix}% - \permanent\instance\protected\def#8##1{#3{##1}\expandafter\flushbothlabelclass \thetextprefix}% #2 - \permanent\instance\protected\def#9##1{#3{##1}\expandafter\flushleftlabelclass \thetextprefix}% - \fi - \appendtoks - \enforced\permanent\instance\let#6\firstofoneargument % to be checked - \enforced\permanent\instance\let#7\firstofoneargument % to be checked - \enforced\permanent\instance\let#8\firstofoneargument % to be checked - \enforced\permanent\instance\let#9\firstofoneargument % to be checked - \to \everysimplifycommands} - -% why not lang_* ? - -\let\flushleftlabelclass \firstoftwoarguments -\let\flushrightlabelclass\secondoftwoarguments - -\permanent\def\flushbothlabelclass#1#2#3{#1#3#2} - -\permanent\def\dummytextprefix{\empty\empty} - -%D \macros -%D {headtext, labeltext, leftlabeltext, rightlabeltext, labeltexts} -%D -%D Once defined, head and label texts can be called upon using: -%D -%D \showsetup{headtext} -%D \showsetup{labeltext} -%D -%D \macros -%D {presetheadtext,presetlabeltext} -%D -%D These macros enable us to automatically define head and label texts without -%D replacing predefined ones. They are internal macros. - -\appendtoks \enforced\let\labellanguage\currentlanguage \to \everycurrentdate - -\newconstant\protecttextprefixes - -\let\currenttextprefixtag \s!unknown -\let\currenttextprefixclass\s!unknown - -\tolerant\def\lang_labels_text_prefix_start[#1]#*[#2]#*[#3]% class language name - {\ifarguments\or\or - \edef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}% - \edef\currenttextprefixname{#2}% - \else - \edef\currenttextprefixtag{\reallanguagetag{#2}}% - \edef\currenttextprefixname{#3}% - \fi - \grabuntil{stop#1text}\lang_labels_text_prefix_start_indeed} - -\def\lang_labels_text_prefix_start_indeed#1% text (not special checking done here yet, only for long texts anyway) - {\edefcsname\??label\currenttextprefixclass:\currenttextprefixtag:\currenttextprefixname\endcsname{{\clf_strip{#1}}\empty}} - -\tolerant\def\lang_labels_text_prefix_setup[#1]#*[#2]% - {\ifarguments\or - \edef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}% - \processcommalist[#1]\lang_labels_text_prefix_setup_indeed - \else - \edef\currenttextprefixtag{\reallanguagetag{#1}}% - \processcommalist[#2]\lang_labels_text_prefix_setup_indeed - \fi} - -\def\lang_labels_text_prefix_setup_indeed#1% - {\lang_labels_text_prefix_assign[#1]} - -\def\lang_labels_text_prefix_assign[#1=#2]% - {\lang_labels_text_prefix_assign_indeed{#1}[#2,,]} - -\def\lang_labels_text_prefix_assign_indeed#1% - {\ifcase\protecttextprefixes - % no checking - \expandafter\lang_labels_text_prefix_assign_yes - \or - % checking - \ifcsname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname - \expandafter\expandafter\expandafter\lang_labels_text_prefix_assign_nop - \else - \expandafter\expandafter\expandafter\lang_labels_text_prefix_assign_yes - \fi - \or - % simple assignment (a bit overkill but it fits in the whole) - \expandafter\lang_labels_text_prefix_assign_dumb - \fi{#1}} - -\let\m_lang_labels_left \empty -\let\m_lang_labels_right\empty - -\def\lang_labels_text_prefix_assign_yes#1[#2,#3,#4]% - {\def\m_lang_labels_left {#2}% no longer an edef ... else \Word undefined expansion issues - \def\m_lang_labels_right{#3}% no longer an edef ... else \Word undefined expansion issues - \defcsname\??label\currenttextprefixclass:\currenttextprefixtag:#1% - \ifempty\m_lang_labels_right - \ifempty\m_lang_labels_left - \endcsname{\empty\empty}% - \else - \endcsname{{#2}\empty}% - \fi - \else - \endcsname{{#2}{#3}}% - \fi} - -\def\lang_labels_text_prefix_assign_nop#1[#2]% - {} - -\def\lang_labels_text_prefix_assign_dumb#1[#2,#3]% - {\defcsname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname{#2}} - -\permanent\protected\def\setlabeltextpair#1#2#3#4#5% a fast one for usage at the Lua end - {%\writestatus{!!!!}{#1:\reallanguagetag{#2}:#3}% - \defcsname\??label#1:\reallanguagetag{#2}:#3\endcsname{{#4}{#5}}} % class tag key left right - -\tolerant\def\lang_labels_text_prefix_copy[#1]#*[#2]% - {\ifarguments\or - \edef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}% - \processcommalist[#1]\lang_labels_text_prefix_copy_indeed - \else - \edef\currenttextprefixtag{\reallanguagetag{#1}}% - \processcommalist[#2]\lang_labels_text_prefix_copy_indeed - \fi} - -\def\lang_labels_text_prefix_copy_indeed#1% - {\lang_labels_text_prefix_copy_pair[#1]} - -\def\lang_labels_text_prefix_copy_pair[#1=#2]% - {\lang_labels_text_prefix_copy_pair_indeed{#1}[#2,,]} - -% \def\lang_labels_text_prefix_copy_pair_indeed#1[#2,#3]% -% {\expandafter\let -% \csname\??label\currenttextprefixclass:\currenttextprefixtag:#1\expandafter\endcsname -% \csname\??label\currenttextprefixclass:\currenttextprefixtag:#2\endcsname} -% -% this delays the aliasing so that we can switch mainlanguage in between - -\def\lang_labels_text_prefix_copy_pair_indeed#1[#2,#3]% - {\edefcsname\??label\currenttextprefixclass:#1\endcsname - {{\noexpand\csname\??label\currenttextprefixclass:\noexpand\reallanguagetag\noexpand\currentmainlanguage:#2\endcsname}{}}} - -\definelabelclass [head] [0] % titles -\definelabelclass [label] [0] % texts -\definelabelclass [mathlabel] [0] % functions -\definelabelclass [taglabel] [2] % tags - -\clf_definelabels{head}{titles}\s!true\relax -\clf_definelabels{label}{texts}\s!true\relax -\clf_definelabels{mathlabel}{functions}\s!false\relax -\clf_definelabels{taglabel}{tags}\s!false\relax - -%D \macros -%D {translate} -%D -%D Sometimes macros contain language specific words that are to be typeset. Such -%D macros can be made (more) language independant by using: -%D -%D \showsetup{translate} -%D -%D like for instance: -%D -%D \starttyping -%D \translate[en=something,nl=iets] -%D \stoptyping -%D -%D which expands to {\em something} or {\em iets}, depending on de current language. - -\installcorenamespace{translation} - -\permanent\tolerant\protected\def\translate[#1]% - {\getparameters[\??translation][#1]% - \ifcsname\??translation\currentlanguage\endcsname - \lastnamedcs - \orelse\ifcsname\??translation\s!en\endcsname - \lastnamedcs - \else - [translation #1]% - \fi} - -%D When used without argument, the last defined values are used. This enables -%D repetitive use like -%D -%D \starttyping -%D \en \translate\ means \nl \translate -%D \stoptyping - -%D \macros -%D {assigntranslation} -%D -%D This macro is a system macro, and can be used to assign a translation to a macro. -%D Its form is: -%D -%D \starttyping -%D \assigntranslation[en=something,nl=iets]\to\command -%D \stoptyping - -% nicer is \edef\command{\translated[...]} ... todo - -\permanent\protected\def\assigntranslation[#1]\to#2% bad, this \to - {\getparameters[\??translation][#1]% - \edef#2{\begincsname\??translation\currentlanguage\endcsname}} - -%D \macros -%D {commalistsentence} -%D -%D Redone in \LUA: -%D -%D \startbuffer -%D \commalistsentence[aap,noot,mies] -%D \commalistsentence[aap,noot] -%D \commalistsentence[aap] -%D \commalistsentence[a,b,c] -%D \commalistsentence[a,b,c][{ \& },{ and }] -%D \commalistsentence[a,b,c][+,-] -%D \stopbuffer -%D -%D \typebuffer -%D -%D \startlines -%D \getbuffer -%D \stoplines - -\permanent\tolerant\protected\def\commalistsentence[#1]#*[#2]% - {\clf_concatcommalist - text {#1}% - separators {#2}% - separator {\detokenize\expandafter{\normalexpanded{\labeltext{and-1}}}}% - last {\detokenize\expandafter{\normalexpanded{\labeltext{and-2}}}}% - \relax} - -\setuplabeltext [\s!nl] [and-1={{, }}, and-2={{ en }}] % 1, 2 en 3 -\setuplabeltext [\s!en] [and-1={{, }}, and-2={{, }}] % 1, 2, 3 -\setuplabeltext [\s!de] [and-1={{, }}, and-2={{ und }}] % 1, 2 und 3 -\setuplabeltext [\s!hr] [and-1={{, }}, and-2={{ i }}] % 1, 2 i 3 - -%D Goodie (handy at \LUA\ end): - -\permanent\protected\def\LABELTEXT#1{\WORD{\labeltext{#1}}} % only for simple cases! - -\protect \endinput |