diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Abstraction/WishBase.cs b/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Abstraction/WishBase.cs
index 1e8e97d8..10c34490 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Abstraction/WishBase.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Abstraction/WishBase.cs
@@ -49,6 +49,6 @@ public abstract class WishBase
///
public string TotalCountFormatted
{
- get => $"{TotalCount} 抽";
+ get => string.Format(SH.ModelBingGachaWishBaseTotalCountFormat, TotalCount);
}
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs b/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs
index 0c686c9d..d52ca0c1 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs
@@ -20,7 +20,7 @@ public class TypedWishSummary : WishBase
///
public string MaxOrangePullFormatted
{
- get => $"最非 {MaxOrangePull} 抽";
+ get => string.Format(SH.ModelBingGachaTypedWishSummaryMaxOrangePullFormat, MaxOrangePull);
}
///
@@ -33,7 +33,7 @@ public class TypedWishSummary : WishBase
///
public string MinOrangePullFormatted
{
- get => $"最欧 {MinOrangePull} 抽";
+ get => string.Format(SH.ModelBingGachaTypedWishSummaryMinOrangePullFormat, MinOrangePull);
}
///
@@ -46,7 +46,7 @@ public class TypedWishSummary : WishBase
///
public string LastOrangePullFormatted
{
- get => $"已垫 {LastOrangePull} 抽";
+ get => string.Format(SH.ModelBingGachaTypedWishSummaryLastPullFormat, LastOrangePull);
}
///
@@ -64,7 +64,7 @@ public class TypedWishSummary : WishBase
///
public string LastPurplePullFormatted
{
- get => $"已垫 {LastPurplePull} 抽";
+ get => string.Format(SH.ModelBingGachaTypedWishSummaryLastPullFormat, LastPurplePull);
}
///
@@ -136,7 +136,7 @@ public class TypedWishSummary : WishBase
///
public string AverageOrangePullFormatted
{
- get => $"{AverageOrangePull:f2} 抽";
+ get => string.Format(SH.ModelBingGachaTypedWishSummaryAveragePullFormat, AverageOrangePull);
}
///
@@ -149,7 +149,7 @@ public class TypedWishSummary : WishBase
///
public string AverageUpOrangePullFormatted
{
- get => $"{AverageUpOrangePull:f2} 抽";
+ get => string.Format(SH.ModelBingGachaTypedWishSummaryAveragePullFormat, AverageUpOrangePull);
}
///
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
index 8298040f..955bd0c2 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
@@ -258,6 +258,60 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 第 {0} 层 的本地化字符串。
+ ///
+ internal static string ModelBindingHutaoComplexAvatarRankFloor {
+ get {
+ return ResourceManager.GetString("ModelBindingHutaoComplexAvatarRankFloor", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 {0:f2} 抽 的本地化字符串。
+ ///
+ internal static string ModelBingGachaTypedWishSummaryAveragePullFormat {
+ get {
+ return ResourceManager.GetString("ModelBingGachaTypedWishSummaryAveragePullFormat", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 已垫 {0} 抽 的本地化字符串。
+ ///
+ internal static string ModelBingGachaTypedWishSummaryLastPullFormat {
+ get {
+ return ResourceManager.GetString("ModelBingGachaTypedWishSummaryLastPullFormat", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 最非 {0} 抽 的本地化字符串。
+ ///
+ internal static string ModelBingGachaTypedWishSummaryMaxOrangePullFormat {
+ get {
+ return ResourceManager.GetString("ModelBingGachaTypedWishSummaryMaxOrangePullFormat", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 最欧 {0} 抽 的本地化字符串。
+ ///
+ internal static string ModelBingGachaTypedWishSummaryMinOrangePullFormat {
+ get {
+ return ResourceManager.GetString("ModelBingGachaTypedWishSummaryMinOrangePullFormat", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 {0} 抽 的本地化字符串。
+ ///
+ internal static string ModelBingGachaWishBaseTotalCountFormat {
+ get {
+ return ResourceManager.GetString("ModelBingGachaWishBaseTotalCountFormat", resourceCulture);
+ }
+ }
+
///
/// 查找类似 必须先选择一个用户与角色 的本地化字符串。
///
@@ -2013,6 +2067,15 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 新建 的本地化字符串。
+ ///
+ internal static string ViewPageCultivationAddProjectAction {
+ get {
+ return ResourceManager.GetString("ViewPageCultivationAddProjectAction", resourceCulture);
+ }
+ }
+
///
/// 查找类似 新建养成计划以继续 的本地化字符串。
///
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index 86446d06..6a733c73 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -183,6 +183,24 @@
导入
+
+ 第 {0} 层
+
+
+ {0:f2} 抽
+
+
+ 已垫 {0} 抽
+
+
+ 最非 {0} 抽
+
+
+ 最欧 {0} 抽
+
+
+ {0} 抽
+
必须先选择一个用户与角色
@@ -768,6 +786,9 @@
新建计划
+
+ 新建
+
新建养成计划以继续
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs
index 8f5c2507..6d566111 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs
@@ -177,9 +177,9 @@ internal class GachaLogService : IGachaLogService
{
return option switch
{
- RefreshOption.WebCache => urlProviders.Single(p => p.Name == nameof(GachaLogUrlWebCacheProvider)),
- RefreshOption.Stoken => urlProviders.Single(p => p.Name == nameof(GachaLogUrlStokenProvider)),
- RefreshOption.ManualInput => urlProviders.Single(p => p.Name == nameof(GachaLogUrlManualInputProvider)),
+ RefreshOption.WebCache => urlProviders.Single(p => p.Name == nameof(GachaLogQueryWebCacheProvider)),
+ RefreshOption.Stoken => urlProviders.Single(p => p.Name == nameof(GachaLogQueryStokenProvider)),
+ RefreshOption.ManualInput => urlProviders.Single(p => p.Name == nameof(GachaLogQueryManualInputProvider)),
_ => null,
};
}
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlManualInputProvider.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryManualInputProvider.cs
similarity index 87%
rename from src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlManualInputProvider.cs
rename to src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryManualInputProvider.cs
index 67f4ee5e..16f1ca5c 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlManualInputProvider.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryManualInputProvider.cs
@@ -9,10 +9,10 @@ namespace Snap.Hutao.Service.GachaLog.QueryProvider;
/// 手动输入方法
///
[Injection(InjectAs.Transient, typeof(IGachaLogQueryProvider))]
-internal class GachaLogUrlManualInputProvider : IGachaLogQueryProvider
+internal class GachaLogQueryManualInputProvider : IGachaLogQueryProvider
{
///
- public string Name { get => nameof(GachaLogUrlManualInputProvider); }
+ public string Name { get => nameof(GachaLogQueryManualInputProvider); }
///
public async Task> GetQueryAsync()
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlStokenProvider.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryStokenProvider.cs
similarity index 87%
rename from src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlStokenProvider.cs
rename to src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryStokenProvider.cs
index 256534e2..41b6c6ee 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlStokenProvider.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryStokenProvider.cs
@@ -13,7 +13,7 @@ namespace Snap.Hutao.Service.GachaLog.QueryProvider;
/// 使用Stokn提供祈愿Url
///
[Injection(InjectAs.Transient, typeof(IGachaLogQueryProvider))]
-internal class GachaLogUrlStokenProvider : IGachaLogQueryProvider
+internal class GachaLogQueryStokenProvider : IGachaLogQueryProvider
{
private readonly IUserService userService;
private readonly BindingClient2 bindingClient2;
@@ -23,14 +23,14 @@ internal class GachaLogUrlStokenProvider : IGachaLogQueryProvider
///
/// 用户服务
/// 绑定客户端
- public GachaLogUrlStokenProvider(IUserService userService, BindingClient2 bindingClient2)
+ public GachaLogQueryStokenProvider(IUserService userService, BindingClient2 bindingClient2)
{
this.userService = userService;
this.bindingClient2 = bindingClient2;
}
///
- public string Name { get => nameof(GachaLogUrlStokenProvider); }
+ public string Name { get => nameof(GachaLogQueryStokenProvider); }
///
public async Task> GetQueryAsync()
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlWebCacheProvider.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryWebCacheProvider.cs
similarity index 94%
rename from src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlWebCacheProvider.cs
rename to src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryWebCacheProvider.cs
index f337427d..b167691f 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogUrlWebCacheProvider.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/QueryProvider/GachaLogQueryWebCacheProvider.cs
@@ -12,7 +12,7 @@ namespace Snap.Hutao.Service.GachaLog.QueryProvider;
/// 浏览器缓存方法
///
[Injection(InjectAs.Transient, typeof(IGachaLogQueryProvider))]
-internal class GachaLogUrlWebCacheProvider : IGachaLogQueryProvider
+internal class GachaLogQueryWebCacheProvider : IGachaLogQueryProvider
{
private readonly IGameService gameService;
@@ -20,13 +20,13 @@ internal class GachaLogUrlWebCacheProvider : IGachaLogQueryProvider
/// 构造一个新的浏览器缓存方法提供器
///
/// 游戏服务
- public GachaLogUrlWebCacheProvider(IGameService gameService)
+ public GachaLogQueryWebCacheProvider(IGameService gameService)
{
this.gameService = gameService;
}
///
- public string Name { get => nameof(GachaLogUrlWebCacheProvider); }
+ public string Name { get => nameof(GachaLogQueryWebCacheProvider); }
///
/// 获取缓存文件路径
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs
index dbc7a96c..37805bc9 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/RegistryInterop.cs
@@ -18,6 +18,8 @@ internal static class RegistryInterop
///
/// 设置键值
+ /// 需要支持
+ /// https://learn.microsoft.com/zh-cn/windows/win32/fileio/maximum-file-path-limitation
///
/// 账户
/// 账号是否设置
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoCache.cs b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoCache.cs
index b851c3fc..49cee3db 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoCache.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Hutao/HutaoCache.cs
@@ -184,7 +184,7 @@ internal class HutaoCache : IHutaoCache
AvatarAppearanceRanks = avatarAppearanceRanksRaw.OrderByDescending(r => r.Floor).Select(rank => new ComplexAvatarRank
{
- Floor = $"第 {rank.Floor} 层",
+ Floor = string.Format(SH.ModelBindingHutaoComplexAvatarRankFloor, rank.Floor),
Avatars = rank.Ranks.OrderByDescending(r => r.Rate).Select(rank => new ComplexAvatar(idAvatarMap[rank.Item], rank.Rate)).ToList(),
}).ToList();
}
@@ -200,7 +200,7 @@ internal class HutaoCache : IHutaoCache
AvatarUsageRanks = avatarUsageRanksRaw.OrderByDescending(r => r.Floor).Select(rank => new ComplexAvatarRank
{
- Floor = $"第 {rank.Floor} 层",
+ Floor = string.Format(SH.ModelBindingHutaoComplexAvatarRankFloor, rank.Floor),
Avatars = rank.Ranks.OrderByDescending(r => r.Rate).Select(rank => new ComplexAvatar(idAvatarMap[rank.Item], rank.Rate)).ToList(),
}).ToList();
}
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
index 0ba95c65..9f2cd33f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
@@ -370,7 +370,7 @@
Description="{shcm:ResourceString Name=ViewPageCultivationAddProjectDescription}"
Header="{shcm:ResourceString Name=ViewPageCultivationAddProject}"
Icon="{shcm:FontIcon Glyph=}">
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
index 671ff11b..bb3a3e85 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
@@ -238,9 +238,9 @@ internal class GachaLogViewModel : Abstraction.ViewModel
}
else
{
- if (query is string message)
+ if (!string.IsNullOrEmpty(query.Message))
{
- infoBarService.Warning(message);
+ infoBarService.Warning(query.Message);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs
index 9baf425f..5c80fb89 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs
@@ -10,6 +10,7 @@ using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Service.GachaLog;
+using Snap.Hutao.Service.GachaLog.QueryProvider;
using Snap.Hutao.Service.Game;
using Snap.Hutao.Service.Game.Locator;
using Snap.Hutao.View.Dialog;
@@ -198,7 +199,7 @@ internal class SettingViewModel : Abstraction.ViewModel
if (!string.IsNullOrEmpty(gamePath))
{
- string cacheFilePath = GachaLogUrlWebCacheProvider.GetCacheFile(gamePath);
+ string cacheFilePath = GachaLogQueryWebCacheProvider.GetCacheFile(gamePath);
string cacheFolder = Path.GetDirectoryName(cacheFilePath)!;
IInfoBarService infoBarService = Ioc.Default.GetRequiredService();