diff --git a/Ink Canvas/Helpers/LocalizationHelper.cs b/Ink Canvas/Helpers/LocalizationHelper.cs
new file mode 100644
index 00000000..116c5b15
--- /dev/null
+++ b/Ink Canvas/Helpers/LocalizationHelper.cs
@@ -0,0 +1,52 @@
+using System.Globalization;
+using System.Threading;
+using Ink_Canvas.Properties;
+
+namespace Ink_Canvas.Helpers
+{
+ ///
+ /// i18n 本地化辅助:设置/获取当前 UI 语言,便于后续从配置切换语言。
+ ///
+ public static class LocalizationHelper
+ {
+ ///
+ /// 当前 UI 语言(如 "zh-CN", "en-US")。未设置时使用系统当前 UI 语言。
+ ///
+ public static CultureInfo CurrentCulture
+ {
+ get => Thread.CurrentThread.CurrentUICulture;
+ set
+ {
+ if (value == null) return;
+ Thread.CurrentThread.CurrentUICulture = value;
+ Strings.Culture = value;
+ }
+ }
+
+ ///
+ /// 使用指定语言名称设置当前 UI 语言(如 "zh-CN", "en-US")。
+ /// 若名称无效则保持当前语言不变。
+ ///
+ public static bool TrySetCulture(string cultureName)
+ {
+ try
+ {
+ var culture = CultureInfo.GetCultureInfo(cultureName);
+ CurrentCulture = culture;
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ ///
+ /// 获取本地化字符串。优先使用强类型属性,未知键时用此方法。
+ ///
+ public static string GetString(string key)
+ {
+ return Strings.GetString(key);
+ }
+ }
+}
diff --git a/Ink Canvas/InkCanvasForClass.csproj b/Ink Canvas/InkCanvasForClass.csproj
index bfd3c32b..da91f7ef 100644
--- a/Ink Canvas/InkCanvasForClass.csproj
+++ b/Ink Canvas/InkCanvasForClass.csproj
@@ -565,6 +565,11 @@
+
+
+ Ink_Canvas.Properties.Strings.en-US.resources
+
+
diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml
index 8333e25e..39ed9ed9 100644
--- a/Ink Canvas/MainWindow.xaml
+++ b/Ink Canvas/MainWindow.xaml
@@ -8,6 +8,7 @@
xmlns:Controls="http://schemas.microsoft.com/netfx/2009/xaml/presentation"
xmlns:controls="clr-namespace:Ink_Canvas.Controls"
xmlns:Windows="clr-namespace:Ink_Canvas.Windows"
+ xmlns:props="clr-namespace:Ink_Canvas.Properties"
mc:Ignorable="d"
AllowsTransparency="True"
WindowStyle="None"
@@ -145,7 +146,7 @@