From 5b47ceb51b22ac2ed294850a8abc3daa7d4baff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=88=B0=E9=98=9F=E7=9A=84=E5=81=B6=E5=83=8F-=E5=B2=9B?= =?UTF-8?q?=E9=A3=8E=E9=85=B1!?= Date: Tue, 30 Apr 2024 10:32:32 +0800 Subject: [PATCH] Make SettingCheckBoxBase and SettingDropDownBase can be i18n --- DTAConfig/Settings/SettingCheckBoxBase.cs | 15 +++++++++++++++ DTAConfig/Settings/SettingDropDownBase.cs | 10 ++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/DTAConfig/Settings/SettingCheckBoxBase.cs b/DTAConfig/Settings/SettingCheckBoxBase.cs index f5be9ba8e..a6b31f8e5 100644 --- a/DTAConfig/Settings/SettingCheckBoxBase.cs +++ b/DTAConfig/Settings/SettingCheckBoxBase.cs @@ -1,7 +1,9 @@ using System; +using ClientCore.I18N; using ClientGUI; using Rampastring.Tools; using Rampastring.XNAUI; +using Rampastring.XNAUI.XNAControls; namespace DTAConfig.Settings { @@ -74,6 +76,9 @@ public XNAClientCheckBox ParentCheckBox protected override void ParseControlINIAttribute(IniFile iniFile, string key, string value) { + static string Localize(XNAControl control, string attributeName, string defaultValue, bool notify = true) + => Translation.Instance.LookUp(control, attributeName, defaultValue, notify); + switch (key) { case "Checked": @@ -98,6 +103,16 @@ protected override void ParseControlINIAttribute(IniFile iniFile, string key, st } base.ParseControlINIAttribute(iniFile, key, value); + + switch (key) + { + case nameof(Text): + Text = Localize(this, nameof(Text), Text); + break; + case nameof(ToolTip): + ToolTipText = Localize(this, nameof(ToolTip), ToolTipText); + break; + } } public abstract void Load(); diff --git a/DTAConfig/Settings/SettingDropDownBase.cs b/DTAConfig/Settings/SettingDropDownBase.cs index 36595ac2f..9e6acaebb 100644 --- a/DTAConfig/Settings/SettingDropDownBase.cs +++ b/DTAConfig/Settings/SettingDropDownBase.cs @@ -1,5 +1,4 @@ -using ClientCore.Extensions; -using ClientCore.I18N; +using ClientCore.I18N; using ClientGUI; using Rampastring.Tools; using Rampastring.XNAUI; @@ -77,6 +76,13 @@ static string Localize(XNAControl control, string attributeName, string defaultV } base.ParseControlINIAttribute(iniFile, key, value); + + switch (key) + { + case nameof(ToolTip): + ToolTipText = Localize(this, nameof(ToolTip), ToolTipText); + break; + } } public abstract void Load();