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

393 lines
9.1 KiB
C
Raw 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 0
#if TRACE_EN
#define TRACE(...) printf(__VA_ARGS__)
#else
#define TRACE(...)
#endif
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 = lang_en;
break;
#endif
#if defined(__LANGUAGE_SM_CHINESE__)
case LANGUAGE_TYPE_Chinese:
i18n = lang_zh;
break;
#endif
#if defined(__LANGUAGE_SPAIN__)
case LANGUAGE_TYPE_Spain:
i18n = lang_es;
break;
#endif
#if defined(__LANGUAGE_FRENCH__)
case LANGUAGE_TYPE_French:
i18n = lang_fr;
break;
#endif
#if defined(__LANGUAGE_GERMAN__)
case LANGUAGE_TYPE_German:
i18n = lang_de;
break;
#endif
#if defined(__LANGUAGE_THAI__)
case LANGUAGE_TYPE_Thai:
i18n = lang_th;
break;
#endif
#if defined(__LANGUAGE_ARABIC__)
case LANGUAGE_TYPE_Arabic:
i18n = lang_ar_sa;
break;
#endif
#if defined(__LANGUAGE_RUSSIAN__)
case LANGUAGE_TYPE_Russian:
i18n = lang_ru;
break;
#endif
#if defined(__LANGUAGE_KOREAN__)
case LANGUAGE_TYPE_Korean:
i18n = lang_ko;
break;
#endif
#if defined(__LANGUAGE_ROMANIA__)
case LANGUAGE_TYPE_Romania:
i18n = lang_ro;
break;
#endif
#if defined(__LANGUAGE_PORTUGAL__)
case LANGUAGE_TYPE_Portugal:
i18n = lang_pt;
break;
#endif
#if defined(__LANGUAGE_ITALIAN__)
case LANGUAGE_TYPE_Italian:
i18n = lang_it;
break;
#endif
#if defined(__LANGUAGE_POLISH__)
case LANGUAGE_TYPE_Polish:
i18n = lang_pl;
break;
#endif
#if defined(__LANGUAGE_JAPANESE__)
case LANGUAGE_TYPE_Japanese:
i18n = lang_ja;
break;
#endif
#if defined(__LANGUAGE_CROATIAN__)
case LANGUAGE_TYPE_Croatian:
i18n = lang_hr;
break;
#endif
#if defined(__LANGUAGE_GREEK__)
case LANGUAGE_TYPE_Greek:
i18n = lang_el;
break;
#endif
#if defined(__LANGUAGE_UKRAINIAN__)
case LANGUAGE_TYPE_Ukrainian:
i18n = lang_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 = lang_he;
break;
#endif
#if defined(__LANGUAGE_MALAYSIA__)
case LANGUAGE_TYPE_Malaysia:
i18n = lang_ms;
break;
#endif
#if defined(__LANGUAGE_TURKISH__)
case LANGUAGE_TYPE_Turkish:
i18n = lang_tr;
break;
#endif
#if defined(__LANGUAGE_INDONESIAN__)
case LANGUAGE_TYPE_Indonesian:
i18n = lang_id;
break;
#endif
#if defined(__LANGUAGE_DUTCH__)
case LANGUAGE_TYPE_Dutch:
i18n = lang_nl;
break;
#endif
#if defined(__LANGUAGE_HINDI__)
case LANGUAGE_TYPE_Hindi:
i18n = lang_hi;
break;
#endif
#if defined(__LANGUAGE_BENGALESE__)
(uint8_t *)"Bengalese",
#endif
#if defined(__LANGUAGE_VIETNAMESE__)
case LANGUAGE_TYPE_Vietnamese:
i18n = lang_vi;
break;
#endif
#if defined(__LANGUAGE_FARSI__)
case LANGUAGE_TYPE_Farsi:
i18n = lang_fa;
break;
#endif
#if defined(__LANGUAGE_TR_CHINESE__)
case LANGUAGE_TYPE_Tr_Chinese:
i18n = lang_zh_tw;
break;
#endif
#if defined(__LANGUAGE_FINNISH__)
(uint8_t *)"Finnish",
#endif
#if defined(__LANGUAGE_CZECH__)
case LANGUAGE_TYPE_Czech:
i18n = lang_cs;
break;
#endif
#if defined(__LANGUAGE_HUNGARIAN__)
case LANGUAGE_TYPE_Hungarian:
i18n = lang_hu;
break;
#endif
#if defined(__LANGUAGE_NORWEGIAN__)
(uint8_t *)"Norwegian",
#endif
#if defined(__LANGUAGE_SLOVAK__)
case LANGUAGE_TYPE_Slovak:
i18n = lang_sk;
break;
#endif
#if defined(__LANGUAGE_FILIPINO__)
(uint8_t *)"Filipino",
#endif
default:
TRACE("Language Select Error!\n");
i18n = lang_en;
break;
}
}
LANGUAGE_TYPE tjd_Set_Language_By_Type(LANGUAGE_TYPE type)
{
uint8_t i = 0;
if (type <= LANGUAGE_BASE || type >= LANGUAGE_MAX) {
type = LANGUAGE_TYPE_English;
}
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;
}