From f2d4f0f1d3e41b689ef7cfb1323fddec76fb7bc7 Mon Sep 17 00:00:00 2001
From: DismissedLight <1686188646@qq.com>
Date: Sun, 5 Feb 2023 19:52:00 +0800
Subject: [PATCH] locale start
---
.../Resource/Localization/SH.Designer.cs | 1687 ++++++++++++++++-
.../Snap.Hutao/Resource/Localization/SH.resx | 565 +++++-
.../Game/Locator/RegistryLauncherLocator.cs | 4 +-
src/Snap.Hutao/Snap.Hutao/View/MainView.xaml | 32 +-
.../View/Page/HutaoDatabasePage.xaml | 18 +-
.../Snap.Hutao/View/Page/LaunchGamePage.xaml | 79 +-
.../View/Page/LoginMihoyoUserPage.xaml | 5 +-
.../Snap.Hutao/View/Page/SettingPage.xaml | 140 +-
.../View/Page/SpiralAbyssRecordPage.xaml | 38 +-
src/Snap.Hutao/Snap.Hutao/View/UserView.xaml | 16 +-
.../Snap.Hutao/View/WelcomeView.xaml | 9 +-
.../ViewModel/Abstraction/ViewModel.cs | 2 +-
.../ViewModel/AchievementViewModel.cs | 48 +-
.../ViewModel/AvatarPropertyViewModel.cs | 20 +-
.../ViewModel/CultivationViewModel.cs | 8 +-
.../ViewModel/DailyNoteViewModel.cs | 16 +-
.../ExperimentalFeaturesViewModel.cs | 6 +-
.../Snap.Hutao/ViewModel/GachaLogViewModel.cs | 34 +-
.../ViewModel/HutaoDatabaseViewModel.cs | 29 -
.../ViewModel/LaunchGameViewModel.cs | 10 +-
.../Snap.Hutao/ViewModel/SettingViewModel.cs | 18 +-
.../ViewModel/SpiralAbyssRecordViewModel.cs | 4 +-
.../Snap.Hutao/ViewModel/UserViewModel.cs | 17 +-
.../Snap.Hutao/ViewModel/WelcomeViewModel.cs | 48 +-
.../ViewModel/WikiAvatarViewModel.cs | 6 +-
.../ViewModel/WikiWeaponViewModel.cs | 6 +-
.../Snap.Hutao/Web/Response/Response.cs | 2 +-
27 files changed, 2534 insertions(+), 333 deletions(-)
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 ac22453f..b530fd58 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.Designer.cs
@@ -69,6 +69,15 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 胡桃 的本地化字符串。
+ ///
+ internal static string AppName {
+ get {
+ return ResourceManager.GetString("AppName", resourceCulture);
+ }
+ }
+
///
/// 查找类似 胡桃 {0} 的本地化字符串。
///
@@ -231,6 +240,33 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 导出 的本地化字符串。
+ ///
+ internal static string FilePickerExportCommit {
+ get {
+ return ResourceManager.GetString("FilePickerExportCommit", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导入 的本地化字符串。
+ ///
+ internal static string FilePickerImportCommit {
+ get {
+ return ResourceManager.GetString("FilePickerImportCommit", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 必须先选择一个用户与角色 的本地化字符串。
+ ///
+ internal static string MustSelectUserAndUid {
+ get {
+ return ResourceManager.GetString("MustSelectUserAndUid", resourceCulture);
+ }
+ }
+
///
/// 查找类似 单个成就存档内发现多个相同的成就 Id 的本地化字符串。
///
@@ -663,6 +699,24 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 成就管理 的本地化字符串。
+ ///
+ internal static string ViewAchievementHeader {
+ get {
+ return ResourceManager.GetString("ViewAchievementHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 主页 的本地化字符串。
+ ///
+ internal static string ViewAnnouncementHeader {
+ get {
+ return ResourceManager.GetString("ViewAnnouncementHeader", resourceCulture);
+ }
+ }
+
///
/// 查找类似 我的角色 的本地化字符串。
///
@@ -753,6 +807,33 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 养成计划 的本地化字符串。
+ ///
+ internal static string ViewCultivationHeader {
+ get {
+ return ResourceManager.GetString("ViewCultivationHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 实时便笺 的本地化字符串。
+ ///
+ internal static string ViewDailyNoteHeader {
+ get {
+ return ResourceManager.GetString("ViewDailyNoteHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 数据 的本地化字符串。
+ ///
+ internal static string ViewDataHeader {
+ get {
+ return ResourceManager.GetString("ViewDataHeader", resourceCulture);
+ }
+ }
+
///
/// 查找类似 在此处输入 的本地化字符串。
///
@@ -1095,6 +1176,591 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 祈愿记录 的本地化字符串。
+ ///
+ internal static string ViewGachaLogHeader {
+ get {
+ return ResourceManager.GetString("ViewGachaLogHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 深渊统计 的本地化字符串。
+ ///
+ internal static string ViewHutaoDatabaseHeader {
+ get {
+ return ResourceManager.GetString("ViewHutaoDatabaseHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 启动游戏 的本地化字符串。
+ ///
+ internal static string ViewLaunchGameHeader {
+ get {
+ return ResourceManager.GetString("ViewLaunchGameHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 存档 [{0}] 添加成功 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementArchiveAdded {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementArchiveAdded", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 不能添加名称重复的存档 [{0}] 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementArchiveAlreadyExists {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementArchiveAlreadyExists", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 不能添加名称无效的存档 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementArchiveInvalidName {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementArchiveInvalidName", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 UIAF 文件 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementExportFileType {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementExportFileType", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导入成就中 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementImportProgress {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementImportProgress", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 数据的 UIAF 版本过低,无法导入 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementImportWarningMessage {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementImportWarningMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 该操作是不可逆的,该存档和其内的所有成就状态会丢失。 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementRemoveArchiveContent {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementRemoveArchiveContent", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 确定要删除存档 {0} 吗? 的本地化字符串。
+ ///
+ internal static string ViewModelAchievementRemoveArchiveTitle {
+ get {
+ return ResourceManager.GetString("ViewModelAchievementRemoveArchiveTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 当前角色无法计算,请同步信息后再试 的本地化字符串。
+ ///
+ internal static string ViewModelAvatarPropertyCalculateWeaponNull {
+ get {
+ return ResourceManager.GetString("ViewModelAvatarPropertyCalculateWeaponNull", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 角色信息服务 [Enak API] 当前不可用 的本地化字符串。
+ ///
+ internal static string ViewModelAvatarPropertyEnkaApiUnavailable {
+ get {
+ return ResourceManager.GetString("ViewModelAvatarPropertyEnkaApiUnavailable", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 已导出到剪贴板 的本地化字符串。
+ ///
+ internal static string ViewModelAvatarPropertyExportImageSuccess {
+ get {
+ return ResourceManager.GetString("ViewModelAvatarPropertyExportImageSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 获取数据中 的本地化字符串。
+ ///
+ internal static string ViewModelAvatarPropertyFetch {
+ get {
+ return ResourceManager.GetString("ViewModelAvatarPropertyFetch", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 打开剪贴板失败 的本地化字符串。
+ ///
+ internal static string ViewModelAvatarPropertyOpenClipboardFail {
+ get {
+ return ResourceManager.GetString("ViewModelAvatarPropertyOpenClipboardFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 角色橱窗尚未开启,请前往游戏操作后重试 的本地化字符串。
+ ///
+ internal static string ViewModelAvatarPropertyShowcaseNotOpen {
+ get {
+ return ResourceManager.GetString("ViewModelAvatarPropertyShowcaseNotOpen", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 已成功添加至当前养成计划 的本地化字符串。
+ ///
+ internal static string ViewModelCultivationEntryAddSuccess {
+ get {
+ return ResourceManager.GetString("ViewModelCultivationEntryAddSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 请先前往养成计划页面创建计划并选中 的本地化字符串。
+ ///
+ internal static string ViewModelCultivationEntryAddWarning {
+ get {
+ return ResourceManager.GetString("ViewModelCultivationEntryAddWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 添加成功 的本地化字符串。
+ ///
+ internal static string ViewModelCultivationProjectAdded {
+ get {
+ return ResourceManager.GetString("ViewModelCultivationProjectAdded", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 不能添加名称重复的计划 的本地化字符串。
+ ///
+ internal static string ViewModelCultivationProjectAlreadyExists {
+ get {
+ return ResourceManager.GetString("ViewModelCultivationProjectAlreadyExists", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 不能添加名称无效的计划 的本地化字符串。
+ ///
+ internal static string ViewModelCultivationProjectInvalidName {
+ get {
+ return ResourceManager.GetString("ViewModelCultivationProjectInvalidName", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 30 分钟 | 3.75 树脂 的本地化字符串。
+ ///
+ internal static string ViewModelDailyNoteRefreshTime30 {
+ get {
+ return ResourceManager.GetString("ViewModelDailyNoteRefreshTime30", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 4 分钟 | 0.5 树脂 的本地化字符串。
+ ///
+ internal static string ViewModelDailyNoteRefreshTime4 {
+ get {
+ return ResourceManager.GetString("ViewModelDailyNoteRefreshTime4", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 40 分钟 | 5 树脂 的本地化字符串。
+ ///
+ internal static string ViewModelDailyNoteRefreshTime40 {
+ get {
+ return ResourceManager.GetString("ViewModelDailyNoteRefreshTime40", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 60 分钟 | 7.5 树脂 的本地化字符串。
+ ///
+ internal static string ViewModelDailyNoteRefreshTime60 {
+ get {
+ return ResourceManager.GetString("ViewModelDailyNoteRefreshTime60", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 8 分钟 | 1 树脂 的本地化字符串。
+ ///
+ internal static string ViewModelDailyNoteRefreshTime8 {
+ get {
+ return ResourceManager.GetString("ViewModelDailyNoteRefreshTime8", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 注册计划任务失败,请使用管理员模式重试 的本地化字符串。
+ ///
+ internal static string ViewModelDailyNoteRegisterTaskFail {
+ get {
+ return ResourceManager.GetString("ViewModelDailyNoteRegisterTaskFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 清除任务计划成功 的本地化字符串。
+ ///
+ internal static string ViewModelExperimentalDeleteTaskSuccess {
+ get {
+ return ResourceManager.GetString("ViewModelExperimentalDeleteTaskSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 清除任务计划失败 的本地化字符串。
+ ///
+ internal static string ViewModelExperimentalDeleteTaskWarning {
+ get {
+ return ResourceManager.GetString("ViewModelExperimentalDeleteTaskWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 清除用户数据成功,请立即重启胡桃 的本地化字符串。
+ ///
+ internal static string ViewModelExperimentalDeleteUserSuccess {
+ get {
+ return ResourceManager.GetString("ViewModelExperimentalDeleteUserSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 成功保存到指定位置 的本地化字符串。
+ ///
+ internal static string ViewModelExportSuccessMessage {
+ get {
+ return ResourceManager.GetString("ViewModelExportSuccessMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导出成功 的本地化字符串。
+ ///
+ internal static string ViewModelExportSuccessTitle {
+ get {
+ return ResourceManager.GetString("ViewModelExportSuccessTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 写入文件时遇到问题 的本地化字符串。
+ ///
+ internal static string ViewModelExportWarningMessage {
+ get {
+ return ResourceManager.GetString("ViewModelExportWarningMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导出失败 的本地化字符串。
+ ///
+ internal static string ViewModelExportWarningTitle {
+ get {
+ return ResourceManager.GetString("ViewModelExportWarningTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 UIGF Json 文件 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogExportFileType {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogExportFileType", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导入完成 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogImportComplete {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogImportComplete", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导入祈愿记录中 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogImportProgress {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogImportProgress", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 数据的 UIGF 版本过低,无法导入 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogImportWarningMessage {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogImportWarningMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导入失败 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogImportWarningTitle {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogImportWarningTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 获取祈愿记录失败 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogRefreshFail {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogRefreshFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 祈愿记录刷新操作被异常取消 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogRefreshOperationCancel {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogRefreshOperationCancel", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 该操作是不可逆的,该存档和其内的所有祈愿数据会丢失 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogRemoveArchiveDescription {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogRemoveArchiveDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 确定要删除存档 {0} 吗? 的本地化字符串。
+ ///
+ internal static string ViewModelGachaLogRemoveArchiveTitle {
+ get {
+ return ResourceManager.GetString("ViewModelGachaLogRemoveArchiveTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 数据格式不正确 的本地化字符串。
+ ///
+ internal static string ViewModelImportWarningMessage {
+ get {
+ return ResourceManager.GetString("ViewModelImportWarningMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 导入失败 的本地化字符串。
+ ///
+ internal static string ViewModelImportWarningTitle {
+ get {
+ return ResourceManager.GetString("ViewModelImportWarningTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 切换服务器失败 的本地化字符串。
+ ///
+ internal static string ViewModelLaunchGameEnsureGameResourceFail {
+ get {
+ return ResourceManager.GetString("ViewModelLaunchGameEnsureGameResourceFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 无法读取游戏配置文件 的本地化字符串。
+ ///
+ internal static string ViewModelLaunchGameMultiChannelReadFail {
+ get {
+ return ResourceManager.GetString("ViewModelLaunchGameMultiChannelReadFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 游戏路径不正确,前往设置更改游戏路径 的本地化字符串。
+ ///
+ internal static string ViewModelLaunchGamePathInvalid {
+ get {
+ return ResourceManager.GetString("ViewModelLaunchGamePathInvalid", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 切换账号失败 的本地化字符串。
+ ///
+ internal static string ViewModelLaunchGameSwitchGameAccountFail {
+ get {
+ return ResourceManager.GetString("ViewModelLaunchGameSwitchGameAccountFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 清除失败,文件目录权限不足,请使用管理员模式重试 的本地化字符串。
+ ///
+ internal static string ViewModelSettingClearWebCacheFail {
+ get {
+ return ResourceManager.GetString("ViewModelSettingClearWebCacheFail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 清除失败,找不到目录:{0} 的本地化字符串。
+ ///
+ internal static string ViewModelSettingClearWebCachePathInvalid {
+ get {
+ return ResourceManager.GetString("ViewModelSettingClearWebCachePathInvalid", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 清除完成 的本地化字符串。
+ ///
+ internal static string ViewModelSettingClearWebCacheSuccess {
+ get {
+ return ResourceManager.GetString("ViewModelSettingClearWebCacheSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 用户 [{0}] 添加成功 的本地化字符串。
+ ///
+ internal static string ViewModelUserAdded {
+ get {
+ return ResourceManager.GetString("ViewModelUserAdded", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 用户 [{0}] 的 Cookie 复制成功 的本地化字符串。
+ ///
+ internal static string ViewModelUserCookieCopied {
+ get {
+ return ResourceManager.GetString("ViewModelUserCookieCopied", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 此 Cookie 不完整,操作失败 的本地化字符串。
+ ///
+ internal static string ViewModelUserIncomplete {
+ get {
+ return ResourceManager.GetString("ViewModelUserIncomplete", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 此 Cookie 无效,操作失败 的本地化字符串。
+ ///
+ internal static string ViewModelUserInvalid {
+ get {
+ return ResourceManager.GetString("ViewModelUserInvalid", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 用户 [{0}] 成功移除 的本地化字符串。
+ ///
+ internal static string ViewModelUserRemoved {
+ get {
+ return ResourceManager.GetString("ViewModelUserRemoved", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 用户 [{0}] 的 Cookie 更新成功 的本地化字符串。
+ ///
+ internal static string ViewModelUserUpdated {
+ get {
+ return ResourceManager.GetString("ViewModelUserUpdated", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 页面资源已经被释放,操作取消 的本地化字符串。
+ ///
+ internal static string ViewModelViewDisposedOperationCancel {
+ get {
+ return ResourceManager.GetString("ViewModelViewDisposedOperationCancel", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 现在可以开始使用胡桃了 的本地化字符串。
+ ///
+ internal static string ViewModelWelcomeDownloadCompleteMessage {
+ get {
+ return ResourceManager.GetString("ViewModelWelcomeDownloadCompleteMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 下载完成 的本地化字符串。
+ ///
+ internal static string ViewModelWelcomeDownloadCompleteTitle {
+ get {
+ return ResourceManager.GetString("ViewModelWelcomeDownloadCompleteTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 完成 的本地化字符串。
+ ///
+ internal static string ViewModelWelcomeDownloadSummaryComplete {
+ get {
+ return ResourceManager.GetString("ViewModelWelcomeDownloadSummaryComplete", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 等待中 的本地化字符串。
+ ///
+ internal static string ViewModelWelcomeDownloadSummaryDefault {
+ get {
+ return ResourceManager.GetString("ViewModelWelcomeDownloadSummaryDefault", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 文件下载异常 的本地化字符串。
+ ///
+ internal static string ViewModelWelcomeDownloadSummaryException {
+ get {
+ return ResourceManager.GetString("ViewModelWelcomeDownloadSummaryException", resourceCulture);
+ }
+ }
+
///
/// 查找类似 创建新存档 的本地化字符串。
///
@@ -1582,7 +2248,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 验证当前账号角色 的本地化字符串。
+ /// 查找类似 验证当前用户与角色 的本地化字符串。
///
internal static string ViewPageDailyNoteVerify {
get {
@@ -1699,7 +2365,7 @@ namespace Snap.Hutao.Resource.Localization {
}
///
- /// 查找类似 使用当前账号的 Cookie 信息刷新祈愿记录 的本地化字符串。
+ /// 查找类似 使用当前用户的 Cookie 信息刷新祈愿记录 的本地化字符串。
///
internal static string ViewPageGachaLogRefreshByStokenDescription {
get {
@@ -1806,6 +2472,87 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 0 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation0 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation0", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 1 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation1 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation1", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 2 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation2 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation2", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 3 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation3 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation3", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 4 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation4 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation4", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 5 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation5 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation5", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 6 命 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellation6 {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellation6", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 角色 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellationAvatar {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellationAvatar", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 持有 的本地化字符串。
+ ///
+ internal static string ViewPageHutaoDatabaseOverviewConstellationHolding {
+ get {
+ return ResourceManager.GetString("ViewPageHutaoDatabaseOverviewConstellationHolding", resourceCulture);
+ }
+ }
+
///
/// 查找类似 数据收集统计 的本地化字符串。
///
@@ -1896,6 +2643,933 @@ namespace Snap.Hutao.Resource.Localization {
}
}
+ ///
+ /// 查找类似 启动游戏 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAction {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 高级功能 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAdvanceHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAdvanceHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 下面的功能十分危险,如果您不愿承担因此可能带来的后果,请勿启用! 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAdvanceHint {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAdvanceHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 将窗口创建为弹出窗口,不带框架 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceBorderlessDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceBorderlessDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 无边框 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceBorderlessHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceBorderlessHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 与游戏内浏览器不兼容,切屏等操作也能使游戏闪退 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceExclusiveDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceExclusiveDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 独占全屏 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceExclusiveHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceExclusiveHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 覆盖默认的全屏状态 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceFullscreenDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceFullscreenDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 全屏 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceFullscreenHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceFullscreenHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 外观 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 覆盖默认屏幕高度 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceScreenHeightDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceScreenHeightDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 高度 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceScreenHeightHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceScreenHeightHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 覆盖默认屏幕宽度 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceScreenWidthDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceScreenWidthDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 宽度 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameAppearanceScreenWidthHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameAppearanceScreenWidthHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 常规 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameCommonHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameCommonHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 所有选项仅会在启动游戏成功后保存 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameConfigurationSaveHint {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameConfigurationSaveHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 某些选项处于禁用状态,它们只在管理员模式下生效! 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameElevationHint {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameElevationHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 在游戏时可以随时调整 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSetFpsDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSetFpsDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 设置当前帧率 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSetFpsHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSetFpsHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 该账号尚未绑定 UID 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountAttachUidNull {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountAttachUidNull", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 绑定当前用户的角色 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountAttachUidToolTip {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountAttachUidToolTip", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 在游戏内切换账号,网络环境发生变化后需要重新手动检测 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 检测 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountDetectAction {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountDetectAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 账号 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 删除 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountRemoveToolTip {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountRemoveToolTip", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 重命名 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchAccountRenameToolTip {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchAccountRenameToolTip", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 切换游戏服务器(国服/渠道服/国际服) 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchSchemeDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchSchemeDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 服务器 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchSchemeHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchSchemeHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 切换国际服功能会在游戏截图文件夹内创建缓存文件夹 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameSwitchSchemeHint {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameSwitchSchemeHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 请在游戏内关闭垂直同步选项,需要高性能的显卡以支持更高的帧率 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameUnlockFpsDescription {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameUnlockFpsDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 解锁帧率限制 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameUnlockFpsHeader {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameUnlockFpsHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 禁用 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameUnlockFpsOff {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameUnlockFpsOff", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 启用 的本地化字符串。
+ ///
+ internal static string ViewPageLaunchGameUnlockFpsOn {
+ get {
+ return ResourceManager.GetString("ViewPageLaunchGameUnlockFpsOn", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 我已登录 的本地化字符串。
+ ///
+ internal static string ViewPageLoginMihoyoUserLoggedInAction {
+ get {
+ return ResourceManager.GetString("ViewPageLoginMihoyoUserLoggedInAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 在下方登录米哈游通行证 的本地化字符串。
+ ///
+ internal static string ViewPageLoginMihoyoUserTitle {
+ get {
+ return ResourceManager.GetString("ViewPageLoginMihoyoUserTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 关于 胡桃 的本地化字符串。
+ ///
+ internal static string ViewPageSettingAboutHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingAboutHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 外观 的本地化字符串。
+ ///
+ internal static string ViewPageSettingApperanceHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingApperanceHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 更改窗体的背景材质 的本地化字符串。
+ ///
+ internal static string ViewPageSettingBackdropMaterialDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingBackdropMaterialDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 背景材质 的本地化字符串。
+ ///
+ internal static string ViewPageSettingBackdropMaterialHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingBackdropMaterialHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 图片缓存 在此处存放 的本地化字符串。
+ ///
+ internal static string ViewPageSettingCacheFolderDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingCacheFolderDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 打开 缓存 文件夹 的本地化字符串。
+ ///
+ internal static string ViewPageSettingCacheFolderHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingCacheFolderHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 执行 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDangerousAction {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDangerousAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 危险功能 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDangerousHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDangerousHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 除非开发人员明确要求你这么做,否则不应尝试执行下方的操作! 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDangerousHint {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDangerousHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 用户数据/元数据 在此处存放 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDataFolderDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDataFolderDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 打开 数据 文件夹 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDataFolderHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDataFolderHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 删除 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteCacheAction {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteCacheAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 若祈愿记录缓存刷新频繁提示验证密钥过期,可以尝试此操作 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteCacheDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteCacheDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 删除游戏内网页缓存 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteCacheHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteCacheHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 删除注册的计划任务,卸载前务必点击此项 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteTaskDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteTaskDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 删除所有计划任务 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteTaskHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteTaskHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 直接删除用户表的所有记录,用于修复特定的账号冲突问题 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteUserDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteUserDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 删除所有用户 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeleteUserHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeleteUserHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 设备 ID 的本地化字符串。
+ ///
+ internal static string ViewPageSettingDeviceIdHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingDeviceIdHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 在祈愿记录页面显示或隐藏无记录的历史祈愿活动 的本地化字符串。
+ ///
+ internal static string ViewPageSettingEmptyHistoryVisibleDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingEmptyHistoryVisibleDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 无记录的历史祈愿活动 的本地化字符串。
+ ///
+ internal static string ViewPageSettingEmptyHistoryVisibleHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingEmptyHistoryVisibleHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 隐藏 的本地化字符串。
+ ///
+ internal static string ViewPageSettingEmptyHistoryVisibleOff {
+ get {
+ return ResourceManager.GetString("ViewPageSettingEmptyHistoryVisibleOff", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 显示 的本地化字符串。
+ ///
+ internal static string ViewPageSettingEmptyHistoryVisibleOn {
+ get {
+ return ResourceManager.GetString("ViewPageSettingEmptyHistoryVisibleOn", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 Github 上反馈的问题会优先处理 的本地化字符串。
+ ///
+ internal static string ViewPageSettingFeedbackDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingFeedbackDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 反馈 的本地化字符串。
+ ///
+ internal static string ViewPageSettingFeedbackHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingFeedbackHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 前往反馈 的本地化字符串。
+ ///
+ internal static string ViewPageSettingFeedbackNavigate {
+ get {
+ return ResourceManager.GetString("ViewPageSettingFeedbackNavigate", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 祈愿记录 的本地化字符串。
+ ///
+ internal static string ViewPageSettingGachaLogHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingGachaLogHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 游戏 的本地化字符串。
+ ///
+ internal static string ViewPageSettingGameHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingGameHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 设置路径 的本地化字符串。
+ ///
+ internal static string ViewPageSettingSetGamePathAction {
+ get {
+ return ResourceManager.GetString("ViewPageSettingSetGamePathAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 游戏路径 的本地化字符串。
+ ///
+ internal static string ViewPageSettingSetGamePathHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingSetGamePathHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 设置游戏路径时,请选择游戏本体(YuanShen.exe 或 GenshinImpact.exe)而不是启动器(launcher.exe) 的本地化字符串。
+ ///
+ internal static string ViewPageSettingSetGamePathHint {
+ get {
+ return ResourceManager.GetString("ViewPageSettingSetGamePathHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 存储空间 的本地化字符串。
+ ///
+ internal static string ViewPageSettingStorageHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingStorageHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 打开 的本地化字符串。
+ ///
+ internal static string ViewPageSettingStorageOpenAction {
+ get {
+ return ResourceManager.GetString("ViewPageSettingStorageOpenAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 前往商店 的本地化字符串。
+ ///
+ internal static string ViewPageSettingUpdateCheckAction {
+ get {
+ return ResourceManager.GetString("ViewPageSettingUpdateCheckAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 前往微软商店查看 的本地化字符串。
+ ///
+ internal static string ViewPageSettingUpdateCheckDescription {
+ get {
+ return ResourceManager.GetString("ViewPageSettingUpdateCheckDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 检查更新 的本地化字符串。
+ ///
+ internal static string ViewPageSettingUpdateCheckHeader {
+ get {
+ return ResourceManager.GetString("ViewPageSettingUpdateCheckHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 Webview2 运行时 的本地化字符串。
+ ///
+ internal static string ViewPageSettingWebview2Header {
+ get {
+ return ResourceManager.GetString("ViewPageSettingWebview2Header", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 战斗数据 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssBattleHeader {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssBattleHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 战斗次数 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssBattleTimes {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssBattleTimes", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 最强一击 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssDamage {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssDamage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 尚未获取任何挑战记录 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssDefaultDescription {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssDefaultDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 最多击破 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssDefeat {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssDefeat", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 详细数据 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssDetail {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssDetail", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 元素爆发 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssEnergySkill {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssEnergySkill", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 深渊记录 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssHeader {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 最深抵达 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssMaxFloor {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssMaxFloor", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 元素战技 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssNormalSkill {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssNormalSkill", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 刷新数据 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssRefresh {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssRefresh", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 刷新 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssRefreshAction {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssRefreshAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 同步米游社的深渊挑战记录 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssRefreshDescription {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssRefreshDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 出战次数 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssReveal {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssReveal", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 统计数据 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssStatistics {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssStatistics", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 最多承伤 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssTakeDamage {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssTakeDamage", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 获得渊星 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssTotalStar {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssTotalStar", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 上传数据 的本地化字符串。
+ ///
+ internal static string ViewSpiralAbyssUploadRecord {
+ get {
+ return ResourceManager.GetString("ViewSpiralAbyssUploadRecord", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 工具 的本地化字符串。
+ ///
+ internal static string ViewToolHeader {
+ get {
+ return ResourceManager.GetString("ViewToolHeader", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 Cookie 操作 的本地化字符串。
+ ///
+ internal static string ViewUserCookieOperation {
+ get {
+ return ResourceManager.GetString("ViewUserCookieOperation", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 登录米哈游通行证 的本地化字符串。
+ ///
+ internal static string ViewUserCookieOperationLoginMihoyoUserAction {
+ get {
+ return ResourceManager.GetString("ViewUserCookieOperationLoginMihoyoUserAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 手动输入 的本地化字符串。
+ ///
+ internal static string ViewUserCookieOperationManualInputAction {
+ get {
+ return ResourceManager.GetString("ViewUserCookieOperationManualInputAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 复制 Cookie 的本地化字符串。
+ ///
+ internal static string ViewUserCopyCookieAction {
+ get {
+ return ResourceManager.GetString("ViewUserCopyCookieAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 请先登录 的本地化字符串。
+ ///
+ internal static string ViewUserDefaultDescription {
+ get {
+ return ResourceManager.GetString("ViewUserDefaultDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 移除用户 的本地化字符串。
+ ///
+ internal static string ViewUserRemoveAction {
+ get {
+ return ResourceManager.GetString("ViewUserRemoveAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 角色 的本地化字符串。
+ ///
+ internal static string ViewUserRole {
+ get {
+ return ResourceManager.GetString("ViewUserRole", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 用户 的本地化字符串。
+ ///
+ internal static string ViewUserUser {
+ get {
+ return ResourceManager.GetString("ViewUserUser", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 我们将为你下载最基本的图像资源 的本地化字符串。
+ ///
+ internal static string ViewWelcomeBase {
+ get {
+ return ResourceManager.GetString("ViewWelcomeBase", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 你可以继续使用电脑,丝毫不受影响 的本地化字符串。
+ ///
+ internal static string ViewWelcomeBody {
+ get {
+ return ResourceManager.GetString("ViewWelcomeBody", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 请勿关闭应用程序 的本地化字符串。
+ ///
+ internal static string ViewWelcomeSubtitle {
+ get {
+ return ResourceManager.GetString("ViewWelcomeSubtitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// 查找类似 欢迎使用 胡桃 的本地化字符串。
+ ///
+ internal static string ViewWelcomeTitle {
+ get {
+ return ResourceManager.GetString("ViewWelcomeTitle", resourceCulture);
+ }
+ }
+
///
/// 查找类似 角色资料 的本地化字符串。
///
@@ -1913,5 +3587,14 @@ namespace Snap.Hutao.Resource.Localization {
return ResourceManager.GetString("ViewWikiWeaponHeader", resourceCulture);
}
}
+
+ ///
+ /// 查找类似 状态:{0} | 信息:{1} 的本地化字符串。
+ ///
+ internal static string WebResponseFormat {
+ get {
+ return ResourceManager.GetString("WebResponseFormat", resourceCulture);
+ }
+ }
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
index 379f0a67..cfdbbee5 100644
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
+++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx
@@ -120,6 +120,9 @@
胡桃 Dev {0}
+
+ 胡桃
+
胡桃 {0}
@@ -174,6 +177,15 @@
未检测到 WebView2 运行时
+
+ 导出
+
+
+ 导入
+
+
+ 必须先选择一个用户与角色
+
单个成就存档内发现多个相同的成就 Id
@@ -318,6 +330,12 @@
输入的 Cookie 无法获取用户信息
+
+ 成就管理
+
+
+ 主页
+
我的角色
@@ -348,6 +366,15 @@
UP
+
+ 养成计划
+
+
+ 实时便笺
+
+
+ 数据
+
在此处输入
@@ -462,6 +489,201 @@
在此处输入包含 Stoken 的 Cookie
+
+ 祈愿记录
+
+
+ 深渊统计
+
+
+ 启动游戏
+
+
+ 存档 [{0}] 添加成功
+
+
+ 不能添加名称重复的存档 [{0}]
+
+
+ 不能添加名称无效的存档
+
+
+ UIAF 文件
+
+
+ 导入成就中
+
+
+ 数据的 UIAF 版本过低,无法导入
+
+
+ 该操作是不可逆的,该存档和其内的所有成就状态会丢失。
+
+
+ 确定要删除存档 {0} 吗?
+
+
+ 当前角色无法计算,请同步信息后再试
+
+
+ 角色信息服务 [Enak API] 当前不可用
+
+
+ 已导出到剪贴板
+
+
+ 获取数据中
+
+
+ 打开剪贴板失败
+
+
+ 角色橱窗尚未开启,请前往游戏操作后重试
+
+
+ 已成功添加至当前养成计划
+
+
+ 请先前往养成计划页面创建计划并选中
+
+
+ 添加成功
+
+
+ 不能添加名称重复的计划
+
+
+ 不能添加名称无效的计划
+
+
+ 30 分钟 | 3.75 树脂
+
+
+ 4 分钟 | 0.5 树脂
+
+
+ 40 分钟 | 5 树脂
+
+
+ 60 分钟 | 7.5 树脂
+
+
+ 8 分钟 | 1 树脂
+
+
+ 注册计划任务失败,请使用管理员模式重试
+
+
+ 清除任务计划成功
+
+
+ 清除任务计划失败
+
+
+ 清除用户数据成功,请立即重启胡桃
+
+
+ 成功保存到指定位置
+
+
+ 导出成功
+
+
+ 写入文件时遇到问题
+
+
+ 导出失败
+
+
+ UIGF Json 文件
+
+
+ 导入完成
+
+
+ 导入祈愿记录中
+
+
+ 数据的 UIGF 版本过低,无法导入
+
+
+ 导入失败
+
+
+ 获取祈愿记录失败
+
+
+ 祈愿记录刷新操作被异常取消
+
+
+ 该操作是不可逆的,该存档和其内的所有祈愿数据会丢失
+
+
+ 确定要删除存档 {0} 吗?
+
+
+ 数据格式不正确
+
+
+ 导入失败
+
+
+ 切换服务器失败
+
+
+ 无法读取游戏配置文件
+
+
+ 游戏路径不正确,前往设置更改游戏路径
+
+
+ 切换账号失败
+
+
+ 清除失败,文件目录权限不足,请使用管理员模式重试
+
+
+ 清除失败,找不到目录:{0}
+
+
+ 清除完成
+
+
+ 用户 [{0}] 添加成功
+
+
+ 用户 [{0}] 的 Cookie 复制成功
+
+
+ 此 Cookie 不完整,操作失败
+
+
+ 此 Cookie 无效,操作失败
+
+
+ 用户 [{0}] 成功移除
+
+
+ 用户 [{0}] 的 Cookie 更新成功
+
+
+ 页面资源已经被释放,操作取消
+
+
+ 现在可以开始使用胡桃了
+
+
+ 下载完成
+
+
+ 完成
+
+
+ 等待中
+
+
+ 文件下载异常
+
创建新存档
@@ -625,7 +847,7 @@
免打扰模式
- 验证当前账号角色
+ 验证当前用户与角色
全量刷新
@@ -664,7 +886,7 @@
Stoken 刷新
- 使用当前账号的 Cookie 信息刷新祈愿记录
+ 使用当前用户的 Cookie 信息刷新祈愿记录
网页缓存刷新
@@ -699,6 +921,33 @@
角色使用
+
+ 0 命
+
+
+ 1 命
+
+
+ 2 命
+
+
+ 3 命
+
+
+ 4 命
+
+
+ 5 命
+
+
+ 6 命
+
+
+ 角色
+
+
+ 持有
+
数据收集统计
@@ -729,10 +978,322 @@
队伍出场
+
+ 启动游戏
+
+
+ 高级功能
+
+
+ 下面的功能十分危险,如果您不愿承担因此可能带来的后果,请勿启用!
+
+
+ 将窗口创建为弹出窗口,不带框架
+
+
+ 无边框
+
+
+ 与游戏内浏览器不兼容,切屏等操作也能使游戏闪退
+
+
+ 独占全屏
+
+
+ 覆盖默认的全屏状态
+
+
+ 全屏
+
+
+ 外观
+
+
+ 覆盖默认屏幕高度
+
+
+ 高度
+
+
+ 覆盖默认屏幕宽度
+
+
+ 宽度
+
+
+ 常规
+
+
+ 所有选项仅会在启动游戏成功后保存
+
+
+ 某些选项处于禁用状态,它们只在管理员模式下生效!
+
+
+ 在游戏时可以随时调整
+
+
+ 设置当前帧率
+
+
+ 该账号尚未绑定 UID
+
+
+ 绑定当前用户的角色
+
+
+ 在游戏内切换账号,网络环境发生变化后需要重新手动检测
+
+
+ 检测
+
+
+ 账号
+
+
+ 删除
+
+
+ 重命名
+
+
+ 切换游戏服务器(国服/渠道服/国际服)
+
+
+ 服务器
+
+
+ 切换国际服功能会在游戏截图文件夹内创建缓存文件夹
+
+
+ 请在游戏内关闭垂直同步选项,需要高性能的显卡以支持更高的帧率
+
+
+ 解锁帧率限制
+
+
+ 禁用
+
+
+ 启用
+
+
+ 我已登录
+
+
+ 在下方登录米哈游通行证
+
+
+ 关于 胡桃
+
+
+ 外观
+
+
+ 更改窗体的背景材质
+
+
+ 背景材质
+
+
+ 图片缓存 在此处存放
+
+
+ 打开 缓存 文件夹
+
+
+ 执行
+
+
+ 危险功能
+
+
+ 除非开发人员明确要求你这么做,否则不应尝试执行下方的操作!
+
+
+ 用户数据/元数据 在此处存放
+
+
+ 打开 数据 文件夹
+
+
+ 删除
+
+
+ 若祈愿记录缓存刷新频繁提示验证密钥过期,可以尝试此操作
+
+
+ 删除游戏内网页缓存
+
+
+ 删除注册的计划任务,卸载前务必点击此项
+
+
+ 删除所有计划任务
+
+
+ 直接删除用户表的所有记录,用于修复特定的账号冲突问题
+
+
+ 删除所有用户
+
+
+ 设备 ID
+
+
+ 在祈愿记录页面显示或隐藏无记录的历史祈愿活动
+
+
+ 无记录的历史祈愿活动
+
+
+ 隐藏
+
+
+ 显示
+
+
+ Github 上反馈的问题会优先处理
+
+
+ 反馈
+
+
+ 前往反馈
+
+
+ 祈愿记录
+
+
+ 游戏
+
+
+ 设置路径
+
+
+ 游戏路径
+
+
+ 设置游戏路径时,请选择游戏本体(YuanShen.exe 或 GenshinImpact.exe)而不是启动器(launcher.exe)
+
+
+ 存储空间
+
+
+ 打开
+
+
+ 前往商店
+
+
+ 前往微软商店查看
+
+
+ 检查更新
+
+
+ Webview2 运行时
+
+
+ 战斗数据
+
+
+ 战斗次数
+
+
+ 最强一击
+
+
+ 尚未获取任何挑战记录
+
+
+ 最多击破
+
+
+ 详细数据
+
+
+ 元素爆发
+
+
+ 深渊记录
+
+
+ 最深抵达
+
+
+ 元素战技
+
+
+ 刷新数据
+
+
+ 刷新
+
+
+ 同步米游社的深渊挑战记录
+
+
+ 出战次数
+
+
+ 统计数据
+
+
+ 最多承伤
+
+
+ 获得渊星
+
+
+ 上传数据
+
+
+ 工具
+
+
+ Cookie 操作
+
+
+ 登录米哈游通行证
+
+
+ 手动输入
+
+
+ 复制 Cookie
+
+
+ 请先登录
+
+
+ 移除用户
+
+
+ 角色
+
+
+ 用户
+
+
+ 我们将为你下载最基本的图像资源
+
+
+ 你可以继续使用电脑,丝毫不受影响
+
+
+ 请勿关闭应用程序
+
+
+ 欢迎使用 胡桃
+
角色资料
武器资料
+
+ 状态:{0} | 信息:{1}
+
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Locator/RegistryLauncherLocator.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Locator/RegistryLauncherLocator.cs
index bf9e8d8f..74752116 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Locator/RegistryLauncherLocator.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Locator/RegistryLauncherLocator.cs
@@ -29,7 +29,7 @@ internal partial class RegistryLauncherLocator : IGameLocator
else
{
string? path = Path.GetDirectoryName(result.Value);
- string configPath = Path.Combine(path!, "config.ini");
+ string configPath = Path.Combine(path!, GameConstants.ConfigFileName);
string? escapedPath = null;
using (FileStream stream = File.OpenRead(configPath))
{
@@ -39,7 +39,7 @@ internal partial class RegistryLauncherLocator : IGameLocator
if (escapedPath != null)
{
- string gamePath = Path.Combine(Unescape(escapedPath), "YuanShen.exe");
+ string gamePath = Path.Combine(Unescape(escapedPath), GameConstants.YuanShenFileName);
return Task.FromResult>(new(true, gamePath));
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml b/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml
index e31f93ed..889a668e 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/MainView.xaml
@@ -23,63 +23,61 @@
-
+
+ Content="{shcm:ResourceString Name=ViewDailyNoteHeader}"
+ Icon="{shcm:BitmapIcon Source=ms-appx:///Resource/Icon/UI_ItemIcon_210.png}"/>
+ Content="{shcm:ResourceString Name=ViewSpiralAbyssHeader}"
+ Icon="{shcm:BitmapIcon Source=ms-appx:///Resource/Icon/UI_MarkTower_Tower.png}"/>
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/HutaoDatabasePage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/HutaoDatabasePage.xaml
index 1716e126..5218643f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/HutaoDatabasePage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/HutaoDatabasePage.xaml
@@ -217,55 +217,55 @@
Margin="6"
HorizontalAlignment="Center"
Style="{StaticResource CaptionTextBlockStyle}"
- Text="角色"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellationAvatar}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellationHolding}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation0}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation1}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation2}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation3}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation4}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation5}"/>
+ Text="{shcm:ResourceString Name=ViewPageHutaoDatabaseOverviewConstellation6}"/>
-
+
@@ -79,8 +80,8 @@
+ Content="{shcm:ResourceString Name=ViewPageLaunchGameSwitchAccountDetectAction}"/>
@@ -102,7 +103,7 @@
+ Text="{Binding AttachUid, TargetNullValue={shcm:ResourceString Name=ViewPageLaunchGameSwitchAccountAttachUidNull}}"/>
+ ToolTipService.ToolTip="{shcm:ResourceString Name=ViewPageLaunchGameSwitchAccountAttachUidToolTip}"/>
+ ToolTipService.ToolTip="{shcm:ResourceString Name=ViewPageLaunchGameSwitchAccountRenameToolTip}"/>
+ ToolTipService.ToolTip="{shcm:ResourceString Name=ViewPageLaunchGameSwitchAccountRemoveToolTip}"/>
@@ -174,10 +175,10 @@
-
+
@@ -228,41 +229,29 @@
-
-
-
-
-
-
+
-
+
-
+
@@ -290,7 +279,7 @@
Style="{StaticResource AccentButtonStyle}">
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml
index 9328f41c..7e118eb3 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml
@@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:shcm="using:Snap.Hutao.Control.Markup"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
@@ -16,12 +17,12 @@
Grid.Row="0"
Margin="12,0,0,0"
VerticalAlignment="Center"
- Text="在下方米哈游通行证"/>
+ Text="{shcm:ResourceString Name=ViewPageLoginMihoyoUserTitle}"/>
+ Content="{shcm:ResourceString Name=ViewPageLoginMihoyoUserLoggedInAction}"/>
-
+
@@ -44,21 +45,14 @@
-
- 胡桃 图标由
- LOFTER@夙夜
- 纸绘,并由
- DGP Studio
- 后期处理后,授权使用。
-
-
+
-
+
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -156,25 +155,6 @@
IsOpen="True"
Message="测试功能是尚未完善,仅用于 Pollyfill 的功能,未来可能会存在更合理的位置放置这些功能"
Severity="Warning"/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/SpiralAbyssRecordPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/SpiralAbyssRecordPage.xaml
index 3dd6c190..c73866b4 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/SpiralAbyssRecordPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/SpiralAbyssRecordPage.xaml
@@ -46,14 +46,14 @@
+ Label="{shcm:ResourceString Name=ViewSpiralAbyssUploadRecord}"/>
+ Label="{shcm:ResourceString Name=ViewSpiralAbyssRefresh}"/>
-
+
@@ -62,11 +62,11 @@
-
-
-
+
+
+
-
+
@@ -83,8 +83,8 @@
-
-
+
+
-
+
-
+
-
+
+
-
+
+
-
+
+ Text="{shcm:ResourceString Name=ViewSpiralAbyssDefaultDescription}"/>
-
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/UserView.xaml b/src/Snap.Hutao/Snap.Hutao/View/UserView.xaml
index 0dd4be5a..862441cd 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/UserView.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/UserView.xaml
@@ -65,7 +65,7 @@
+ Text="{shcm:ResourceString Name=ViewUserRole}"/>
+ Text="{shcm:ResourceString Name=ViewUserUser}"/>
+ ToolTipService.ToolTip="{shcm:ResourceString Name=ViewUserCopyCookieAction}"/>
+ ToolTipService.ToolTip="{shcm:ResourceString Name=ViewUserRemoveAction}"/>
@@ -186,21 +186,21 @@
+ Text="{shcm:ResourceString Name=ViewUserCookieOperation}"/>
+ Label="{shcm:ResourceString Name=ViewUserCookieOperationLoginMihoyoUserAction}"/>
+ Label="{shcm:ResourceString Name=ViewUserCookieOperationManualInputAction}"/>
diff --git a/src/Snap.Hutao/Snap.Hutao/View/WelcomeView.xaml b/src/Snap.Hutao/Snap.Hutao/View/WelcomeView.xaml
index 3e5f2ef6..b61505ab 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/WelcomeView.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/WelcomeView.xaml
@@ -6,6 +6,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:mxi="using:Microsoft.Xaml.Interactivity"
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
+ xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shv="using:Snap.Hutao.ViewModel"
d:DataContext="{d:DesignInstance shv:WelcomeViewModel}"
Unloaded="OnUnloaded"
@@ -18,19 +19,19 @@
-
+
+ Text="{shcm:ResourceString Name=ViewWelcomeSubtitle}"/>
+ Text="{shcm:ResourceString Name=ViewWelcomeBase}"/>
+ Text="{shcm:ResourceString Name=ViewWelcomeBody}"/>
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs
index 34c0a0b6..bdf7e987 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs
@@ -34,7 +34,7 @@ public abstract class ViewModel : ObservableObject, IViewModel
{
if (IsViewDisposed)
{
- throw new OperationCanceledException("页面资源已经被释放,操作取消");
+ throw new OperationCanceledException(SH.ViewModelViewDisposedOperationCancel);
}
}
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs
index a0d4cb99..5e3ebfe5 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/AchievementViewModel.cs
@@ -287,14 +287,13 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
case ArchiveAddResult.Added:
await ThreadHelper.SwitchToMainThreadAsync();
SelectedArchive = Archives.SingleOrDefault(a => a.Name == name);
-
- infoBarService.Success($"存档 [{name}] 添加成功");
+ infoBarService.Success(string.Format(SH.ViewModelAchievementArchiveAdded, name));
break;
case ArchiveAddResult.InvalidName:
- infoBarService.Information($"不能添加名称无效的存档");
+ infoBarService.Information(SH.ViewModelAchievementArchiveInvalidName);
break;
case ArchiveAddResult.AlreadyExists:
- infoBarService.Information($"不能添加名称重复的存档 [{name}]");
+ infoBarService.Information(string.Format(SH.ViewModelAchievementArchiveAlreadyExists, name));
break;
default:
throw Must.NeverHappen();
@@ -308,7 +307,9 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
if (Archives != null && SelectedArchive != null)
{
ContentDialogResult result = await contentDialogFactory
- .ConfirmCancelAsync($"确定要删除存档 {SelectedArchive.Name} 吗?", "该操作是不可逆的,该存档和其内的所有成就状态会丢失。")
+ .ConfirmCancelAsync(
+ string.Format(SH.ViewModelAchievementRemoveArchiveTitle, SelectedArchive.Name),
+ SH.ViewModelAchievementRemoveArchiveContent)
.ConfigureAwait(false);
if (result == ContentDialogResult.Primary)
@@ -367,9 +368,9 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
FileSavePicker picker = Ioc.Default.GetRequiredService().GetFileSavePicker();
- picker.FileTypeChoices.Add("UIAF 文件", ".json".Enumerate().ToList());
+ picker.FileTypeChoices.Add(SH.ViewModelAchievementExportFileType, ".json".Enumerate().ToList());
picker.SuggestedStartLocation = PickerLocationId.Desktop;
- picker.CommitButtonText = "导出";
+ picker.CommitButtonText = SH.FilePickerExportCommit;
picker.SuggestedFileName = $"{achievementService.CurrentArchive?.Name}.json";
(bool isPickerOk, FilePath file) = await picker.TryPickSaveFileAsync().ConfigureAwait(false);
@@ -378,10 +379,14 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
UIAF uiaf = await achievementService.ExportToUIAFAsync(SelectedArchive).ConfigureAwait(false);
bool isOk = await file.SerializeToJsonAsync(uiaf, options).ConfigureAwait(false);
- ValueTask dialogTask = isOk
- ? contentDialogFactory.ConfirmAsync("导出成功", "成功保存到指定位置")
- : contentDialogFactory.ConfirmAsync("导出失败", "写入文件时遇到问题");
- await dialogTask.ConfigureAwait(false);
+ if (isOk)
+ {
+ infoBarService.Success(SH.ViewModelExportSuccessTitle, SH.ViewModelExportSuccessMessage);
+ }
+ else
+ {
+ infoBarService.Warning(SH.ViewModelExportWarningTitle, SH.ViewModelExportWarningMessage);
+ }
}
}
@@ -389,7 +394,8 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
{
if (achievementService.CurrentArchive == null)
{
- infoBarService.Information("必须选择一个存档才能导入成就");
+ // Basically can't happen now
+ // infoBarService.Information("必须选择一个存档才能导入成就");
return;
}
@@ -399,7 +405,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
else
{
- await contentDialogFactory.ConfirmAsync("导入失败", "数据格式不正确").ConfigureAwait(false);
+ infoBarService.Warning(SH.ViewModelImportWarningTitle, SH.ViewModelImportWarningMessage);
}
}
@@ -407,12 +413,13 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
{
if (achievementService.CurrentArchive == null)
{
- infoBarService.Information("必须选择一个存档才能导入成就");
+ // Basically can't happen now
+ // infoBarService.Information("必须选择一个存档才能导入成就");
return;
}
FileOpenPicker picker = Ioc.Default.GetRequiredService()
- .GetFileOpenPicker(PickerLocationId.Desktop, "导入", ".json");
+ .GetFileOpenPicker(PickerLocationId.Desktop, SH.FilePickerImportCommit, ".json");
(bool isPickerOk, FilePath file) = await picker.TryPickSingleFileAsync().ConfigureAwait(false);
if (isPickerOk)
@@ -425,7 +432,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
else
{
- await contentDialogFactory.ConfirmAsync("导入失败", "文件的数据格式不正确").ConfigureAwait(false);
+ infoBarService.Warning(SH.ViewModelImportWarningTitle, SH.ViewModelImportWarningMessage);
}
}
}
@@ -454,7 +461,10 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
if (isOk)
{
ImportResult result;
- ContentDialog dialog = await contentDialogFactory.CreateForIndeterminateProgressAsync("导入成就中").ConfigureAwait(false);
+ ContentDialog dialog = await contentDialogFactory
+ .CreateForIndeterminateProgressAsync(SH.ViewModelAchievementImportProgress)
+ .ConfigureAwait(false);
+
await using (await dialog.BlockAsync().ConfigureAwait(false))
{
result = await achievementService.ImportFromUIAFAsync(archive, uiaf.List, strategy).ConfigureAwait(false);
@@ -467,7 +477,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
}
else
{
- await contentDialogFactory.ConfirmAsync("导入失败", "数据的 UIAF 版本过低,无法导入").ConfigureAwait(false);
+ infoBarService.Warning(SH.ViewModelImportWarningTitle, SH.ViewModelAchievementImportWarningMessage);
}
return false;
@@ -518,7 +528,7 @@ internal class AchievementViewModel : Abstraction.ViewModel, INavigationRecipien
if (Achievements != null)
{
Achievements.Filter = goal != null
- ? ((object o) => o is Snap.Hutao.Model.Binding.Achievement.Achievement achi && achi.Inner.Goal == goal.Id)
+ ? ((object o) => o is Model.Binding.Achievement.Achievement achi && achi.Inner.Goal == goal.Id)
: null;
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs
index d3cb14fc..98c7df89 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs
@@ -173,7 +173,9 @@ internal class AvatarPropertyViewModel : Abstraction.ViewModel
using (await DisposeLock.EnterAsync(token).ConfigureAwait(false))
{
ThrowIfViewDisposed();
- ContentDialog dialog = await contentDialogFactory.CreateForIndeterminateProgressAsync("获取数据中").ConfigureAwait(false);
+ ContentDialog dialog = await contentDialogFactory
+ .CreateForIndeterminateProgressAsync(SH.ViewModelAvatarPropertyFetch)
+ .ConfigureAwait(false);
await ThreadHelper.SwitchToMainThreadAsync();
await using (await dialog.BlockAsync().ConfigureAwait(false))
@@ -194,10 +196,10 @@ internal class AvatarPropertyViewModel : Abstraction.ViewModel
switch (result)
{
case RefreshResult.APIUnavailable:
- infoBarService.Warning("角色信息服务 [Enak API] 当前不可用");
+ infoBarService.Warning(SH.ViewModelAvatarPropertyEnkaApiUnavailable);
break;
case RefreshResult.ShowcaseNotOpen:
- infoBarService.Warning("角色橱窗尚未开启,请前往游戏操作后重试");
+ infoBarService.Warning(SH.ViewModelAvatarPropertyShowcaseNotOpen);
break;
}
}
@@ -218,7 +220,7 @@ internal class AvatarPropertyViewModel : Abstraction.ViewModel
{
if (avatar.Weapon == null)
{
- infoBarService.Warning("当前角色无法计算,请同步信息后再试");
+ infoBarService.Warning(SH.ViewModelAvatarPropertyCalculateWeaponNull);
return;
}
@@ -252,18 +254,18 @@ internal class AvatarPropertyViewModel : Abstraction.ViewModel
if (avatarAndWeaponSaved)
{
- infoBarService.Success("已成功添加至当前养成计划");
+ infoBarService.Success(SH.ViewModelCultivationEntryAddSuccess);
}
else
{
- infoBarService.Warning("请先前往养成计划页面创建计划并选中");
+ infoBarService.Warning(SH.ViewModelCultivationEntryAddWarning);
}
}
}
}
else
{
- infoBarService.Warning("必须先选择一个用户与角色");
+ infoBarService.Warning(SH.MustSelectUserAndUid);
}
}
}
@@ -306,11 +308,11 @@ internal class AvatarPropertyViewModel : Abstraction.ViewModel
if (clipboardOpened)
{
- infoBarService.Success("已导出到剪贴板");
+ infoBarService.Success(SH.ViewModelAvatarPropertyExportImageSuccess);
}
else
{
- infoBarService.Warning("打开剪贴板失败");
+ infoBarService.Warning(SH.ViewModelAvatarPropertyOpenClipboardFail);
}
}
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs
index 081325fd..0682d1a9 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs
@@ -157,16 +157,15 @@ internal class CultivationViewModel : Abstraction.ViewModel
switch (result)
{
case ProjectAddResult.Added:
- infoBarService.Success($"添加成功");
-
+ infoBarService.Success(SH.ViewModelCultivationProjectAdded);
await ThreadHelper.SwitchToMainThreadAsync();
SelectedProject = project;
break;
case ProjectAddResult.InvalidName:
- infoBarService.Information($"不能添加名称无效的计划");
+ infoBarService.Information(SH.ViewModelCultivationProjectInvalidName);
break;
case ProjectAddResult.AlreadyExists:
- infoBarService.Information($"不能添加名称重复的计划");
+ infoBarService.Information(SH.ViewModelCultivationProjectAlreadyExists);
break;
default:
throw Must.NeverHappen();
@@ -236,7 +235,6 @@ internal class CultivationViewModel : Abstraction.ViewModel
private async Task UpdateStatisticsItemsAsync()
{
- logger.LogInformation("UpdateStatisticsItemsAsync");
if (SelectedProject != null)
{
await ThreadHelper.SwitchToBackgroundAsync();
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
index e279ab25..513de5c4 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
@@ -28,11 +28,11 @@ internal class DailyNoteViewModel : Abstraction.ViewModel
private readonly List> refreshTimes = new()
{
- new("4 分钟 | 0.5 树脂", 240),
- new("8 分钟 | 1 树脂", 480),
- new("30 分钟 | 3.75 树脂", 1800),
- new("40 分钟 | 5 树脂", 2400),
- new("60 分钟 | 7.5 树脂", 3600),
+ new(SH.ViewModelDailyNoteRefreshTime4, 240),
+ new(SH.ViewModelDailyNoteRefreshTime8, 480),
+ new(SH.ViewModelDailyNoteRefreshTime30, 1800),
+ new(SH.ViewModelDailyNoteRefreshTime40, 2400),
+ new(SH.ViewModelDailyNoteRefreshTime60, 3600),
};
private bool isReminderNotification;
@@ -87,7 +87,7 @@ internal class DailyNoteViewModel : Abstraction.ViewModel
{
if (!ScheduleTaskHelper.RegisterForDailyNoteRefresh(value.Value))
{
- Ioc.Default.GetRequiredService().Warning("注册计划任务失败,请使用管理员模式重试");
+ Ioc.Default.GetRequiredService().Warning(SH.ViewModelDailyNoteRegisterTaskFail);
}
else
{
@@ -134,7 +134,7 @@ internal class DailyNoteViewModel : Abstraction.ViewModel
///
/// 用户与角色集合
///
- public ObservableCollection? UserAndUids { get => userAndUids; set => userAndUids = value; }
+ public ObservableCollection? UserAndUids { get => userAndUids; set => SetProperty(ref userAndUids, value); }
///
/// 实时便笺集合
@@ -258,7 +258,7 @@ internal class DailyNoteViewModel : Abstraction.ViewModel
}
else
{
- Ioc.Default.GetRequiredService().Warning("请先选中账号与角色");
+ Ioc.Default.GetRequiredService().Warning(SH.MustSelectUserAndUid);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/ExperimentalFeaturesViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/ExperimentalFeaturesViewModel.cs
index a754c227..66ef9772 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/ExperimentalFeaturesViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/ExperimentalFeaturesViewModel.cs
@@ -67,7 +67,7 @@ internal class ExperimentalFeaturesViewModel : ObservableObject
await appDbContext.Users.ExecuteDeleteAsync().ConfigureAwait(false);
IInfoBarService infoBarService = scope.ServiceProvider.GetRequiredService();
- infoBarService.Success("清除用户数据成功,请重启胡桃");
+ infoBarService.Success(SH.ViewModelExperimentalDeleteUserSuccess);
}
}
@@ -76,11 +76,11 @@ internal class ExperimentalFeaturesViewModel : ObservableObject
IInfoBarService infoBarService = Ioc.Default.GetRequiredService();
if (Core.ScheduleTaskHelper.UnregisterAllTasks())
{
- infoBarService.Success("清除任务计划成功");
+ infoBarService.Success(SH.ViewModelExperimentalDeleteTaskSuccess);
}
else
{
- infoBarService.Warning("清除任务计划失败");
+ infoBarService.Warning(SH.ViewModelExperimentalDeleteTaskWarning);
}
}
}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
index cefa4348..577a2a4b 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
@@ -5,6 +5,7 @@ using CommunityToolkit.Mvvm.Input;
using Microsoft.UI.Xaml.Controls;
using Snap.Hutao.Control.Extension;
using Snap.Hutao.Core.IO;
+using Snap.Hutao.Extension;
using Snap.Hutao.Factory.Abstraction;
using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
@@ -218,7 +219,7 @@ internal class GachaLogViewModel : Abstraction.ViewModel
{
// We set true here in order to hide the dialog.
authkeyValid = true;
- infoBarService.Warning("祈愿记录刷新操作被异常取消");
+ infoBarService.Warning(SH.ViewModelGachaLogRefreshOperationCancel);
}
await ThreadHelper.SwitchToMainThreadAsync();
@@ -229,8 +230,8 @@ internal class GachaLogViewModel : Abstraction.ViewModel
}
else
{
- dialog.Title = "获取祈愿记录失败";
- dialog.PrimaryButtonText = "确认";
+ dialog.Title = SH.ViewModelGachaLogRefreshFail;
+ dialog.PrimaryButtonText = SH.ContentDialogConfirmPrimaryButtonText;
dialog.DefaultButton = ContentDialogButton.Primary;
}
}
@@ -246,7 +247,7 @@ internal class GachaLogViewModel : Abstraction.ViewModel
private async Task ImportFromUIGFJsonAsync()
{
- FileOpenPicker picker = pickerFactory.GetFileOpenPicker(PickerLocationId.Desktop, "导入", ".json");
+ FileOpenPicker picker = pickerFactory.GetFileOpenPicker(PickerLocationId.Desktop, SH.FilePickerImportCommit, ".json");
(bool isPickerOk, FilePath file) = await picker.TryPickSingleFileAsync().ConfigureAwait(false);
if (isPickerOk)
{
@@ -257,7 +258,7 @@ internal class GachaLogViewModel : Abstraction.ViewModel
}
else
{
- await contentDialogFactory.ConfirmAsync("导入失败", "文件的数据格式不正确").ConfigureAwait(false);
+ await contentDialogFactory.ConfirmAsync(SH.ViewModelImportWarningTitle, SH.ViewModelImportWarningMessage).ConfigureAwait(false);
}
}
}
@@ -272,8 +273,8 @@ internal class GachaLogViewModel : Abstraction.ViewModel
FileSavePicker picker = pickerFactory.GetFileSavePicker();
picker.SuggestedStartLocation = PickerLocationId.Desktop;
picker.SuggestedFileName = SelectedArchive.Uid;
- picker.CommitButtonText = "导出";
- picker.FileTypeChoices.Add("UIGF Json 文件", new List() { ".json" });
+ picker.CommitButtonText = SH.FilePickerExportCommit;
+ picker.FileTypeChoices.Add(SH.ViewModelGachaLogExportFileType, ".json".Enumerate().ToList());
(bool isPickerOk, FilePath file) = await picker.TryPickSaveFileAsync().ConfigureAwait(false);
@@ -282,9 +283,14 @@ internal class GachaLogViewModel : Abstraction.ViewModel
UIGF uigf = await gachaLogService.ExportToUIGFAsync(SelectedArchive).ConfigureAwait(false);
bool isOk = await file.SerializeToJsonAsync(uigf, options).ConfigureAwait(false);
- _ = isOk
- ? await contentDialogFactory.ConfirmAsync("导出成功", "成功保存到指定位置").ConfigureAwait(false)
- : await contentDialogFactory.ConfirmAsync("导出失败", "写入文件时遇到问题").ConfigureAwait(false);
+ if (isOk)
+ {
+ infoBarService.Success(SH.ViewModelExportSuccessTitle, SH.ViewModelExportSuccessMessage);
+ }
+ else
+ {
+ infoBarService.Warning(SH.ViewModelExportWarningTitle, SH.ViewModelExportWarningMessage);
+ }
}
}
@@ -293,7 +299,7 @@ internal class GachaLogViewModel : Abstraction.ViewModel
if (Archives != null && SelectedArchive != null)
{
ContentDialogResult result = await contentDialogFactory
- .ConfirmCancelAsync($"确定要删除存档 {SelectedArchive.Uid} 吗?", "该操作是不可逆的,该存档和其内的所有祈愿数据会丢失。")
+ .ConfirmCancelAsync(string.Format(SH.ViewModelGachaLogRemoveArchiveTitle, SelectedArchive.Uid), SH.ViewModelGachaLogRemoveArchiveDescription)
.ConfigureAwait(false);
if (result == ContentDialogResult.Primary)
@@ -352,13 +358,13 @@ internal class GachaLogViewModel : Abstraction.ViewModel
await ThreadHelper.SwitchToMainThreadAsync();
if (await new GachaLogImportDialog(uigf).GetShouldImportAsync().ConfigureAwait(true))
{
- ContentDialog dialog = await contentDialogFactory.CreateForIndeterminateProgressAsync("导入祈愿记录中").ConfigureAwait(true);
+ ContentDialog dialog = await contentDialogFactory.CreateForIndeterminateProgressAsync(SH.ViewModelGachaLogImportProgress).ConfigureAwait(true);
await using (await dialog.BlockAsync().ConfigureAwait(false))
{
await gachaLogService.ImportFromUIGFAsync(uigf.List, uigf.Info.Uid).ConfigureAwait(false);
}
- infoBarService.Success($"导入完成");
+ infoBarService.Success(SH.ViewModelGachaLogImportComplete);
await ThreadHelper.SwitchToMainThreadAsync();
SetSelectedArchiveAndUpdateStatistics(gachaLogService.CurrentArchive, true);
return true;
@@ -366,7 +372,7 @@ internal class GachaLogViewModel : Abstraction.ViewModel
}
else
{
- await contentDialogFactory.ConfirmAsync("导入失败", "数据的 UIGF 版本过低,无法导入").ConfigureAwait(false);
+ infoBarService.Warning(SH.ViewModelGachaLogImportWarningTitle, SH.ViewModelGachaLogImportWarningMessage);
}
return false;
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/HutaoDatabaseViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/HutaoDatabaseViewModel.cs
index 754ea9c3..e78a0e90 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/HutaoDatabaseViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/HutaoDatabaseViewModel.cs
@@ -37,7 +37,6 @@ internal class HutaoDatabaseViewModel : Abstraction.ViewModel
this.hutaoCache = hutaoCache;
OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
- ExportAsImageCommand = new AsyncRelayCommand(ExportAsImageAsync);
}
///
@@ -70,11 +69,6 @@ internal class HutaoDatabaseViewModel : Abstraction.ViewModel
///
public ICommand OpenUICommand { get; }
- ///
- /// 导出为图片命令
- ///
- public ICommand ExportAsImageCommand { get; }
-
private async Task OpenUIAsync()
{
if (await hutaoCache.InitializeForDatabaseViewModelAsync().ConfigureAwait(true))
@@ -86,27 +80,4 @@ internal class HutaoDatabaseViewModel : Abstraction.ViewModel
Overview = hutaoCache.Overview;
}
}
-
- private async Task ExportAsImageAsync(UIElement? element)
- {
- if (element == null)
- {
- return;
- }
-
- RenderTargetBitmap bitmap = new();
- await bitmap.RenderAsync(element);
-
- IBuffer buffer = await bitmap.GetPixelsAsync();
- string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
- using (FileStream file = File.Create(Path.Combine(desktop, "hutao-database.png")))
- {
- using (IRandomAccessStream randomFileStream = file.AsRandomAccessStream())
- {
- BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, randomFileStream);
- encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, (uint)bitmap.PixelWidth, (uint)bitmap.PixelHeight, 96, 96, buffer.ToArray());
- await encoder.FlushAsync();
- }
- }
- }
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/LaunchGameViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/LaunchGameViewModel.cs
index 87107173..874a6359 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/LaunchGameViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/LaunchGameViewModel.cs
@@ -222,7 +222,7 @@ internal class LaunchGameViewModel : Abstraction.ViewModel
}
else
{
- Ioc.Default.GetRequiredService().Warning("无法读取游戏配置文件");
+ Ioc.Default.GetRequiredService().Warning(SH.ViewModelLaunchGameMultiChannelReadFail);
}
GameAccounts = await gameService.GetGameAccountCollectionAsync().ConfigureAwait(true);
@@ -243,7 +243,7 @@ internal class LaunchGameViewModel : Abstraction.ViewModel
}
else
{
- Ioc.Default.GetRequiredService().Warning("游戏路径不正确,前往设置更改游戏路径。");
+ Ioc.Default.GetRequiredService().Warning(SH.ViewModelLaunchGamePathInvalid);
await Ioc.Default.GetRequiredService()
.NavigateAsync(INavigationAwaiter.Default, true)
.ConfigureAwait(false);
@@ -311,7 +311,7 @@ internal class LaunchGameViewModel : Abstraction.ViewModel
{
if (!await gameService.EnsureGameResourceAsync(SelectedScheme, progress).ConfigureAwait(false))
{
- infoBarService.Warning("切换服务器失败");
+ infoBarService.Warning(SH.ViewModelLaunchGameEnsureGameResourceFail);
}
}
}
@@ -320,7 +320,7 @@ internal class LaunchGameViewModel : Abstraction.ViewModel
{
if (!gameService.SetGameAccount(SelectedGameAccount))
{
- infoBarService.Warning("切换账号失败");
+ infoBarService.Warning(SH.ViewModelLaunchGameSwitchGameAccountFail);
}
}
@@ -361,7 +361,7 @@ internal class LaunchGameViewModel : Abstraction.ViewModel
}
else
{
- infoBarService.Warning("当前未选择角色");
+ infoBarService.Warning(SH.MustSelectUserAndUid);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs
index 5d57acef..9baf425f 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/SettingViewModel.cs
@@ -30,9 +30,9 @@ internal class SettingViewModel : Abstraction.ViewModel
private readonly SettingEntry selectedBackdropTypeEntry;
private readonly List> backdropTypes = new()
{
- new("亚克力", BackdropType.Acrylic),
- new("云母", BackdropType.Mica),
- new("变种云母", BackdropType.MicaAlt),
+ new("Acrylic", BackdropType.Acrylic),
+ new("Mica", BackdropType.Mica),
+ new("MicaAlt", BackdropType.MicaAlt),
};
private bool isEmptyHistoryWishVisible;
@@ -71,7 +71,7 @@ internal class SettingViewModel : Abstraction.ViewModel
GamePath = gameService.GetGamePathSkipLocator();
SetGamePathCommand = new AsyncRelayCommand(SetGamePathAsync);
- DebugExceptionCommand = new AsyncRelayCommand(DebugThrowExceptionAsync);
+ UpdateCheckCommand = new AsyncRelayCommand(CheckUpdateAsync);
DeleteGameWebCacheCommand = new RelayCommand(DeleteGameWebCache);
ShowSignInWebViewDialogCommand = new AsyncRelayCommand(ShowSignInWebViewDialogAsync);
}
@@ -165,7 +165,7 @@ internal class SettingViewModel : Abstraction.ViewModel
///
/// 调试异常命令
///
- public ICommand DebugExceptionCommand { get; }
+ public ICommand UpdateCheckCommand { get; }
///
/// 删除游戏网页缓存命令
@@ -210,15 +210,15 @@ internal class SettingViewModel : Abstraction.ViewModel
}
catch (UnauthorizedAccessException)
{
- infoBarService.Warning($"清除失败,文件目录权限不足,请使用管理员模式重试");
+ infoBarService.Warning(SH.ViewModelSettingClearWebCacheFail);
return;
}
- infoBarService.Success("清除完成");
+ infoBarService.Success(SH.ViewModelSettingClearWebCacheSuccess);
}
else
{
- infoBarService.Warning($"清除失败,找不到目录:{cacheFolder}");
+ infoBarService.Warning(string.Format(SH.ViewModelSettingClearWebCachePathInvalid, cacheFolder));
}
}
}
@@ -230,7 +230,7 @@ internal class SettingViewModel : Abstraction.ViewModel
await new SignInWebViewDialog().ShowAsync().AsTask().ConfigureAwait(false);
}
- private async Task DebugThrowExceptionAsync()
+ private async Task CheckUpdateAsync()
{
#if DEBUG
await Ioc.Default
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyssRecordViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyssRecordViewModel.cs
index 71003861..68d59bea 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyssRecordViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/SpiralAbyssRecordViewModel.cs
@@ -126,7 +126,7 @@ internal class SpiralAbyssRecordViewModel : Abstraction.ViewModel, IRecipient().Warning("请先选中角色与账号");
+ Ioc.Default.GetRequiredService().Warning(SH.MustSelectUserAndUid);
}
}
}
@@ -201,7 +201,7 @@ internal class SpiralAbyssRecordViewModel : Abstraction.ViewModel, IRecipient x.Value);
@@ -130,20 +130,20 @@ internal class WelcomeViewModel : ObservableObject
private readonly string fileName;
private readonly Uri fileUri;
private readonly Progress progress;
- private string description = "等待中";
+ private string description = SH.ViewModelWelcomeDownloadSummaryDefault;
private double progressValue;
///
/// 构造一个新的下载信息
///
/// 服务提供器
- /// 显示名称
/// 压缩文件名称
- public DownloadSummary(IServiceProvider serviceProvider, string displayName, string fileName)
+ ///
+ public DownloadSummary(IServiceProvider serviceProvider, string fileName)
{
this.serviceProvider = serviceProvider;
bitsManager = serviceProvider.GetRequiredService();
- DisplayName = displayName;
+ DisplayName = fileName;
this.fileName = fileName;
fileUri = new(Web.HutaoEndpoints.StaticZip(fileName));
@@ -188,12 +188,12 @@ internal class WelcomeViewModel : ObservableObject
await ThreadHelper.SwitchToBackgroundAsync();
ExtractFiles(file.Path);
await ThreadHelper.SwitchToMainThreadAsync();
- Description = "完成";
+ Description = SH.ViewModelWelcomeDownloadSummaryComplete;
}
else
{
ProgressValue = 0;
- Description = "文件下载异常";
+ Description = SH.ViewModelWelcomeDownloadSummaryException;
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiAvatarViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiAvatarViewModel.cs
index eeedd48e..1f84f485 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiAvatarViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiAvatarViewModel.cs
@@ -153,18 +153,18 @@ internal class WikiAvatarViewModel : Abstraction.ViewModel
if (saved)
{
- infoBarService.Success("已成功添加至当前养成计划");
+ infoBarService.Success(SH.ViewModelCultivationEntryAddSuccess);
}
else
{
- infoBarService.Warning("请先前往养成计划页面创建计划并选中");
+ infoBarService.Warning(SH.ViewModelCultivationEntryAddWarning);
}
}
}
}
else
{
- infoBarService.Warning("必须先选择一个用户与角色");
+ infoBarService.Warning(SH.MustSelectUserAndUid);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiWeaponViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiWeaponViewModel.cs
index 856f0998..a6fa4f2c 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiWeaponViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/WikiWeaponViewModel.cs
@@ -151,18 +151,18 @@ internal class WikiWeaponViewModel : Abstraction.ViewModel
if (saved)
{
- infoBarService.Success("已成功添加至当前养成计划");
+ infoBarService.Success(SH.ViewModelCultivationEntryAddSuccess);
}
else
{
- infoBarService.Warning("请先前往养成计划页面创建计划并选中");
+ infoBarService.Warning(SH.ViewModelCultivationEntryAddWarning);
}
}
}
}
else
{
- infoBarService.Warning("必须先选择一个用户与角色");
+ infoBarService.Warning(SH.MustSelectUserAndUid);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs b/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs
index dc78eb9e..4b6e1a79 100644
--- a/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Web/Response/Response.cs
@@ -66,7 +66,7 @@ public class Response
///
public override string ToString()
{
- return $"状态:{ReturnCode} | 信息:{Message}";
+ return string.Format(SH.WebResponseFormat, ReturnCode, Message);
}
}