* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:14:38
* @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-07-27 11:50:49
+ * @LastEditTime: 2024-08-30 20:45:36
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/LanguageInit.cpp
*/
#include <fstream>
{
// 初始化 languages 数组
struct Language languages[] = {
- {ZH_CN, "zh", "中文", "中文"},
- {EN, "en", "English", "英语"},
- {JA, "ja", "日本語", "日语"},
- {KO, "ko", "한국어", "韩语"},
- {ES, "es", "Español", "西班牙语"},
- {RU, "ru", "Русский", "俄语"},
- {HR, "hr", "Hrvatski", "克罗地亚语"},
- {DE, "de", "Deutsch", "德语"},
- {PT, "pt", "Português", "葡萄牙语"},
- {FR, "fr", "Français", "法语"},
- {NL, "nl", "Nederlands", "荷兰语"},
- {IT, "it", "Italiano", "意大利语"},
- {CS, "cs", "Čeština", "捷克语"},
- {EL, "el", "Ελληνικά", "希腊语"},
- {HI, "hi", "हिन्दी", "印地语"},
- {ID, "id", "Bahasa Indonesia", "印尼语"},
- {MS, "ms", "Bahasa Melayu", "马来语"},
- {PL, "pl", "Polski", "波兰语"},
- {TH, "th", "ไทย", "泰语"},
- {VI, "vi", "Tiếng Việt", "越南语"},
- {FI, "fi", "Suomi", "芬兰语"},
- {RO, "ro", "Română", "罗马尼亚语"},
- {TR, "tr", "Türkçe", "土耳其语"},
- {FA, "fa", "فارسی", "波斯语"},
- {AR, "ar", "العربية", "阿拉伯语"},
- {HE, "he", "עברית", "希伯来语"},
- {UK, "uk", "Українська", "乌克兰语"},
- {SV, "sv", "Svenska", "瑞典语"},
- {UZ, "uz", "O‘zbek", "乌兹别克语"},
- {AZ, "az", "Azərbaycan dili", "阿塞拜疆语"},
+ {ZH_CN, "zh", "中文", "中文",HARMONYOS_VECTOR_FONT_FILENAME},
+ {EN, "en", "English", "英语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {JA, "ja", "日本語", "日语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {KO, "ko", "한국어", "韩语",KOREA_FONT},
+ {ES, "es", "Español", "西班牙语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {RU, "ru", "Русский", "俄语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {HR, "hr", "Hrvatski", "克罗地亚语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {DE, "de", "Deutsch", "德语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {PT, "pt", "Português", "葡萄牙语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {FR, "fr", "Français", "法语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {NL, "nl", "Nederlands", "荷兰语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {IT, "it", "Italiano", "意大利语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {CS, "cs", "Čeština", "捷克语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {EL, "el", "Ελληνικά", "希腊语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {HI, "hi", "हिन्दी", "印地语",HINDI_FONT},
+ {ID, "id", "Bahasa Indonesia", "印尼语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {MS, "ms", "Bahasa Melayu", "马来语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {PL, "pl", "Polski", "波兰语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {TH, "th", "ไทย", "泰语",HARMONYOS_VECTOR_FONT_FILENAME},//THAI_FONT
+ {VI, "vi", "Tiếng Việt", "越南语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {FI, "fi", "Suomi", "芬兰语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {RO, "ro", "Română", "罗马尼亚语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {TR, "tr", "Türkçe", "土耳其语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {FA, "fa", "فارسی", "波斯语",PERSIAN_FONT},
+ {AR, "ar", "العربية", "阿拉伯语",ARABIC_FONT},
+ {HE, "he", "עברית", "希伯来语",HEBREW_FONT},
+ {UK, "uk", "Українська", "乌克兰语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {SV, "sv", "Svenska", "瑞典语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {UZ, "uz", "O‘zbek", "乌兹别克语",HARMONYOS_VECTOR_FONT_FILENAME},
+ {AZ, "az", "Azərbaycan dili", "阿塞拜疆语",HARMONYOS_VECTOR_FONT_FILENAME},
};
- static const char *en = "user/res/font/en.lang";
- static const char *zh = "user/res/font/zh.lang";
- // static const char *ja = "user/res/font/ja.lang";
- // static const char *de = "user/res/font/de.lang";
-
+
// static const uint8_t langcount = 2;
- const char *resFiles[MAX_LANGUAGE] = {
+
+ const char *resFiles[MAX_LANGUAGE]= {
"user/res/font/zh.lang",// ZH_CN = 0,
"user/res/font/en.lang",// EN,
- "user/res/font/zh.lang",// JA,
- "user/res/font/zh.lang",// KO,
- "user/res/font/zh.lang",// ES,
- "user/res/font/zh.lang",// RU,
- "user/res/font/zh.lang",// HR,
- "user/res/font/zh.lang",// DE,
- "user/res/font/zh.lang",// PT,
- "user/res/font/zh.lang",// FR,
- "user/res/font/zh.lang",// NL,
- "user/res/font/zh.lang",// IT,
- "user/res/font/zh.lang",// CS,
- "user/res/font/zh.lang",// EL,
- "user/res/font/zh.lang",// HI,
- "user/res/font/zh.lang",// ID,
- "user/res/font/zh.lang",// MS,
- "user/res/font/zh.lang",// PL,
- "user/res/font/zh.lang",// TH,
- "user/res/font/zh.lang",// VI,
- "user/res/font/zh.lang",// FI,
- "user/res/font/zh.lang",// RO,
- "user/res/font/zh.lang",// TR,
- "user/res/font/zh.lang",// FA,
- "user/res/font/zh.lang",// AR,
- "user/res/font/zh.lang",// HE,
- "user/res/font/zh.lang",// UK,
- "user/res/font/zh.lang",// SV,
- "user/res/font/zh.lang",// UZ,
- "user/res/font/zh.lang"// AZ,
- };
-
+ "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)
+ {
+ return ¤t_global_font_name[0];
+ }
+
+ 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);
+ }
+
+ /**
+ * return 1 从右到左
+ * return 0 从左到右
+ */
+ int get_current_font_direction(void)
+ {
+ // 从右到左排版的语言
+ // 阿拉伯语(Arabic)
+ // 希伯来语(Hebrew)
+ // 波斯语(Persian,也称为法尔斯语)
+ // 乌尔都语(Urdu)
+ // 阿拉米语(Aramaic)
+ char* fontname=get_current_global_font_name();
+ if (memcpy_s(fontname,strlen(fontname),PERSIAN_FONT,strlen(PERSIAN_FONT)) == 0)
+ return 1;
+ else if (memcpy_s(fontname,strlen(fontname),ARABIC_FONT,strlen(ARABIC_FONT)) == 0)
+ return 1;
+ else if (memcpy_s(fontname,strlen(fontname),HEBREW_FONT,strlen(HEBREW_FONT)) == 0)
+ return 1;
+ else
+ return 0;
+ }
+
language::language()
{
return false;
}
+ if (currentLanguageId >= MAX_LANGUAGE || currentLanguageId < 0)
+ return false;
+
FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, currentLanguageId);
UIFont::GetInstance()->SetCurrentLangId(currentLanguageId);
ConfigModel::GetInstance()->SetLanguageCode(languages[currentLanguageId].code);
ConfigModel::GetInstance()->SetLanguage(currentLanguageId);
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[language_status]:%s", resFiles[language_status]);
+ int ret = set_current_global_font_name(languages[currentLanguageId].fontname);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles [%d]:%s fontname:%s , ret = %d", currentLanguageId,resFiles[currentLanguageId],languages[currentLanguageId].fontname,ret);
return true;
}
ConfigModel::GetInstance()->SetLanguageCode(language_code.c_str());
ConfigModel::GetInstance()->SetLanguage(currentLanguageId);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[%d]:%s", currentLanguageId, resFiles[currentLanguageId]);
+ int ret = set_current_global_font_name(languages[currentLanguageId].fontname);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[%d]:%s fontname %s , ret = %d", currentLanguageId, resFiles[currentLanguageId], languages[currentLanguageId].fontname, ret );
return true;
}