using CommunityToolkit.Mvvm.ComponentModel; namespace YZWater.Core.Services; /// /// 语言切换服务 /// public partial class LanguageService : ObservableObject { private static LanguageService? _instance; public static LanguageService Instance => _instance ??= new LanguageService(); [ObservableProperty] private bool _isChinese = true; /// /// 语言变更事件 /// public event Action? LanguageChanged; private LanguageService() { } /// /// 从配置加载语言偏好 /// public void LoadFromConfig() { var config = ConfigService.GetConfig(); if (config != null) { IsChinese = config.IsChinese; } } /// /// 切换语言并保存 /// public void ToggleLanguage() { IsChinese = !IsChinese; SaveToConfig(); LanguageChanged?.Invoke(); } private void SaveToConfig() { var config = ConfigService.GetConfig(); if (config != null) { config.IsChinese = IsChinese; ConfigService.SaveConfig(); } } /// /// 获取翻译 /// public string Get(string key) { return IsChinese ? _zh.GetValueOrDefault(key, key) : _en.GetValueOrDefault(key, key); } // ─── 翻译字典 ─── private static readonly Dictionary _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 _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", }; }