blob: 084c766af1bedde76bf7018d8dc01b02c58b735e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
//-----------------------------------------------------------------------------
// Copyright 2007 Jonathan Westhues
//
// This file is part of LDmicro.
//
// LDmicro is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// LDmicro is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with LDmicro. If not, see <http://www.gnu.org/licenses/>.
//------
//
// Multiple language support. For every non-English language, we have a
// table that maps the English strings to the translated strings. An
// internationalized version of the program will attempt to translate any
// string that is passed, using the appropriate (selected by a #define)
// table. If it fails then it just returns the English.
// Jonathan Westhues, Apr 2007
//-----------------------------------------------------------------------------
#include "linuxUI.h"
#include <stdio.h>
#include <stdlib.h>
#include "ldmicro.h"
typedef struct LangTableTag {
char *from;
char *to;
} LangTable;
typedef struct LangTag {
LangTable *tab;
int n;
} Lang;
// These are the actual translation tables, so should be included in just
// one place.
#include "obj/lang-tables.h"
char *_(char *in)
{
Lang *l;
#if defined(LDLANG_EN)
return in;
#elif defined(LDLANG_DE)
l = &LangDe;
#elif defined(LDLANG_FR)
l = &LangFr;
#elif defined(LDLANG_ES)
l = &LangEs;
#elif defined(LDLANG_IT)
l = &LangIt;
#elif defined(LDLANG_TR)
l = &LangTr;
#elif defined(LDLANG_PT)
l = &LangPt;
#else
# error "Unrecognized language!"
#endif
int i;
for(i = 0; i < l->n; i++) {
if(strcmp(in, l->tab[i].from)==0) {
return l->tab[i].to;
}
}
return in;
}
|