423 lines
10 KiB
C
423 lines
10 KiB
C
#include "include.h"
|
||
#include "lang.h"
|
||
#include "app_variable.h"
|
||
#define TRACE_EN 1
|
||
|
||
#if TRACE_EN
|
||
#define TRACE(...) printf(__VA_ARGS__)
|
||
#else
|
||
#define TRACE(...)
|
||
#endif
|
||
|
||
|
||
|
||
extern const char * const i18n_ar_sa[];
|
||
extern const char * const i18n_cs[];
|
||
extern const char * const i18n_de[];
|
||
extern const char * const i18n_el[];
|
||
extern const char * const i18n_en[];
|
||
extern const char * const i18n_es[];
|
||
extern const char * const i18n_fa[];
|
||
extern const char * const i18n_fr[];
|
||
extern const char * const i18n_he[];
|
||
extern const char * const i18n_hi[];
|
||
extern const char * const i18n_hr[];
|
||
extern const char * const i18n_hu[];
|
||
extern const char * const i18n_id[];
|
||
extern const char * const i18n_it[];
|
||
extern const char * const i18n_ja[];
|
||
extern const char * const i18n_ko[];
|
||
extern const char * const i18n_ms[];
|
||
extern const char * const i18n_nl[];
|
||
extern const char * const i18n_pl[];
|
||
extern const char * const i18n_pt[];
|
||
extern const char * const i18n_ro[];
|
||
extern const char * const i18n_ru[];
|
||
extern const char * const i18n_sk[];
|
||
extern const char * const i18n_th[];
|
||
extern const char * const i18n_pt[];
|
||
extern const char * const i18n_tr[];
|
||
extern const char * const i18n_uk[];
|
||
extern const char * const i18n_vi[];
|
||
extern const char * const i18n_zh[];
|
||
extern const char * const i18n_zh_tw[];
|
||
|
||
const char * const *i18n;
|
||
|
||
static uint8_t g_curLangIndex = 0;
|
||
static uint8_t g_curLangType;
|
||
|
||
//<2F>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>˳<EFBFBD><CBB3>һ<EFBFBD><D2BB>
|
||
const static uint8_t *languageList[]=
|
||
{
|
||
(uint8_t *)"English",
|
||
(uint8_t *)"Chinese",
|
||
(uint8_t *)"Spain",
|
||
(uint8_t *)"French",
|
||
(uint8_t *)"German",
|
||
(uint8_t *)"Thai",
|
||
(uint8_t *)"Arabic",
|
||
(uint8_t *)"Russian",
|
||
(uint8_t *)"Korean",
|
||
(uint8_t *)"Romania",
|
||
(uint8_t *)"Portugal",
|
||
(uint8_t *)"Italian",
|
||
(uint8_t *)"Polish",
|
||
(uint8_t *)"Japanese",
|
||
(uint8_t *)"Croatian",
|
||
(uint8_t *)"Greek",
|
||
(uint8_t *)"Ukrainian",
|
||
(uint8_t *)"Bulgarian",
|
||
(uint8_t *)"Armenian",
|
||
(uint8_t *)"Hebrew",
|
||
(uint8_t *)"Malaysia",
|
||
(uint8_t *)"Turkish",
|
||
(uint8_t *)"Indonesian",
|
||
(uint8_t *)"Dutch",
|
||
(uint8_t *)"Hindi",
|
||
(uint8_t *)"Bengalese",
|
||
(uint8_t *)"Vietnamese",
|
||
(uint8_t *)"Farsi",
|
||
(uint8_t *)"TR_Chinese",
|
||
(uint8_t *)"Finnish",
|
||
(uint8_t *)"Czech",
|
||
(uint8_t *)"Hungarian",
|
||
(uint8_t *)"Norwegian",
|
||
(uint8_t *)"Slovak",
|
||
(uint8_t *)"Filipino",
|
||
};
|
||
|
||
|
||
const static uint8_t *languageArray[]=
|
||
{
|
||
#if defined(__LANGUAGE_ENGLISH__)
|
||
(uint8_t *)"English",
|
||
#endif
|
||
#if defined(__LANGUAGE_SM_CHINESE__)
|
||
(uint8_t *)"Chinese",
|
||
#endif
|
||
#if defined(__LANGUAGE_SPAIN__)
|
||
(uint8_t *)"Spain",
|
||
#endif
|
||
#if defined(__LANGUAGE_FRENCH__)
|
||
(uint8_t *)"French",
|
||
#endif
|
||
#if defined(__LANGUAGE_GERMAN__)
|
||
(uint8_t *)"German",
|
||
#endif
|
||
#if defined(__LANGUAGE_THAI__)
|
||
(uint8_t *)"Thai",
|
||
#endif
|
||
#if defined(__LANGUAGE_ARABIC__)
|
||
(uint8_t *)"Arabic",
|
||
#endif
|
||
#if defined(__LANGUAGE_RUSSIAN__)
|
||
(uint8_t *)"Russian",
|
||
#endif
|
||
#if defined(__LANGUAGE_KOREAN__)
|
||
(uint8_t *)"Korean",
|
||
#endif
|
||
#if defined(__LANGUAGE_ROMANIA__)
|
||
(uint8_t *)"Romania",
|
||
#endif
|
||
#if defined(__LANGUAGE_PORTUGAL__)
|
||
(uint8_t *)"Portugal",
|
||
#endif
|
||
#if defined(__LANGUAGE_ITALIAN__)
|
||
(uint8_t *)"Italian",
|
||
#endif
|
||
#if defined(__LANGUAGE_POLISH__)
|
||
(uint8_t *)"Polish",
|
||
#endif
|
||
#if defined(__LANGUAGE_JAPANESE__)
|
||
(uint8_t *)"Japanese",
|
||
#endif
|
||
#if defined(__LANGUAGE_CROATIAN__)
|
||
(uint8_t *)"Croatian",
|
||
#endif
|
||
#if defined(__LANGUAGE_GREEK__)
|
||
(uint8_t *)"Greek",
|
||
#endif
|
||
#if defined(__LANGUAGE_UKRAINIAN__)
|
||
(uint8_t *)"Ukrainian",
|
||
#endif
|
||
#if defined(__LANGUAGE_BULGARIAN__)
|
||
(uint8_t *)"Bulgarian",
|
||
#endif
|
||
#if defined(__LANGUAGE_ARMENIAN__)
|
||
(uint8_t *)"Armenian",
|
||
#endif
|
||
#if defined(__LANGUAGE_HEBREW__)
|
||
(uint8_t *)"Hebrew",
|
||
#endif
|
||
#if defined(__LANGUAGE_MALAYSIA__)
|
||
(uint8_t *)"Malaysia",
|
||
#endif
|
||
#if defined(__LANGUAGE_TURKISH__)
|
||
(uint8_t *)"Turkish",
|
||
#endif
|
||
#if defined(__LANGUAGE_INDONESIAN__)
|
||
(uint8_t *)"Indonesian",
|
||
#endif
|
||
#if defined(__LANGUAGE_DUTCH__)
|
||
(uint8_t *)"Dutch",
|
||
#endif
|
||
#if defined(__LANGUAGE_HINDI__)
|
||
(uint8_t *)"Hindi",
|
||
#endif
|
||
#if defined(__LANGUAGE_BENGALESE__)
|
||
(uint8_t *)"Bengalese",
|
||
#endif
|
||
#if defined(__LANGUAGE_VIETNAMESE__)
|
||
(uint8_t *)"Vietnamese",
|
||
#endif
|
||
#if defined(__LANGUAGE_FARSI__)
|
||
(uint8_t *)"Farsi",
|
||
#endif
|
||
#if defined(__LANGUAGE_TR_CHINESE__)
|
||
(uint8_t *)"TR_Chinese",
|
||
#endif
|
||
#if defined(__LANGUAGE_FINNISH__)
|
||
(uint8_t *)"Finnish",
|
||
#endif
|
||
#if defined(__LANGUAGE_CZECH__)
|
||
(uint8_t *)"Czech",
|
||
#endif
|
||
#if defined(__LANGUAGE_HUNGARIAN__)
|
||
(uint8_t *)"Hungarian",
|
||
#endif
|
||
#if defined(__LANGUAGE_NORWEGIAN__)
|
||
(uint8_t *)"Norwegian",
|
||
#endif
|
||
#if defined(__LANGUAGE_SLOVAK__)
|
||
(uint8_t *)"Slovak",
|
||
#endif
|
||
#if defined(__LANGUAGE_FILIPINO__)
|
||
(uint8_t *)"Filipino",
|
||
#endif
|
||
|
||
};
|
||
|
||
|
||
void lang_select(void)
|
||
{
|
||
// printf("lang_select = %d\n",SysVariable.deviceInfo.language);
|
||
switch (g_curLangType) {
|
||
#if defined(__LANGUAGE_ENGLISH__)
|
||
case LANGUAGE_TYPE_English:
|
||
i18n = i18n_en;
|
||
break;
|
||
#endif
|
||
|
||
#if defined(__LANGUAGE_SM_CHINESE__)
|
||
case LANGUAGE_TYPE_Chinese:
|
||
i18n = i18n_zh;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_SPAIN__)
|
||
case LANGUAGE_TYPE_Spain:
|
||
i18n = i18n_es;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_FRENCH__)
|
||
case LANGUAGE_TYPE_French:
|
||
i18n = i18n_fr;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_GERMAN__)
|
||
case LANGUAGE_TYPE_German:
|
||
i18n = i18n_de;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_THAI__)
|
||
case LANGUAGE_TYPE_Thai:
|
||
i18n = i18n_th;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_ARABIC__)
|
||
case LANGUAGE_TYPE_Arabic:
|
||
i18n = i18n_ar_sa;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_RUSSIAN__)
|
||
case LANGUAGE_TYPE_Russian:
|
||
i18n = i18n_ru;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_KOREAN__)
|
||
case LANGUAGE_TYPE_Korean:
|
||
i18n = i18n_ko;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_ROMANIA__)
|
||
case LANGUAGE_TYPE_Romania:
|
||
i18n = i18n_ro;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_PORTUGAL__)
|
||
case LANGUAGE_TYPE_Portugal:
|
||
i18n = i18n_pt;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_ITALIAN__)
|
||
case LANGUAGE_TYPE_Italian:
|
||
i18n = i18n_it;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_POLISH__)
|
||
case LANGUAGE_TYPE_Polish:
|
||
i18n = i18n_pl;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_JAPANESE__)
|
||
case LANGUAGE_TYPE_Japanese:
|
||
i18n = i18n_ja;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_CROATIAN__)
|
||
case LANGUAGE_TYPE_Croatian:
|
||
i18n = i18n_hr;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_GREEK__)
|
||
case LANGUAGE_TYPE_Greek:
|
||
i18n = i18n_el;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_UKRAINIAN__)
|
||
case LANGUAGE_TYPE_Ukrainian:
|
||
i18n = i18n_uk;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_BULGARIAN__)
|
||
(uint8_t *)"Bulgarian",
|
||
#endif
|
||
#if defined(__LANGUAGE_ARMENIAN__)
|
||
(uint8_t *)"Armenian",
|
||
#endif
|
||
#if defined(__LANGUAGE_HEBREW__)
|
||
case LANGUAGE_TYPE_Hebrew:
|
||
i18n = i18n_he;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_MALAYSIA__)
|
||
case LANGUAGE_TYPE_Malaysia:
|
||
i18n = i18n_ms;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_TURKISH__)
|
||
case LANGUAGE_TYPE_Turkish:
|
||
i18n = i18n_tr;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_INDONESIAN__)
|
||
case LANGUAGE_TYPE_Indonesian:
|
||
i18n = i18n_id;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_DUTCH__)
|
||
case LANGUAGE_TYPE_Dutch:
|
||
i18n = i18n_nl;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_HINDI__)
|
||
case LANGUAGE_TYPE_Hindi:
|
||
i18n = i18n_hi;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_BENGALESE__)
|
||
(uint8_t *)"Bengalese",
|
||
#endif
|
||
#if defined(__LANGUAGE_VIETNAMESE__)
|
||
case LANGUAGE_TYPE_Vietnamese:
|
||
i18n = i18n_vi;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_FARSI__)
|
||
case LANGUAGE_TYPE_Farsi:
|
||
i18n = i18n_fa;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_TR_CHINESE__)
|
||
case LANGUAGE_TYPE_Tr_Chinese:
|
||
i18n = i18n_zh_tw;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_FINNISH__)
|
||
(uint8_t *)"Finnish",
|
||
#endif
|
||
#if defined(__LANGUAGE_CZECH__)
|
||
case LANGUAGE_TYPE_Czech:
|
||
i18n = i18n_cs;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_HUNGARIAN__)
|
||
case LANGUAGE_TYPE_Hungarian:
|
||
i18n = i18n_hu;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_NORWEGIAN__)
|
||
(uint8_t *)"Norwegian",
|
||
#endif
|
||
#if defined(__LANGUAGE_SLOVAK__)
|
||
case LANGUAGE_TYPE_Slovak:
|
||
i18n = i18n_sk;
|
||
break;
|
||
#endif
|
||
#if defined(__LANGUAGE_FILIPINO__)
|
||
(uint8_t *)"Filipino",
|
||
#endif
|
||
default:
|
||
TRACE("Language Select Error!\n");
|
||
halt(HALT_I18N_INIT);
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
LANGUAGE_TYPE tjd_Set_Language_By_Type(LANGUAGE_TYPE type)
|
||
{
|
||
uint8_t i = 0;
|
||
|
||
printf("tjd_Set_Language_By_Type[%d,%d]\n",type,g_curLangType);
|
||
for(i=0; i<MAX_LANGUAGES; i++) {
|
||
// printf("tjd_Set_Language_By_Type[%d %s,%s]",i,(char*)languageList[type], (char*)languageArray[i]);
|
||
if (strcmp((char*)languageList[type], (char*)languageArray[i])==0 ) {
|
||
g_curLangIndex = i;
|
||
g_curLangType = type;
|
||
break;
|
||
}
|
||
}
|
||
if (i == MAX_LANGUAGES) {
|
||
g_curLangIndex = 0;
|
||
for (i=0; i<LANGUAGE_MAX; i++) {
|
||
// printf("tjd_Set_Language_By_Type2[%d %s,%s]\n",i,(char*)languageArray[g_curLangIndex], (char*)languageList[i]);
|
||
if (strcmp((char*)languageArray[g_curLangIndex], (char*)languageList[i]) == 0) {
|
||
g_curLangType = (LANGUAGE_TYPE)i;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
printf("tjd_Set_Language_By_Type2[%d,%d]",type,g_curLangType);
|
||
return g_curLangType;
|
||
}
|
||
LANGUAGE_TYPE tjd_Set_Language_By_Index(uint8_t index)
|
||
{
|
||
uint8_t i = 0;
|
||
|
||
for (i=0; i<LANGUAGE_MAX; i++) {
|
||
if (strcmp((char*)languageArray[index], (char*)languageList[i]) == 0) {
|
||
g_curLangType = (LANGUAGE_TYPE)i;
|
||
g_curLangIndex = (LANGUAGE_TYPE)i;
|
||
break;
|
||
}
|
||
}
|
||
|
||
return g_curLangType;
|
||
}
|
||
|
||
uint8_t tjd_Get_Language_Current_Index(void)
|
||
{
|
||
return g_curLangIndex;
|
||
}
|