From 4196481f74afb84e5cc59cdf00c06c1ca1becab7 Mon Sep 17 00:00:00 2001 From: akshay-c Date: Wed, 30 Jan 2019 12:23:44 +0530 Subject: First commit --- ldmicro/lang.cpp | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 ldmicro/lang.cpp (limited to 'ldmicro/lang.cpp') diff --git a/ldmicro/lang.cpp b/ldmicro/lang.cpp new file mode 100644 index 0000000..084c766 --- /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 . +//------ +// +// 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 +#include + +#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; +} -- cgit