This commit is contained in:
2026-03-03 14:33:41 +08:00
parent 1e65cee4ad
commit 08f7afc3f1
5 changed files with 110 additions and 0 deletions
+14
View File
@@ -1143,6 +1143,20 @@
<ComboBoxItem Content="{i18n:I18n Key=Theme_System}" FontFamily="Microsoft YaHei UI" />
</ComboBox>
</ui:SimpleStackPanel>
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="{i18n:I18n Key=Theme_LanguageLabel}" VerticalAlignment="Center"
FontSize="14" Margin="0,0,16,0" />
<ComboBox Name="ComboBoxLanguage" FontFamily="Microsoft YaHei UI"
SelectedIndex="0"
SelectionChanged="ComboBoxLanguage_SelectionChanged"
Width="160">
<ComboBoxItem Content="{i18n:I18n Key=Theme_Language_System}" FontFamily="Microsoft YaHei UI" />
<ComboBoxItem Content="{i18n:I18n Key=Theme_Language_ChineseSimplified}" FontFamily="Microsoft YaHei UI" />
<ComboBoxItem Content="{i18n:I18n Key=Theme_Language_English}" FontFamily="Microsoft YaHei UI" />
</ComboBox>
</ui:SimpleStackPanel>
<TextBlock Text="{i18n:I18n Key=Theme_Language_RestartHint}"
TextWrapping="Wrap" Foreground="#a1a1aa" />
<ui:SimpleStackPanel Orientation="Horizontal" HorizontalAlignment="Left">
<TextBlock Foreground="#fafafa" Text="{i18n:I18n Key=Theme_EnableSplash}" VerticalAlignment="Center"
FontSize="14" Margin="0,0,16,0" />
+84
View File
@@ -94,6 +94,19 @@ namespace Ink_Canvas
处于画板模式内:Topmost == false / currentMode != 0
处于 PPT 放映内:BtnPPTSlideShowEnd.Visibility
*/
try
{
var preferredLanguage = Settings?.Appearance?.Language;
if (!string.IsNullOrWhiteSpace(preferredLanguage))
{
LocalizationHelper.TrySetCulture(preferredLanguage);
}
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"应用首选界面语言失败: {ex.Message}", LogHelper.LogType.Error);
}
InitializeComponent();
BlackboardLeftSide.Visibility = Visibility.Collapsed;
@@ -1473,6 +1486,40 @@ namespace Ink_Canvas
AddTouchSupportToSliders();
}
private void ApplyLanguageFromSettings()
{
try
{
if (ComboBoxLanguage == null || Settings?.Appearance == null) return;
var preferredLanguage = Settings.Appearance.Language ?? string.Empty;
int index;
if (string.IsNullOrWhiteSpace(preferredLanguage))
{
index = 0;
}
else if (string.Equals(preferredLanguage, "zh-CN", StringComparison.OrdinalIgnoreCase))
{
index = 1;
}
else if (string.Equals(preferredLanguage, "en-US", StringComparison.OrdinalIgnoreCase))
{
index = 2;
}
else
{
index = 0;
}
ComboBoxLanguage.SelectedIndex = index;
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"初始化语言选项失败: {ex.Message}", LogHelper.LogType.Error);
}
}
/// <summary>
/// 响应显示器/分辨率配置变化:在检测启用时显示分辨率变更通知,并在后台检查悬浮工具栏是否位于屏幕之外,若是则在延迟后尝试将其通过动画恢复到可见区域(在演示模式下使用不同的动画偏移)。
@@ -4500,6 +4547,43 @@ namespace Ink_Canvas
}
}
private void ComboBoxLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
if (!isLoaded) return;
if (Settings?.Appearance == null) return;
if (ComboBoxLanguage == null) return;
var index = ComboBoxLanguage.SelectedIndex;
string language;
switch (index)
{
case 1:
language = "zh-CN";
break;
case 2:
language = "en-US";
break;
case 0:
default:
language = string.Empty;
break;
}
Settings.Appearance.Language = language;
SaveSettingsToFile();
ShowNotification("已更新界面语言设置,重启应用后生效。");
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"切换界面语言时出错: {ex.Message}", LogHelper.LogType.Error);
ShowNotification("切换界面语言失败。");
}
}
/// <summary>
/// 应用指定主题
/// </summary>
+5
View File
@@ -720,4 +720,9 @@
<data name="Booth_Correction" xml:space="preserve"><value>Correct</value></data>
<data name="Booth_Capture" xml:space="preserve"><value>Capture</value></data>
<data name="Booth_Rotate" xml:space="preserve"><value>Rotate</value></data>
<data name="Theme_LanguageLabel" xml:space="preserve"><value>UI language</value></data>
<data name="Theme_Language_System" xml:space="preserve"><value>Follow system</value></data>
<data name="Theme_Language_ChineseSimplified" xml:space="preserve"><value>Chinese (Simplified)</value></data>
<data name="Theme_Language_English" xml:space="preserve"><value>English</value></data>
<data name="Theme_Language_RestartHint" xml:space="preserve"><value>You need to restart the app for language changes to fully take effect.</value></data>
</root>
+5
View File
@@ -735,4 +735,9 @@
<data name="Booth_Correction" xml:space="preserve"><value>矫正</value></data>
<data name="Booth_Capture" xml:space="preserve"><value>拍照</value></data>
<data name="Booth_Rotate" xml:space="preserve"><value>旋转</value></data>
<data name="Theme_LanguageLabel" xml:space="preserve"><value>界面语言</value></data>
<data name="Theme_Language_System" xml:space="preserve"><value>跟随系统</value></data>
<data name="Theme_Language_ChineseSimplified" xml:space="preserve"><value>简体中文</value></data>
<data name="Theme_Language_English" xml:space="preserve"><value>English</value></data>
<data name="Theme_Language_RestartHint" xml:space="preserve"><value>更改界面语言后需要重启应用程序才能完全生效。</value></data>
</root>
+2
View File
@@ -310,6 +310,8 @@ namespace Ink_Canvas
public int QuickColorPaletteDisplayMode { get; set; } = 1;
[JsonProperty("enableHotkeysInMouseMode")]
public bool EnableHotkeysInMouseMode { get; set; } = false;
[JsonProperty("language")]
public string Language { get; set; } = "";
}