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; /// /// 祈愿基类