From bbacb038cb5879208deda14fff5c676413f7439a Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Tue, 27 Jun 2023 20:43:22 +0800 Subject: [PATCH] fix CHS cannot load correct metadata --- .../Service/Metadata/IMetadataContext.cs | 42 +++++++++++++++++++ .../Service/Metadata/MetadataOptions.cs | 4 +- src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 2 +- .../Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs | 1 - 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs new file mode 100644 index 00000000..56adf5a2 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/IMetadataContext.cs @@ -0,0 +1,42 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Service.Metadata; + +/// +/// 元数据上下文 +/// +internal interface IMetadataContext +{ + /// + /// 获取对应元数据类型的列表 + /// + /// 元数据类型 + /// 名称,留空则使用类型名称 + /// 对应元数据类型的列表 + List List(string name = default!); + + /// + /// 获取对应元数据类型的映射 + /// + /// 键类型 + /// 元数据类型 + /// 键选择器 + /// 名称,留空则使用类型名称 + /// 对应元数据类型的映射 + Dictionary Map(Func keySelector, string name = default!) + where Tkey : notnull; + + /// + /// 获取对应元数据类型的映射 + /// + /// 键类型 + /// 值类型 + /// 元数据类型 + /// 键选择器 + /// 值选择器 + /// 名称,留空则使用类型名称 + /// 对应元数据类型的映射 + Dictionary Map(Func keySelector, Func dataSelector, string name = default!) + where Tkey : notnull; +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs index d67ddd3d..bef766b0 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Metadata/MetadataOptions.cs @@ -118,8 +118,8 @@ internal sealed partial class MetadataOptions : IOptions case "th": return "TH"; // Thai case "tr": return "TR"; // Turkish case "vi": return "TR"; // Vietnamese - case "zh-CHS": return "CHS"; // Chinese (Simplified) Legacy - case "zh-CHT": return "CHT"; // Chinese (Traditional) Legacy + case "zh-Hans": return "CHS"; // Chinese (Simplified) + case "zh-Hant": return "CHT"; // Chinese (Traditional) default: cultureInfo = cultureInfo.Parent; break; } } diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj index 81e4bc06..80904e05 100644 --- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj +++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj @@ -256,7 +256,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs index 776c5ae1..c509d688 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Hoyolab/HoyolabOptions.cs @@ -43,7 +43,6 @@ internal sealed class HoyolabOptions : IOptions /// public const string XrpcVersionOversea = "2.31.0"; - // https://github.com/UIGF-org/Hoyolab.Salt private static readonly ImmutableDictionary SaltsInner = new Dictionary() { // Chinese