aboutsummaryrefslogtreecommitdiffstats
path: root/src/gtrans/gtrans.c
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@seriouslyembedded.com>2016-02-07 22:59:35 +0100
committerJoel Bodenmann <joel@seriouslyembedded.com>2016-02-07 22:59:35 +0100
commit7b6000346133a34600058931c7dbe2cfbbe1559d (patch)
tree84c5b4d2d2b078c6b1309bb8be7631dcfbb55089 /src/gtrans/gtrans.c
parent6b07b2af74b25f75e6006c13da4826568d0ea3c1 (diff)
downloaduGFX-7b6000346133a34600058931c7dbe2cfbbe1559d.tar.gz
uGFX-7b6000346133a34600058931c7dbe2cfbbe1559d.tar.bz2
uGFX-7b6000346133a34600058931c7dbe2cfbbe1559d.zip
Preliminary version of GTRANS
Diffstat (limited to 'src/gtrans/gtrans.c')
-rw-r--r--src/gtrans/gtrans.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/gtrans/gtrans.c b/src/gtrans/gtrans.c
index 7e1105d6..4961cdcb 100644
--- a/src/gtrans/gtrans.c
+++ b/src/gtrans/gtrans.c
@@ -5,16 +5,67 @@
* http://ugfx.org/license.html
*/
+#include <string.h>
#include "../../gfx.h"
#if GFX_USE_GTRANS
+static const transTable* _languageBase;
+static const transTable* _languageCurrent;
+
void _gtransInit(void)
{
+ _languageBase = 0;
+ _languageCurrent = 0;
}
void _gtransDeinit(void)
{
}
+const char* gtransString(const char* string)
+{
+ size_t i = 0;
+ while (1) {
+ if (i >= _languageBase->numEntries-1) {
+ return 0;
+ }
+
+ if (strcmp(string, _languageBase->strings[i]) == 0) {
+ break;
+ }
+
+ i++;
+ }
+
+ if (i >= _languageCurrent->numEntries-1) {
+ return 0;
+ }
+
+ return _languageCurrent->strings[i];
+}
+
+const char* gtransIndex(unsigned index)
+{
+ if (!_languageCurrent) {
+ return 0;
+ }
+
+ if (index >= _languageCurrent->numEntries) {
+ return 0;
+ }
+
+ return _languageCurrent->strings[index];
+}
+
+void gtransSetBaseLanguage(const transTable* const translation)
+{
+ _languageBase = translation;
+}
+
+void gtransSetLanguage(const transTable* const translation)
+{
+ _languageCurrent = translation;
+}
+
#endif /* GFX_USE_GTRANS */