refactor(i18n): take language labels from culture native names
This commit is contained in:
1 parent
506fb4b2f1
commit
6b5a59cd87
4 files changed
+12
-30
No files matched your search
@@ -292,15 +292,6 @@
|
||||
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||||
<value>再起動後に有効になります</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageEnglish" xml:space="preserve">
|
||||
<value>English</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageChinese" xml:space="preserve">
|
||||
<value>简体中文</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageJapanese" xml:space="preserve">
|
||||
<value>日本語</value>
|
||||
</data>
|
||||
<data name="Settings_Theme" xml:space="preserve">
|
||||
<value>テーマ</value>
|
||||
</data>
|
||||
|
||||
@@ -292,15 +292,6 @@
|
||||
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||||
<value>Takes effect after restart</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageEnglish" xml:space="preserve">
|
||||
<value>English</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageChinese" xml:space="preserve">
|
||||
<value>简体中文</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageJapanese" xml:space="preserve">
|
||||
<value>日本語</value>
|
||||
</data>
|
||||
<data name="Settings_Theme" xml:space="preserve">
|
||||
<value>Theme</value>
|
||||
</data>
|
||||
|
||||
@@ -292,15 +292,6 @@
|
||||
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||||
<value>重启后生效</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageEnglish" xml:space="preserve">
|
||||
<value>English</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageChinese" xml:space="preserve">
|
||||
<value>简体中文</value>
|
||||
</data>
|
||||
<data name="Settings_LanguageJapanese" xml:space="preserve">
|
||||
<value>日本語</value>
|
||||
</data>
|
||||
<data name="Settings_Theme" xml:space="preserve">
|
||||
<value>主题</value>
|
||||
</data>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
using System.Globalization;
|
||||
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
|
||||
using YKanBan.Storage.AppData;
|
||||
@@ -24,9 +26,9 @@ public sealed partial class SettingsDialogViewModel : ViewModelBase {
|
||||
|
||||
Languages =
|
||||
[
|
||||
new OptionItem(AppConfig.DefaultLanguage, Resources.Settings_LanguageEnglish),
|
||||
new OptionItem("zh-Hans", Resources.Settings_LanguageChinese),
|
||||
new OptionItem("ja", Resources.Settings_LanguageJapanese),
|
||||
LanguageOption(AppConfig.DefaultLanguage),
|
||||
LanguageOption("zh-Hans"),
|
||||
LanguageOption("ja"),
|
||||
];
|
||||
selectedLanguage = Languages.FirstOrDefault(option => (string)option.Value == _config.Language)
|
||||
?? Languages[0];
|
||||
@@ -127,4 +129,11 @@ public sealed partial class SettingsDialogViewModel : ViewModelBase {
|
||||
/// </summary>
|
||||
private void RefreshRestartNotice() =>
|
||||
RestartNoticeVisible = SelectedLanguage is not null && (string)SelectedLanguage.Value != _startupLanguage;
|
||||
|
||||
/// <summary>
|
||||
/// Builds a language option whose label is the culture's native name, so the
|
||||
/// language designates itself identically under every UI culture.
|
||||
/// </summary>
|
||||
/// <param name="code">The language code stored in app.json.</param>
|
||||
private static OptionItem LanguageOption(string code) => new(code, new CultureInfo(code).NativeName);
|
||||
}
|
||||
Reference in new issue
Block a user