{
// 初始化 languages 数组
struct Language languages[] = {
- {ZH_CN, "zh", "中文", "中文",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/zh.bin"},
- {EN, "en", "English", "英语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/en.bin"},
- {JA, "ja", "日本語", "日语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/ja.bin"},
- {KO, "ko", "한국어", "韩语",KOREA_FONT,"user/res/font_bin/ko.bin"},
- {ES, "es", "Español", "西班牙语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/es.bin"},
- {RU, "ru", "Русский", "俄语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/ru.bin"},
- {HR, "hr", "Hrvatski", "克罗地亚语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/hr.bin"},
- {DE, "de", "Deutsch", "德语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/de.bin"},
- {PT, "pt", "Português", "葡萄牙语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/pt.bin"},
- {FR, "fr", "Français", "法语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/fr.bin"},
- {NL, "nl", "Nederlands", "荷兰语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/nl.bin"},
- {IT, "it", "Italiano", "意大利语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/it.bin"},
- {CS, "cs", "Čeština", "捷克语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/cs.bin"},
- {EL, "el", "Ελληνικά", "希腊语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/el.bin"},
- {HI, "hi", "हिन्दी", "印地语",HINDI_FONT,"user/res/font_bin/hi.bin"},
- {ID, "id", "Bahasa Indonesia", "印尼语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/id.bin"},
- {MS, "ms", "Bahasa Melayu", "马来语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/ms.bin"},
- {PL, "pl", "Polski", "波兰语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/pl.bin"},
- {TH, "th", "ไทย", "泰语",ANUPHAN_FONT,"user/res/font_bin/th.bin"},
- {VI, "vi", "Tiếng Việt", "越南语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/vi.bin"},
- {FI, "fi", "Suomi", "芬兰语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/fi.bin"},
- {RO, "ro", "Română", "罗马尼亚语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/ro.bin"},
- {TR, "tr", "Türkçe", "土耳其语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/tr.bin"},
- {FA, "fa", "فارسی", "波斯语",HARMONYOS_VECTOR_ARABIC_FILENAME,"user/res/font_bin/fa.bin"},
- {AR, "ar", "العربية", "阿拉伯语",HARMONYOS_VECTOR_ARABIC_FILENAME,"user/res/font_bin/ar.bin"},
- {HE, "he", "עברית", "希伯来语",HEBREW_FONT,"user/res/font_bin/he.bin"},
- {UK, "uk", "Українська", "乌克兰语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/uk.bin"},
- {SV, "sv", "Svenska", "瑞典语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/sv.bin"},
- {UZ, "uz", "O‘zbek", "乌兹别克语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/uz.bin"},
- {AZ, "az", "Azərbaycan dili", "阿塞拜疆语",HARMONYOS_VECTOR_FONT_FILENAME,"user/res/font_bin/az.bin"},
+ {ZH_CN, "zh", "中文", "中文", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/zh.bin"},
+ {EN, "en", "English", "英语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/en.bin"},
+ {JA, "ja", "日本語", "日语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/ja.bin"},
+ {KO, "ko", "한국어", "韩语", KOREA_FONT, "user/res/font_bin/ko.bin"},
+ {ES, "es", "Español", "西班牙语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/es.bin"},
+ {RU, "ru", "Русский", "俄语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/ru.bin"},
+ {HR, "hr", "Hrvatski", "克罗地亚语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/hr.bin"},
+ {DE, "de", "Deutsch", "德语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/de.bin"},
+ {PT, "pt", "Português", "葡萄牙语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/pt.bin"},
+ {FR, "fr", "Français", "法语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/fr.bin"},
+ {NL, "nl", "Nederlands", "荷兰语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/nl.bin"},
+ {IT, "it", "Italiano", "意大利语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/it.bin"},
+ {CS, "cs", "Čeština", "捷克语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/cs.bin"},
+ {EL, "el", "Ελληνικά", "希腊语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/el.bin"},
+ {HI, "hi", "हिन्दी", "印地语", HINDI_FONT, "user/res/font_bin/hi.bin"},
+ {ID, "id", "Bahasa Indonesia", "印尼语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/id.bin"},
+ {MS, "ms", "Bahasa Melayu", "马来语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/ms.bin"},
+ {PL, "pl", "Polski", "波兰语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/pl.bin"},
+ {TH, "th", "ไทย", "泰语", ANUPHAN_FONT, "user/res/font_bin/th.bin"},
+ {VI, "vi", "Tiếng Việt", "越南语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/vi.bin"},
+ {FI, "fi", "Suomi", "芬兰语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/fi.bin"},
+ {RO, "ro", "Română", "罗马尼亚语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/ro.bin"},
+ {TR, "tr", "Türkçe", "土耳其语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/tr.bin"},
+ {FA, "fa", "فارسی", "波斯语", HARMONYOS_VECTOR_ARABIC_FILENAME, "user/res/font_bin/fa.bin"},
+ {AR, "ar", "العربية", "阿拉伯语", HARMONYOS_VECTOR_ARABIC_FILENAME, "user/res/font_bin/ar.bin"},
+ {HE, "he", "עברית", "希伯来语", HEBREW_FONT, "user/res/font_bin/he.bin"},
+ {UK, "uk", "Українська", "乌克兰语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/uk.bin"},
+ {SV, "sv", "Svenska", "瑞典语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/sv.bin"},
+ {UZ, "uz", "O‘zbek", "乌兹别克语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/uz.bin"},
+ {AZ, "az", "Azərbaycan dili", "阿塞拜疆语", HARMONYOS_VECTOR_FONT_FILENAME, "user/res/font_bin/az.bin"},
};
-
- //稀有语言单独字库,此列需要重新加载字体
- // struct Language uncommon_languages[] =
- // {
- // {KO, "ko", "한국어", "韩语",KOREA_FONT},
- // {HI, "hi", "हिन्दी", "印地语",HINDI_FONT_TTF},
- // {TH, "th", "ไทย", "泰语",ANUPHAN_FONT},//THAI_FONT
- // {HE, "he", "עברית", "希伯来语",HEBREW_FONT},
- // };
-
-
-
+
+ // 稀有语言单独字库,此列需要重新加载字体
+ // struct Language uncommon_languages[] =
+ // {
+ // {KO, "ko", "한국어", "韩语",KOREA_FONT},
+ // {HI, "hi", "हिन्दी", "印地语",HINDI_FONT_TTF},
+ // {TH, "th", "ไทย", "泰语",ANUPHAN_FONT},//THAI_FONT
+ // {HE, "he", "עברית", "希伯来语",HEBREW_FONT},
+ // };
+
// static const uint8_t langcount = 2;
- const char *resFiles[MAX_LANGUAGE]= {
- "user/res/font/zh.lang",// ZH_CN = 0,
- "user/res/font/en.lang",// EN,
- "user/res/font/ja.lang",// JA,
- "user/res/font/ko.lang",// KO,韩语
- "user/res/font/es.lang",// ES,
- "user/res/font/ru.lang",// RU,
- "user/res/font/hr.lang",// HR,
- "user/res/font/de.lang",// DE,
- "user/res/font/pt.lang",// PT,
- "user/res/font/fr.lang",// FR,
- "user/res/font/nl.lang",// NL,
- "user/res/font/it.lang",// IT,
- "user/res/font/cs.lang",// CS,
- "user/res/font/el.lang",// EL,
- "user/res/font/hi.lang",// HI,印地语
- "user/res/font/id.lang",// ID,
- "user/res/font/ms.lang",// MS,
- "user/res/font/pl.lang",// PL,
- "user/res/font/th.lang",// TH, 泰语
- "user/res/font/vi.lang",// VI,
- "user/res/font/fi.lang",// FI,
- "user/res/font/ro.lang",// RO,
- "user/res/font/tr.lang",// TR,
- "user/res/font/fa.lang",// FA,波斯语
- "user/res/font/ar.lang",// AR,阿拉伯语
- "user/res/font/he.lang",// HE,希伯来语
- "user/res/font/uk.lang",// UK,
- "user/res/font/sv.lang",// SV,
- "user/res/font/uz.lang",// UZ,
- "user/res/font/az.lang"// AZ,
+ const char *resFiles[MAX_LANGUAGE] = {
+ "user/res/font/zh.lang", // ZH_CN = 0,
+ "user/res/font/en.lang", // EN,
+ "user/res/font/ja.lang", // JA,
+ "user/res/font/ko.lang", // KO,韩语
+ "user/res/font/es.lang", // ES,
+ "user/res/font/ru.lang", // RU,
+ "user/res/font/hr.lang", // HR,
+ "user/res/font/de.lang", // DE,
+ "user/res/font/pt.lang", // PT,
+ "user/res/font/fr.lang", // FR,
+ "user/res/font/nl.lang", // NL,
+ "user/res/font/it.lang", // IT,
+ "user/res/font/cs.lang", // CS,
+ "user/res/font/el.lang", // EL,
+ "user/res/font/hi.lang", // HI,印地语
+ "user/res/font/id.lang", // ID,
+ "user/res/font/ms.lang", // MS,
+ "user/res/font/pl.lang", // PL,
+ "user/res/font/th.lang", // TH, 泰语
+ "user/res/font/vi.lang", // VI,
+ "user/res/font/fi.lang", // FI,
+ "user/res/font/ro.lang", // RO,
+ "user/res/font/tr.lang", // TR,
+ "user/res/font/fa.lang", // FA,波斯语
+ "user/res/font/ar.lang", // AR,阿拉伯语
+ "user/res/font/he.lang", // HE,希伯来语
+ "user/res/font/uk.lang", // UK,
+ "user/res/font/sv.lang", // SV,
+ "user/res/font/uz.lang", // UZ,
+ "user/res/font/az.lang" // AZ,
};
-
- //static language *g_planguage{nullptr};
- char current_global_font_name[256]={0};
- char* get_current_global_font_name(void)
+
+ // static language *g_planguage{nullptr};
+ char current_global_font_name[256] = {0};
+ char *get_current_global_font_name(void)
{
return ¤t_global_font_name[0];
}
-
- int set_current_global_font_name(const char* fontname)
+
+ int set_current_global_font_name(const char *fontname)
{
- memset(current_global_font_name,0,sizeof(current_global_font_name));
- return strcat_s(current_global_font_name,sizeof(current_global_font_name),fontname);
+ memset(current_global_font_name, 0, sizeof(current_global_font_name));
+ return strcat_s(current_global_font_name, sizeof(current_global_font_name), fontname);
}
/**
* return 1 从右到左
* return 0 从左到右
- */
+ */
int get_current_font_direction(void)
{
// 从右到左排版的语言
// return 1;
// else if (memcpy_s(fontname,strlen(fontname),HEBREW_FONT,strlen(HEBREW_FONT)) == 0)
// return 1;
- // else
- return 0;
+ // else
+ return 0;
}
- const char* get_language_font(uint8_t id)
+ const char *get_language_font(uint8_t id)
{
- for(int i=0;i<(sizeof( languages)/sizeof(languages[0]));i++)
+ for (int i = 0; i < (sizeof(languages) / sizeof(languages[0])); i++)
{
- if(languages[i].languageid==id)
+ if (languages[i].languageid == id)
{
return languages[i].fontname;
}
bool is_load_languages(uint8_t id)
{
- for(int i=0;i<(sizeof( languages)/sizeof(languages[0]));i++)
+ for (int i = 0; i < (sizeof(languages) / sizeof(languages[0])); i++)
{
- if(languages[i].languageid==id)
+ if (languages[i].languageid == id)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s",languages[i].fontname);
- if(strcmp(languages[i].fontname,get_current_global_font_name())!=0 && (strcmp(languages[i].fontname,HARMONYOS_VECTOR_FONT_FILENAME)!=0))
- return true;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s", languages[i].fontname);
+ if (strcmp(languages[i].fontname, get_current_global_font_name()) != 0 && (strcmp(languages[i].fontname, HARMONYOS_VECTOR_FONT_FILENAME) != 0))
+ return true;
else
- return false;
+ return false;
}
}
return false;
language::language()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "language::language");
- ///g_planguage = this;
+ /// g_planguage = this;
}
language::~language()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "language::~language");
- //g_planguage = nullptr;
+ // g_planguage = nullptr;
}
language *language::GetInstance()
bool language::InitLangues()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "InitLangues");
- // 获取json里面的语言
- #ifdef A5133_DEMO_CLIENT
- NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
- FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, 0);
- #else
+// 获取json里面的语言
+#ifdef A5133_DEMO_CLIENT
+ NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
+ FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, 0);
+#else
int thelanguage = ConfigModel::GetInstance()->GetLanguage();
- //多国语言切换字体文件包
- if(is_load_languages(thelanguage))
+ // 多国语言切换字体文件包
+ if (is_load_languages(thelanguage))
{
- GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, get_language_font(thelanguage)); // 注册字体
+ GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::NEW_FONT_DIR, get_language_font(thelanguage)); // 注册字体
set_current_global_font_name(get_language_font(thelanguage));
}
- #if 0
- //需要蓝牙绑定状态设置
- #ifdef SUPPORT_BLE_SERVICE
- if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
+
+// 需要蓝牙绑定状态设置
+#ifdef SUPPORT_BLE_SERVICE
+ if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
{
/**
* TODO:
* 如果 GetisFirstTimeStart()证明第一次启动,需要实现弹窗切换语言的功能。
* 在此之前,先设置成默认0
- */
- //thelanguage = 0;
+ */
+ // thelanguage = 0;
NativeAbility::GetInstance().SetDefaultSliceId(VIEW_LANGUAGE_SWITCH);
}
else
- #endif
{
NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
}
- #endif
-
+#else
NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
+#endif
FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, thelanguage);
- #endif
+#endif
return true;
}
ConfigModel::GetInstance()->SetLanguageCode(languages[currentLanguageId].code);
ConfigModel::GetInstance()->SetLanguage(currentLanguageId);
int ret = set_current_global_font_name(languages[currentLanguageId].fontname);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "resFiles [%d]:%s fontname:%s , ret = %d", currentLanguageId,resFiles[currentLanguageId],languages[currentLanguageId].fontname,ret);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "resFiles [%d]:%s fontname:%s , ret = %d", currentLanguageId, resFiles[currentLanguageId], languages[currentLanguageId].fontname, ret);
return true;
}
-
+
bool language::ChangeLanguage(std::string language_code)
{
if (!FontGlobalManager::GetInstance() || !UIFont::GetInstance())
ConfigModel::GetInstance()->SetLanguageCode(language_code.c_str());
ConfigModel::GetInstance()->SetLanguage(currentLanguageId);
int ret = set_current_global_font_name(languages[currentLanguageId].fontname);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "resFiles[%d]:%s fontname %s , ret = %d", currentLanguageId, resFiles[currentLanguageId], languages[currentLanguageId].fontname, ret );
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "resFiles[%d]:%s fontname %s , ret = %d", currentLanguageId, resFiles[currentLanguageId], languages[currentLanguageId].fontname, ret);
return true;
}