| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- 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 LoadFromConfig()
- {
- var config = ConfigService.GetConfig();
- if (config != null)
- {
- IsChinese = config.IsChinese;
- }
- }
- /// <summary>
- /// 鍒囨崲璇█骞朵繚瀛
- /// </summary>
- public void ToggleLanguage()
- {
- IsChinese = !IsChinese;
- SaveToConfig();
- LanguageChanged?.Invoke();
- }
- private void SaveToConfig()
- {
- var config = ConfigService.GetConfig();
- if (config != null)
- {
- config.IsChinese = IsChinese;
- ConfigService.SaveConfig();
- }
- }
- /// <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",
- };
- }
|