1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17\writestatus{loading}{ConTeXt Language Macros Labels}
18
19\registerctxluafile{langlab}{autosuffix}
20\registerctxluafile{langtxt}{}
21
22\unprotect
23
24
25
26\ifdefined\sixperemspace \else
27 \permanent\edef\sixperemspace{\tocharacter"2006}
28\fi
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64\installcorenamespace{label}
65
66
67
68\permanent\tolerant\protected\def\definelabelclass[#1]#*[#2]
69 {\normalexpanded
70 {\lang_labels_define_class_indeed
71 {#1}
72 {\ifchknumber#2\or#2\else\zerocount\fi}
73 \expandafter\noexpand\csname langlabels#1text1\endcsname
74 \expandafter\noexpand\csname #1language\endcsname
75 \expandafter\noexpand\csname langlabels#1text2\endcsname
76 \expandafter\noexpand\csname left#1text\endcsname
77 \expandafter\noexpand\csname right#1text\endcsname
78 \expandafter\noexpand\csname #1texts\endcsname
79 \expandafter\noexpand\csname #1text\endcsname}}
80
81
82
83\mutable\lettonothing\thetextprefix
84
85\mutable\let\currenttextprefixclass\s!unknown
86\mutable\let\currenttextprefixtag \s!unknown
87
88\mutable\lettonothing\currenttextprefixname
89
90\protected\def\lang_labels_define_class_indeed#1#2#3#4#5#6#7#8#9
91 {\permanent\instance\protected\defcsname setup#1text\endcsname{\protecttextprefixes #2\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}
92 \permanent\instance\protected\defcsname preset#1text\endcsname{\protecttextprefixes\plusone\def\currenttextprefixclass{#1}\lang_labels_text_prefix_setup}
93 \permanent\instance\protected\defcsname copy#1text\endcsname{\protecttextprefixes\plusone\def\currenttextprefixclass{#1}\lang_labels_text_prefix_copy }
94 \permanent\instance\protected\defcsname start#1text\endcsname{\protecttextprefixes\plusone\def\currenttextprefixclass{#1}\lang_labels_text_prefix_start[#1]}
95 \permanent\instance \letcsname stop#1text\endcsname \relax
96 \permanent\instance\def#4{\reallanguagetag{\defaultlanguage\currentmainlanguage}}
97 \ifnum#2=\plustwo
98 \instance\def#3{#5#4}
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 \instance\def#5##1##2
118 {\ifcsname\??label#1:##1:##2\endcsname
119 \lastnamedcs
120 \orelse\ifcsname\??language##1\s!default\endcsname
121 \expandafter#5\lastnamedcs{##2}
122 \orelse\ifcsname\??label#1:##2\endcsname
123 \lastnamedcs
124 \orelse\ifcsname\??label#1:\s!en:##2\endcsname
125 \lastnamedcs
126 \else
127 ##2
128 \fi}
129 \permanent\instance\let#6\gobbleoneargument
130 \permanent\instance\let#7\gobbleoneargument
131 \permanent\instance\let#8\gobbletwoarguments
132 \permanent\instance\let#9#3
133 \else
134 \instance\protected\def#3{#5#4}
135 \instance\protected\def#5##1##2
136 {\ifcsname\??label#1:##1:##2\endcsname
137 \enforced\expandafter\let\expandafter\thetextprefix\lastnamedcs
138 \orelse\ifcsname\??language#4\s!default\endcsname
139 \expandafter#5\lastnamedcs{##2}
140 \orelse\ifcsname\??label#1:##2\endcsname
141 \enforced\expandafter\let\expandafter\thetextprefix\lastnamedcs
142 \orelse\ifcsname\??label#1:\s!en:##2\endcsname
143 \enforced\expandafter\let\expandafter\thetextprefix\lastnamedcs
144 \else
145 \enforced\let\thetextprefix\dummytextprefix
146 \fi}
147 \permanent\instance\protected\def#6##1{#3{##1}\expandafter\firstoftwoarguments \thetextprefix}
148 \permanent\instance\protected\def#7##1{#3{##1}\expandafter\secondoftwoarguments \thetextprefix}
149 \permanent\instance\protected\def#8##1{#3{##1}\expandafter\lang_labels_flush_both\thetextprefix}
150 \permanent\instance\protected\def#9##1{#3{##1}\expandafter\firstoftwoarguments \thetextprefix}
151 \fi
152 \appendtoks
153 \enforced\permanent\instance\let#6\firstofoneargument
154 \enforced\permanent\instance\let#7\firstofoneargument
155 \enforced\permanent\instance\let#8\firstofoneargument
156 \enforced\permanent\instance\let#9\firstofoneargument
157 \to \everysimplifycommands}
158
159
160
161
162
163
164\permanent\def\lang_labels_flush_both#1#2#3{#1#3#2}
165
166\permanent\def\dummytextprefix{\empty\empty}
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182\appendtoks \enforced\let\labellanguage\currentlanguage \to \everycurrentdate
183
184\newconstant\protecttextprefixes
185
186\tolerant\def\lang_labels_text_prefix_start[#1]#*[#2]#*[#3]
187 {\ifarguments\or\or
188 \cdef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}
189 \cdef\currenttextprefixname{#2}
190 \else
191 \cdef\currenttextprefixtag{\reallanguagetag{#2}}
192 \cdef\currenttextprefixname{#3}
193 \fi
194 \grabuntil{stop#1text}\lang_labels_text_prefix_start_indeed}
195
196\def\lang_labels_text_prefix_start_indeed#1
197 {\edefcsname\??label\currenttextprefixclass:\currenttextprefixtag:\currenttextprefixname\endcsname{{\clf_strip{#1}}\empty}}
198
199\tolerant\def\lang_labels_text_prefix_setup[#1]#*[#2]
200 {\ifarguments\or
201 \cdef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}
202 \processcommalist[#1]\lang_labels_text_prefix_setup_indeed
203 \else
204 \cdef\currenttextprefixtag{\reallanguagetag{#1}}
205 \processcommalist[#2]\lang_labels_text_prefix_setup_indeed
206 \fi}
207
208\def\lang_labels_text_prefix_setup_indeed#1
209 {\lang_labels_text_prefix_assign[#1]}
210
211\def\lang_labels_text_prefix_assign[#1=#2]
212 {\lang_labels_text_prefix_assign_indeed{#1}[#2,,]}
213
214\def\lang_labels_text_prefix_assign_indeed#1
215 {\ifcase\protecttextprefixes
216
217 \expandafter\lang_labels_text_prefix_assign_yes
218 \or
219
220 \ifcsname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname
221 \expandafter\expandafter\expandafter\lang_labels_text_prefix_assign_nop
222 \else
223 \expandafter\expandafter\expandafter\lang_labels_text_prefix_assign_yes
224 \fi
225 \or
226
227 \expandafter\lang_labels_text_prefix_assign_dumb
228 \fi{#1}}
229
230\lettonothing\m_lang_labels_left
231\lettonothing\m_lang_labels_right
232
233\def\lang_labels_text_prefix_assign_yes#1[#2,#3,#4]
234 {\def\m_lang_labels_left {#2}
235 \def\m_lang_labels_right{#3}
236 \defcsname\??label\currenttextprefixclass:\currenttextprefixtag:#1
237 \ifempty\m_lang_labels_right
238 \ifempty\m_lang_labels_left
239 \endcsname{\empty\empty}
240 \else
241 \endcsname{{#2}\empty}
242 \fi
243 \else
244 \endcsname{{#2}{#3}}
245 \fi}
246
247\def\lang_labels_text_prefix_assign_nop#1[#2]
248 {}
249
250\def\lang_labels_text_prefix_assign_dumb#1[#2,#3]
251 {\defcsname\??label\currenttextprefixclass:\currenttextprefixtag:#1\endcsname{#2}}
252
253\permanent\protected\def\setlabeltextpair#1#2#3#4#5
254 {
255 \defcsname\??label#1:\reallanguagetag{#2}:#3\endcsname{{#4}{#5}}}
256
257\tolerant\def\lang_labels_text_prefix_copy[#1]#*[#2]
258 {\ifarguments\or
259 \cdef\currenttextprefixtag{\reallanguagetag\currentmainlanguage}
260 \processcommalist[#1]\lang_labels_text_prefix_copy_indeed
261 \else
262 \cdef\currenttextprefixtag{\reallanguagetag{#1}}
263 \processcommalist[#2]\lang_labels_text_prefix_copy_indeed
264 \fi}
265
266\def\lang_labels_text_prefix_copy_indeed#1
267 {\lang_labels_text_prefix_copy_pair[#1]}
268
269\def\lang_labels_text_prefix_copy_pair[#1=#2]
270 {\lang_labels_text_prefix_copy_pair_indeed{#1}[#2,,]}
271
272
273
274
275
276
277
278
279\def\lang_labels_text_prefix_copy_pair_indeed#1[#2,#3]
280 {\edefcsname\??label\currenttextprefixclass:#1\endcsname
281 {{\noexpand\csname\??label\currenttextprefixclass:\noexpand\reallanguagetag\noexpand\currentmainlanguage:#2\endcsname}{}}}
282
283\definelabelclass [head] [0]
284\definelabelclass [label] [0]
285\definelabelclass [mathlabel] [2]
286\definelabelclass [taglabel] [2]
287
288\clf_definelabels{head}{titles}\s!true\relax
289\clf_definelabels{label}{texts}\s!true\relax
290\clf_definelabels{mathlabel}{functions}\s!false\relax
291\clf_definelabels{taglabel}{tags}\s!false\relax
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309\installcorenamespace{translation}
310
311\permanent\tolerant\protected\def\translate[#1]
312 {\getparameters[\??translation][#1]
313 \ifcsname\??translation\currentlanguage\endcsname
314 \lastnamedcs
315 \orelse\ifcsname\??translation\s!en\endcsname
316 \lastnamedcs
317 \else
318 [translation #1]
319 \fi}
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340\permanent\protected\def\assigntranslation[#1]\to#2
341 {\getparameters[\??translation][#1]
342 \edef#2{\begincsname\??translation\currentlanguage\endcsname}}
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364\permanent\tolerant\protected\def\commalistsentence[#1]#*[#2]
365 {\clf_concatcommalist
366 text {#1}
367 separators {#2}
368 separator {\detokenize\expandafter{\normalexpanded{\labeltext{and1}}}}
369 last {\detokenize\expandafter{\normalexpanded{\labeltext{and2}}}}
370 \relax}
371
372\setuplabeltext [\s!nl] [and1={{, }},and2={{ en }}]
373\setuplabeltext [\s!en] [and1={{, }},and2={{, }}]
374\setuplabeltext [\s!de] [and1={{, }},and2={{ und }}]
375\setuplabeltext [\s!hr] [and1={{, }},and2={{ i }}]
376
377
378
379\permanent\protected\def\LABELTEXT#1{\WORD{\labeltext{#1}}}
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404\protect \endinput
405 |