From 706fb3404b6c2996c7a8e81c29113cccee89a5fc Mon Sep 17 00:00:00 2001
From: DismissedLight <1686188646@qq.com>
Date: Fri, 3 Mar 2023 16:49:27 +0800
Subject: [PATCH] refactor localization
---
.../DependencyInjection/IocConfiguration.cs | 2 +-
.../Abstraction/IStatisticsItemSource.cs | 2 +-
.../Abstraction/ISummaryItemSource.cs | 2 +-
.../Metadata/Avatar/Avatar.Implementation.cs | 2 +-
.../Model/Metadata/Item/Material.cs | 5 +-
.../Metadata/Weapon/Weapon.Implementation.cs | 2 +-
src/Snap.Hutao/Snap.Hutao/Program.cs | 2 +-
.../Resource/Localization/SH.en-US.resx | 1683 -----------------
.../Resource/Localization/SH.ja-JP.resx | 1683 -----------------
.../Resource/Localization/SH.ko-KR.resx | 1683 -----------------
.../Resource/Localization/SH.ru-RU.resx | 1683 -----------------
.../Resource/Localization/SH.zh-TW.resx | 1683 -----------------
.../Service/Achievement/AchievementService.cs | 2 +-
.../Achievement/IAchievementService.cs | 2 +-
.../Factory/GachaStatisticsExtension.cs | 6 +-
.../Factory/GachaStatisticsFactory.cs | 2 +-
.../GachaLog/Factory/HistoryWishBuilder.cs | 2 +-
.../Factory/IGachaStatisticsFactory.cs | 2 +-
.../Factory/TypedWishSummaryBuilder.cs | 2 +-
.../Service/GachaLog/GachaLogService.cs | 2 +-
.../Service/GachaLog/IGachaLogService.cs | 2 +-
.../Service/Game/Package/PackageConverter.cs | 5 +-
src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 1 +
.../View/Control/StatisticsCard.xaml | 4 +-
.../Snap.Hutao/View/Page/AchievementPage.xaml | 8 +-
.../View/Page/AvatarPropertyPage.xaml | 4 +-
.../View/Page/AvatarPropertyPage.xaml.cs | 2 +-
.../Snap.Hutao/View/Page/CultivationPage.xaml | 18 +-
.../View/Page/CultivationPage.xaml.cs | 2 +-
.../Snap.Hutao/View/Page/GachaLogPage.xaml | 4 +-
.../Snap.Hutao/View/Page/GachaLogPage.xaml.cs | 2 +-
.../ViewModel/Abstraction/ViewModel.cs | 20 +
.../AchievementFinishPercentUpdater.cs | 4 +-
.../Achievement/AchievementGoalStatistics.cs | 2 +-
.../Achievement/AchievementGoalView.cs | 9 +-
.../Achievement/AchievementView.cs | 14 +-
.../Achievement/AchievementViewModel.cs | 79 +-
.../ViewModel/AnnouncementViewModel.cs | 13 +-
.../AvatarProperty/AvatarProperty.cs | 0
.../AvatarPropertyViewModel.cs | 11 +-
.../AvatarProperty/AvatarView.cs | 0
.../AvatarProperty/ConstellationView.cs | 0
.../AvatarProperty/Equip.cs | 0
.../AvatarProperty/NameDescription.cs | 0
.../AvatarProperty/NameIconDescription.cs | 0
.../AvatarProperty/ReliquarySubProperty.cs | 0
.../AvatarProperty/ReliquaryView.cs | 0
.../AvatarProperty/SkillView.cs | 0
.../AvatarProperty/Summary.cs | 0
.../AvatarProperty/WeaponView.cs | 0
.../Cultivation/CultivateEntryView.cs | 0
.../Cultivation/CultivateItem.cs | 0
.../{ => Cultivation}/CultivationViewModel.cs | 18 +-
.../Cultivation/DaysOfWeek.cs | 0
.../Cultivation/StatisticsCultivateItem.cs | 0
.../ViewModel/DailyNoteViewModel.cs | 9 +-
.../{ => GachaLog}/GachaLogViewModel.cs | 16 +-
.../GachaLog}/GachaStatistics.cs | 2 +-
.../GachaLog}/HistoryWish.cs | 2 +-
.../GachaLog}/StatisticsItem.cs | 4 +-
.../GachaLog}/SummaryItem.cs | 6 +-
.../GachaLog}/TypedWishSummary.cs | 2 +-
.../Gacha => ViewModel/GachaLog}/Wish.cs | 2 +-
63 files changed, 148 insertions(+), 8569 deletions(-)
delete mode 100644 src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en-US.resx
delete mode 100644 src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja-JP.resx
delete mode 100644 src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko-KR.resx
delete mode 100644 src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru-RU.resx
delete mode 100644 src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-TW.resx
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/Achievement/AchievementGoalView.cs (84%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/Achievement/AchievementView.cs (74%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/AvatarProperty.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/ViewModel/{ => AvatarProperty}/AvatarPropertyViewModel.cs (98%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/AvatarView.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/ConstellationView.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/Equip.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/NameDescription.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/NameIconDescription.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/ReliquarySubProperty.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/ReliquaryView.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/SkillView.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/Summary.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/AvatarProperty/WeaponView.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/Cultivation/CultivateEntryView.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/Cultivation/CultivateItem.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/ViewModel/{ => Cultivation}/CultivationViewModel.cs (94%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/Cultivation/DaysOfWeek.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding => ViewModel}/Cultivation/StatisticsCultivateItem.cs (100%)
rename src/Snap.Hutao/Snap.Hutao/ViewModel/{ => GachaLog}/GachaLogViewModel.cs (97%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding/Gacha => ViewModel/GachaLog}/GachaStatistics.cs (96%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding/Gacha => ViewModel/GachaLog}/HistoryWish.cs (96%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding/Gacha => ViewModel/GachaLog}/StatisticsItem.cs (80%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding/Gacha => ViewModel/GachaLog}/SummaryItem.cs (87%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding/Gacha => ViewModel/GachaLog}/TypedWishSummary.cs (98%)
rename src/Snap.Hutao/Snap.Hutao/{Model/Binding/Gacha => ViewModel/GachaLog}/Wish.cs (96%)
diff --git a/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs b/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs
index fae8578d..6108c35f 100644
--- a/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Core/DependencyInjection/IocConfiguration.cs
@@ -33,7 +33,7 @@ internal static class IocConfiguration
///
/// 集合
/// 可继续操作的集合
- public static IServiceCollection AddDatebase(this IServiceCollection services)
+ public static IServiceCollection AddDatabase(this IServiceCollection services)
{
string dbFile = System.IO.Path.Combine(CoreEnvironment.DataFolder, "Userdata.db");
string sqlConnectionString = $"Data Source={dbFile}";
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/IStatisticsItemSource.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/IStatisticsItemSource.cs
index f11e0466..b1e71200 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/IStatisticsItemSource.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/IStatisticsItemSource.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.Model.Metadata.Abstraction;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/ISummaryItemSource.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/ISummaryItemSource.cs
index 813f0b83..36005bb6 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/ISummaryItemSource.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Abstraction/ISummaryItemSource.cs
@@ -1,8 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Intrinsic;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.Model.Metadata.Abstraction;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Avatar/Avatar.Implementation.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Avatar/Avatar.Implementation.cs
index 901f63bf..c6a40aa2 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Avatar/Avatar.Implementation.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Avatar/Avatar.Implementation.cs
@@ -1,12 +1,12 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Binding.Hutao;
using Snap.Hutao.Model.Calculable;
using Snap.Hutao.Model.Metadata.Abstraction;
using Snap.Hutao.Model.Metadata.Converter;
using Snap.Hutao.Model.Metadata.Item;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.Model.Metadata.Avatar;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Item/Material.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Item/Material.cs
index 4ff79bb2..1a2906a7 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Item/Material.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Item/Material.cs
@@ -83,9 +83,10 @@ internal sealed class Material : Display
return TypeDescription switch
{
+ "角色与武器培养素材" => true,
"角色经验素材" => true,
- "角色培养素材" => true,
- "天赋培养素材" => true,
+ "角色突破素材" => true,
+ "角色天赋素材" => true,
"武器强化素材" => true,
"武器突破素材" => true,
_ => false,
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.Implementation.cs b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.Implementation.cs
index 4619bd96..954f9340 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.Implementation.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Model/Metadata/Weapon/Weapon.Implementation.cs
@@ -1,12 +1,12 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Binding.Hutao;
using Snap.Hutao.Model.Calculable;
using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Metadata.Abstraction;
using Snap.Hutao.Model.Metadata.Converter;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.Model.Metadata.Weapon;
diff --git a/src/Snap.Hutao/Snap.Hutao/Program.cs b/src/Snap.Hutao/Snap.Hutao/Program.cs
index 42a7143e..87d6453f 100644
--- a/src/Snap.Hutao/Snap.Hutao/Program.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Program.cs
@@ -56,7 +56,7 @@ public static partial class Program
// Hutao extensions
.AddJsonOptions()
- .AddDatebase()
+ .AddDatabase()
.AddInjections()
.AddHttpClients()
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en-US.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en-US.resx
deleted file mode 100644
index 5b12ca76..00000000
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en-US.resx
+++ /dev/null
@@ -1,1683 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Snap Hutao Dev {0}
-
-
- Snap Hutao
-
-
- Snap Hutao {0}
-
-
- Cancel
-
-
- Complete
-
-
- Confirm
-
-
- Save
-
-
- Invalid Uri
-
-
- HTTP GET {0}
-
-
- Exception when applying CompositionImage's Source
-
-
- Grid
-
-
- List
-
-
- User data archive is corrupted: {0}
-
-
- Do not use this feature in administrator mode: {0}
-
-
- Failed to open the file picker
-
-
- Insufficient permission, failed to create temporary file
-
-
- Game Launcher
-
-
- Quick Actions
-
-
- Snap Hutao DailyNote refresh task. Do NOT edit or delete it.
-
-
- Semaphore disposed, operation cancelled
-
-
- No WebView2 Runtime detected
-
-
- Export
-
-
- Import
-
-
- Select Account to Launch
-
-
- Refine {0}
-
-
- Monday/Thursday/Sunday
-
-
- Tuesday/Friday/Sunday
-
-
- Wednesday/Saturday/Sunday
-
-
- {0:f2} Pulls
-
-
- Current Pity {0} Pulls
-
-
- Unluckiest {0} Pulls
-
-
- Luckiest {0} Pulls
-
-
- {0} Pulls
-
-
- Floor {0}
-
-
- Level {0}
-
-
- 上场 {0} 次
-
-
- BiliBili
-
-
- CN
-
-
- Global
-
-
- Schedule {0}
-
-
- Fatui
-
-
- Fontaine
-
-
- Inadzuma
-
-
- Liyue
-
-
- Mondstadt
-
-
- Natlan
-
-
- Rebels
-
-
- Sumeru
-
-
- Snezhnaya
-
-
- 少男
-
-
- 少女
-
-
- 成女
-
-
- 萝莉
-
-
- 成男
-
-
- Electro
-
-
- Pyro
-
-
- Dendro
-
-
- Cryo
-
-
- Geo
-
-
- Hydro
-
-
- Anemo
-
-
- 3 Stars
-
-
- 2 Stars
-
-
- 5 Stars
-
-
- 4 Stars
-
-
- Event Exclusive
-
-
- 1 Star
-
-
- Bow
-
-
- Catalyst
-
-
- Claymore
-
-
- Polearm
-
-
- Sword
-
-
- {0}/{1}
-
-
- Refinement {0}
-
-
- You must select a user and a role first
-
-
- New:{0} Achievements | Updated:{1} Achievements | Delete{2} Achievements
-
-
- Multiple identical achievement IDs found in a single achievement archive
-
-
- ATK
-
-
- Base ATK
-
-
- Base DEF
-
-
- Base HP
-
-
- CRIT DMG
-
-
- Energy Recharge
-
-
- CRIT Rate
-
-
- Electro DMG Bonus
-
-
- Pyro DMG Bonus
-
-
- Dendro DMG Bonus
-
-
- Cryo DMG Bonus
-
-
- Physical DMG Bonus
-
-
- Geo DMG Bonus
-
-
- Hydro DMG Bonus
-
-
- Anemo DMG Bonus
-
-
- DEF
-
-
- Elemental Mastery
-
-
- Healing Bonus
-
-
- HP
-
-
- Failed to save development plan status
-
-
- Multiple development plan are selected
-
-
- Launch Game
-
-
- Dismiss
-
-
- Exception when requesting data
-
-
- Daily Commission
-
-
- Reward Not Claimed
-
-
- Expeditions
-
-
- Completed
-
-
- Expeditions completed
-
-
- Realm Currency
-
-
- Current Realm Currency:{0}
-
-
- Multiple alarms reached the set value
-
-
- Original Resin
-
-
- Current Original Resin:{0}
-
-
- DailyNote Notification
-
-
- Parametric Transformer
-
-
- Ready
-
-
- Parametric Transformer is ready
-
-
- Unable to fetch wish history: {0}
-
-
- Unable to resolve wish history End Id
-
-
- Character Event Wish
-
-
- Wanderlust Invocation
-
-
- Epitome Invocation
-
-
- Failed to request authkey
-
-
- Genshin Impact game path is not set or set incorrectly
-
-
- Can't find Genshin Impact embedded browser cache path: \n{0}
-
-
- Can't find available URL
-
-
- Invalid URL provided
-
-
- Unsupported Item ID: {0}
-
-
- Multiple matching accounts detected, please delete duplicate accounts
-
-
- Querying Game Resource Information
-
-
- Failed to operate on game file: {0}
-
-
- Select game executable
-
-
- Unity log file not found
-
-
- Game path not found in Unity log file
-
-
- Requesting Package Version
-
-
- Requesting Package Version failed
-
-
- Unable to find game path. Edit it in the Setting page.
-
-
- Unable to set registry key without enabling long path
-
-
- 找不到 PowerShell 的安装目录
-
-
- Game configuration file {0} not found
-
-
- Unable to read or save profile, please try again in administrator mode
-
-
- Metadata service has not been initialized or failed to initialize
-
-
- Failed to parse Metadata validation file
-
-
- Failed to download Metadata validation file
-
-
- Your Snap Hutao version is too low. Please upgrade as soon as possible.
-
-
- Multiple users recorded as selected
-
-
- Failed to save user {0}'s status
-
-
- Mid must be included in the entered Cookie
-
-
- Stoken must be included in the entered Cookie
-
-
- Can't get user information with entered Cookie
-
-
- Achievements
-
-
- Home
-
-
- My Characters
-
-
- Loading, please wait
-
-
- 3 Stars
-
-
- Pity
-
-
- Avg 5 Stars wish #
-
-
- 5 Stars
-
-
- Pulls
-
-
- 4 Stars
-
-
- Luckiness Avg
-
-
- UP
-
-
- Dev Plan
-
-
- DailyNote
-
-
- Data
-
-
- Enter here
-
-
- Set the name of the achievement archive
-
-
- Import mode
-
-
- Greedy (add new data, update completed records)
-
-
- Lazy (add new data, skip completed records)
-
-
- Overwrite (delete old data, add new data)
-
-
- Import achievements data for current archive
-
-
- Bind current user and role
-
-
- Enter the plan name here
-
-
- Create new plan
-
-
- Add to current plan
-
-
- Daily Commission Availability Notification
-
-
- Expedition Reward Notification
-
-
- Realm Currency Alarm Threshold
-
-
- Original Resin Alarm Threshold
-
-
- Show widget on Home page
-
-
- DailyNote Notification Settings
-
-
- Parametric Transformer Notification
-
-
- Import wish history
-
-
- Wish history URL is expired. Please get it again.
-
-
- Fetching {0}
-
-
- Getting wish items
-
-
- Please input URL
-
-
- Input wish history URL manually
-
-
- Export App
-
-
- Export App Version
-
-
- Export Time
-
-
- Number of Achievements
-
-
- UIAF Version
-
-
- Total records
-
-
- UID
-
-
- UIGF Version
-
-
- Input name here
-
-
- Name the account
-
-
- Conversion may take some time. Do not turn off the software.
-
-
- Converting Game Client
-
-
- Take me there
-
-
- Follow the instruction in the document
-
-
- Document
-
-
- Enter Cookie with Stoken field
-
-
- Wish History
-
-
- Abyss Stats
-
-
- Game Launcher
-
-
- Archive [{0}] added successfully
-
-
- Can't add archive with duplicated name [{0}]
-
-
- Can't add archive with invalid name
-
-
- UIAF File
-
-
- Importing achievements
-
-
- UIAF version is too low to import
-
-
- This operation is irreversible. The achievement archive will be lost.
-
-
- Are you sure you want to delete archive {0}?
-
-
- Can't calculate current character. Please try again after syncing data.
-
-
- Character data service [Enka API] is unavailable
-
-
- Exported to clipboard
-
-
- Fetching Data
-
-
- Failed to open clipboard
-
-
- Character showcase is disabled. Please activate it in the game.
-
-
- Failed to add development plan
-
-
- Successfully added to current plan
-
-
- Please create a plan and select it in the Development Plan feature
-
-
- Added successfully
-
-
- Can't add plan with duplicated name
-
-
- Can't add plan with invalid name
-
-
- 30 min | 3.75 Resin
-
-
- 4 min | 0.5 Resin
-
-
- 40 min | 5 Resin
-
-
- 60 min | 7.5 Resin
-
-
- 8 min | 1 Resin
-
-
- Failed to add Scheduled Task, please try again in administrator mode
-
-
- Clear scheduled task successful
-
-
- Failed to delete Scheduled Task, please try again in administrator mode
-
-
- Delete user data successfully. Please restart Snap Hutao now.
-
-
- Successfully saved to selected patch
-
-
- Export successfully
-
-
- Failed to write file
-
-
- Export failed
-
-
- UIGF Json File
-
-
- Import completed
-
-
- Importing wish history
-
-
- UIGF version is too low to import
-
-
- Importing data contains unsupported items
-
-
- Import Failed
-
-
- Failed to fetch wish history
-
-
- Wish history refresh is canceled unexpectedly
-
-
- This operation is irreversible. The wish history archive will be lost.
-
-
- Are you sure to delete archive {0}?
-
-
- Text format in clipboard is incorrect
-
-
- Incorrect data structure
-
-
- Please create an achievement archive first
-
-
- Import failed
-
-
- Convert server failed
-
-
- Can't read game configuration file
-
-
- Game program path is incorrect. Change it in the Settings Page.
-
-
- No server selected
-
-
- Switch game account failed
-
-
- Clear failed. No permission in the file directory. Retry it in administrator mode.
-
-
- Clear failed. Can't find directory: {0}
-
-
- Clear completed
-
-
- Set data directory successfully. Restart to apply changes.
-
-
- User [{0}] added successfully
-
-
- Successfully copied Cookie from user [{0}]
-
-
- This cookie is incomplete, operation failed
-
-
- This cookie is invalid, operation failed
-
-
- User [{0}] removed successfully
-
-
- Successfully update Cookie for user [{0}]
-
-
- View Resource has been disposed, operation cancelled.
-
-
- Now Snap Hutao is ready to use
-
-
- Download completed
-
-
- Completed
-
-
- Queued
-
-
- File Download Exceptions
-
-
- Create New Archive
-
-
- Create new archive to continue
-
-
- Export
-
-
- Import from Clipboard
-
-
- Import from UIAF file
-
-
- Import
-
-
- Delete current archive
-
-
- Search achievement name, description or ID
-
-
- Prefer incomplete
-
-
- Event Notice
-
-
- Game Notice
-
-
- Artifacts Rating
-
-
- CRIT Rating
-
-
- No character data fetched
-
-
- Export as image
-
-
- Character Attributes
-
-
- Details
-
-
- Overview
-
-
- Primary Substat
-
-
- Sync
-
-
- Sync from Enka API
-
-
- Sync data from in-game Character Showcase
-
-
- Sync from Hoyolab Development Plan
-
-
- Sync character talents data
-
-
- Sync from MiHoYo BBS My Characters
-
-
- Sync most data other than character talent
-
-
- Rating
-
-
- Enhanced Substat
-
-
- Development Plan
-
-
- Create
-
-
- Create Plan
-
-
- Create
-
-
- Create plan to continue
-
-
- You can add development plan items later from other pages
-
-
- Add my characters and weapons to Development Plan
-
-
- Development Items
-
-
- Inventory Items
-
-
- Material Checklist
-
-
- Material Statistics
-
-
- Go
-
-
- Delete list
-
-
- Delete current plan
-
-
- Add any character to Development Plan
-
-
- Add any weapon to Development Plan
-
-
- Add role
-
-
- Add role to DailyNote
-
-
- Add
-
-
- Notification
-
-
- Notification Settings
-
-
- Refresh
-
-
- Refresh Duration
-
-
- Causes the notification to stay on-screen and expanded until the user takes action
-
-
- Reminder Notifications
-
-
- Remove Role
-
-
- Cost-halving Used
-
-
- Do not disturb during Genshin gaming
-
-
- Do not disturb
-
-
- Verify Current User and Role
-
-
- Full Refresh
-
-
- Export
-
-
- No wish history data
-
-
- Import
-
-
- Import data from other Apps
-
-
- Import UIGF Json
-
-
- Input
-
-
- Refresh
-
-
- Fetch
-
-
- Manual Input
-
-
- Use URL you provided to refresh wish history
-
-
- Refresh with Stoken
-
-
- Use Cookie from current user to refresh wish history
-
-
- Refresh with Web Cache
-
-
- Use embedded browser cache to refresh wish history
-
-
- Delete current archive
-
-
- Character
-
-
- History
-
-
- Overview
-
-
- Weapon
-
-
- Details
-
-
- Character Appearance
-
-
- Character Constellation
-
-
- Character Usage
-
-
- C 0
-
-
- C 1
-
-
- C 2
-
-
- C 3
-
-
- C 4
-
-
- C 5
-
-
- C 6
-
-
- Character
-
-
- Owned
-
-
- Collected Data Statistics
-
-
- Total Data Records
-
-
- Data Refresh Time
-
-
- Spiral Abyss Statistics
-
-
- Avg Battles Fought
-
-
- Full Star Records
-
-
- Cleared Records
-
-
- Avg Stars
-
-
- Total Records
-
-
- Teams
-
-
- Launch
-
-
- Advanced Features
-
-
- The following features are dangerous. Please do not enable if you do not want to bear the consequences that this may entail!
-
-
- Create window as popup, without frame
-
-
- Borderless
-
-
- Incompatible with embedded browsers; operations like switching window may cause the game to crash.
-
-
- Exclusive Fullscreen
-
-
- Overwrite default fullscreen status
-
-
- Fullscreen
-
-
- Appearance
-
-
- Overwrite game window height setting
-
-
- Height
-
-
- Overwrite game window width setting
-
-
- Width
-
-
- General
-
-
- All options will be saved only after the game is launched successfully.
-
-
- Some options are disabled. They will only be enabled in administrator mode!
-
-
- Can adjust at any time during game
-
-
- Set Frame Rate Limit
-
-
- No UID bound
-
-
- Bind current user and role
-
-
- You need re-detect after manually switching game account or change of Internet environment
-
-
- Detect
-
-
- Account
-
-
- Delete
-
-
- Rename
-
-
- Switch game server (CN/BiliBili/OS)
-
-
- Server
-
-
- Server switch feature will create a cache folder in the game screenshot folder
-
-
- Please turn off V-Sync in the game settings. You may need a high-performance graphic card to support a high frame rate limit.
-
-
- Unlock Frame Rate Limit
-
-
- Disabled
-
-
- Enabled
-
-
- I'm logged in
-
-
- Sign in with your MiHoYo BBS account in the window below
-
-
- About Snap Hutao
-
-
- Appearance
-
-
- Change Window Backdrop Material
-
-
- Backdrop Material
-
-
- Images cache are saved here
-
-
- Open Cache Folder
-
-
- Execute
-
-
- Dangerous Features
-
-
- Unless the developer explicitly asks you to do this, you should not execute the operations below!
-
-
- User data and metadata are saved here
-
-
- Open Data Folder
-
-
- Delete
-
-
- You can try this, if authkey expiration error occurs frequently during the wish history refresh
-
-
- Delete game embedded browser web cache
-
-
- Deleted registered Schedule Tasks. Execute this before uninstalling the software.
-
-
- Delete All Scheduled Tasks
-
-
- Delete all records in the user table to fix specific conflicts of accounts
-
-
- Delete All Users
-
-
- Device ID
-
-
- Show or hide wish event with no wish history
-
-
- Show Wish Event with No Wish History
-
-
- Hide
-
-
- Show
-
-
- Issues on GitHub will be prioritized
-
-
- Feedback
-
-
- Go
-
-
- Wish History
-
-
- Game
-
-
- Reset
-
-
- All image resources will be re-downloaded on next startup
-
-
- Reset Image Resource
-
-
- Reset successfully
-
-
- You need to move data in the directory manually, otherwise new user data will be created.
-
-
- Change Data Directory
-
-
- Set Path
-
-
- Game Path
-
-
- When setting the game path, please select the game program (Yuanshen.exe or GenshinImpact.exe) instead of the game launcher (launcher.exe)
-
-
- Storage
-
-
- Open
-
-
- Set
-
-
- Go to Store
-
-
- View in Microsoft Store
-
-
- Check Update
-
-
- Webview2 Runtime
-
-
- Battle Statistics
-
-
- Battles Fought
-
-
- Most Damage Taken
-
-
- No Spiral Abyss record
-
-
- Most Defeats
-
-
- Details
-
-
- Elemental Bursts Unleashed
-
-
- Abyss Records
-
-
- Deepest Descent
-
-
- Elemental Skills Cast
-
-
- Refresh Data
-
-
- Refresh
-
-
- Sync Spiral Abyss data from Hoyolab
-
-
- Picked Time
-
-
- Statistics
-
-
- Most Damage Taken
-
-
- Stars Earned
-
-
- Upload Data
-
-
- Tools
-
-
- Cookie Operations
-
-
- Web Login
-
-
- Input Manually
-
-
- Refresh Cookie
-
-
- Copy Cookie
-
-
- Please login first
-
-
- Refresh CookieToken successfully
-
-
- Failed to refresh CookieToken
-
-
- Remove User
-
-
- Role
-
-
- User
-
-
- We are downloading the required image resources
-
-
- You can continue to use your computer without any impact
-
-
- Please do not turn off the software
-
-
- Welcome to use Snap Hutao
-
-
- Character WIKI
-
-
- Weapon WIKI
-
-
- Start in {0} days
-
-
- End in {0} days
-
-
- Starts in {0} hours
-
-
- End in {0} hours
-
-
- {0} hrs
-
-
- {0} mins
-
-
- No enough finished Daily Commission
-
-
- Daily Commission Reward ready to claim
-
-
- Daily Commission Reward Claimed
-
-
- {0} {1:HH:mm} reached the limit
-
-
- Today
-
-
- Tomorrow
-
-
- 2 days after
-
-
- {0} day
-
-
- Recover in {0} {1:HH:mm}
-
-
- Imperceptible verification successful
-
-
- Ready for use again after
-
-
- {0} days
-
-
- {0} hrs
-
-
- {0} mins
-
-
- Cooling down
-
-
- Available
-
-
- Ready
-
-
- {0} Seconds
-
-
- Verification failed. Please check MiHoYo BBS - My Character - DailyNote manually
-
-
- Character Event Wish
-
-
- Character Event Wish-2
-
-
- Beginners' Wish
-
-
- Standard Wish
-
-
- Weapon Event Wish
-
-
- Return Code: {0} | Message: {1}
-
-
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja-JP.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja-JP.resx
deleted file mode 100644
index 57b84bac..00000000
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ja-JP.resx
+++ /dev/null
@@ -1,1683 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 胡桃 Dev {0}
-
-
- 胡桃
-
-
- 胡桃 {0}
-
-
- 取消
-
-
- 完成
-
-
- 确认
-
-
- 保存
-
-
- 无效的 Uri
-
-
- HTTP GET {0}
-
-
- 应用 CompositionImage 的源时发生异常
-
-
- 网格
-
-
- 列表
-
-
- 用户数据已损坏:{0}
-
-
- 请勿在管理员模式下使用此功能 {0}
-
-
- 无法打开文件选择器
-
-
- 权限不足,创建临时文件失败
-
-
- 启动游戏
-
-
- 快捷操作
-
-
- 胡桃实时便笺刷新任务 | 请勿编辑或删除。
-
-
- 信号量已经被释放,操作取消
-
-
- 未检测到 WebView2 运行时
-
-
- 导出
-
-
- 导入
-
-
- 选择账号并启动
-
-
- 精炼 {0}
-
-
- 周一/周四/周日
-
-
- 周二/周五/周日
-
-
- 周三/周六/周日
-
-
- {0:f2} 抽
-
-
- 已垫 {0} 抽
-
-
- 最非 {0} 抽
-
-
- 最欧 {0} 抽
-
-
- {0} 抽
-
-
- 第 {0} 层
-
-
- 第 {0} 间
-
-
- 上场 {0} 次
-
-
- 渠道服
-
-
- 官方服
-
-
- 国际服
-
-
- 第 {0} 期
-
-
- 愚人众
-
-
- 枫丹
-
-
- 稻妻
-
-
- 璃月
-
-
- 蒙德
-
-
- 纳塔
-
-
- 游侠
-
-
- 须弥
-
-
- 至冬
-
-
- 少男
-
-
- 少女
-
-
- 成女
-
-
- 萝莉
-
-
- 成男
-
-
- 雷
-
-
- 火
-
-
- 草
-
-
- 冰
-
-
- 岩
-
-
- 水
-
-
- 风
-
-
- 三星
-
-
- 二星
-
-
- 五星
-
-
- 四星
-
-
- 限定五星
-
-
- 一星
-
-
- 弓
-
-
- 法器
-
-
- 双手剑
-
-
- 长柄武器
-
-
- 单手剑
-
-
- {0} 月 {1} 日
-
-
- 精炼 {0} 阶
-
-
- 必须先选择一个用户与角色
-
-
- 新增:{0} 个成就 | 更新:{1} 个成就 | 删除{2} 个成就
-
-
- 单个成就存档内发现多个相同的成就 Id
-
-
- 攻击力
-
-
- 基础攻击力
-
-
- 基础防御力
-
-
- 基础生命值
-
-
- 暴击伤害
-
-
- 元素充能效率
-
-
- 暴击率
-
-
- 雷元素伤害加成
-
-
- 火元素伤害加成
-
-
- 草元素伤害加成
-
-
- 冰元素伤害加成
-
-
- 物理伤害加成
-
-
- 岩元素伤害加成
-
-
- 水元素伤害加成
-
-
- 风元素伤害加成
-
-
- 防御力
-
-
- 元素精通
-
-
- 治疗加成
-
-
- 生命值
-
-
- 保存养成计划状态失败
-
-
- 存在多个选中的养成计划
-
-
- 开始游戏
-
-
- 我知道了
-
-
- 请求异常
-
-
- 每日委托
-
-
- 奖励未领取
-
-
- 探索派遣
-
-
- 已完成
-
-
- 探索派遣已完成
-
-
- 洞天宝钱
-
-
- 当前洞天宝钱:{0}
-
-
- 多个提醒项达到设定值
-
-
- 原粹树脂
-
-
- 当前原粹树脂:{0}
-
-
- 实时便笺提醒
-
-
- 参量质变仪
-
-
- 准备完成
-
-
- 参量质变仪已准备完成
-
-
- 无法获取祈愿记录:{0}
-
-
- 无法获取祈愿记录 End Id
-
-
- 角色活动
-
-
- 奔行世间
-
-
- 神铸赋形
-
-
- 请求验证密钥失败
-
-
- 未正确提供原神路径,或当前设置的路径不正确
-
-
- 找不到原神内置浏览器缓存路径:\n{0}
-
-
- 未找到可用的 Url
-
-
- 提供的 Url 无效
-
-
- 不支持的 Item Id:{0}
-
-
- 存在多个匹配账号,请删除重复的账号
-
-
- 查询游戏资源信息
-
-
- 游戏文件操作失败:{0}
-
-
- 选择游戏本体
-
-
- 找不到 Unity 日志文件
-
-
- 在 Unity 日志文件中找不到游戏路径
-
-
- 获取 Package Version
-
-
- 获取 Package Version 失败
-
-
- 无法找到游戏路径,请前往设置修改
-
-
- 未开启长路径功能,无法设置注册表键值
-
-
- 找不到 PowerShell 的安装目录
-
-
- 找不到游戏配置文件 {0}
-
-
- 无法读取或保存配置文件,请以管理员模式重试
-
-
- 元数据服务尚未初始化,或初始化失败
-
-
- 元数据校验文件解析失败
-
-
- 元数据校验文件下载失败
-
-
- 你的胡桃版本过低,请尽快升级
-
-
- 多个用户记录为选中状态
-
-
- 用户 {0} 状态保存失败
-
-
- 输入的 Cookie 必须包含 Mid
-
-
- 输入的 Cookie 必须包含 Stoken
-
-
- 输入的 Cookie 无法获取用户信息
-
-
- 成就管理
-
-
- 主页
-
-
- 我的角色
-
-
- 加载中,请稍候
-
-
- 三星
-
-
- 保底
-
-
- 五星平均抽数
-
-
- 五星
-
-
- 抽
-
-
- 四星
-
-
- UP 平均抽数
-
-
- UP
-
-
- 养成计划
-
-
- 实时便笺
-
-
- 数据
-
-
- 在此处输入
-
-
- 设置成就存档的名称
-
-
- 导入模式
-
-
- 贪婪(添加新数据,更新已完成项)
-
-
- 懒惰(添加新数据,跳过已完成项)
-
-
- 覆盖(删除老数据,添加新的数据)
-
-
- 为当前存档导入成就
-
-
- 绑定当前用户与角色
-
-
- 在此处输入计划名称
-
-
- 创建新的养成计划
-
-
- 添加到当前养成计划
-
-
- 每日委托上线提醒
-
-
- 探索派遣完成提醒
-
-
- 洞天宝钱提醒阈值
-
-
- 原粹树脂提醒阈值
-
-
- 在主页显示卡片
-
-
- 实时便笺通知设置
-
-
- 参量质变仪提醒
-
-
- 导入祈愿记录
-
-
- 祈愿记录 Url 已失效,请重新获取
-
-
- 正在获取 {0}
-
-
- 获取祈愿物品中
-
-
- 请输入 Url
-
-
- 手动输入祈愿记录 Url
-
-
- 导出 App
-
-
- 导出 App 版本
-
-
- 导出时间
-
-
- 成就个数
-
-
- UIAF 版本
-
-
- 记录条数
-
-
- UID
-
-
- UIGF 版本
-
-
- 在此处输入名称
-
-
- 为账号命名
-
-
- 转换可能需要花费一段时间,请勿关闭胡桃
-
-
- 正在转换客户端
-
-
- 立即前往
-
-
- 进入文档页面并按指示操作
-
-
- 操作文档
-
-
- 在此处输入包含 Stoken 的 Cookie
-
-
- 祈愿记录
-
-
- 深渊统计
-
-
- 启动游戏
-
-
- 存档 [{0}] 添加成功
-
-
- 不能添加名称重复的存档 [{0}]
-
-
- 不能添加名称无效的存档
-
-
- UIAF 文件
-
-
- 导入成就中
-
-
- 数据的 UIAF 版本过低,无法导入
-
-
- 该操作是不可逆的,该存档和其内的所有成就状态会丢失
-
-
- 确定要删除存档 {0} 吗?
-
-
- 当前角色无法计算,请同步信息后再试
-
-
- 角色信息服务 [Enka 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 更新成功
-
-
- 页面资源已经被释放,操作取消
-
-
- 现在可以开始使用胡桃了
-
-
- 下载完成
-
-
- 完成
-
-
- 等待中
-
-
- 文件下载异常
-
-
- 创建新存档
-
-
- 创建新存档以继续
-
-
- 导出
-
-
- 从剪贴板导入
-
-
- 从 UIAF 文件导入
-
-
- 导入
-
-
- 删除当前存档
-
-
- 搜索成就名称,描述或编号
-
-
- 优先未完成
-
-
- 活动公告
-
-
- 游戏公告
-
-
- 圣遗物评分
-
-
- 双暴评分
-
-
- 尚未获取任何角色信息
-
-
- 导出图片
-
-
- 角色属性
-
-
- 详细数据
-
-
- 总览数据
-
-
- 初始词条
-
-
- 同步
-
-
- 从 Enka API 同步
-
-
- 同步游戏内角色展柜中的信息
-
-
- 从米游社养成计算同步
-
-
- 同步角色天赋信息
-
-
- 从米游社我的角色同步
-
-
- 同步角色天赋外的大部分信息
-
-
- 评分
-
-
- 强化词条
-
-
- 养成计算
-
-
- 新建
-
-
- 新建计划
-
-
- 新建
-
-
- 新建养成计划以继续
-
-
- 稍后可以前往其他页面添加养成计划项
-
-
- 添加我的角色与武器到养成计划
-
-
- 养成物品
-
-
- 背包物品
-
-
- 材料清单
-
-
- 材料统计
-
-
- 前往
-
-
- 删除清单
-
-
- 删除当前计划
-
-
- 添加任意角色到养成计划
-
-
- 添加任意武器到养成计划
-
-
- 添加角色
-
-
- 添加角色以定时刷新
-
-
- 添加
-
-
- 通知
-
-
- 通知设置
-
-
- 立即刷新
-
-
- 刷新间隔时间
-
-
- 防止通知自动收入操作中心
-
-
- 提醒通知
-
-
- 移除角色
-
-
- 本周已消耗减半次数
-
-
- 在我游玩原神时不通知我
-
-
- 免打扰模式
-
-
- 验证当前用户与角色
-
-
- 全量刷新
-
-
- 导出
-
-
- 尚未获取任何祈愿记录
-
-
- 导入
-
-
- 导入来自其它 App 的数据
-
-
- 导入 UIGF Json
-
-
- 输入
-
-
- 刷新
-
-
- 获取
-
-
- 手动输入 Url
-
-
- 使用由你提供的 Url 刷新祈愿记录
-
-
- Stoken 刷新
-
-
- 使用当前用户的 Cookie 信息刷新祈愿记录
-
-
- 网页缓存刷新
-
-
- 使用游戏内浏览器的网页缓存刷新祈愿记录
-
-
- 删除当前存档
-
-
- 角色
-
-
- 历史
-
-
- 总览
-
-
- 武器
-
-
- 详情
-
-
- 角色出场
-
-
- 角色持有
-
-
- 角色使用
-
-
- 0 命
-
-
- 1 命
-
-
- 2 命
-
-
- 3 命
-
-
- 4 命
-
-
- 5 命
-
-
- 6 命
-
-
- 角色
-
-
- 持有
-
-
- 数据收集统计
-
-
- 上传记录总数
-
-
- 数据刷新时间
-
-
- 深渊数据统计
-
-
- 平均战斗次数
-
-
- 满星深渊记录
-
-
- 通关深渊记录
-
-
- 平均获取渊星
-
-
- 总计深渊记录
-
-
- 队伍出场
-
-
- 启动游戏
-
-
- 高级功能
-
-
- 下面的功能十分危险,如果您不愿承担因此可能带来的后果,请勿启用!
-
-
- 将窗口创建为弹出窗口,不带框架
-
-
- 无边框
-
-
- 与游戏内浏览器不兼容,切屏等操作也能使游戏闪退
-
-
- 独占全屏
-
-
- 覆盖默认的全屏状态
-
-
- 全屏
-
-
- 外观
-
-
- 覆盖默认屏幕高度
-
-
- 高度
-
-
- 覆盖默认屏幕宽度
-
-
- 宽度
-
-
- 常规
-
-
- 所有选项仅会在启动游戏成功后保存
-
-
- 某些选项处于禁用状态,它们只在管理员模式下生效!
-
-
- 在游戏时可以随时调整
-
-
- 设置帧率上限
-
-
- 该账号尚未绑定 UID
-
-
- 绑定当前用户的角色
-
-
- 在游戏内切换账号,网络环境发生变化后需要重新手动检测
-
-
- 检测
-
-
- 账号
-
-
- 删除
-
-
- 重命名
-
-
- 切换游戏服务器(国服/渠道服/国际服)
-
-
- 服务器
-
-
- 切换国际服功能会在游戏截图文件夹内创建缓存文件夹
-
-
- 请在游戏内关闭垂直同步选项,需要高性能的显卡以支持更高的帧率
-
-
- 解锁帧率限制
-
-
- 禁用
-
-
- 启用
-
-
- 我已登录
-
-
- 在下方登录米哈游通行证
-
-
- 关于 胡桃
-
-
- 外观
-
-
- 更改窗体的背景材质
-
-
- 背景材质
-
-
- 图片缓存 在此处存放
-
-
- 打开 缓存 文件夹
-
-
- 执行
-
-
- 危险功能
-
-
- 除非开发人员明确要求你这么做,否则不应尝试执行下方的操作!
-
-
- 用户数据/元数据 在此处存放
-
-
- 打开 数据 文件夹
-
-
- 删除
-
-
- 若祈愿记录缓存刷新频繁提示验证密钥过期,可以尝试此操作
-
-
- 删除游戏内网页缓存
-
-
- 删除注册的计划任务,卸载前务必点击此项
-
-
- 删除所有计划任务
-
-
- 直接删除用户表的所有记录,用于修复特定的账号冲突问题
-
-
- 删除所有用户
-
-
- 设备 ID
-
-
- 在祈愿记录页面显示或隐藏无记录的历史祈愿活动
-
-
- 无记录的历史祈愿活动
-
-
- 隐藏
-
-
- 显示
-
-
- Github 上反馈的问题会优先处理
-
-
- 反馈
-
-
- 前往反馈
-
-
- 祈愿记录
-
-
- 游戏
-
-
- 重置
-
-
- 下次启动时会重新下载所有图像资源
-
-
- 重置图片资源
-
-
- 重置成功
-
-
- 更改目录后需要手动移动目录内的数据,否则会重新创建用户数据
-
-
- 更改数据目录
-
-
- 设置路径
-
-
- 游戏路径
-
-
- 设置游戏路径时,请选择游戏本体(YuanShen.exe 或 GenshinImpact.exe)而不是启动器(launcher.exe)
-
-
- 存储空间
-
-
- 打开
-
-
- 更改
-
-
- 前往商店
-
-
- 前往微软商店查看
-
-
- 检查更新
-
-
- Webview2 运行时
-
-
- 战斗数据
-
-
- 战斗次数
-
-
- 最强一击
-
-
- 尚未获取任何挑战记录
-
-
- 最多击破
-
-
- 详细数据
-
-
- 元素爆发
-
-
- 深渊记录
-
-
- 最深抵达
-
-
- 元素战技
-
-
- 刷新数据
-
-
- 刷新
-
-
- 同步米游社的深渊挑战记录
-
-
- 出战次数
-
-
- 统计数据
-
-
- 最多承伤
-
-
- 获得渊星
-
-
- 上传数据
-
-
- 工具
-
-
- Cookie 操作
-
-
- 网页登录
-
-
- 手动输入
-
-
- 刷新 Cookie
-
-
- 复制 Cookie
-
-
- 请先登录
-
-
- 刷新 CookieToken 成功
-
-
- 刷新 CookieToken 失败
-
-
- 移除用户
-
-
- 角色
-
-
- 用户
-
-
- 我们将为你下载最基本的图像资源
-
-
- 你可以继续使用电脑,丝毫不受影响
-
-
- 请勿关闭应用程序
-
-
- 欢迎使用 胡桃
-
-
- 角色资料
-
-
- 武器资料
-
-
- {0} 天后开始
-
-
- {0} 天后结束
-
-
- {0} 小时后开始
-
-
- {0} 小时后结束
-
-
- {0} 时
-
-
- {0} 分
-
-
- 今日完成委托次数不足
-
-
- 「每日委托」奖励待领取
-
-
- 已领取「每日委托」奖励
-
-
- {0} {1:HH:mm} 达到上限
-
-
- 今日
-
-
- 明日
-
-
- 明後日
-
-
- {0} 日
-
-
- {0} {1:HH:mm} 後ですべて復元
-
-
- 无感验证成功
-
-
- 後に再び使用することができます
-
-
- {0} 日
-
-
- {0} 时
-
-
- {0} 分
-
-
- 冷却中
-
-
- 可使用
-
-
- 已准备完成
-
-
- {0} 秒
-
-
- 验证失败,请手动验证或前往「米游社-我的角色-实时便笺」页面查看
-
-
- 角色活动祈愿
-
-
- 角色活动祈愿-2
-
-
- 新手祈愿
-
-
- 常驻祈愿
-
-
- 武器活动祈愿
-
-
- 状态:{0} | 信息:{1}
-
-
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko-KR.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko-KR.resx
deleted file mode 100644
index b6f3d813..00000000
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ko-KR.resx
+++ /dev/null
@@ -1,1683 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 호두 Dev {0}
-
-
- 호두
-
-
- 호두 {0}
-
-
- 취소
-
-
- 완료
-
-
- 확인
-
-
- 저장
-
-
- 잘못된 Uri
-
-
- HTTP GET {0}
-
-
- CompositionImage 소스를 적용하는 중 오류가 발생했습니다
-
-
- 격자
-
-
- 목록
-
-
- 손상된 사용자 데이터: {0}
-
-
- 관리자 모드에서 다음 기능을 사용하지 마세요: {0}
-
-
- 파일 선택기를 열 수 없습니다.
-
-
- 권한이 부족해 임시 파일을 생성하지 못했습니다.
-
-
- 게임 시작
-
-
- 바로가기
-
-
- 호두 실시간 메모 동기화 작업 | 편집하거니 삭제하지 마십시오.
-
-
- 세마포어가 해제되어 작업이 취소되었습니다.
-
-
- WebView2 런타임이 감지되지 않음
-
-
- 내보내기
-
-
- 가져오기
-
-
- 계정 선택 및 시작
-
-
- 재련 {0}
-
-
- 월요일/목요일/일요일
-
-
- 화요일/금요일/일요일
-
-
- 수요일/토요일/일요일
-
-
- {0:f2} 뽑음
-
-
- 이미 패딩된 {0} 뽑음
-
-
- 가장 나쁨 {0} 뽑음
-
-
- 가장 좋음 {0} 뽑음
-
-
- {0} 뽑음
-
-
- 제 {0} 층
-
-
- 제 {0} 방
-
-
- {0}번 플레이
-
-
- 채널 서비스
-
-
- 공식 서버
-
-
- 글로벌 서버
-
-
- 제 {0} 호
-
-
- 우인단
-
-
- 폰타인
-
-
- 이나즈마
-
-
- 리월
-
-
- 몬드
-
-
- 나타
-
-
- 궁수
-
-
- 수메르
-
-
- 스네즈나야
-
-
- 소년
-
-
- 소녀
-
-
- 여성
-
-
- 로리
-
-
- 남성
-
-
- 번개
-
-
- 불
-
-
- 풀
-
-
- 얼음
-
-
- 바위
-
-
- 물
-
-
- 바람
-
-
- 3성
-
-
- 2성
-
-
- 5성
-
-
- 4성
-
-
- 한정 5성
-
-
- 1성
-
-
- 활
-
-
- 법구
-
-
- 양손검
-
-
- 장병기
-
-
- 한손검
-
-
- {0}월 {1}일
-
-
- 재련 {0}단계
-
-
- 유저와 UID를 선택하세요
-
-
- 추가: {0} 업적 | 수정: {1} 업적 | 삭제 {2} 업적
-
-
- 한 업적 아카이브에서 Id 동일한 업적 발견됨
-
-
- 공격력
-
-
- 기초 공격력
-
-
- 기초 방어력
-
-
- 기초 HP 최대치
-
-
- 치명타 피해
-
-
- 원소 충전 효율
-
-
- 치명타 확률
-
-
- 번개 원소 피해 보너스
-
-
- 불 원소 피해 보너스
-
-
- 풀 원소 피해 보너스
-
-
- 얼음 원소 피해 보너스
-
-
- 물리 피해 보너스
-
-
- 바위 원소 피해 보너스
-
-
- 물 원소 피해 보너스
-
-
- 바람 원소 피해 보너스
-
-
- 방어력
-
-
- 원소 마스터리
-
-
- 치유 보너스
-
-
- HP 최대치
-
-
- 육성 계획 상태를 저장하지 못했습니다
-
-
- 선택된 육성 계획이 여러 개 있습니다
-
-
- 게임 시작
-
-
- 알았습니다
-
-
- 요청 예외
-
-
- 일일 의뢰
-
-
- 보상 받지 않음
-
-
- 탐색 파견
-
-
- 완료됨
-
-
- 탐색 파견 완료
-
-
- 선계 화폐
-
-
- 현재 선계 화폐: {0}
-
-
- 다수의 알림이 설정값에 도달했습니다
-
-
- 퓨어 레진
-
-
- 현재 퓨어 레진:{0}
-
-
- 실시간 메모 알림
-
-
- 매개 변수 변환기
-
-
- 준비 완료
-
-
- 매개 변수 변환기가 준비되었습니다
-
-
- 기원 기록을 가져올 수 없음:{0}
-
-
- 기원 기록을 가져올 수 없음 End Id
-
-
- 캐릭터 이벤트
-
-
- 세상 여행
-
-
- 신의 주조
-
-
- 인증키 요청 실패
-
-
- 원신 경로가 올바르지 않거나, 현재 경로가 올바르지 않습니다
-
-
- 원신 내 브라우저 캐시 경로를 찾을 수 없음:\n{0}
-
-
- 사용 가능한 Url이 없습니다
-
-
- 제공된 Url이 잘못되었습니다
-
-
- 지원되지 않는 Item Id:{0}
-
-
- 동일한 계정이 다수 있습니다. 중복된 계정을 삭제하세요
-
-
- 게임 리소스 정보 조회
-
-
- 게임 파일 작업 실패:{0}
-
-
- 게임 파일 선택
-
-
- Unity 로그 파일을 찾을 수 없음
-
-
- Unity 로그 파일에서 게임 경로를 찾을 수 없습니다
-
-
- Package Version 가져오기
-
-
- Package Version을 가져오지 못했습니다
-
-
- 게임 경로를 찾을 수 없습니다. 설정에서 수정하세요
-
-
- 긴 경로 기능이 켜지지 않아 레지스트리 키 값을 설정할 수 없습니다
-
-
- PowerShell 설치 경로를 찾을 수 없습니다
-
-
- 게임 설정 파일을 찾을 수 없습니다 {0}
-
-
- 설정 파일을 읽거나 쓸 수 없습니다. 관리자 모드로 실행하세요
-
-
- 메타데이터 서비스가 초기되지 않았거나 초기화에 실패했습니다
-
-
- 메타데이터 확인 파일 파싱 실패
-
-
- 메타데이터 확인 파일을 다운로드 하지 못했습니다
-
-
- 호두 버전이 낮습니다. 업데이트 해주세요
-
-
- 여러 사용자가 선택되었습니다
-
-
- 사용자 {0} 상태 저장 실패
-
-
- 입력한 Cookie에 Mid가 없습니다
-
-
- 입력한 Cookie에 Stoken이 없습니다
-
-
- 입력한 쿠키에서 사용자 정보를 얻을 수 없습니다
-
-
- 업적 관리
-
-
- 홈페이지
-
-
- 내 캐릭터
-
-
- 로딩 중, 기다려주세요
-
-
- 3성
-
-
- 천장
-
-
- 5성 평균 획득
-
-
- 5성
-
-
- 뽑음
-
-
- 4성
-
-
- UP 평균 획득
-
-
- UP
-
-
- 육성 계획
-
-
- 실시간 메모
-
-
- 데이터
-
-
- 여기에 입력하세요
-
-
- 업적 아카이브 이름 설정
-
-
- 가져오기 모드
-
-
- 탐욕 (새 데이터 추가, 완료된 항목 업데이트)
-
-
- 나태 (새 데이터 추가, 완료된 항목 건너뛰기)
-
-
- 덮어쓰기 (오래된 데이터 삭제, 새로운 데이터 추가)
-
-
- 현재 아카이브 업적 가져오기
-
-
- 현재 사용자와 UID 연결
-
-
- 계획 이름을 입력하세요
-
-
- 새로운 육성 계획 만들기
-
-
- 현재 육성 계획에 추가
-
-
- 일일 의뢰 가능 알림
-
-
- 탐색 파견 완료 알림
-
-
- 선계 화폐 한도 알림
-
-
- 퓨어 레진 한도 알림
-
-
- 홈페이지에 카드 표시
-
-
- 실시간 메모 알림 설정
-
-
- 매개 변수 변환기 알림
-
-
- 기원 기록 가져오기
-
-
- 기원 기록 Url이 유효하지 않습니다. 재발급해주세요
-
-
- 가져오는 중 {0}
-
-
- 기원 목록 불러오는 중
-
-
- Url 입력
-
-
- 수동 기원 기록 입력 Url
-
-
- 앱 내보내기
-
-
- 앱 버전 내보내기
-
-
- 내보내기 시간
-
-
- 업적 수
-
-
- UIAF 버전
-
-
- 총 기록:
-
-
- UID
-
-
- UIGF 버전
-
-
- 이름을 입력하세요
-
-
- 계정 이름 설정
-
-
- 변환에 시간이 걸릴 수 있습니다. 호두를 끄지 마세요
-
-
- 클라이언트 전환 중
-
-
- 지금 이동
-
-
- 문서 페이지로 이동하여 설명을 따르세요
-
-
- 작업 문서
-
-
- Stoken이 포함된 Cookie를 입력하세요
-
-
- 기원 기록
-
-
- 나선 비경 통계
-
-
- 게임 시작
-
-
- 아카이브 [{0}]가 추가되었습니다
-
-
- 중복된 이름을 가진 아카이브를 추가할 수 없음 [{0}]
-
-
- 잘못된 이름을 가진 아카이브를 추가할 수 없음
-
-
- UIAF 파일
-
-
- 업적 가져오기
-
-
- 데이터를 가져올 수 있는 UIAF 버전이 너무 낮습니다
-
-
- 이 작업은 되돌릴 수 없습니다. 아카이브와 모든 업적 상태가 삭제됩니다
-
-
- 아카이브 {0}를 삭제하시겠습니까?
-
-
- 현재 캐릭터를 계산할 수 없습니다. 정보 동기화 후 다시 시도하세요
-
-
- 캐릭터 정보 서비스 [Enka API]는 현재 사용할 수 없습니다
-
-
- 클립보드로 내보내기
-
-
- 데이터 가져오는 중
-
-
- 클립보드를 열지 못했습니다
-
-
- 캐릭터 상세정보 보기가 꺼져있습니다. 게임에서 설정 후 다시 시도하십시오.
-
-
- 육성 계획을 추가하지 못했습니다
-
-
- 현재 육성 계획 추가에 성공했습니다
-
-
- 육성 계획 페이지로 이동하여 계획을 만들고 택하세요
-
-
- 성공적으로 추가됨
-
-
- 중복된 이름의 일정은 추가할 수 없습니다
-
-
- 잘못된 이름을 가진 일정은 추가할 수 없습니다
-
-
- 30분 | 3.75 레진
-
-
- 4분 | 0.5 레진
-
-
- 40분 | 5 레진
-
-
- 60분 | 7.5 레진
-
-
- 8분 | 1 레진
-
-
- 작업 등록에 실패했습니다. 관리자 모드로 실행하세요
-
-
- 예약된 작업 삭제 성공
-
-
- 작업 삭제에 실패했습니다. 관리자 모드로 실행하세요
-
-
- 사용자 데이터가 성공적으로 삭제되었습니다. 호두를 다시 시작해주세요
-
-
- 성공적으로 저장되었습니다
-
-
- 내보내기 성공
-
-
- 파일 내보내기 중 오류가 발생했습니다
-
-
- 내보내기 실패
-
-
- UIGF Json 파일
-
-
- 가져오기 완료
-
-
- 기원 기록 가져오는 중
-
-
- 데이터를 가져올 수 있는 UIGF 버전이 너무 낮습니다
-
-
- 가져올 데이터에 지원되지 않는 항목이 있습니다
-
-
- 가져오기 실패
-
-
- 기원 기록 동기화를 실패했습니다
-
-
- 기원 기록 동기화가 비정상적으로 취소되었습니다
-
-
- 이 작업은 되돌릴 수 없습니다. 아카이브와 모든 기원 기록이 삭제됩니다
-
-
- 아카이브 {0}를 삭제하시겠습니까?
-
-
- 클립보드의 텍스트 형식이 올바르지 않습니다
-
-
- 데이터 형식이 잘못되었습니다
-
-
- 업적 파일을 만드세요
-
-
- 가져오기 실패
-
-
- 서버 변경 실패
-
-
- 게임 프로필을 읽을 수 없습니다
-
-
- 게임 경로가 잘못되었습니다. 설정에서 경로를 변경하세요
-
-
- 아직 서버를 선택하지 않았습니다
-
-
- 계정 전환 살패
-
-
- 권한이 부족해 지우지 못했습니다. 관리자 모드로 실행해주세요
-
-
- 지우기 실패, 경로를 찾을 수 없음:{0}
-
-
- 지우기 완료
-
-
- 데이터 경로를 설정했습니다. 변경 사항을 적용하기 위해 재시작합니다
-
-
- 사용자 [{0}]가 정상적으로 추가되었습니다
-
-
- 사용자 [{0}]의 쿠키를 복사했습니다
-
-
- Cookie가 잘못되었습니다. 작업에 실패했습니다
-
-
- Cookie가 유효하지 않습니다. 작업에 실패했습니다
-
-
- 사용자 [{0}]가 제거되었습니다
-
-
- 사용자 [{0}]의 쿠키를 업데이트했습니다
-
-
- 페이지 리소스가 해제되어 작업이 취소되었습니다.
-
-
- 이제 호두를 사용하실 수 있습니다
-
-
- 다운로드가 완료되었습니다
-
-
- 완료
-
-
- 대기 중
-
-
- 파일 다운로드 오류
-
-
- 새 아카이브 생성
-
-
- 계속하려면 새 아카이브를 만드세요
-
-
- 내보내기
-
-
- 클립보드에서 가져오기
-
-
- UIAF 파일에서 가져오기
-
-
- 가져오기
-
-
- 현재 아카이브 삭제
-
-
- 업적 이름, 설명 또는 번호 검색
-
-
- 미완성 우선
-
-
- 다가오는 이벤트
-
-
- 게임 공지
-
-
- 성유물 점수
-
-
- 치명타 점수
-
-
- 캐릭터 정보를 가져오지 못했습니다
-
-
- 이미지 내보내기
-
-
- 캐릭터 속성
-
-
- 상세 데이터
-
-
- 개요 데이터
-
-
- 초기 항목
-
-
- 동기화
-
-
- Enka API에서 동기화
-
-
- 게임 내 캐릭터 상세정보 보기 정보 동기화
-
-
- HoYoLAB의 육성 계산 동기화
-
-
- 캐릭터 특성 정보 동기화
-
-
- HoYoLAB에서 내 캐릭터 동기화
-
-
- 캐릭터 특성을 제외한 대부분의 정보 동기화
-
-
- 점수
-
-
- 두 번째 항목
-
-
- 육성 계산
-
-
- 신규
-
-
- 새로운 계획
-
-
- 신규
-
-
- 계속하기 위해 새로운 육성 계획을 만듭니다
-
-
- 나중에 다른 페이지로 이동하여 육성 계획 항목을 추가할 수 있습니다
-
-
- 내 캐릭터와 무기를 육성 계획 항목에 추가
-
-
- 아이템 육성
-
-
- 배낭 아이템
-
-
- 재료 목록
-
-
- 재료 통계
-
-
- 이동
-
-
- 목록 삭제
-
-
- 현재 계획 삭제
-
-
- 육성 계획에 캐릭터 추가
-
-
- 육성 계획에 무기 추가
-
-
- 캐릭터 추가
-
-
- 계속 동기화할 캐릭터 추가
-
-
- 추가
-
-
- 알림
-
-
- 알림 설정
-
-
- 지금 동기화
-
-
- 동기화 주기
-
-
- 알림 자동 수신 방지
-
-
- 알림
-
-
- 캐릭터 제거
-
-
- 이번 주는 이미 50% 차감 횟수를 소모했습니다
-
-
- 원신을 플레이 할 때 알리지 않음
-
-
- 방해 금지 모드
-
-
- 현재 사용자와 캐릭터 확인
-
-
- 전체 동기화
-
-
- 내보내기
-
-
- 아직 기원 기록을 불러오지 않았습니다
-
-
- 가져오기
-
-
- 다른 앱에서 데이터 가져오기
-
-
- UIGF Json 가져오기
-
-
- 입력
-
-
- 동기화
-
-
- 가져오기
-
-
- Url 수동 입력
-
-
- 제공된 Url을 이용해 기원 기록을 동기화합니다
-
-
- Stoken 동기화
-
-
- 현재 사용자의 Cookie로 기원 기록 동기화
-
-
- 웹 캐시 동기화
-
-
- 게임 내 브라우저의 웹 캐시를 이용해 기원 기록 동기화
-
-
- 현재 아카이브 삭제
-
-
- 캐릭터
-
-
- 기록
-
-
- 개요
-
-
- 무기
-
-
- 세부
-
-
- 캐릭터 획득
-
-
- 캐릭터 보유
-
-
- 캐릭터 사용
-
-
- 명함
-
-
- 1돌
-
-
- 2돌
-
-
- 3돌
-
-
- 4돌
-
-
- 5돌
-
-
- 풀돌
-
-
- 캐릭터
-
-
- 보유
-
-
- 데이터 수집 통계
-
-
- 총 업로드 기록 수
-
-
- 데이터 동기화 시간
-
-
- 나선 비경 통계
-
-
- 평균 전투 횟수
-
-
- 심연의 별 기록
-
-
- 나선 비경 클리어 기록
-
-
- 평균 심연의 별 획득
-
-
- 총 나선 비경 기록
-
-
- 파티 모습
-
-
- 게임 시작
-
-
- 고급
-
-
- 아래의 기능은 매우 위험하므로, 이로 인해 발생하는 결과를 감수하고 싶지 않다면 사용하지 마십시오
-
-
- 테두리 없는 창모드
-
-
- 테두리 없음
-
-
- 게임 내 브라우저와 호환되지 않아 화면을 자르는 등의 작업으로 게임이 종료 될 수 있습니다
-
-
- 전체 화면
-
-
- 기본 전체 화면 상태 덮어쓰기
-
-
- 전체 화면
-
-
- 모습
-
-
- 기본 화면 높이 덮어쓰기
-
-
- 높이
-
-
- 기본 화면 너비 덮어쓰기
-
-
- 너비
-
-
- 보통
-
-
- 모든 설정은 게임을 성공적으로 실행한 후에 저장됩니다
-
-
- 일부 설정은 비활성화 되어 있으며, 관리자 모드에서만 작동합니다
-
-
- 게임 중 언제든지 조절할 수 있습니다
-
-
- 프레임 제한 설정
-
-
- 계정이 아직 UID에 연결되지 않았습니다
-
-
- 현재 사용자와 계정 연결
-
-
- 게임 내 계정 전환, 네트워크 환경이 변경되어 수동 확인 필요
-
-
- 감지
-
-
- 계정
-
-
- 삭제
-
-
- 이름 변경
-
-
- 게임 서버 전환(중국/채널/글로벌)
-
-
- 서버
-
-
- 글로벌 서버 기능을 전환하면 게임 스크린샷 폴더에 캐시 폴더가 생성됩니다
-
-
- 게임에서 수직 동기화 기능을 꺼주세요. 더 높은 프레임 속도를 지원하려면 고성능 그래픽 카드가 필요합니다
-
-
- 프레임 속도 제한 해제
-
-
- 비활성화
-
-
- 활성화
-
-
- 로그인됨
-
-
- 아래에서 HoYoverse 통행증 등록
-
-
- 호두에 대하여
-
-
- 모습
-
-
- 배경 테마 변경
-
-
- 배경 테마
-
-
- 여기에 저장된 이미지 캐시
-
-
- 캐시 폴더 열기
-
-
- 실행
-
-
- 위험 기능
-
-
- 개발자가 당신에게 이것을 요청하지 않는다면, 아래의 작업을 수행하려고 시도하지 마세요
-
-
- 사용자 데이터/메타데이터는 이 곳에 저장됩니다
-
-
- 데이터 폴더 열기
-
-
- 삭제
-
-
- 기록 캐시를 자주 동기화하고 인증 키가 만료됨을 알려면 이 작업을 시도하세요
-
-
- 게임 내 브라우저 캐시 삭제
-
-
- 등록된 계획 작업을 삭제합니다. 삭제하기 전에 이 항목을 클릭하세요
-
-
- 모든 계획 작업 삭제
-
-
- 사용자 테이블의 모든 기록을 직접 삭제하여 특정 계정 충돌 문제를 해결합니다
-
-
- 모든 사용자 삭제
-
-
- 디바이스 ID
-
-
- 기원 기록 페이지에 기록되지 않은 오래된 기원 이벤트를 표시하거나 숨깁니다
-
-
- 기록되지 않은 오래된 기원 이벤트
-
-
- 숨김
-
-
- 표시
-
-
- Github에 보고된 이슈는 우선적으로 처리됩니다
-
-
- 피드백
-
-
- 피드백으로 이동
-
-
- 기원 기록
-
-
- 게임
-
-
- 초기화
-
-
- 다음에 시작할 때 모든 이미지를 다시 다운로드합니다
-
-
- 이미지 리소스 재설정
-
-
- 재설정 성공
-
-
- 경로를 변경한 후 경로 내의 데이터를 수동으로 이동해야 합니다. 그렇지 않으면 사용자 데이터가 재생성됩니다
-
-
- 데이터 경로 변경
-
-
- 경로 설정
-
-
- 게임 경로
-
-
- 게임 경로를 설정할 때 런쳐(launcher.exe) 대신 게임(YuanShen.exe 또는 GenshinImpact.exe)를 선택하세요
-
-
- 저장 공간
-
-
- 열기
-
-
- 변경
-
-
- 스토어로 이동
-
-
- 마이크로소프트 스토어에서 보기
-
-
- 업데이트 확인
-
-
- Webview2 런타임
-
-
- 전투 데이터
-
-
- 전투 횟수
-
-
- 최고의 일격
-
-
- 아직 도전 기록을 불러오지 않았습니다
-
-
- 최대 격파 횟수
-
-
- 상세 데이터
-
-
- 원소폭발
-
-
- 나선 비경 기록
-
-
- 최대 층
-
-
- 원소 전투 스킬
-
-
- 데이터 동기화
-
-
- 동기화
-
-
- HoYoLAB의 나선 비경 기록 동기화
-
-
- 도전 횟수
-
-
- 통계 데이터
-
-
- 가장 크게 받은 피해
-
-
- 총 획득 별
-
-
- 데이터 업로드
-
-
- 도구
-
-
- Cookie 작업
-
-
- 웹 로그인
-
-
- 수동 입력
-
-
- Cookie 동기화
-
-
- Cookie 복사
-
-
- 먼저 로그인하세요
-
-
- CookieToken을 동기화 했습니다
-
-
- CookieToken 동기화에 실패했습니다
-
-
- 사용자 제거
-
-
- 역할
-
-
- 사용자
-
-
- 기본적인 리소스를 다운받고 있습니다
-
-
- 계속 컴퓨터를 사용하실 수 있습니다
-
-
- 호두를 끄지 마세요
-
-
- 호두에 오신 것을 환영합니다
-
-
- 캐릭터 자료
-
-
- 무기 자료
-
-
- {0}일 후 시작
-
-
- {0}일 후 종료
-
-
- {0}시간 후 시작
-
-
- {0}시간 후 종료
-
-
- {0}시간
-
-
- {0}분
-
-
- 일일 의뢰 횟수 부족
-
-
- 「일일 의뢰」 보상을 받으세요
-
-
- 「일일 의뢰」 보상을 받았습니다
-
-
- {0} {1:HH:mm} 한도 도달
-
-
- 오늘
-
-
- 내일
-
-
- 모레
-
-
- {0}일
-
-
- {0} {1:HH:mm} 이후 전부 회복
-
-
- 무감각 인증 성공
-
-
- 추후 재사용 가능
-
-
- {0}일
-
-
- {0}시간
-
-
- {0}분
-
-
- 쿨타임
-
-
- 사용 가능
-
-
- 준비 완료
-
-
- {0}초
-
-
- 인증에 실패했습니다. 수동으로 인증하거나 'HoYoLAB-전적-실시간 메모' 페이지에서 확인하시기 바랍니다.
-
-
- 캐릭터 이벤트 기원
-
-
- 캐릭터 이벤트 기원-2
-
-
- 초심자 기원
-
-
- 상주 기원
-
-
- 무기 이벤트 기원
-
-
- 상태:{0} | 정보:{1}
-
-
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru-RU.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru-RU.resx
deleted file mode 100644
index 4da1837e..00000000
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.ru-RU.resx
+++ /dev/null
@@ -1,1683 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 胡桃 Dev {0}
-
-
- 胡桃
-
-
- 胡桃 {0}
-
-
- 取消
-
-
- 完成
-
-
- 确认
-
-
- 保存
-
-
- 无效的 Uri
-
-
- HTTP GET {0}
-
-
- 应用 CompositionImage 的源时发生异常
-
-
- 网格
-
-
- 列表
-
-
- 用户数据已损坏:{0}
-
-
- 请勿在管理员模式下使用此功能 {0}
-
-
- 无法打开文件选择器
-
-
- 权限不足,创建临时文件失败
-
-
- 启动游戏
-
-
- 快捷操作
-
-
- 胡桃实时便笺刷新任务 | 请勿编辑或删除。
-
-
- 信号量已经被释放,操作取消
-
-
- 未检测到 WebView2 运行时
-
-
- 导出
-
-
- 导入
-
-
- 选择账号并启动
-
-
- 精炼 {0}
-
-
- 周一/周四/周日
-
-
- 周二/周五/周日
-
-
- 周三/周六/周日
-
-
- {0:f2} 抽
-
-
- 已垫 {0} 抽
-
-
- 最非 {0} 抽
-
-
- 最欧 {0} 抽
-
-
- {0} 抽
-
-
- 第 {0} 层
-
-
- 第 {0} 间
-
-
- 上场 {0} 次
-
-
- 渠道服
-
-
- 官方服
-
-
- 国际服
-
-
- 第 {0} 期
-
-
- 愚人众
-
-
- 枫丹
-
-
- 稻妻
-
-
- 璃月
-
-
- 蒙德
-
-
- 纳塔
-
-
- 游侠
-
-
- 须弥
-
-
- 至冬
-
-
- 少男
-
-
- 少女
-
-
- 成女
-
-
- 萝莉
-
-
- 成男
-
-
- 雷
-
-
- 火
-
-
- 草
-
-
- 冰
-
-
- 岩
-
-
- 水
-
-
- 风
-
-
- 三星
-
-
- 二星
-
-
- 五星
-
-
- 四星
-
-
- 限定五星
-
-
- 一星
-
-
- 弓
-
-
- 法器
-
-
- 双手剑
-
-
- 长柄武器
-
-
- 单手剑
-
-
- {0} 月 {1} 日
-
-
- 精炼 {0} 阶
-
-
- 必须先选择一个用户与角色
-
-
- 新增:{0} 个成就 | 更新:{1} 个成就 | 删除{2} 个成就
-
-
- 单个成就存档内发现多个相同的成就 Id
-
-
- 攻击力
-
-
- 基础攻击力
-
-
- 基础防御力
-
-
- 基础生命值
-
-
- 暴击伤害
-
-
- 元素充能效率
-
-
- 暴击率
-
-
- 雷元素伤害加成
-
-
- 火元素伤害加成
-
-
- 草元素伤害加成
-
-
- 冰元素伤害加成
-
-
- 物理伤害加成
-
-
- 岩元素伤害加成
-
-
- 水元素伤害加成
-
-
- 风元素伤害加成
-
-
- 防御力
-
-
- 元素精通
-
-
- 治疗加成
-
-
- 生命值
-
-
- 保存养成计划状态失败
-
-
- 存在多个选中的养成计划
-
-
- 开始游戏
-
-
- 我知道了
-
-
- 请求异常
-
-
- 每日委托
-
-
- 奖励未领取
-
-
- 探索派遣
-
-
- 已完成
-
-
- 探索派遣已完成
-
-
- 洞天宝钱
-
-
- 当前洞天宝钱:{0}
-
-
- 多个提醒项达到设定值
-
-
- 原粹树脂
-
-
- 当前原粹树脂:{0}
-
-
- 实时便笺提醒
-
-
- 参量质变仪
-
-
- 准备完成
-
-
- 参量质变仪已准备完成
-
-
- 无法获取祈愿记录:{0}
-
-
- 无法获取祈愿记录 End Id
-
-
- 角色活动
-
-
- 奔行世间
-
-
- 神铸赋形
-
-
- 请求验证密钥失败
-
-
- 未正确提供原神路径,或当前设置的路径不正确
-
-
- 找不到原神内置浏览器缓存路径:\n{0}
-
-
- 未找到可用的 Url
-
-
- 提供的 Url 无效
-
-
- 不支持的 Item Id:{0}
-
-
- 存在多个匹配账号,请删除重复的账号
-
-
- 查询游戏资源信息
-
-
- 游戏文件操作失败:{0}
-
-
- 选择游戏本体
-
-
- 找不到 Unity 日志文件
-
-
- 在 Unity 日志文件中找不到游戏路径
-
-
- 获取 Package Version
-
-
- 获取 Package Version 失败
-
-
- 无法找到游戏路径,请前往设置修改
-
-
- 未开启长路径功能,无法设置注册表键值
-
-
- 找不到 PowerShell 的安装目录
-
-
- 找不到游戏配置文件 {0}
-
-
- 无法读取或保存配置文件,请以管理员模式重试
-
-
- 元数据服务尚未初始化,或初始化失败
-
-
- 元数据校验文件解析失败
-
-
- 元数据校验文件下载失败
-
-
- 你的胡桃版本过低,请尽快升级
-
-
- 多个用户记录为选中状态
-
-
- 用户 {0} 状态保存失败
-
-
- 输入的 Cookie 必须包含 Mid
-
-
- 输入的 Cookie 必须包含 Stoken
-
-
- 输入的 Cookie 无法获取用户信息
-
-
- 成就管理
-
-
- 主页
-
-
- 我的角色
-
-
- 加载中,请稍候
-
-
- 三星
-
-
- 保底
-
-
- 五星平均抽数
-
-
- 五星
-
-
- 抽
-
-
- 四星
-
-
- UP 平均抽数
-
-
- UP
-
-
- 养成计划
-
-
- 实时便笺
-
-
- 数据
-
-
- 在此处输入
-
-
- 设置成就存档的名称
-
-
- 导入模式
-
-
- 贪婪(添加新数据,更新已完成项)
-
-
- 懒惰(添加新数据,跳过已完成项)
-
-
- 覆盖(删除老数据,添加新的数据)
-
-
- 为当前存档导入成就
-
-
- 绑定当前用户与角色
-
-
- 在此处输入计划名称
-
-
- 创建新的养成计划
-
-
- 添加到当前养成计划
-
-
- 每日委托上线提醒
-
-
- 探索派遣完成提醒
-
-
- 洞天宝钱提醒阈值
-
-
- 原粹树脂提醒阈值
-
-
- 在主页显示卡片
-
-
- 实时便笺通知设置
-
-
- 参量质变仪提醒
-
-
- 导入祈愿记录
-
-
- 祈愿记录 Url 已失效,请重新获取
-
-
- 正在获取 {0}
-
-
- 获取祈愿物品中
-
-
- 请输入 Url
-
-
- 手动输入祈愿记录 Url
-
-
- 导出 App
-
-
- 导出 App 版本
-
-
- 导出时间
-
-
- 成就个数
-
-
- UIAF 版本
-
-
- 记录条数
-
-
- UID
-
-
- UIGF 版本
-
-
- 在此处输入名称
-
-
- 为账号命名
-
-
- 转换可能需要花费一段时间,请勿关闭胡桃
-
-
- 正在转换客户端
-
-
- 立即前往
-
-
- 进入文档页面并按指示操作
-
-
- 操作文档
-
-
- 在此处输入包含 Stoken 的 Cookie
-
-
- 祈愿记录
-
-
- 深渊统计
-
-
- 启动游戏
-
-
- 存档 [{0}] 添加成功
-
-
- 不能添加名称重复的存档 [{0}]
-
-
- 不能添加名称无效的存档
-
-
- UIAF 文件
-
-
- 导入成就中
-
-
- 数据的 UIAF 版本过低,无法导入
-
-
- 该操作是不可逆的,该存档和其内的所有成就状态会丢失
-
-
- 确定要删除存档 {0} 吗?
-
-
- 当前角色无法计算,请同步信息后再试
-
-
- 角色信息服务 [Enka 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 更新成功
-
-
- 页面资源已经被释放,操作取消
-
-
- 现在可以开始使用胡桃了
-
-
- 下载完成
-
-
- 完成
-
-
- 等待中
-
-
- 文件下载异常
-
-
- 创建新存档
-
-
- 创建新存档以继续
-
-
- 导出
-
-
- 从剪贴板导入
-
-
- 从 UIAF 文件导入
-
-
- 导入
-
-
- 删除当前存档
-
-
- 搜索成就名称,描述或编号
-
-
- 优先未完成
-
-
- 活动公告
-
-
- 游戏公告
-
-
- 圣遗物评分
-
-
- 双暴评分
-
-
- 尚未获取任何角色信息
-
-
- 导出图片
-
-
- 角色属性
-
-
- 详细数据
-
-
- 总览数据
-
-
- 初始词条
-
-
- 同步
-
-
- 从 Enka API 同步
-
-
- 同步游戏内角色展柜中的信息
-
-
- 从米游社养成计算同步
-
-
- 同步角色天赋信息
-
-
- 从米游社我的角色同步
-
-
- 同步角色天赋外的大部分信息
-
-
- 评分
-
-
- 强化词条
-
-
- 养成计算
-
-
- 新建
-
-
- 新建计划
-
-
- 新建
-
-
- 新建养成计划以继续
-
-
- 稍后可以前往其他页面添加养成计划项
-
-
- 添加我的角色与武器到养成计划
-
-
- 养成物品
-
-
- 背包物品
-
-
- 材料清单
-
-
- 材料统计
-
-
- 前往
-
-
- 删除清单
-
-
- 删除当前计划
-
-
- 添加任意角色到养成计划
-
-
- 添加任意武器到养成计划
-
-
- 添加角色
-
-
- 添加角色以定时刷新
-
-
- 添加
-
-
- 通知
-
-
- 通知设置
-
-
- 立即刷新
-
-
- 刷新间隔时间
-
-
- 防止通知自动收入操作中心
-
-
- 提醒通知
-
-
- 移除角色
-
-
- 本周已消耗减半次数
-
-
- 在我游玩原神时不通知我
-
-
- 免打扰模式
-
-
- 验证当前用户与角色
-
-
- 全量刷新
-
-
- 导出
-
-
- 尚未获取任何祈愿记录
-
-
- 导入
-
-
- 导入来自其它 App 的数据
-
-
- 导入 UIGF Json
-
-
- 输入
-
-
- 刷新
-
-
- 获取
-
-
- 手动输入 Url
-
-
- 使用由你提供的 Url 刷新祈愿记录
-
-
- Stoken 刷新
-
-
- 使用当前用户的 Cookie 信息刷新祈愿记录
-
-
- 网页缓存刷新
-
-
- 使用游戏内浏览器的网页缓存刷新祈愿记录
-
-
- 删除当前存档
-
-
- 角色
-
-
- 历史
-
-
- 总览
-
-
- 武器
-
-
- 详情
-
-
- 角色出场
-
-
- 角色持有
-
-
- 角色使用
-
-
- 0 命
-
-
- 1 命
-
-
- 2 命
-
-
- 3 命
-
-
- 4 命
-
-
- 5 命
-
-
- 6 命
-
-
- 角色
-
-
- 持有
-
-
- 数据收集统计
-
-
- 上传记录总数
-
-
- 数据刷新时间
-
-
- 深渊数据统计
-
-
- 平均战斗次数
-
-
- 满星深渊记录
-
-
- 通关深渊记录
-
-
- 平均获取渊星
-
-
- 总计深渊记录
-
-
- 队伍出场
-
-
- 启动游戏
-
-
- 高级功能
-
-
- 下面的功能十分危险,如果您不愿承担因此可能带来的后果,请勿启用!
-
-
- 将窗口创建为弹出窗口,不带框架
-
-
- 无边框
-
-
- 与游戏内浏览器不兼容,切屏等操作也能使游戏闪退
-
-
- 独占全屏
-
-
- 覆盖默认的全屏状态
-
-
- 全屏
-
-
- 外观
-
-
- 覆盖默认屏幕高度
-
-
- 高度
-
-
- 覆盖默认屏幕宽度
-
-
- 宽度
-
-
- 常规
-
-
- 所有选项仅会在启动游戏成功后保存
-
-
- 某些选项处于禁用状态,它们只在管理员模式下生效!
-
-
- 在游戏时可以随时调整
-
-
- 设置帧率上限
-
-
- 该账号尚未绑定 UID
-
-
- 绑定当前用户的角色
-
-
- 在游戏内切换账号,网络环境发生变化后需要重新手动检测
-
-
- 检测
-
-
- 账号
-
-
- 删除
-
-
- 重命名
-
-
- 切换游戏服务器(国服/渠道服/国际服)
-
-
- 服务器
-
-
- 切换国际服功能会在游戏截图文件夹内创建缓存文件夹
-
-
- 请在游戏内关闭垂直同步选项,需要高性能的显卡以支持更高的帧率
-
-
- 解锁帧率限制
-
-
- 禁用
-
-
- 启用
-
-
- 我已登录
-
-
- 在下方登录米哈游通行证
-
-
- 关于 胡桃
-
-
- 外观
-
-
- 更改窗体的背景材质
-
-
- 背景材质
-
-
- 图片缓存 在此处存放
-
-
- 打开 缓存 文件夹
-
-
- 执行
-
-
- 危险功能
-
-
- 除非开发人员明确要求你这么做,否则不应尝试执行下方的操作!
-
-
- 用户数据/元数据 在此处存放
-
-
- 打开 数据 文件夹
-
-
- 删除
-
-
- 若祈愿记录缓存刷新频繁提示验证密钥过期,可以尝试此操作
-
-
- 删除游戏内网页缓存
-
-
- 删除注册的计划任务,卸载前务必点击此项
-
-
- 删除所有计划任务
-
-
- 直接删除用户表的所有记录,用于修复特定的账号冲突问题
-
-
- 删除所有用户
-
-
- 设备 ID
-
-
- 在祈愿记录页面显示或隐藏无记录的历史祈愿活动
-
-
- 无记录的历史祈愿活动
-
-
- 隐藏
-
-
- 显示
-
-
- Github 上反馈的问题会优先处理
-
-
- 反馈
-
-
- 前往反馈
-
-
- 祈愿记录
-
-
- 游戏
-
-
- 重置
-
-
- 下次启动时会重新下载所有图像资源
-
-
- 重置图片资源
-
-
- 重置成功
-
-
- 更改目录后需要手动移动目录内的数据,否则会重新创建用户数据
-
-
- 更改数据目录
-
-
- 设置路径
-
-
- 游戏路径
-
-
- 设置游戏路径时,请选择游戏本体(YuanShen.exe 或 GenshinImpact.exe)而不是启动器(launcher.exe)
-
-
- 存储空间
-
-
- 打开
-
-
- 更改
-
-
- 前往商店
-
-
- 前往微软商店查看
-
-
- 检查更新
-
-
- Webview2 运行时
-
-
- 战斗数据
-
-
- 战斗次数
-
-
- 最强一击
-
-
- 尚未获取任何挑战记录
-
-
- 最多击破
-
-
- 详细数据
-
-
- 元素爆发
-
-
- 深渊记录
-
-
- 最深抵达
-
-
- 元素战技
-
-
- 刷新数据
-
-
- 刷新
-
-
- 同步米游社的深渊挑战记录
-
-
- 出战次数
-
-
- 统计数据
-
-
- 最多承伤
-
-
- 获得渊星
-
-
- 上传数据
-
-
- 工具
-
-
- Cookie 操作
-
-
- 网页登录
-
-
- 手动输入
-
-
- 刷新 Cookie
-
-
- 复制 Cookie
-
-
- 请先登录
-
-
- 刷新 CookieToken 成功
-
-
- 刷新 CookieToken 失败
-
-
- 移除用户
-
-
- 角色
-
-
- 用户
-
-
- 我们将为你下载最基本的图像资源
-
-
- 你可以继续使用电脑,丝毫不受影响
-
-
- 请勿关闭应用程序
-
-
- 欢迎使用 胡桃
-
-
- 角色资料
-
-
- 武器资料
-
-
- {0} 天后开始
-
-
- {0} 天后结束
-
-
- {0} 小时后开始
-
-
- {0} 小时后结束
-
-
- {0} 时
-
-
- {0} 分
-
-
- 今日完成委托次数不足
-
-
- 「每日委托」奖励待领取
-
-
- 已领取「每日委托」奖励
-
-
- {0} {1:HH:mm} 达到上限
-
-
- 今天
-
-
- 明天
-
-
- 后天
-
-
- {0} 天
-
-
- {0} {1:HH:mm} 后全部恢复
-
-
- 无感验证成功
-
-
- 后可再次使用
-
-
- {0} 天
-
-
- {0} 时
-
-
- {0} 分
-
-
- 冷却中
-
-
- 可使用
-
-
- 已准备完成
-
-
- {0} 秒
-
-
- 验证失败,请手动验证或前往「米游社-我的角色-实时便笺」页面查看
-
-
- 角色活动祈愿
-
-
- 角色活动祈愿-2
-
-
- 新手祈愿
-
-
- 常驻祈愿
-
-
- 武器活动祈愿
-
-
- 状态:{0} | 信息:{1}
-
-
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-TW.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-TW.resx
deleted file mode 100644
index 561fafba..00000000
--- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.zh-TW.resx
+++ /dev/null
@@ -1,1683 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- 胡桃 Dev {0}
-
-
- 胡桃
-
-
- 胡桃 {0}
-
-
- 取消
-
-
- 完成
-
-
- 確定
-
-
- 保存
-
-
- 無效的 Uri
-
-
- HTTP GET {0}
-
-
- 應用 CompositionImage 的源時發生異常
-
-
- 網格
-
-
- 列表
-
-
- 用户數據已損壞:{0}
-
-
- 請勿在管理員模式下使用此功能 {0}
-
-
- 無法打開文件選擇器
-
-
- 權限不足,創建臨時文件失敗
-
-
- 啟動遊戲
-
-
- 快捷操作
-
-
- 胡桃實時便箋重新整理任務 | 請勿編輯或刪除。
-
-
- 信號量已經被釋放,操作取消
-
-
- 未檢測到 WebView2 運行時
-
-
- 匯出
-
-
- 匯入
-
-
- 選擇賬號並啓動
-
-
- 精煉 {0}
-
-
- 周一/周四/周日
-
-
- 周二/周五/周日
-
-
- 周三/周六/周日
-
-
- {0:f2} 抽
-
-
- 已墊 {0} 抽
-
-
- 最非 {0} 抽
-
-
- 最歐 {0} 抽
-
-
- {0} 抽
-
-
- 第 {0} 層
-
-
- 第 {0} 間
-
-
- 上場 {0} 次
-
-
- 渠道伺服器
-
-
- 官方伺服器
-
-
- 國際伺服器
-
-
- 第 {0} 期
-
-
- 愚人眾
-
-
- 楓丹
-
-
- 稻妻
-
-
- 璃月
-
-
- 蒙德
-
-
- 納塔
-
-
- 遊俠
-
-
- 須彌
-
-
- 至冬
-
-
- 少男
-
-
- 少女
-
-
- 成女
-
-
- 蘿莉
-
-
- 成男
-
-
- 雷
-
-
- 火
-
-
- 草
-
-
- 冰
-
-
- 岩
-
-
- 水
-
-
- 風
-
-
- 三星
-
-
- 二星
-
-
- 五星
-
-
- 四星
-
-
- 限定五星
-
-
- 一星
-
-
- 弓
-
-
- 法器
-
-
- 雙手劍
-
-
- 長柄武器
-
-
- 單手劍
-
-
- {0} 月 {1} 日
-
-
- 精煉 {0} 階
-
-
- 必須先選擇一個用戶與角色
-
-
- 新增:{0} 個成就 | 更新:{1} 個成就 | 刪除{2} 個成就
-
-
- 單個成就存檔內發現多個相同的成就 Id
-
-
- 攻擊力
-
-
- 基礎攻擊力
-
-
- 基礎防禦力
-
-
- 基礎生命值
-
-
- 暴擊傷害
-
-
- 元素充能效率
-
-
- 暴擊率
-
-
- 雷元素傷害加成
-
-
- 火元素傷害加成
-
-
- 草元素傷害加成
-
-
- 冰元素傷害加成
-
-
- 物理傷害加成
-
-
- 岩元素傷害加成
-
-
- 水元素傷害加成
-
-
- 風元素傷害加成
-
-
- 防禦力
-
-
- 元素精通
-
-
- 治療加成
-
-
- 生命值
-
-
- 保存養成計劃狀態失敗
-
-
- 存在多個選中的養成計劃
-
-
- 開始遊戲
-
-
- 我知道了
-
-
- 請求異常
-
-
- 每日委託
-
-
- 獎勵未領取
-
-
- 探索派遣
-
-
- 已完成
-
-
- 探索派遣已完成
-
-
- 洞天寶錢
-
-
- 目前洞天寶錢:{0}
-
-
- 多個提醒項達到設定值
-
-
- 原粹樹脂
-
-
- 目前原粹樹脂:{0}
-
-
- 實時便箋提醒
-
-
- 參數質變儀
-
-
- 準備完成
-
-
- 參量質變儀已準備完成
-
-
- 無法獲取祈願記錄:{0}
-
-
- 無法獲取祈願記錄 End Id
-
-
- 角色活動
-
-
- 奔行世間
-
-
- 神鑄賦形
-
-
- 請求驗證密鑰失敗
-
-
- 未正確提供原神路徑,或目前設置的路徑不正確
-
-
- 找不到原神內置瀏覽器緩存路徑:\n{0}
-
-
- 未找到可用的 Url
-
-
- 提供的 Url 無效
-
-
- 不支持的 Item Id: {0}
-
-
- 存在多個匹配賬號,請刪除重複的賬號
-
-
- 查詢遊戲資源信息
-
-
- 游戲文件操作失敗:{0}
-
-
- 請選擇游戲本體
-
-
- 找不到 Unity 日志文件
-
-
- 在 Unity 日志文件中無法找到游戲路徑
-
-
- 正在獲取 Package Version
-
-
- 獲取 Package Version 失敗
-
-
- 無法找到游戲本體路徑,請前往設置修改
-
-
- 未開啓長路徑功能,無法設定注冊表鍵值
-
-
- 找不到 PowerShell 的安裝目錄
-
-
- 游戲配置文件 {0} 無法找到
-
-
- 無法讀取或保存配置文件,請用管理員模式重試
-
-
- 元數據服務未初始化或初始化失敗
-
-
- 元數據文件解析失敗
-
-
- 元數據文件下載失敗
-
-
- 你的胡桃版本過低,請盡快升級
-
-
- 已选中多条用户记录
-
-
- 用戶 {0} 狀態保存失敗
-
-
- Mid 必須包含在輸入的 Cookie 中
-
-
- Stoken 必須包含在輸入的 Cookie 中
-
-
- 輸入的 Cookie 無法獲取用戶信息
-
-
- 成就管理
-
-
- 首頁
-
-
- 我的角色
-
-
- 加載中,請等候
-
-
- 三星
-
-
- 保底
-
-
- 五星平均抽數
-
-
- 五星
-
-
- 抽
-
-
- 四星
-
-
- UP 平均抽數
-
-
- UP
-
-
- 養成計劃
-
-
- 即時便籤
-
-
- 數據
-
-
- 在此處輸入
-
-
- 設置成就存檔的名稱
-
-
- 匯入模式
-
-
- 貪婪(添加新的數據,更新已完成項)
-
-
- 懶惰(添加新數據,跳過已完成項)
-
-
- 覆蓋(刪除舊數據,添加新的數據)
-
-
- 為當前存檔導入成就
-
-
- 綁定當前用戶與角色
-
-
- 在此處輸入計劃名稱
-
-
- 創建新的養成計劃
-
-
- 添加到當前養成計劃
-
-
- 每日委托上綫提醒
-
-
- 探索派遣完成提醒
-
-
- 洞天寳錢提醒閾值
-
-
- 原粹樹脂提醒數值
-
-
- 在主頁顯示卡片
-
-
- 實時便箋通知設置
-
-
- 參數質變儀提醒
-
-
- 匯入祈願記錄
-
-
- 祈願記錄 URL 已失效,請重新獲取
-
-
- 正在獲取 {0}
-
-
- 獲取祈願物品中
-
-
- 請輸入 Url
-
-
- 手動輸入祈願記錄 Url
-
-
- 匯出 App
-
-
- 匯出 App 版本
-
-
- 匯出時間
-
-
- 成就數量
-
-
- UIAF 版本
-
-
- 記錄條數
-
-
- UID
-
-
- UIGF 版本
-
-
- 在此處輸入名稱
-
-
- 為帳號命名
-
-
- 轉換可能需要花費一段時間,請勿關閉胡桃
-
-
- 正在轉換客戶端
-
-
- 立即前往
-
-
- 進入文檔頁面並按指示操作
-
-
- 操作文檔
-
-
- 在此處輸入包含 Stoken 的 Cookie
-
-
- 祈願記錄
-
-
- 深淵統計
-
-
- 啟動遊戲
-
-
- 存檔 [{0}] 添加成功
-
-
- 不能添加名稱重覆的存檔 [{0}]
-
-
- 不能添加名稱無效的存檔
-
-
- UIAF 文件
-
-
- 匯入成就中
-
-
- 數據的 UIAF 版本過低,無法匯入
-
-
- 該操作是不可逆的,該存檔和其內的所有成就狀態會丟失
-
-
- 確定要刪除存檔 {0} 嗎?
-
-
- 當前角色無法計算,請同步信息後再試
-
-
- 角色信息服務 [Enka API] 當前不可用
-
-
- 已匯出到剪貼簿
-
-
- 獲取數據中
-
-
- 打開剪貼簿失敗
-
-
- 角色展櫃尚未開啟,請前往遊戲操作後重試
-
-
- 養成計劃添加失敗
-
-
- 已成功新增至目前養成計劃
-
-
- 請先前往養成計劃頁面創建計劃並選中
-
-
- 新增成功
-
-
- 不能新增名稱重覆的計劃
-
-
- 不能新增名稱無效的計劃
-
-
- 30 分鐘 | 3.75 樹脂
-
-
- 4 分鐘 | 0.5 樹脂
-
-
- 40 分鐘 | 5 樹脂
-
-
- 60 分鐘 | 7.5 樹脂
-
-
- 8 分鐘 | 1 樹脂
-
-
- 注冊計劃任務失敗,請以管理員模式重試
-
-
- 清除計劃任務成功
-
-
- 注冊計劃任務失敗,請以管理員模式重試
-
-
- 清除用戶數據成功,請立即重啓 胡桃
-
-
- 成功保存到指定位置
-
-
- 匯出成功
-
-
- 寫入文件時遇到問題
-
-
- 匯出失敗
-
-
- UIFG JSON 文件
-
-
- 匯入完成
-
-
- 匯入祈願紀錄中
-
-
- 數據的 UIGF 版本過低,無法匯入
-
-
- 匯入數據中包含了不支持的物品
-
-
- 匯入失敗
-
-
- 獲取祈願紀錄失敗
-
-
- 祈願紀錄刷新操作被異常取消
-
-
- 該操作是不可逆的,該存檔和其內的所有祈願紀錄會丟失
-
-
- 確定要刪除存檔 {0} 嗎?
-
-
- 剪貼板中的文本格式不正塙
-
-
- 數據格式不正確
-
-
- 請先創建一個成就存檔
-
-
- 匯入失敗
-
-
- 切換伺服器失敗
-
-
- 無法讀取游戲設定文件
-
-
- 游戲程式路徑不正塙,前往設定更改游戲路徑
-
-
- 還未選擇任何伺服器
-
-
- 切換帳號失敗
-
-
- 清除失敗,文件目錄權限不足,請使用管理員模式重試
-
-
- 清除失敗,找不到目錄:{0}
-
-
- 清除完成
-
-
- 設置數據目錄成功,重啓以應用更改
-
-
- 用戶 [{0}] 新增成功
-
-
- 用戶 [{0}] 的 Cookie 複製成功
-
-
- 此 Cookie 不完整,操作失敗
-
-
- 此 Cookie 無效,操作失敗
-
-
- 用戶[{0}] 成功移除
-
-
- 用戶 [{0}] 的 Cookie 更新成功
-
-
- 頁面資源已經被釋放,操作取消
-
-
- 現在可以開始使用胡桃了
-
-
- 下載完成
-
-
- 完成
-
-
- 待處理
-
-
- 文件下載異常
-
-
- 建立新存檔
-
-
- 建立新存檔以繼續
-
-
- 匯出
-
-
- 從剪貼簿匯入
-
-
- 從 UIAF 文件匯入
-
-
- 匯入
-
-
- 刪除當前存檔
-
-
- 搜索成就名稱,描述或編號
-
-
- 優先未完成
-
-
- 活動公告
-
-
- 游戲公告
-
-
- 聖遺物評分
-
-
- 雙暴評分
-
-
- 尚未獲取任何角色信息
-
-
- 圖像輸出
-
-
- 角色屬性
-
-
- 詳細數據
-
-
- 總覽數據
-
-
- 初始詞條
-
-
- 同步
-
-
- 從 Enka API 同步
-
-
- 同步游戲内角色展櫃中的信息
-
-
- 從 HoYoLAB - 養成計算器同步
-
-
- 同步角色天賦信息
-
-
- 從 HoYoLAB - 戰績中同步
-
-
- 同步角色天賦外的大部分信息
-
-
- 評分
-
-
- 强化詞條
-
-
- 養成計算
-
-
- 新建
-
-
- 新建計劃
-
-
- 新建
-
-
- 新建養成計劃以繼續
-
-
- 稍後可以前往其他頁面添加養成計劃條目
-
-
- 添加我的角色與武器到養成計劃
-
-
- 養成物品
-
-
- 背包物品
-
-
- 材料清單
-
-
- 材料統計
-
-
- 前往
-
-
- 刪除清單
-
-
- 刪除當前計劃
-
-
- 添加任意角色到養成計劃
-
-
- 添加任意武器到養成計劃
-
-
- 新增角色
-
-
- 新增角色以定時重新整理
-
-
- 新增
-
-
- 通知
-
-
- 通知設定
-
-
- 立即重新整理
-
-
- 重新整理間隔時間
-
-
- 防止通知自動收入操作中心
-
-
- 提醒通知
-
-
- 移除角色
-
-
- 本周已消耗減半次數
-
-
- 在我游玩原神時不通知我
-
-
- 免打擾模式
-
-
- 驗證當前用戶與角色
-
-
- 全量刷新
-
-
- 匯出
-
-
- 尚未獲取任何祈願紀錄
-
-
- 匯入
-
-
- 匯入來自其他 APP 的數據
-
-
- 匯入 UIGF Json
-
-
- 輸入
-
-
- 重新整理
-
-
- 獲取
-
-
- 手動輸入 Url
-
-
- 使用由你提供的 URL 刷新祈願紀錄
-
-
- Stoken 刷新
-
-
- 使用當前用戶的 Cookie 信息刷新祈願紀錄
-
-
- 網頁緩存刷新
-
-
- 使用游戲内瀏覽器的網頁緩存刷新祈願紀錄
-
-
- 刪除當前存檔
-
-
- 角色
-
-
- 历史
-
-
- 總覽
-
-
- 武器
-
-
- 詳情
-
-
- 角色出場
-
-
- 角色持有
-
-
- 角色使用
-
-
- 0 命
-
-
- 1 命
-
-
- 2 命
-
-
- 3 命
-
-
- 4 命
-
-
- 5 命
-
-
- 6 命
-
-
- 角色
-
-
- 持有
-
-
- 數據收集統計
-
-
- 上傳記錄總數
-
-
- 數據刷新時間
-
-
- 深淵數據統計
-
-
- 平均戰鬥次數
-
-
- 滿星深淵記錄
-
-
- 通關深淵記錄
-
-
- 平均獲取淵星
-
-
- 總計深淵記錄
-
-
- 隊伍出場
-
-
- 啟動遊戲
-
-
- 進階功能
-
-
- 下面的功能十分危險,如果您不願承擔因此可能帶來的後果,請勿啓用!
-
-
- 將窗口創建為彈出窗口,不帶邊框
-
-
- 無邊框
-
-
- 與游戲内瀏覽器不兼容,切屏等操作也能使游戲閃退
-
-
- 獨占全屏
-
-
- 覆蓋默認的全屏狀態
-
-
- 全螢幕
-
-
- 外觀
-
-
- 覆蓋默認熒幕高度
-
-
- 高度
-
-
- 覆蓋默認熒幕寬度
-
-
- 寬度
-
-
- 一般
-
-
- 所有選項盡會在啓動游戲成功後保存
-
-
- 某些選項處於禁用狀態,他們只在管理員模式下生效!
-
-
- 在游戲時可以隨時調整
-
-
- 設置 FPS 上限
-
-
- 該賬號尚未綁定 UID
-
-
- 綁定當前用戶的角色
-
-
- 在游戲内切換賬號,網絡環境發生變化后需要重新手動檢測
-
-
- 檢測
-
-
- 賬號
-
-
- 刪除
-
-
- 重新命名
-
-
- 切換游戲伺服器(國服/渠道服/國際服)
-
-
- 伺服器
-
-
- 切換國際服功能會在游戲截圖文件夾内創建緩存文件夾
-
-
- 請在游戲内關閉 V-Sync 選項,需要高性能的顯示卡以支持更高的 FPS
-
-
- 解鎖 FPS 限制
-
-
- 停用
-
-
- 啟用
-
-
- 我已登錄
-
-
- 在下方登錄 MiHoYo 通行證賬號
-
-
- 關於 胡桃
-
-
- 外觀
-
-
- 更改窗體的背景材質
-
-
- 背景材質
-
-
- 圖片緩存存放在此
-
-
- 打開緩存文件夾
-
-
- 執行
-
-
- 危險功能
-
-
- 除非開發人員明確要求你這樣做,否則不應嘗試執行下方的操作!
-
-
- 用戶數據/元數據 存放在此
-
-
- 打開數據文件夾
-
-
- 刪除
-
-
- 若祈願紀錄緩存刷新頻繁提示驗證密鑰過期,可以嘗試此操作
-
-
- 刪除游戲内網頁緩存
-
-
- 刪除注冊的計劃任務,卸載前務必點擊此項
-
-
- 刪除所有計劃任務
-
-
- 直接刪除用戶表的所有記錄,用於修復特定的賬號衝突問題
-
-
- 删除所有用户
-
-
- 裝置 ID
-
-
- 在祈願紀錄頁面顯示或隱藏無記錄的歷史祈願活動
-
-
- 無記錄的歷史祈願活動
-
-
- 隱藏
-
-
- 顯示
-
-
- Github 上反饋的問題會優先處理
-
-
- 反饋
-
-
- 前往反饋
-
-
- 祈願記錄
-
-
- 游戲
-
-
- 重設
-
-
- 下次啓動時會重新下載所有圖像資源
-
-
- 重設圖片資源
-
-
- 重設成功
-
-
- 更改目錄后需要手動移動目錄内的數據,否則會重新創建用戶數據
-
-
- 更改數據目錄
-
-
- 設置路徑
-
-
- 游戲路徑
-
-
- 設置游戲路徑時,請選擇游戲本體(YuanShen.exe 或 GenshinImpact.exe) 而不是啓動器(launcher.exe)
-
-
- 存儲空間
-
-
- 打開
-
-
- 更改
-
-
- 前往商店
-
-
- 前往微軟商店查看
-
-
- 檢查更新
-
-
- WebView 2 運行時
-
-
- 戰鬥數據
-
-
- 戰鬥次數
-
-
- 最强一擊
-
-
- 尚未獲取任何挑戰紀錄
-
-
- 最多擊破
-
-
- 詳細數據
-
-
- 元素爆發
-
-
- 深淵記錄
-
-
- 最深抵達
-
-
- 元素戰技
-
-
- 重新整理數據
-
-
- 重新整理
-
-
- 同步 HoYo-LAB 的深淵挑戰記錄
-
-
- 出戰次數
-
-
- 统计数据
-
-
- 最多承傷
-
-
- 獲得淵星
-
-
- 上傳資料
-
-
- 工具
-
-
- Cookie 操作
-
-
- 網頁登陸
-
-
- 手動輸入
-
-
- 刷新 Cookie
-
-
- 拷貝 Cookie
-
-
- 請先登錄
-
-
- 刷新 CookieToken 成功
-
-
- 刷新 CookieToken 失敗
-
-
- 移除用戶
-
-
- 角色
-
-
- 用戶
-
-
- 我們將爲你下載最基本的圖像資源
-
-
- 你可以繼續使用電腦,絲毫不受影響
-
-
- 請勿關閉應用程式
-
-
- 歡迎使用 胡桃
-
-
- 角色資料
-
-
- 武器資料
-
-
- {0} 天後開始
-
-
- {0} 天後結束
-
-
- {0} 小時後開始
-
-
- {0} 小時後結束
-
-
- {0} 時
-
-
- {0} 分
-
-
- 今日完成委託次數不足
-
-
- 「每日委託」獎勵待領取
-
-
- 已領取「每日委托」獎勵
-
-
- {0} {1:HH:mm} 達到上限
-
-
- 今天
-
-
- 明天
-
-
- 後天
-
-
- {0} 天
-
-
- {0} {1:HH:mm} 後全部恢復
-
-
- 無感驗證成功
-
-
- 後可再次使用
-
-
- {0} 天
-
-
- {0} 時
-
-
- {0} 分
-
-
- 冷卻中
-
-
- 可使用
-
-
- 已準備完成
-
-
- {0} 秒
-
-
- 驗證失敗,請手動驗證或前往「米遊社-我的角色-實時便箋」頁面查看
-
-
- 角色活動祈願
-
-
- 角色活動祈願-2
-
-
- 新手祈願
-
-
- 常駐祈願
-
-
- 武器活動祈願
-
-
- 狀態:{0} | 信息:{1}
-
-
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs
index e61cc3e6..f8e7af88 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Achievement/AchievementService.cs
@@ -9,7 +9,7 @@ using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Model.InterChange.Achievement;
using System.Collections.ObjectModel;
-using BindingAchievement = Snap.Hutao.Model.Binding.Achievement.AchievementView;
+using BindingAchievement = Snap.Hutao.ViewModel.Achievement.AchievementView;
using EntityAchievement = Snap.Hutao.Model.Entity.Achievement;
using EntityArchive = Snap.Hutao.Model.Entity.AchievementArchive;
using MetadataAchievement = Snap.Hutao.Model.Metadata.Achievement.Achievement;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Achievement/IAchievementService.cs b/src/Snap.Hutao/Snap.Hutao/Service/Achievement/IAchievementService.cs
index 7df8cf71..3ade48ea 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Achievement/IAchievementService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Achievement/IAchievementService.cs
@@ -3,7 +3,7 @@
using Snap.Hutao.Model.InterChange.Achievement;
using System.Collections.ObjectModel;
-using BindingAchievement = Snap.Hutao.Model.Binding.Achievement.AchievementView;
+using BindingAchievement = Snap.Hutao.ViewModel.Achievement.AchievementView;
using EntityArchive = Snap.Hutao.Model.Entity.AchievementArchive;
using MetadataAchievement = Snap.Hutao.Model.Metadata.Achievement.Achievement;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsExtension.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsExtension.cs
index acac0cf0..7ce151d7 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsExtension.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsExtension.cs
@@ -1,8 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Metadata.Abstraction;
+using Snap.Hutao.ViewModel.GachaLog;
using System.Security.Cryptography;
using System.Text;
using Windows.UI;
@@ -41,12 +41,12 @@ internal static class GachaStatisticsExtension
// we can't trust first item's prev state.
bool isPreviousUp = true;
- // mark the IsGuarentee
+ // mark the IsGuarantee
foreach (SummaryItem item in summaryItems)
{
if (item.IsUp && (!isPreviousUp))
{
- item.IsGuarentee = true;
+ item.IsGuarantee = true;
}
isPreviousUp = item.IsUp;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsFactory.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsFactory.cs
index 28a1cbc3..9a001084 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsFactory.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/GachaStatisticsFactory.cs
@@ -3,7 +3,6 @@
using Snap.Hutao.Core.Database;
using Snap.Hutao.Core.ExceptionService;
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Model.Intrinsic;
@@ -12,6 +11,7 @@ using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Metadata.Weapon;
using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.Metadata;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.Service.GachaLog.Factory;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/HistoryWishBuilder.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/HistoryWishBuilder.cs
index a2289b8f..8c7709a4 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/HistoryWishBuilder.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/HistoryWishBuilder.cs
@@ -1,11 +1,11 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Metadata;
using Snap.Hutao.Model.Metadata.Abstraction;
using Snap.Hutao.Model.Metadata.Avatar;
using Snap.Hutao.Model.Metadata.Weapon;
+using Snap.Hutao.ViewModel.GachaLog;
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
namespace Snap.Hutao.Service.GachaLog.Factory;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/IGachaStatisticsFactory.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/IGachaStatisticsFactory.cs
index 7ccc3fb1..bb66ee88 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/IGachaStatisticsFactory.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/IGachaStatisticsFactory.cs
@@ -1,8 +1,8 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.Service.GachaLog.Factory;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/TypedWishSummaryBuilder.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/TypedWishSummaryBuilder.cs
index e556ab0c..6e8764cc 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/TypedWishSummaryBuilder.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/Factory/TypedWishSummaryBuilder.cs
@@ -1,10 +1,10 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Intrinsic;
using Snap.Hutao.Model.Metadata.Abstraction;
+using Snap.Hutao.ViewModel.GachaLog;
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
namespace Snap.Hutao.Service.GachaLog.Factory;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs
index 9fa1b050..1aa7b655 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/GachaLogService.cs
@@ -8,7 +8,6 @@ using Snap.Hutao.Core.Database;
using Snap.Hutao.Core.Diagnostics;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Model.Binding;
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.Entity.Database;
using Snap.Hutao.Model.InterChange.GachaLog;
@@ -17,6 +16,7 @@ using Snap.Hutao.Model.Primitive;
using Snap.Hutao.Service.GachaLog.Factory;
using Snap.Hutao.Service.GachaLog.QueryProvider;
using Snap.Hutao.Service.Metadata;
+using Snap.Hutao.ViewModel.GachaLog;
using Snap.Hutao.Web.Hoyolab.Hk4e.Event.GachaInfo;
using Snap.Hutao.Web.Response;
using System.Collections.Immutable;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs
index a6623dc6..c276a1e6 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/GachaLog/IGachaLogService.cs
@@ -1,10 +1,10 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.InterChange.GachaLog;
using Snap.Hutao.Service.GachaLog.QueryProvider;
+using Snap.Hutao.ViewModel.GachaLog;
using System.Collections.ObjectModel;
namespace Snap.Hutao.Service.GachaLog;
diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs
index 29587d15..8d03d294 100644
--- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs
+++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs
@@ -295,9 +295,9 @@ internal sealed class PackageConverter
}
// Cache no item, download it anyway.
- using (FileStream fileStream = File.Create(targetFilePath))
+ while (true)
{
- while (true)
+ using (FileStream fileStream = File.Create(targetFilePath))
{
using (HttpResponseMessage response = await httpClient.GetAsync($"{scatteredFilesUrl}/{info.Target}", HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false))
{
@@ -319,7 +319,6 @@ internal sealed class PackageConverter
// System.IO.IOException: Received an unexpected EOF or 0 bytes from the transport stream.
// We want to retry forever.
- fileStream.Seek(0, SeekOrigin.Begin);
}
}
}
diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
index af43f9da..7e0a010a 100644
--- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
+++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj
@@ -432,6 +432,7 @@
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml
index 27fd1954..9b51a020 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Control/StatisticsCard.xaml
@@ -11,7 +11,7 @@
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shmbg="using:Snap.Hutao.Model.Binding.Gacha"
xmlns:shvc="using:Snap.Hutao.View.Control"
- d:DataContext="{d:DesignInstance shmbg:TypedWishSummary}"
+ d:DataContext="{d:DesignInstance shmbg:Snap.Hutao.ViewModel.GachaLog.TypedWishSummary}"
mc:Ignorable="d">
@@ -45,7 +45,7 @@
VerticalAlignment="Center"
Foreground="#FF0063FF"
Text="{shcm:ResourceString Name=ViewControlStatisticsCardGuarenteeText}"
- Visibility="{Binding IsGuarentee, Converter={StaticResource BoolToVisibilityConverter}}"/>
+ Visibility="{Binding IsGuarantee, Converter={StaticResource BoolToVisibilityConverter}}"/>
@@ -105,9 +105,9 @@
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml
index 8578d5b7..b6b08528 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml
@@ -15,10 +15,10 @@
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
xmlns:shct="using:Snap.Hutao.Control.Text"
- xmlns:shv="using:Snap.Hutao.ViewModel"
+ xmlns:shva="using:Snap.Hutao.ViewModel.AvatarProperty"
xmlns:shvcont="using:Snap.Hutao.View.Control"
xmlns:wsc="using:WinUICommunity.SettingsUI.Controls"
- d:DataContext="{d:DesignInstance shv:AvatarPropertyViewModel}"
+ d:DataContext="{d:DesignInstance shva:AvatarPropertyViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml.cs
index 8e8eca07..fa6eb626 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml.cs
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Control;
-using Snap.Hutao.ViewModel;
+using Snap.Hutao.ViewModel.AvatarProperty;
namespace Snap.Hutao.View.Page;
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
index ea5cf113..d2c0f4e5 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml
@@ -14,10 +14,10 @@
xmlns:shcb="using:Snap.Hutao.Control.Behavior"
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
- xmlns:shv="using:Snap.Hutao.ViewModel"
- xmlns:shvc="using:Snap.Hutao.View.Control"
+ xmlns:shvco="using:Snap.Hutao.View.Control"
+ xmlns:shvcu="using:Snap.Hutao.ViewModel.Cultivation"
xmlns:wsc="using:WinUICommunity.SettingsUI.Controls"
- d:DataContext="{d:DesignInstance shv:CultivationViewModel}"
+ d:DataContext="{d:DesignInstance shvcu:CultivationViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
@@ -110,7 +110,7 @@
-
-
-
-
-
-
+
+
+
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml.cs
index 17b43348..74464e6f 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml.cs
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Control;
-using Snap.Hutao.ViewModel;
+using Snap.Hutao.ViewModel.Cultivation;
namespace Snap.Hutao.View.Page;
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
index 35af7708..c97a4c29 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml
@@ -10,10 +10,10 @@
xmlns:shci="using:Snap.Hutao.Control.Image"
xmlns:shcm="using:Snap.Hutao.Control.Markup"
xmlns:shcp="using:Snap.Hutao.Control.Panel"
- xmlns:shv="using:Snap.Hutao.ViewModel"
xmlns:shvc="using:Snap.Hutao.View.Control"
+ xmlns:shvg="using:Snap.Hutao.ViewModel.GachaLog"
xmlns:wsc="using:WinUICommunity.SettingsUI.Controls"
- d:DataContext="{d:DesignInstance shv:GachaLogViewModel}"
+ d:DataContext="{d:DesignInstance shvg:GachaLogViewModel}"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
mc:Ignorable="d">
diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml.cs
index d5a2659e..07e1b429 100644
--- a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml.cs
+++ b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml.cs
@@ -2,7 +2,7 @@
// Licensed under the MIT license.
using Snap.Hutao.Control;
-using Snap.Hutao.ViewModel;
+using Snap.Hutao.ViewModel.GachaLog;
namespace Snap.Hutao.View.Page;
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs
index f948fc01..138efb94 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Abstraction/ViewModel.cs
@@ -2,6 +2,7 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
namespace Snap.Hutao.ViewModel.Abstraction;
@@ -13,6 +14,14 @@ internal abstract class ViewModel : ObservableObject, IViewModel
{
private bool isInitialized;
+ ///
+ /// 构造一个新的视图模型
+ ///
+ public ViewModel()
+ {
+ OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
+ }
+
///
/// 是否初始化完成
///
@@ -27,6 +36,17 @@ internal abstract class ViewModel : ObservableObject, IViewModel
///
public bool IsViewDisposed { get; set; }
+ ///
+ /// 打开页面命令
+ ///
+ public ICommand OpenUICommand { get; }
+
+ ///
+ /// 异步初始化UI
+ ///
+ /// 任务
+ protected abstract Task OpenUIAsync();
+
///
/// 保证 using scope 内的代码运行完成
/// 防止 视图资源被回收
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementFinishPercentUpdater.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementFinishPercentUpdater.cs
index d9d8a9ab..9b2ef4e9 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementFinishPercentUpdater.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementFinishPercentUpdater.cs
@@ -3,8 +3,8 @@
using CommunityToolkit.WinUI.UI;
using System.Runtime.InteropServices;
-using BindingAchievement = Snap.Hutao.Model.Binding.Achievement.AchievementView;
-using BindingAchievementGoal = Snap.Hutao.Model.Binding.Achievement.AchievementGoalView;
+using BindingAchievement = Snap.Hutao.ViewModel.Achievement.AchievementView;
+using BindingAchievementGoal = Snap.Hutao.ViewModel.Achievement.AchievementGoalView;
namespace Snap.Hutao.ViewModel.Achievement;
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalStatistics.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalStatistics.cs
index 11707599..1d7ccf27 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalStatistics.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalStatistics.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using BindingAchievementGoal = Snap.Hutao.Model.Binding.Achievement.AchievementGoalView;
+using BindingAchievementGoal = Snap.Hutao.ViewModel.Achievement.AchievementGoalView;
namespace Snap.Hutao.ViewModel.Achievement;
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Achievement/AchievementGoalView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalView.cs
similarity index 84%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Achievement/AchievementGoalView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalView.cs
index 2dba2953..d9f3f1ab 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Achievement/AchievementGoalView.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementGoalView.cs
@@ -2,8 +2,11 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
+using Snap.Hutao.Model.Binding;
+using Snap.Hutao.Model.Metadata.Achievement;
+using Snap.Hutao.Model.Metadata.Converter;
-namespace Snap.Hutao.Model.Binding.Achievement;
+namespace Snap.Hutao.ViewModel.Achievement;
///
/// 绑定成就分类
@@ -18,12 +21,12 @@ internal sealed class AchievementGoalView : ObservableObject, INameIcon
/// 构造一个新的成就分类
///
/// 分类
- public AchievementGoalView(Metadata.Achievement.AchievementGoal goal)
+ public AchievementGoalView(AchievementGoal goal)
{
Id = goal.Id;
Order = goal.Order;
Name = goal.Name;
- Icon = Metadata.Converter.AchievementIconConverter.IconNameToUri(goal.Icon);
+ Icon = AchievementIconConverter.IconNameToUri(goal.Icon);
}
///
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Achievement/AchievementView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementView.cs
similarity index 74%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Achievement/AchievementView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementView.cs
index 1ebcd1b3..1a5d08f5 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Achievement/AchievementView.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Achievement/AchievementView.cs
@@ -2,14 +2,16 @@
// Licensed under the MIT license.
using CommunityToolkit.Mvvm.ComponentModel;
+using Snap.Hutao.Model.Binding;
+using Snap.Hutao.Model.Intrinsic;
-namespace Snap.Hutao.Model.Binding.Achievement;
+namespace Snap.Hutao.ViewModel.Achievement;
///
/// 用于视图绑定的成就
///
[HighQuality]
-internal sealed class AchievementView : ObservableObject, IEntityWithMetadata
+internal sealed class AchievementView : ObservableObject, IEntityWithMetadata
{
///
/// 满进度占位符
@@ -23,7 +25,7 @@ internal sealed class AchievementView : ObservableObject, IEntityWithMetadata
/// 实体部分
/// 元数据部分
- public AchievementView(Entity.Achievement entity, Metadata.Achievement.Achievement inner)
+ public AchievementView(Model.Entity.Achievement entity, Model.Metadata.Achievement.Achievement inner)
{
Entity = entity;
Inner = inner;
@@ -34,12 +36,12 @@ internal sealed class AchievementView : ObservableObject, IEntityWithMetadata
/// 实体
///
- public Entity.Achievement Entity { get; }
+ public Model.Entity.Achievement Entity { get; }
///
/// 元数据
///
- public Metadata.Achievement.Achievement Inner { get; }
+ public Model.Metadata.Achievement.Achievement Inner { get; }
///
/// 是否选中
@@ -54,7 +56,7 @@ internal sealed class AchievementView : ObservableObject, IEntityWithMetadata openUICompletionSource = new();
private AdvancedCollectionView? achievements;
- private List? achievementGoals;
- private BindingAchievementGoal? selectedAchievementGoal;
+ private List? achievementGoals;
+ private AchievementGoalView? selectedAchievementGoal;
private ObservableCollection? archives;
private EntityAchievementArchive? selectedArchive;
- private bool isIncompletedItemsFirst = true;
+ private bool isUncompletedItemsFirst = true;
private string searchText = string.Empty;
private string? finishDescription;
@@ -83,15 +81,14 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
achievementFinishPercentUpdater = new(this);
achievementImporter = new(serviceProvider);
- OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
ImportUIAFFromClipboardCommand = new AsyncRelayCommand(ImportUIAFFromClipboardAsync);
ImportUIAFFromFileCommand = new AsyncRelayCommand(ImportUIAFFromFileAsync);
ExportAsUIAFToFileCommand = new AsyncRelayCommand(ExportAsUIAFToFileAsync);
AddArchiveCommand = new AsyncRelayCommand(AddArchiveAsync);
RemoveArchiveCommand = new AsyncRelayCommand(RemoveArchiveAsync);
- SearchAchievementCommand = new RelayCommand(UpdateAchievementsFilterBySerach);
- SortIncompletedSwitchCommand = new RelayCommand(UpdateAchievementsSort);
- SaveAchievementCommand = new RelayCommand(SaveAchievement);
+ SearchAchievementCommand = new RelayCommand(UpdateAchievementsFilterBySearch);
+ SortUncompletedSwitchCommand = new RelayCommand(UpdateAchievementsSort);
+ SaveAchievementCommand = new RelayCommand(SaveAchievement);
}
///
@@ -114,10 +111,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
if (SetProperty(ref selectedArchive, value))
{
achievementService.CurrentArchive = value;
- if (value != null)
- {
- UpdateAchievementsAsync(value).SafeForget();
- }
+ UpdateAchievementsAsync(value).SafeForget();
}
}
}
@@ -134,7 +128,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
///
/// 成就分类
///
- public List? AchievementGoals
+ public List? AchievementGoals
{
get => achievementGoals;
set => SetProperty(ref achievementGoals, value);
@@ -143,7 +137,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
///
/// 选中的成就分类
///
- public BindingAchievementGoal? SelectedAchievementGoal
+ public AchievementGoalView? SelectedAchievementGoal
{
get => selectedAchievementGoal;
set
@@ -166,10 +160,10 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
///
/// 未完成优先
///
- public bool IsIncompletedItemsFirst
+ public bool IsUncompletedItemsFirst
{
- get => isIncompletedItemsFirst;
- set => SetProperty(ref isIncompletedItemsFirst, value);
+ get => isUncompletedItemsFirst;
+ set => SetProperty(ref isUncompletedItemsFirst, value);
}
///
@@ -181,11 +175,6 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
set => SetProperty(ref finishDescription, value);
}
- ///
- /// 打开页面命令
- ///
- public ICommand OpenUICommand { get; }
-
///
/// 添加存档命令
///
@@ -219,7 +208,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
///
/// 筛选未完成项开关命令
///
- public ICommand SortIncompletedSwitchCommand { get; }
+ public ICommand SortUncompletedSwitchCommand { get; }
///
/// 保存单个成就命令
@@ -241,7 +230,8 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
return false;
}
- private async Task OpenUIAsync()
+ ///
+ protected override async Task OpenUIAsync()
{
bool metaInitialized = await metadataService.InitializeAsync().ConfigureAwait(false);
@@ -249,7 +239,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
{
try
{
- List sortedGoals;
+ List sortedGoals;
ObservableCollection archives;
using (await EnterCriticalExecutionAsync().ConfigureAwait(false))
@@ -257,7 +247,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
List goals = await metadataService.GetAchievementGoalsAsync(CancellationToken).ConfigureAwait(false);
sortedGoals = goals
.OrderBy(goal => goal.Order)
- .Select(goal => new BindingAchievementGoal(goal))
+ .Select(goal => new AchievementGoalView(goal))
.ToList();
archives = await achievementService.GetArchiveCollectionAsync().ConfigureAwait(false);
}
@@ -387,11 +377,16 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
}
}
- private async Task UpdateAchievementsAsync(EntityAchievementArchive archive)
+ private async Task UpdateAchievementsAsync(EntityAchievementArchive? archive)
{
+ if (archive == null)
+ {
+ return;
+ }
+
List rawAchievements = await metadataService.GetAchievementsAsync(CancellationToken).ConfigureAwait(false);
- if (TryGetAchievements(archive, rawAchievements, out List? combined))
+ if (TryGetAchievements(archive, rawAchievements, out List? combined))
{
// Assemble achievements on the UI thread.
await ThreadHelper.SwitchToMainThreadAsync();
@@ -403,7 +398,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
}
}
- private bool TryGetAchievements(EntityAchievementArchive archive, List achievements, out List? combined)
+ private bool TryGetAchievements(EntityAchievementArchive archive, List achievements, out List? combined)
{
try
{
@@ -422,9 +417,9 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
{
if (Achievements != null)
{
- if (IsIncompletedItemsFirst)
+ if (IsUncompletedItemsFirst)
{
- Achievements.SortDescriptions.Add(IncompletedItemsFirstSortDescription);
+ Achievements.SortDescriptions.Add(UncompletedItemsFirstSortDescription);
Achievements.SortDescriptions.Add(CompletionTimeSortDescription);
}
else
@@ -434,7 +429,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
}
}
- private void UpdateAchievementsFilterByGoal(BindingAchievementGoal? goal)
+ private void UpdateAchievementsFilterByGoal(AchievementGoalView? goal)
{
if (Achievements != null)
{
@@ -445,12 +440,12 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
else
{
int goalId = goal.Id;
- Achievements.Filter = (object o) => o is BindingAchievement achi && achi.Inner.Goal == goalId;
+ Achievements.Filter = (object o) => o is AchievementView view && view.Inner.Goal == goalId;
}
}
}
- private void UpdateAchievementsFilterBySerach(string? search)
+ private void UpdateAchievementsFilterBySearch(string? search)
{
if (Achievements != null)
{
@@ -458,16 +453,16 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
if (!string.IsNullOrEmpty(search))
{
- if (search.Length == 5 && int.TryParse(search, out int achiId))
+ if (search.Length == 5 && int.TryParse(search, out int entityId))
{
- Achievements.Filter = obj => ((BindingAchievement)obj).Inner.Id == achiId;
+ Achievements.Filter = obj => ((AchievementView)obj).Inner.Id == entityId;
}
else
{
Achievements.Filter = obj =>
{
- BindingAchievement achi = (BindingAchievement)obj;
- return achi.Inner.Title.Contains(search) || achi.Inner.Description.Contains(search);
+ AchievementView view = (AchievementView)obj;
+ return view.Inner.Title.Contains(search) || view.Inner.Description.Contains(search);
};
}
}
@@ -480,7 +475,7 @@ internal sealed class AchievementViewModel : Abstraction.ViewModel, INavigationR
achievementFinishPercentUpdater.Update();
}
- private void SaveAchievement(BindingAchievement? achievement)
+ private void SaveAchievement(AchievementView? achievement)
{
if (achievement != null)
{
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/AnnouncementViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AnnouncementViewModel.cs
index 53e7efd0..bd039c8e 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/AnnouncementViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/AnnouncementViewModel.cs
@@ -1,7 +1,6 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-using CommunityToolkit.Mvvm.Input;
using Snap.Hutao.Service.Abstraction;
using Snap.Hutao.Web.Hoyolab.Hk4e.Common.Announcement;
@@ -25,8 +24,6 @@ internal sealed class AnnouncementViewModel : Abstraction.ViewModel
public AnnouncementViewModel(IAnnouncementService announcementService)
{
this.announcementService = announcementService;
-
- OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
}
///
@@ -38,12 +35,8 @@ internal sealed class AnnouncementViewModel : Abstraction.ViewModel
set => SetProperty(ref announcement, value);
}
- ///
- /// 打开界面触发的命令
- ///
- public ICommand OpenUICommand { get; }
-
- private async Task OpenUIAsync()
+ ///
+ protected override async Task OpenUIAsync()
{
try
{
@@ -53,4 +46,4 @@ internal sealed class AnnouncementViewModel : Abstraction.ViewModel
{
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/AvatarProperty.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarProperty.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/AvatarProperty.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarProperty.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs
similarity index 98%
rename from src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs
index 0ec7033a..0b2f2c7e 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarPropertyViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarPropertyViewModel.cs
@@ -31,7 +31,7 @@ using CalcConsumption = Snap.Hutao.Web.Hoyolab.Takumi.Event.Calculate.Consumptio
using CalcItem = Snap.Hutao.Web.Hoyolab.Takumi.Event.Calculate.Item;
using CalcItemHelper = Snap.Hutao.Web.Hoyolab.Takumi.Event.Calculate.ItemHelper;
-namespace Snap.Hutao.ViewModel;
+namespace Snap.Hutao.ViewModel.AvatarProperty;
///
/// 角色属性视图模型
@@ -57,7 +57,6 @@ internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel, IRecipien
infoBarService = serviceProvider.GetRequiredService();
this.serviceProvider = serviceProvider;
- OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
RefreshFromEnkaApiCommand = new AsyncRelayCommand(RefreshByEnkaApiAsync);
RefreshFromHoyolabGameRecordCommand = new AsyncRelayCommand(RefreshByHoyolabGameRecordAsync);
RefreshFromHoyolabCalculateCommand = new AsyncRelayCommand(RefreshByHoyolabCalculateAsync);
@@ -77,11 +76,6 @@ internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel, IRecipien
///
public AvatarView? SelectedAvatar { get => selectedAvatar; set => SetProperty(ref selectedAvatar, value); }
- ///
- /// 加载界面命令
- ///
- public ICommand OpenUICommand { get; }
-
///
/// 从 Enka Api 同步命令
///
@@ -116,7 +110,8 @@ internal sealed class AvatarPropertyViewModel : Abstraction.ViewModel, IRecipien
}
}
- private Task OpenUIAsync()
+ ///
+ protected override Task OpenUIAsync()
{
if (UserAndUid.TryFromUser(userService.Current, out UserAndUid? userAndUid))
{
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/AvatarView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarView.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/AvatarView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/AvatarView.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/ConstellationView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/ConstellationView.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/ConstellationView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/ConstellationView.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/Equip.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/Equip.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/Equip.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/Equip.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/NameDescription.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/NameDescription.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/NameDescription.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/NameDescription.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/NameIconDescription.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/NameIconDescription.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/NameIconDescription.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/NameIconDescription.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/ReliquarySubProperty.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/ReliquarySubProperty.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/ReliquarySubProperty.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/ReliquarySubProperty.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/ReliquaryView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/ReliquaryView.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/ReliquaryView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/ReliquaryView.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/SkillView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/SkillView.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/SkillView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/SkillView.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/Summary.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/Summary.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/Summary.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/Summary.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/WeaponView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/WeaponView.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/AvatarProperty/WeaponView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/AvatarProperty/WeaponView.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/CultivateEntryView.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivateEntryView.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/CultivateEntryView.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivateEntryView.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/CultivateItem.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivateItem.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/CultivateItem.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivateItem.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs
similarity index 94%
rename from src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs
index 267a28e4..0fe833e7 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/CultivationViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs
@@ -13,7 +13,7 @@ using Snap.Hutao.Service.Navigation;
using Snap.Hutao.View.Dialog;
using System.Collections.ObjectModel;
-namespace Snap.Hutao.ViewModel;
+namespace Snap.Hutao.ViewModel.Cultivation;
///
/// 养成视图模型
@@ -48,7 +48,6 @@ internal sealed class CultivationViewModel : Abstraction.ViewModel
logger = serviceProvider.GetRequiredService>();
this.serviceProvider = serviceProvider;
- OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
AddProjectCommand = new AsyncRelayCommand(AddProjectAsync);
RemoveProjectCommand = new AsyncRelayCommand(RemoveProjectAsync);
RemoveEntryCommand = new AsyncRelayCommand(RemoveEntryAsync);
@@ -72,10 +71,7 @@ internal sealed class CultivationViewModel : Abstraction.ViewModel
if (SetProperty(ref selectedProject, value))
{
cultivationService.Current = value;
- if (value != null)
- {
- UpdateEntryCollectionAsync(value).SafeForget(logger);
- }
+ UpdateEntryCollectionAsync(value).SafeForget(logger);
}
}
}
@@ -95,11 +91,6 @@ internal sealed class CultivationViewModel : Abstraction.ViewModel
///
public ObservableCollection? StatisticsItems { get => statisticsItems; set => SetProperty(ref statisticsItems, value); }
- ///
- /// 打开界面命令
- ///
- public ICommand OpenUICommand { get; }
-
///
/// 添加项目命令
///
@@ -130,7 +121,8 @@ internal sealed class CultivationViewModel : Abstraction.ViewModel
///
public ICommand FinishStateCommand { get; }
- private async Task OpenUIAsync()
+ ///
+ protected override async Task OpenUIAsync()
{
bool metaInitialized = await metadataService.InitializeAsync().ConfigureAwait(true);
if (metaInitialized)
@@ -201,7 +193,7 @@ internal sealed class CultivationViewModel : Abstraction.ViewModel
}
}
- private async Task RemoveEntryAsync(Model.Binding.Cultivation.CultivateEntryView? entry)
+ private async Task RemoveEntryAsync(CultivateEntryView? entry)
{
if (entry != null)
{
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/DaysOfWeek.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/DaysOfWeek.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/DaysOfWeek.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/DaysOfWeek.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/StatisticsCultivateItem.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/StatisticsCultivateItem.cs
similarity index 100%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Cultivation/StatisticsCultivateItem.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/StatisticsCultivateItem.cs
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
index b89b71f8..dace233f 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/DailyNoteViewModel.cs
@@ -59,7 +59,6 @@ internal sealed class DailyNoteViewModel : Abstraction.ViewModel
appDbContext = serviceProvider.GetRequiredService();
this.serviceProvider = serviceProvider;
- OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
TrackRoleCommand = new AsyncRelayCommand(TrackRoleAsync);
RefreshCommand = new AsyncRelayCommand(RefreshAsync);
RemoveDailyNoteCommand = new AsyncRelayCommand(RemoveDailyNoteAsync);
@@ -140,11 +139,6 @@ internal sealed class DailyNoteViewModel : Abstraction.ViewModel
///
public ObservableCollection? DailyNoteEntries { get => dailyNoteEntries; set => SetProperty(ref dailyNoteEntries, value); }
- ///
- /// 打开界面命令
- ///
- public ICommand OpenUICommand { get; }
-
///
/// 跟踪角色命令
///
@@ -170,7 +164,8 @@ internal sealed class DailyNoteViewModel : Abstraction.ViewModel
///
public ICommand DailyNoteVerificationCommand { get; }
- private async Task OpenUIAsync()
+ ///
+ protected override async Task OpenUIAsync()
{
try
{
diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs
similarity index 97%
rename from src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs
index 82d8898a..c29176fa 100644
--- a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLogViewModel.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs
@@ -7,7 +7,6 @@ using Snap.Hutao.Control.Extension;
using Snap.Hutao.Core.ExceptionService;
using Snap.Hutao.Core.IO;
using Snap.Hutao.Factory.Abstraction;
-using Snap.Hutao.Model.Binding.Gacha;
using Snap.Hutao.Model.Entity;
using Snap.Hutao.Model.InterChange.GachaLog;
using Snap.Hutao.Service.Abstraction;
@@ -17,7 +16,7 @@ using Snap.Hutao.View.Dialog;
using System.Collections.ObjectModel;
using Windows.Storage.Pickers;
-namespace Snap.Hutao.ViewModel;
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 祈愿记录视图模型
@@ -59,7 +58,6 @@ internal sealed class GachaLogViewModel : Abstraction.ViewModel
this.contentDialogFactory = contentDialogFactory;
this.options = options;
- OpenUICommand = new AsyncRelayCommand(OpenUIAsync);
RefreshByWebCacheCommand = new AsyncRelayCommand(RefreshByWebCacheAsync);
RefreshByStokenCommand = new AsyncRelayCommand(RefreshByStokenAsync);
RefreshByManualInputCommand = new AsyncRelayCommand(RefreshByManualInputAsync);
@@ -93,7 +91,7 @@ internal sealed class GachaLogViewModel : Abstraction.ViewModel
{
if (SetProperty(ref statistics, value))
{
- SelectedHistoryWish = statistics?.HistoryWishes[0];
+ SelectedHistoryWish = statistics?.HistoryWishes.FirstOrDefault();
}
}
}
@@ -108,11 +106,6 @@ internal sealed class GachaLogViewModel : Abstraction.ViewModel
///
public bool IsAggressiveRefresh { get => isAggressiveRefresh; set => SetProperty(ref isAggressiveRefresh, value); }
- ///
- /// 页面加载命令
- ///
- public ICommand OpenUICommand { get; }
-
///
/// 浏览器缓存刷新命令
///
@@ -143,7 +136,8 @@ internal sealed class GachaLogViewModel : Abstraction.ViewModel
///
public ICommand RemoveArchiveCommand { get; }
- private async Task OpenUIAsync()
+ ///
+ protected override async Task OpenUIAsync()
{
try
{
@@ -332,7 +326,7 @@ internal sealed class GachaLogViewModel : Abstraction.ViewModel
{
if (archive == null)
{
- // no gachalog
+ // no gacha log
IsInitialized = true;
}
else
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/GachaStatistics.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaStatistics.cs
similarity index 96%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/GachaStatistics.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaStatistics.cs
index 92bdfdda..3b1b2b51 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/GachaStatistics.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaStatistics.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-namespace Snap.Hutao.Model.Binding.Gacha;
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 祈愿统计
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/HistoryWish.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HistoryWish.cs
similarity index 96%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/HistoryWish.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HistoryWish.cs
index 0ebd2b64..2c35e738 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/HistoryWish.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/HistoryWish.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-namespace Snap.Hutao.Model.Binding.Gacha;
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 历史卡池概览
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/StatisticsItem.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/StatisticsItem.cs
similarity index 80%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/StatisticsItem.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/StatisticsItem.cs
index 457d4e8f..f1eb1a28 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/StatisticsItem.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/StatisticsItem.cs
@@ -1,7 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-namespace Snap.Hutao.Model.Binding.Gacha;
+using Snap.Hutao.Model.Binding;
+
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 历史物品
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/SummaryItem.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/SummaryItem.cs
similarity index 87%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/SummaryItem.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/SummaryItem.cs
index 801f30ef..a97d5b23 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/SummaryItem.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/SummaryItem.cs
@@ -1,7 +1,9 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-namespace Snap.Hutao.Model.Binding.Gacha;
+using Snap.Hutao.Model.Binding;
+
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 祈愿卡池列表物品
@@ -17,7 +19,7 @@ internal sealed class SummaryItem : Item
///
/// 是否为大保底
///
- public bool IsGuarentee { get; set; }
+ public bool IsGuarantee { get; set; }
///
/// 据上次
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/TypedWishSummary.cs
similarity index 98%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/TypedWishSummary.cs
index 087e3dd9..744a138f 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/TypedWishSummary.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/TypedWishSummary.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-namespace Snap.Hutao.Model.Binding.Gacha;
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 类型化的祈愿概览
diff --git a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Wish.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/Wish.cs
similarity index 96%
rename from src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Wish.cs
rename to src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/Wish.cs
index 65b205b4..47b23e45 100644
--- a/src/Snap.Hutao/Snap.Hutao/Model/Binding/Gacha/Wish.cs
+++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/Wish.cs
@@ -1,7 +1,7 @@
// Copyright (c) DGP Studio. All rights reserved.
// Licensed under the MIT license.
-namespace Snap.Hutao.Model.Binding.Gacha;
+namespace Snap.Hutao.ViewModel.GachaLog;
///
/// 祈愿基类