feat(localization): 支持设置语言跟随系统语言

This commit is contained in:
2026-07-02 19:15:21 +08:00
parent 517a03bbc3
commit c5c90eb5a3
4 changed files with 29 additions and 30 deletions
+2 -28
View File
@@ -43,36 +43,11 @@ namespace AibisDream
return;
}
// 如果文件不存在,则复制默认设置并根据系统语言设置初始语言值
// 如果文件不存在,则复制默认设置(Language 为空表示跟随系统语言)
var defaultSetting = JsonUtil.ReadJObject(SettingDefaultPath);
// 根据当前系统语言设置初始语言值
string systemLanguage = GetLanguageBySystemLanguage();
defaultSetting["Language"] = systemLanguage;
// 保存设置文件
JsonUtil.SaveJObject(defaultSetting, SettingPath);
}
/// <summary>
/// 根据系统语言获取对应的语言代码
/// </summary>
/// <returns>语言代码:zh-Hans、en、ja-JP,默认返回 en</returns>
private string GetLanguageBySystemLanguage()
{
SystemLanguage systemLang = Application.systemLanguage;
return systemLang switch
{
SystemLanguage.Chinese => "zh-Hans",
SystemLanguage.ChineseSimplified => "zh-Hans",
SystemLanguage.ChineseTraditional => "zh-Hans",
SystemLanguage.Japanese => "ja-JP",
SystemLanguage.English => "en",
_ => "en",
};
}
private void LoadAllSetting()
{
var settingConfig = _container.ReadAll();
@@ -103,8 +78,7 @@ namespace AibisDream
#endif
break;
case "Language":
// 确保本地化系统已初始化
LocalizationKit.SwitchLanguage(value);
LocalizationKit.SwitchLanguage(LocalizationKit.ResolveLanguage(value));
break;
case "OpenTimer":
var isTimerOpen = bool.TryParse(value, out var result) ? result : false;