Files
stc32g128k/App/language.c

49 lines
1.1 KiB
C
Raw Normal View History

2026-07-31 13:57:06 +08:00
#include "language.h"
// 生成语言字符串数据表所用的临时结构体 (fr/en 两列)
typedef struct {
char *fr;
char *en;
} LangEntry;
//////////////////////////////////////////////////////////
// !!!!!! 不要动下面的代码 !!!!!!
#ifdef DEFINE_STRING
#undef DEFINE_STRING
#endif
#define DEFINE_STRING(name, fr, en) { fr, en },
// !!!!!! 不要动上面的代码 !!!!!!
//////////////////////////////////////////////////////////
// 复用 strings.h 里的同一份登记表,展开成 {法语, 英语} 数据数组,存放于 Flash (code 区)
LangEntry code language_pack[STR_COUNT] = {
WRISTBAND_STRING_LIST
};
static Language current_lang = LANG_FR;
void Lang_Init(Language lang)
{
current_lang = (lang < LANG_COUNT) ? lang : LANG_FR;
}
void Lang_Set(Language lang)
{
if (lang < LANG_COUNT) {
current_lang = lang;
}
}
Language Lang_Current(void)
{
return current_lang;
}
char *Lang_Get(StringID id)
{
if (id >= STR_COUNT) {
return "";
}
return (current_lang == LANG_EN) ? language_pack[id].en : language_pack[id].fr;
}