mirror of
https://github.com/kunkundi/crossdesk.git
synced 2026-11-03 20:47:43 +08:00
[feat] add system language support across desktop and mobile
This commit is contained in:
@@ -25,15 +25,15 @@ std::optional<bool> Boolean(const std::string& value) {
|
||||
return std::nullopt;
|
||||
}
|
||||
const char* OnOff(bool value) { return value ? "on" : "off"; }
|
||||
const char* languages[] = {"zh-CN", "en-US", "ru-RU"};
|
||||
const char* languages[] = {"zh-CN", "en-US", "ru-RU", "zh-Hant", "ja", "ko", "de", "fr", "es", "pt-BR", "system"};
|
||||
const char* turn_modes[] = {"off", "auto", "udp", "tcp"};
|
||||
} // namespace
|
||||
|
||||
std::vector<ConsoleSetting> GetConsoleSettings(const ConfigCenter& config) {
|
||||
const auto language = std::clamp(static_cast<int>(config.GetLanguage()), 0, 2);
|
||||
const auto language = std::clamp(static_cast<int>(config.GetLanguage()), 0, 10);
|
||||
const auto turn = std::clamp(static_cast<int>(config.GetTurnMode()), 0, 3);
|
||||
return {
|
||||
{"language", "console_setting_language", languages[language], "zh-CN / en-US / ru-RU"},
|
||||
{"language", "console_setting_language", languages[language], "system / zh-CN / en-US / ru-RU / zh-Hant / ja / ko / de / fr / es / pt-BR"},
|
||||
{"codec", "console_setting_codec", config.GetVideoEncodeFormat() == ConfigCenter::VIDEO_ENCODE_FORMAT::AV1 ? "av1" : "h264", "h264 / av1"},
|
||||
{"turn", "console_setting_turn", turn_modes[turn], "off / auto / udp / tcp"},
|
||||
{"self_hosted", "console_setting_self_hosted", OnOff(config.IsSelfHosted()), "on / off"},
|
||||
@@ -70,6 +70,10 @@ SettingResult ApplyConsoleSetting(ConfigCenter& config, const std::string& key,
|
||||
int language = value == "zh-cn" || value == "zh" || value == "0" ? 0
|
||||
: value == "en-us" || value == "en" || value == "1" ? 1
|
||||
: value == "ru-ru" || value == "ru" || value == "2" ? 2 : -1;
|
||||
if (language < 0) {
|
||||
for (int i = 0; i <= 10; ++i)
|
||||
if (value == Lower(languages[i]) || value == std::to_string(i)) language = i;
|
||||
}
|
||||
if (language < 0) return result;
|
||||
canonical = languages[language];
|
||||
save = [&config, language] { return config.SetLanguage(static_cast<ConfigCenter::LANGUAGE>(language)); };
|
||||
|
||||
Reference in New Issue
Block a user