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