add:i18n
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
@@ -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; } = "";
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user