mcu_ab568x/app/projects/AB5682C_128/i18n/lang.c
2025-05-30 18:03:10 +08:00

423 lines
10 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}