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">
|
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||||||
<value>再起動後に有効になります</value>
|
<value>再起動後に有効になります</value>
|
||||||
</data>
|
</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">
|
<data name="Settings_Theme" xml:space="preserve">
|
||||||
<value>テーマ</value>
|
<value>テーマ</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -292,15 +292,6 @@
|
|||||||
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||||||
<value>Takes effect after restart</value>
|
<value>Takes effect after restart</value>
|
||||||
</data>
|
</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">
|
<data name="Settings_Theme" xml:space="preserve">
|
||||||
<value>Theme</value>
|
<value>Theme</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -292,15 +292,6 @@
|
|||||||
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
<data name="Settings_Language_RestartNotice" xml:space="preserve">
|
||||||
<value>重启后生效</value>
|
<value>重启后生效</value>
|
||||||
</data>
|
</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">
|
<data name="Settings_Theme" xml:space="preserve">
|
||||||
<value>主题</value>
|
<value>主题</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
using System.Globalization;
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
|
|
||||||
using YKanBan.Storage.AppData;
|
using YKanBan.Storage.AppData;
|
||||||
@@ -24,9 +26,9 @@ public sealed partial class SettingsDialogViewModel : ViewModelBase {
|
|||||||
|
|
||||||
Languages =
|
Languages =
|
||||||
[
|
[
|
||||||
new OptionItem(AppConfig.DefaultLanguage, Resources.Settings_LanguageEnglish),
|
LanguageOption(AppConfig.DefaultLanguage),
|
||||||
new OptionItem("zh-Hans", Resources.Settings_LanguageChinese),
|
LanguageOption("zh-Hans"),
|
||||||
new OptionItem("ja", Resources.Settings_LanguageJapanese),
|
LanguageOption("ja"),
|
||||||
];
|
];
|
||||||
selectedLanguage = Languages.FirstOrDefault(option => (string)option.Value == _config.Language)
|
selectedLanguage = Languages.FirstOrDefault(option => (string)option.Value == _config.Language)
|
||||||
?? Languages[0];
|
?? Languages[0];
|
||||||
@@ -127,4 +129,11 @@ public sealed partial class SettingsDialogViewModel : ViewModelBase {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void RefreshRestartNotice() =>
|
private void RefreshRestartNotice() =>
|
||||||
RestartNoticeVisible = SelectedLanguage is not null && (string)SelectedLanguage.Value != _startupLanguage;
|
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