using System; using System.Collections.Generic; using System.Globalization; using System.Resources; using System.Reflection; namespace AuroraDesk.Services { /// /// 资源服务实现,用于管理多语言资源 /// public class ResourceService : IResourceService { private readonly Dictionary _resources; private CultureInfo _currentCulture; public event EventHandler? CultureChanged; public ResourceService() { _resources = new Dictionary(); _currentCulture = CultureInfo.CurrentCulture; LoadResources(); } public string GetString(string key) { return _resources.TryGetValue(key, out var value) ? value : key; } public string GetString(string key, params object[] args) { var format = GetString(key); try { return string.Format(format, args); } catch { return format; } } public void SetCulture(CultureInfo culture) { if (_currentCulture != culture) { _currentCulture = culture; LoadResources(); CultureChanged?.Invoke(this, culture); } } public CultureInfo GetCurrentCulture() { return _currentCulture; } private void LoadResources() { _resources.Clear(); // 根据当前语言加载对应的资源 var resourceFileName = _currentCulture.Name.StartsWith("zh") ? "Strings.zh-CN" : "Strings.en"; // 这里我们使用硬编码的方式,实际项目中可以使用ResourceManager LoadHardcodedResources(resourceFileName); } private void LoadHardcodedResources(string resourceSet) { if (resourceSet == "Strings.zh-CN") { // 中文资源 _resources["AppTitle"] = "系统管理"; _resources["AppSubtitle"] = "Management System"; _resources["NavDashboard"] = "仪表板"; _resources["NavUsers"] = "用户管理"; _resources["NavSettings"] = "系统设置"; _resources["NavReports"] = "报表统计"; _resources["NavHelp"] = "帮助中心"; _resources["HeaderTitle"] = "仪表板"; _resources["HeaderSubtitle"] = "系统概览"; _resources["BtnRefresh"] = "刷新"; _resources["BtnSettings"] = "设置"; _resources["BtnMinimize"] = "最小化"; _resources["BtnMaximize"] = "最大化"; _resources["BtnRestore"] = "还原"; _resources["BtnClose"] = "关闭"; _resources["BtnCloseTab"] = "关闭标签页"; _resources["VersionInfo"] = "版本信息"; _resources["VersionNumber"] = "v1.0.0"; _resources["PageDashboard"] = "仪表板"; _resources["PageUsers"] = "用户管理"; _resources["PageSettings"] = "系统设置"; _resources["PageReports"] = "报表统计"; _resources["PageHelp"] = "帮助中心"; } else { // 英文资源 _resources["AppTitle"] = "Management System"; _resources["AppSubtitle"] = "Management System"; _resources["NavDashboard"] = "Dashboard"; _resources["NavUsers"] = "User Management"; _resources["NavSettings"] = "System Settings"; _resources["NavReports"] = "Reports"; _resources["NavHelp"] = "Help Center"; _resources["HeaderTitle"] = "Dashboard"; _resources["HeaderSubtitle"] = "System Overview"; _resources["BtnRefresh"] = "Refresh"; _resources["BtnSettings"] = "Settings"; _resources["BtnMinimize"] = "Minimize"; _resources["BtnMaximize"] = "Maximize"; _resources["BtnRestore"] = "Restore"; _resources["BtnClose"] = "Close"; _resources["BtnCloseTab"] = "Close Tab"; _resources["VersionInfo"] = "Version Information"; _resources["VersionNumber"] = "v1.0.0"; _resources["PageDashboard"] = "Dashboard"; _resources["PageUsers"] = "User Management"; _resources["PageSettings"] = "System Settings"; _resources["PageReports"] = "Reports"; _resources["PageHelp"] = "Help Center"; } } } }