957157ae80
## Compilation fixes - Fix XAML namespace reference XplorePlane.Converters → XplorePlane.Helpers (EventLogView, StateDisplayView) - Add missing using for ISampleTypeRepository / JsonSampleTypeRepository in App.xaml.cs - Fix ILoggerService.Warn() calls using Exception as first arg instead of message string - Serialize CncProgram to JSON when passing to MatrixLayout (expects string, not CncProgram object) - Suppress CS8632 nullable annotation warnings project-wide ## BGA wizard fixes - Fix preview not showing on step 3: force RefreshBgaPreview() when entering final step - Add step validation in CanNext() to prevent skipping to preview with invalid inputs - Notify NextCommand.CanExecuteChanged when inputs change - Fix RunProgress runtime binding error: set Mode=OneWay for ProgressBar.Value ## Operator toolbox: prevent duplicate insertion - Add static OperatorTarget property for direct dispatch to active pipeline - PipelineEditorView registers as toolbox target on load (floating window only) - CNC page sets initial target; PipelineEditorWindow resets to CNC pipeline on close - '+' button inserts only to the active pipeline instead of broadcasting to all subscribers ## Pipeline editor status bar messages - Add StatusBarMessageEvent / StatusBarMessagePayload to CommonEvents.cs - PipelineEditorViewModel publishes status on all ops (add/remove/reorder/save/execute) - MainViewModel subscribes and displays on main window bottom status bar - Auto-clear after timeout (3s info, 5s error) ## docs - Merge three architecture docs into consolidated XplorePlane-架构与结构说明.md
50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
using System.Globalization;
|
|
using System.Resources;
|
|
|
|
namespace XP.ImageProcessing.Processors;
|
|
|
|
/// <summary>
|
|
/// 本地化辅助类,用于管理多语言资源
|
|
/// 与 ImageProcessing 主项目的语言设置同步
|
|
/// </summary>
|
|
public static class LocalizationHelper
|
|
{
|
|
private static ResourceManager? _resourceManager;
|
|
|
|
/// <summary>
|
|
/// 资源管理器
|
|
/// </summary>
|
|
private static ResourceManager ResourceManager
|
|
{
|
|
get
|
|
{
|
|
if (_resourceManager == null)
|
|
{
|
|
_resourceManager = new ResourceManager(
|
|
"XP.Common.Resources.Resources",
|
|
typeof(XP.Common.Resources.Resources).Assembly);
|
|
}
|
|
return _resourceManager;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取本地化字符串
|
|
/// 使用当前 UI 文化(与主项目同步)
|
|
/// </summary>
|
|
/// <param name="key">资源键</param>
|
|
/// <returns>本地化字符串</returns>
|
|
public static string GetString(string key)
|
|
{
|
|
try
|
|
{
|
|
// 使用 CultureInfo.CurrentUICulture,这会自动与主项目的语言设置同步
|
|
var value = ResourceManager.GetString(key, CultureInfo.CurrentUICulture);
|
|
return value ?? key;
|
|
}
|
|
catch
|
|
{
|
|
return key;
|
|
}
|
|
}
|
|
} |