|
|
@@ -0,0 +1,275 @@
|
|
|
+using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
+
|
|
|
+namespace YZWater.Core.Services;
|
|
|
+
|
|
|
+/// <summary>
|
|
|
+/// 语言切换服务
|
|
|
+/// </summary>
|
|
|
+public partial class LanguageService : ObservableObject
|
|
|
+{
|
|
|
+ private static LanguageService? _instance;
|
|
|
+ public static LanguageService Instance => _instance ??= new LanguageService();
|
|
|
+
|
|
|
+ [ObservableProperty]
|
|
|
+ private bool _isChinese = true;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 语言变更事件
|
|
|
+ /// </summary>
|
|
|
+ public event Action? LanguageChanged;
|
|
|
+
|
|
|
+ private LanguageService() { }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 切换语言
|
|
|
+ /// </summary>
|
|
|
+ public void ToggleLanguage()
|
|
|
+ {
|
|
|
+ IsChinese = !IsChinese;
|
|
|
+ LanguageChanged?.Invoke();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取翻译
|
|
|
+ /// </summary>
|
|
|
+ public string Get(string key)
|
|
|
+ {
|
|
|
+ return IsChinese ? _zh.GetValueOrDefault(key, key) : _en.GetValueOrDefault(key, key);
|
|
|
+ }
|
|
|
+
|
|
|
+ // ─── 翻译字典 ───
|
|
|
+
|
|
|
+ private static readonly Dictionary<string, string> _zh = new()
|
|
|
+ {
|
|
|
+ // 通用
|
|
|
+ ["AppName"] = "污水处理监控系统",
|
|
|
+ ["Version"] = "版本",
|
|
|
+ // 导航
|
|
|
+ ["NavProcess"] = "工艺流程",
|
|
|
+ ["NavParams"] = "参数设置",
|
|
|
+ ["NavFlow"] = "流量记录",
|
|
|
+ ["NavAlarm"] = "报警记录",
|
|
|
+ ["NavAbout"] = "关于",
|
|
|
+ // ViewA 标题栏
|
|
|
+ ["ProcessFlow"] = "工艺流程",
|
|
|
+ ["PlcConnected"] = "PLC 已连接",
|
|
|
+ ["PlcDisconnected"] = "PLC 未连接",
|
|
|
+ ["Connect"] = "连接",
|
|
|
+ ["Disconnect"] = "断开",
|
|
|
+ ["Refresh"] = "刷新",
|
|
|
+ // ViewA 水箱
|
|
|
+ ["TankInlet"] = "入口池",
|
|
|
+ ["TankBio"] = "生化池",
|
|
|
+ ["TankSediment"] = "沉淀池",
|
|
|
+ ["TankOutlet"] = "出口池",
|
|
|
+ ["Level"] = "液位",
|
|
|
+ // ViewA 泵/风机
|
|
|
+ ["Pump1"] = "进水泵1",
|
|
|
+ ["Pump2"] = "进水泵2",
|
|
|
+ ["Pump3"] = "回流泵",
|
|
|
+ ["Pump4"] = "排泥泵",
|
|
|
+ ["Pump5"] = "加药泵",
|
|
|
+ ["Fan1"] = "风机1",
|
|
|
+ ["Fan2"] = "风机2",
|
|
|
+ // ViewA 阀门
|
|
|
+ ["ValveInlet"] = "进水",
|
|
|
+ ["ValveAeration"] = "曝气",
|
|
|
+ ["ValveReflux"] = "回流",
|
|
|
+ ["ValveOutlet"] = "出水",
|
|
|
+ // ViewA 数据面板
|
|
|
+ ["Mode"] = "运行模式",
|
|
|
+ ["Realtime"] = "实时数据",
|
|
|
+ ["Inflow"] = "进水流量",
|
|
|
+ ["Outflow"] = "出水流量",
|
|
|
+ ["Delta"] = "差值",
|
|
|
+ ["Statistics"] = "运行统计",
|
|
|
+ ["Runtime"] = "运行时间",
|
|
|
+ ["Devices"] = "设备",
|
|
|
+ ["Alarm"] = "报警",
|
|
|
+ ["Efficiency"] = "效率",
|
|
|
+ ["Active"] = "运行中",
|
|
|
+ ["Stopped"] = "已停止",
|
|
|
+ // ViewA 快捷操作
|
|
|
+ ["QuickOps"] = "快捷操作",
|
|
|
+ ["StartAll"] = "全部启动",
|
|
|
+ ["StopAll"] = "全部停止",
|
|
|
+ ["AckAlarm"] = "报警确认",
|
|
|
+ ["Export"] = "导出",
|
|
|
+ // ViewA 底部状态栏
|
|
|
+ ["FlowMeters"] = "流量监测",
|
|
|
+ ["DeviceStatus"] = "设备状态",
|
|
|
+ // ViewB
|
|
|
+ ["Parameters"] = "参数设置",
|
|
|
+ ["SysConfig"] = "系统参数配置",
|
|
|
+ ["PlcConnection"] = "PLC 连接设置",
|
|
|
+ ["IpAddress"] = "IP 地址",
|
|
|
+ ["Port"] = "端口",
|
|
|
+ ["AutoConnect"] = "自动连接",
|
|
|
+ ["Status"] = "状态",
|
|
|
+ ["Test"] = "测试",
|
|
|
+ ["AlarmThresholds"] = "报警阈值设置",
|
|
|
+ ["LevelHigh"] = "液位高限",
|
|
|
+ ["LevelLow"] = "液位低限",
|
|
|
+ ["FlowHigh"] = "流量高限",
|
|
|
+ ["PumpSettings"] = "泵设置",
|
|
|
+ ["Frequency"] = "频率",
|
|
|
+ ["SaveConfig"] = "保存配置",
|
|
|
+ ["ResetDefault"] = "恢复默认",
|
|
|
+ ["Connected"] = "已连接",
|
|
|
+ ["Disconnected"] = "未连接",
|
|
|
+ ["Connecting"] = "连接中...",
|
|
|
+ // ViewC
|
|
|
+ ["FlowRecords"] = "流量记录",
|
|
|
+ ["FlowHistory"] = "流量历史数据",
|
|
|
+ ["From"] = "从",
|
|
|
+ ["To"] = "到",
|
|
|
+ ["Query"] = "查询",
|
|
|
+ ["ExportCsv"] = "导出CSV",
|
|
|
+ ["PurgeOld"] = "清除旧数据",
|
|
|
+ ["InflowTrend"] = "进水流量趋势",
|
|
|
+ ["OutflowTrend"] = "出水流量趋势",
|
|
|
+ // ViewD
|
|
|
+ ["AlarmLog"] = "报警记录",
|
|
|
+ ["AlarmHistory"] = "报警历史记录",
|
|
|
+ ["Unconfirmed"] = "未确认",
|
|
|
+ ["AckAll"] = "全部确认",
|
|
|
+ ["Purge"] = "清除",
|
|
|
+ ["Time"] = "时间",
|
|
|
+ ["Type"] = "类型",
|
|
|
+ ["Message"] = "消息",
|
|
|
+ ["Value"] = "数值",
|
|
|
+ ["Level2"] = "级别",
|
|
|
+ ["AckTime"] = "确认时间",
|
|
|
+ ["AckBy"] = "确认人",
|
|
|
+ ["AlarmDetail"] = "报警详情",
|
|
|
+ // ViewE
|
|
|
+ ["About"] = "关于",
|
|
|
+ ["SystemInfo"] = "系统信息",
|
|
|
+ ["Description"] = "基于 Avalonia UI 的跨平台污水处理厂监控系统",
|
|
|
+ ["TechStack"] = "技术栈",
|
|
|
+ ["Company"] = "公司信息",
|
|
|
+ ["CompanyName"] = "公司名称",
|
|
|
+ ["Contact"] = "联系人",
|
|
|
+ ["Phone"] = "联系电话",
|
|
|
+ ["VisitWebsite"] = "访问官网",
|
|
|
+ ["CheckUpdate"] = "检查更新",
|
|
|
+ ["Copyright"] = "© 扬州旭轩科技有限公司",
|
|
|
+ // 控件默认值
|
|
|
+ ["DefaultTank"] = "水箱",
|
|
|
+ ["DefaultPump"] = "泵",
|
|
|
+ ["DefaultFan"] = "风扇",
|
|
|
+ ["DefaultValve"] = "阀门",
|
|
|
+ ["DefaultGauge"] = "仪表",
|
|
|
+ ["DefaultDevice"] = "设备",
|
|
|
+ };
|
|
|
+
|
|
|
+ private static readonly Dictionary<string, string> _en = new()
|
|
|
+ {
|
|
|
+ ["AppName"] = "Wastewater Treatment System",
|
|
|
+ ["Version"] = "Version",
|
|
|
+ ["NavProcess"] = "Process",
|
|
|
+ ["NavParams"] = "Params",
|
|
|
+ ["NavFlow"] = "Flow",
|
|
|
+ ["NavAlarm"] = "Alarm",
|
|
|
+ ["NavAbout"] = "About",
|
|
|
+ ["ProcessFlow"] = "PROCESS FLOW",
|
|
|
+ ["PlcConnected"] = "PLC CONNECTED",
|
|
|
+ ["PlcDisconnected"] = "PLC DISCONNECTED",
|
|
|
+ ["Connect"] = "CONNECT",
|
|
|
+ ["Disconnect"] = "DISCONNECT",
|
|
|
+ ["Refresh"] = "REFRESH",
|
|
|
+ ["TankInlet"] = "Inlet",
|
|
|
+ ["TankBio"] = "Bio Tank",
|
|
|
+ ["TankSediment"] = "Sediment",
|
|
|
+ ["TankOutlet"] = "Outlet",
|
|
|
+ ["Level"] = "Level",
|
|
|
+ ["Pump1"] = "Inlet Pump 1",
|
|
|
+ ["Pump2"] = "Inlet Pump 2",
|
|
|
+ ["Pump3"] = "Reflux Pump",
|
|
|
+ ["Pump4"] = "Sludge Pump",
|
|
|
+ ["Pump5"] = "Dosing Pump",
|
|
|
+ ["Fan1"] = "Fan 1",
|
|
|
+ ["Fan2"] = "Fan 2",
|
|
|
+ ["ValveInlet"] = "Inlet",
|
|
|
+ ["ValveAeration"] = "Aeration",
|
|
|
+ ["ValveReflux"] = "Reflux",
|
|
|
+ ["ValveOutlet"] = "Outlet",
|
|
|
+ ["Mode"] = "MODE",
|
|
|
+ ["Realtime"] = "REALTIME",
|
|
|
+ ["Inflow"] = "INFLOW",
|
|
|
+ ["Outflow"] = "OUTFLOW",
|
|
|
+ ["Delta"] = "DELTA",
|
|
|
+ ["Statistics"] = "STATISTICS",
|
|
|
+ ["Runtime"] = "RUNTIME",
|
|
|
+ ["Devices"] = "DEVICES",
|
|
|
+ ["Alarm"] = "ALARM",
|
|
|
+ ["Efficiency"] = "EFFICIENCY",
|
|
|
+ ["Active"] = "ACTIVE",
|
|
|
+ ["Stopped"] = "STOPPED",
|
|
|
+ ["QuickOps"] = "QUICK OPS",
|
|
|
+ ["StartAll"] = "START ALL",
|
|
|
+ ["StopAll"] = "STOP ALL",
|
|
|
+ ["AckAlarm"] = "ACK ALARM",
|
|
|
+ ["Export"] = "EXPORT",
|
|
|
+ ["FlowMeters"] = "FLOW METERS",
|
|
|
+ ["DeviceStatus"] = "DEVICE STATUS",
|
|
|
+ ["Parameters"] = "PARAMETERS",
|
|
|
+ ["SysConfig"] = "System Configuration",
|
|
|
+ ["PlcConnection"] = "PLC CONNECTION",
|
|
|
+ ["IpAddress"] = "IP ADDRESS",
|
|
|
+ ["Port"] = "PORT",
|
|
|
+ ["AutoConnect"] = "AUTO CONNECT",
|
|
|
+ ["Status"] = "STATUS",
|
|
|
+ ["Test"] = "TEST",
|
|
|
+ ["AlarmThresholds"] = "ALARM THRESHOLDS",
|
|
|
+ ["LevelHigh"] = "LEVEL HIGH",
|
|
|
+ ["LevelLow"] = "LEVEL LOW",
|
|
|
+ ["FlowHigh"] = "FLOW HIGH",
|
|
|
+ ["PumpSettings"] = "PUMP SETTINGS",
|
|
|
+ ["Frequency"] = "FREQUENCY",
|
|
|
+ ["SaveConfig"] = "SAVE CONFIG",
|
|
|
+ ["ResetDefault"] = "RESET DEFAULT",
|
|
|
+ ["Connected"] = "Connected",
|
|
|
+ ["Disconnected"] = "Disconnected",
|
|
|
+ ["Connecting"] = "Connecting...",
|
|
|
+ ["FlowRecords"] = "FLOW RECORDS",
|
|
|
+ ["FlowHistory"] = "Flow History Data",
|
|
|
+ ["From"] = "FROM",
|
|
|
+ ["To"] = "TO",
|
|
|
+ ["Query"] = "QUERY",
|
|
|
+ ["ExportCsv"] = "EXPORT CSV",
|
|
|
+ ["PurgeOld"] = "PURGE OLD",
|
|
|
+ ["InflowTrend"] = "INFLOW TREND",
|
|
|
+ ["OutflowTrend"] = "OUTFLOW TREND",
|
|
|
+ ["AlarmLog"] = "ALARM LOG",
|
|
|
+ ["AlarmHistory"] = "Alarm History",
|
|
|
+ ["Unconfirmed"] = "Unconfirmed",
|
|
|
+ ["AckAll"] = "ACK ALL",
|
|
|
+ ["Purge"] = "PURGE",
|
|
|
+ ["Time"] = "TIME",
|
|
|
+ ["Type"] = "TYPE",
|
|
|
+ ["Message"] = "MESSAGE",
|
|
|
+ ["Value"] = "VALUE",
|
|
|
+ ["Level2"] = "LEVEL",
|
|
|
+ ["AckTime"] = "ACK TIME",
|
|
|
+ ["AckBy"] = "ACK BY",
|
|
|
+ ["AlarmDetail"] = "ALARM DETAIL",
|
|
|
+ ["About"] = "ABOUT",
|
|
|
+ ["SystemInfo"] = "SYSTEM INFO",
|
|
|
+ ["Description"] = "Cross-platform wastewater treatment plant monitoring system based on Avalonia UI",
|
|
|
+ ["TechStack"] = "TECH STACK",
|
|
|
+ ["Company"] = "COMPANY",
|
|
|
+ ["CompanyName"] = "COMPANY NAME",
|
|
|
+ ["Contact"] = "CONTACT",
|
|
|
+ ["Phone"] = "PHONE",
|
|
|
+ ["VisitWebsite"] = "VISIT WEBSITE",
|
|
|
+ ["CheckUpdate"] = "CHECK UPDATE",
|
|
|
+ ["Copyright"] = "© Yangzhou Xuxuan Technology Co., Ltd.",
|
|
|
+ ["DefaultTank"] = "Tank",
|
|
|
+ ["DefaultPump"] = "Pump",
|
|
|
+ ["DefaultFan"] = "Fan",
|
|
|
+ ["DefaultValve"] = "Valve",
|
|
|
+ ["DefaultGauge"] = "Gauge",
|
|
|
+ ["DefaultDevice"] = "Device",
|
|
|
+ };
|
|
|
+}
|