diff options
author | Rr42 | 2018-05-25 10:13:59 +0530 |
---|---|---|
committer | Rr42 | 2018-05-25 10:13:59 +0530 |
commit | f7669a3fcc87d4f6040257c3dd8708c263331458 (patch) | |
tree | 9eb6b47b5911eb1f13776caaa341aab40cabe5e7 /ldmicro/lang.cpp | |
parent | 8deab843fa6d616086955702c77751f631badc0d (diff) | |
download | LDMicroGtk-f7669a3fcc87d4f6040257c3dd8708c263331458.tar.gz LDMicroGtk-f7669a3fcc87d4f6040257c3dd8708c263331458.tar.bz2 LDMicroGtk-f7669a3fcc87d4f6040257c3dd8708c263331458.zip |
Added all LDmicro filles to be ported
Diffstat (limited to 'ldmicro/lang.cpp')
-rw-r--r-- | ldmicro/lang.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/ldmicro/lang.cpp b/ldmicro/lang.cpp new file mode 100644 index 0000000..4be05d0 --- /dev/null +++ b/ldmicro/lang.cpp @@ -0,0 +1,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 <windows.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; +} |