From e0c2ee1d37c0f213f22a04df71710bebe3526f85 Mon Sep 17 00:00:00 2001 From: lordjaxom Date: Wed, 2 Jun 2004 19:56:58 +0000 Subject: - implemented image loading through ImageMagick (fixes crashes when running together with GraphTFT) - implemented Theme support (see file demo.colors in the demo skin) - implemented translations for texts used in skins (see file demo.trans in the demo skin) --- i18n.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 i18n.c (limited to 'i18n.c') diff --git a/i18n.c b/i18n.c new file mode 100644 index 0000000..0583ae1 --- /dev/null +++ b/i18n.c @@ -0,0 +1,58 @@ +/* + * $Id: i18n.c,v 1.1 2004/06/02 20:43:05 lordjaxom Exp $ + */ + +#include "i18n.h" + +cText2SkinI18n::cText2SkinI18n(const char *Skin): cText2SkinFile(Skin) { + mIdentity = (string)"text2skin_" + Skin; + mNumPhrases = 0; + mPhrases = (tI18nPhrase*)malloc(sizeof(tI18nPhrase)); + memset(mPhrases[mNumPhrases], 0, sizeof(tI18nPhrase)); +} + +cText2SkinI18n::~cText2SkinI18n() { +} + +bool cText2SkinI18n::Parse(const char *Text) { + int l = strlen(Text); + bool result = false; + if (l) { + if (strncmp(Text, "Item=Translation,", 17) == 0) { + int i; + tI18nPhrase p; + memset(&p, 0, sizeof(tI18nPhrase)); + Text += 17; + + for (i = 0; i < I18nNumLanguages; ++i) { + string text; + if (ParseVar(Text, I18nLanguageCode(i), text)) + p[i] = strdup(text.c_str()); + else + p[i] = ""; + } + + int idx = mNumPhrases++; + for (i = 0; i < I18nNumLanguages; ++i) + if (!p[i]) p[i] = ""; + mPhrases = (tI18nPhrase*)realloc(mPhrases, (mNumPhrases + 1) * sizeof(tI18nPhrase)); + memcpy(mPhrases[idx], p, sizeof(tI18nPhrase)); + memset(mPhrases[mNumPhrases], 0, sizeof(tI18nPhrase)); + result = true; + } else + esyslog("ERROR: text2skin: syntax error"); + } + return result; +} + +bool cText2SkinI18n::Load(const string &Filename) { + if (cText2SkinFile::Load(Filename)) { + I18nRegister(mPhrases, mIdentity.c_str()); + return true; + } + return false; +} + +string cText2SkinI18n::Translate(const string &Text) { + return I18nTranslate(Text.c_str(), mIdentity.c_str()); +} -- cgit v1.2.3