Merge branch 'master' into master_fix

This commit is contained in:
Slnanx 2024-11-17 21:14:31 +08:00 committed by GitHub
commit 4038497443
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 38 additions and 2 deletions

View file

@ -1,4 +1,4 @@
using System.Globalization; using System.Globalization;
using System.Reflection; using System.Reflection;
using System.Text.Json; using System.Text.Json;
@ -6,14 +6,20 @@ namespace AmazTool
{ {
public class LocalizationHelper public class LocalizationHelper
{ {
private static Dictionary<string, string> languageResources = []; private static Dictionary<string, string> languageResources = [];
static LocalizationHelper() static LocalizationHelper()
{ {
// 加载语言资源 // 加载语言资源
LoadLanguageResources(); LoadLanguageResources();
} }
/// <summary>
/// 加载外部 JSON 文件中的语言资源
/// </summary>
private static void LoadLanguageResources() private static void LoadLanguageResources()
{ {
try try
@ -24,6 +30,7 @@ namespace AmazTool
currentLanguage = "en-US"; currentLanguage = "en-US";
} }
string resourceName = $"AmazTool.{currentLanguage}.json"; string resourceName = $"AmazTool.{currentLanguage}.json";
var assembly = Assembly.GetExecutingAssembly(); var assembly = Assembly.GetExecutingAssembly();
@ -57,6 +64,35 @@ namespace AmazTool
public static string GetLocalizedValue(string key) public static string GetLocalizedValue(string key)
{ {
if (languageResources.TryGetValue(key, out var translation)) if (languageResources.TryGetValue(key, out var translation))
string jsonFilePath = $"{currentLanguage}.json";
if (!File.Exists(jsonFilePath))
{
jsonFilePath = "en-US.json";
}
var json = File.ReadAllText(jsonFilePath);
if (!string.IsNullOrEmpty(json))
{
languageResources = JsonSerializer.Deserialize<Dictionary<string, string>>(json) ?? new Dictionary<string, string>();
}
}
catch (Exception ex)
{
Console.WriteLine($"Failed to load language resources: {ex.Message}");
languageResources = []; // 初始化为空字典
}
}
/// <summary>
/// 获取系统当前语言的本地化字符串
/// </summary>
/// <param name="key">要翻译的关键字</param>
/// <returns>对应语言的本地化字符串,如果没有找到则返回关键字</returns>
public static string GetLocalizedValue(string key)
{
if (languageResources != null && languageResources.TryGetValue(key, out var translation))
{ {
return translation; return translation;
} }

View file

@ -729,7 +729,7 @@ namespace ServiceLib.ViewModels
{ {
return; return;
} }
var result = await CoreConfigHandler.GenerateClientConfig(item, null); var result = await CoreConfigHandler.GenerateClientConfig(item, fileName);
if (result.Success != true) if (result.Success != true)
{ {
NoticeHandler.Instance.Enqueue(result.Msg); NoticeHandler.Instance.Enqueue(result.Msg);