diff --git a/.github/workflows/qodana-scan-pr.yml b/.github/workflows/qodana-scan-pr.yml index d30f4ff7b..8504fac5d 100644 --- a/.github/workflows/qodana-scan-pr.yml +++ b/.github/workflows/qodana-scan-pr.yml @@ -3,6 +3,7 @@ on: pull_request: branches: - main + - '*staging' paths-ignore: - '**.md' - 'Hi3Helper.Core/Lang/**.json' @@ -51,7 +52,7 @@ jobs: - name: 'Qodana Scan' if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} - uses: JetBrains/qodana-action@latest + uses: JetBrains/qodana-action@next with: args: --ide,QDNET pr-mode: true diff --git a/CollapseLauncher.sln b/CollapseLauncher.sln index 45c25514e..8750244af 100644 --- a/CollapseLauncher.sln +++ b/CollapseLauncher.sln @@ -38,6 +38,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "H.GeneratedIcons.System.Dra EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hi3Helper.Win32", "Hi3Helper.Win32\Hi3Helper.Win32.csproj", "{F65C6DAC-CC04-214B-9430-2C4AE31448E2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hi3Helper.Win32.WinRT", "Hi3Helper.Win32\WinRT\Hi3Helper.Win32.WinRT.csproj", "{5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -152,6 +154,12 @@ Global {F65C6DAC-CC04-214B-9430-2C4AE31448E2}.Publish|x64.Build.0 = Release|x64 {F65C6DAC-CC04-214B-9430-2C4AE31448E2}.Release|x64.ActiveCfg = Release|x64 {F65C6DAC-CC04-214B-9430-2C4AE31448E2}.Release|x64.Build.0 = Release|x64 + {5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}.Debug|x64.ActiveCfg = Debug|x64 + {5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}.Debug|x64.Build.0 = Debug|x64 + {5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}.Publish|x64.ActiveCfg = Release|x64 + {5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}.Publish|x64.Build.0 = Release|x64 + {5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}.Release|x64.ActiveCfg = Release|x64 + {5CA5A261-1D5B-8A4D-EA87-B031CFFD4DDD}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CollapseLauncher.slnx b/CollapseLauncher.slnx index 616f6af95..212d66348 100644 --- a/CollapseLauncher.slnx +++ b/CollapseLauncher.slnx @@ -78,4 +78,8 @@ + + + + \ No newline at end of file diff --git a/CollapseLauncher/Assets/CollapseLauncherLogoSmall.png b/CollapseLauncher/Assets/CollapseLauncherLogoSmall.png new file mode 100644 index 000000000..9fee1b7f4 Binary files /dev/null and b/CollapseLauncher/Assets/CollapseLauncherLogoSmall.png differ diff --git a/CollapseLauncher/Classes/EventsManagement/BackgroundActivityManager.cs b/CollapseLauncher/Classes/EventsManagement/BackgroundActivityManager.cs index 799d9f6f2..703f4e4b1 100644 --- a/CollapseLauncher/Classes/EventsManagement/BackgroundActivityManager.cs +++ b/CollapseLauncher/Classes/EventsManagement/BackgroundActivityManager.cs @@ -1,5 +1,6 @@ using CollapseLauncher.Dialogs; using CollapseLauncher.Extension; +using CollapseLauncher.Helper; using CollapseLauncher.Helper.Metadata; using CollapseLauncher.Interfaces; using CollapseLauncher.Statics; @@ -29,7 +30,8 @@ public static void Attach(int hashID, IBackgroundActivity activity, string activ return; } - AttachEventToNotification(hashID, activity, activityTitle, activitySubtitle); + WindowUtility.CurrentDispatcherQueue? + .TryEnqueue(() => AttachEventToNotification(hashID, activity, activityTitle, activitySubtitle)); BackgroundActivities.Add(hashID, activity); #if DEBUG Logger.LogWriteLine($"Background activity with ID: {hashID} has been attached", LogType.Debug, true); diff --git a/CollapseLauncher/Classes/Extension/TaskExtensions.TaskAwaitable.cs b/CollapseLauncher/Classes/Extension/TaskExtensions.TaskAwaitable.cs index d049cf3f8..de41ca85a 100644 --- a/CollapseLauncher/Classes/Extension/TaskExtensions.TaskAwaitable.cs +++ b/CollapseLauncher/Classes/Extension/TaskExtensions.TaskAwaitable.cs @@ -1,8 +1,8 @@ -using System; -using System.Runtime.CompilerServices; +using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; // ReSharper disable UnusedMember.Global +// ReSharper disable CheckNamespace #nullable enable namespace CollapseLauncher.Extension @@ -11,35 +11,13 @@ namespace CollapseLauncher.Extension internal static partial class TaskExtensions { - internal static Task + internal static async Task WaitForRetryAsync(this ActionTimeoutTaskAwaitableCallback funcCallback, int? timeout = null, int? timeoutStep = null, int? retryAttempt = null, ActionOnTimeOutRetry? actionOnRetry = null, CancellationToken fromToken = default) - => WaitForRetryAsync(() => funcCallback, timeout, timeoutStep, retryAttempt, actionOnRetry, fromToken); - - internal static async Task - WaitForRetryAsync(Func> funcCallback, - int? timeout = null, - int? timeoutStep = null, - int? retryAttempt = null, - ActionOnTimeOutRetry? actionOnRetry = null, - CancellationToken fromToken = default) - => await WaitForRetryAsync(funcCallback.AsTaskCallback, - timeout, - timeoutStep, - retryAttempt, - actionOnRetry, - fromToken); - - private static ActionTimeoutTaskCallback AsTaskCallback(this Func> func) => - async ctx => - { - ActionTimeoutTaskAwaitableCallback callback = func.Invoke(); - ConfiguredTaskAwaitable callbackAwaitable = callback.Invoke(ctx); - return await callbackAwaitable; - }; + => await funcCallback.Invoke(fromToken); } } diff --git a/CollapseLauncher/Classes/Extension/VelopackLocatorExtension.cs b/CollapseLauncher/Classes/Extension/VelopackLocatorExtension.cs new file mode 100644 index 000000000..dcab3aed2 --- /dev/null +++ b/CollapseLauncher/Classes/Extension/VelopackLocatorExtension.cs @@ -0,0 +1,276 @@ +using CollapseLauncher.Helper; +using CollapseLauncher.Helper.Update; +using Hi3Helper; +using Hi3Helper.Data; +using Hi3Helper.SentryHelper; +using Hi3Helper.Shared.Region; +using Hi3Helper.Win32.ShellLinkCOM; +using Microsoft.Extensions.Logging; +using NuGet.Versioning; +using System; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using Velopack; +using Velopack.Locators; +// ReSharper disable IdentifierTypo +// ReSharper disable StringLiteralTypo +// ReSharper disable CommentTypo + +#nullable enable +namespace CollapseLauncher.Classes.Extension +{ + internal static class VelopackLocatorExtension + { + [UnsafeAccessor(UnsafeAccessorKind.Field, Name = "k__BackingField")] + internal static extern ref string? GetLocatorAumidField(this WindowsVelopackLocator locator); + + internal static void StartUpdaterHook(string aumid) + { +#if !USEVELOPACK + // Add Squirrel Hooks + SquirrelAwareApp.HandleEvents( + // Add shortcut and uninstaller entry on first start-up + // ReSharper disable UnusedParameter.Local + (_, sqr) => + { + Console + .WriteLine("Please do not close this console window while Collapse is preparing the installation via Squirrel..."); + }, + (_, sqr) => + { + Console + .WriteLine("Please do not close this console window while Collapse is updating via Squirrel..."); + }, + onAppUninstall: (_, sqr) => + { + Console + .WriteLine("Uninstalling Collapse via Squirrel...\r\n" + + "Please do not close this console window while action is being performed!"); + }, + // ReSharper restore UnusedParameter.Local + onEveryRun: (_, _, _) => { } + ); +#else + // Allocate the Velopack locator manually to avoid Velopack from re-assigning + // its custom AUMID + ILogger logger = ILoggerHelper.GetILogger("Velopack"); + WindowsVelopackLocator locator = new WindowsVelopackLocator(logger); + // HACK: Always ensure to set the AUMID field null so it won't + // set the AUMID to its own. + locator.GetLocatorAumidField() = null; + + VelopackApp builder = VelopackApp.Build() + .WithRestarted(TryCleanupFallbackUpdate) + .WithAfterUpdateFastCallback(TryCleanupFallbackUpdate) + .WithFirstRun(TryCleanupFallbackUpdate) + .SetLocator(locator); + + builder.Run(logger); + + _ = Task.Run(DeleteVelopackLock); + + GenerateVelopackMetadata(aumid); + + void DeleteVelopackLock() + { + // Get the current application directory + string currentAppDir = AppDomain.CurrentDomain.BaseDirectory; + + // Construct the path to the .velopack_lock file + string velopackLockPath = Path.Combine(currentAppDir, "..", "packages", ".velopack_lock"); + + // Normalize the path + velopackLockPath = Path.GetFullPath(velopackLockPath); + + // Check if the file exists + if (!File.Exists(velopackLockPath)) + { + return; + } + + // Delete the file + File.Delete(velopackLockPath); + Logger.LogWriteLine(".velopack_lock file deleted successfully."); + } +#endif + } + +#if USEVELOPACK + public static void TryCleanupFallbackUpdate(SemanticVersion newVersion) + { + string currentExecutedAppFolder = LauncherConfig.AppExecutableDir.TrimEnd('\\'); + string currentExecutedPath = LauncherConfig.AppExecutablePath; + + // If the path is not actually running under "current" velopack folder, then return +#if !DEBUG + if (!currentExecutedAppFolder.EndsWith("current", StringComparison.OrdinalIgnoreCase)) // Expecting "current" + { + Logger.LogWriteLine("[TryCleanupFallbackUpdate] The launcher does not run from \"current\" folder"); + return; + } +#endif + + try + { + // Otherwise, start cleaning-up process + string? currentExecutedParentFolder = Path.GetDirectoryName(currentExecutedAppFolder); + if (currentExecutedParentFolder != null) + { + DirectoryInfo directoryInfo = new DirectoryInfo(currentExecutedParentFolder); + foreach (DirectoryInfo childLegacyAppSemVerFolder in + directoryInfo.EnumerateDirectories("app-*", SearchOption.TopDirectoryOnly)) + { + // Removing the "app-*" folder + childLegacyAppSemVerFolder.Delete(true); + Logger.LogWriteLine($"[TryCleanupFallbackUpdate] Removed {childLegacyAppSemVerFolder.FullName} folder!", + LogType.Default, true); + } + + // Try to remove squirrel temp clowd folder + string squirrelTempPackagesFolder = Path.Combine(currentExecutedParentFolder, "SquirrelClowdTemp"); + DirectoryInfo squirrelTempPackagesFolderInfo = new DirectoryInfo(squirrelTempPackagesFolder); + if (squirrelTempPackagesFolderInfo.Exists) + { + squirrelTempPackagesFolderInfo.Delete(true); + Logger.LogWriteLine($"[TryCleanupFallbackUpdate] Removed package temp folder: {squirrelTempPackagesFolder}!", + LogType.Default, true); + } + + // Try to remove stub executable + string squirrelLegacyStubPath = Path.Combine(currentExecutedParentFolder, "CollapseLauncher.exe"); + RemoveSquirrelFilePath(squirrelLegacyStubPath); + + // Try to remove createdump executable + string squirrelLegacyDumpPath = Path.Combine(currentExecutedParentFolder, "createdump.exe"); + RemoveSquirrelFilePath(squirrelLegacyDumpPath); + + // Try to remove RestartAgent executable + string squirrelLegacyRestartAgentPath = + Path.Combine(currentExecutedParentFolder, "RestartAgent.exe"); + RemoveSquirrelFilePath(squirrelLegacyRestartAgentPath); + } + + // Try to remove legacy shortcuts + string? currentWindowsPathDrive = Path.GetPathRoot(Environment.SystemDirectory); + if (!string.IsNullOrEmpty(currentWindowsPathDrive)) + { + string squirrelLegacyStartMenuGlobal = + Path.Combine(currentWindowsPathDrive, + @"ProgramData\Microsoft\Windows\Start Menu\Programs\Collapse\Collapse Launcher"); + string? squirrelLegacyStartMenuGlobalParent = Path.GetDirectoryName(squirrelLegacyStartMenuGlobal); + if (Directory.Exists(squirrelLegacyStartMenuGlobalParent) && + Directory.Exists(squirrelLegacyStartMenuGlobal)) + { + Directory.Delete(squirrelLegacyStartMenuGlobalParent, true); + } + } + + // Try to delete all possible shortcuts on any users (since the shortcut used will be the global one) + // Only do this if shortcut path is not same as current path tho... It pain to re-pin the shortcut again... + string currentUsersDirPath = Path.Combine(currentWindowsPathDrive!, "Users"); + foreach (string userDirInfoPath in Directory + .EnumerateDirectories(currentUsersDirPath, "*", + SearchOption.TopDirectoryOnly) + .Where(ConverterTool.IsUserHasPermission)) + { + // Get the shortcut file + string thisUserStartMenuShortcut = Path.Combine(userDirInfoPath, + @"AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Collapse.lnk"); + if (!File.Exists(thisUserStartMenuShortcut)) + { + continue; + } + + // Try open the shortcut and check whether this shortcut is actually pointing to + // CollapseLauncher.exe file + using ShellLink shellLink = new ShellLink(thisUserStartMenuShortcut); + // Try to get the target path and its filename + string shortcutTargetPath = shellLink.Target; + if (!shortcutTargetPath.Equals(currentExecutedPath, StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + // Compare if the filename is equal, then delete it. + File.Delete(thisUserStartMenuShortcut); + Logger.LogWriteLine($"[TryCleanupFallbackUpdate] Deleted old shortcut located at: " + + $"{thisUserStartMenuShortcut} -> {shortcutTargetPath}", + LogType.Default, true); + } + + // Try to recreate shortcuts + TaskSchedulerHelper.RecreateIconShortcuts(); + } + catch (Exception ex) + { + SentryHelper.ExceptionHandler(ex, SentryHelper.ExceptionType.UnhandledOther); + Logger.LogWriteLine($"[TryCleanupFallbackUpdate] Failed while operating clean-up routines...\r\n{ex}"); + } + + return; + + void RemoveSquirrelFilePath(string filePath) + { + if (!File.Exists(filePath)) + { + return; + } + + File.Delete(filePath); + Logger.LogWriteLine($"[TryCleanupFallbackUpdate] Removed old squirrel executables: {filePath}!", + LogType.Default, true); + } + } +#endif + + public static string FindCollapseStubPath() + { + var collapseMainPath = LauncherConfig.AppExecutablePath; + + #if USEVELOPACK + const string collapseExecName = "CollapseLauncher.exe"; + var collapseStubPath = Path.Combine(Directory.GetParent(Path.GetDirectoryName(collapseMainPath)!)!.FullName, + collapseExecName); + if (File.Exists(collapseStubPath)) + { + Logger.LogWriteLine($"Found stub at {collapseStubPath}", LogType.Default, true); + return collapseStubPath; + } + #endif + + Logger.LogWriteLine($"Collapse stub is not used anymore, returning current executable path!\r\n\t{collapseMainPath}", + LogType.Default, true); + return collapseMainPath; + } + + internal static void GenerateVelopackMetadata(string aumid) + { + const string xmlTemplate = """ + + + + CollapseLauncher + Collapse + Collapse + Collapse Project Team + {0} + {1} + CollapseLauncher.exe + win + win + Desktop,StartMenuRoot + {2} + {2} + + + """; // Adding shortcutAumid for future use, since they typo-ed the XML tag LMAO + string currentVersion = LauncherUpdateHelper.LauncherCurrentVersionString; + string xmlPath = Path.Combine(LauncherConfig.AppExecutableDir, "sq.version"); + string xmlContent = string.Format(xmlTemplate, currentVersion, LauncherConfig.IsPreview ? "preview" : "stable", aumid); + File.WriteAllText(xmlPath, xmlContent.ReplaceLineEndings("\n")); + Logger.LogWriteLine($"Velopack metadata has been successfully written!\r\n{xmlContent}", LogType.Default, true); + } + } +} diff --git a/CollapseLauncher/Classes/GamePresetProperty.cs b/CollapseLauncher/Classes/GamePresetProperty.cs index 7540e2991..491f998f8 100644 --- a/CollapseLauncher/Classes/GamePresetProperty.cs +++ b/CollapseLauncher/Classes/GamePresetProperty.cs @@ -82,7 +82,7 @@ internal GamePresetProperty(UIElement uiElementParent, RegionResourceProp apiRes } GamePlaytime = new Playtime(GameVersion, GameSettings); - GamePropLogger = ILoggerHelper.GetILogger($"[GameProp: {GameVersion.GameName} - {GameVersion.GameRegion}]"); + GamePropLogger = ILoggerHelper.GetILogger($"GameProp: {GameVersion.GameName} - {GameVersion.GameRegion}"); SentryHelper.CurrentGameCategory = GameVersion.GameName; SentryHelper.CurrentGameRegion = GameVersion.GameRegion; diff --git a/CollapseLauncher/Classes/Helper/TaskSchedulerHelper.cs b/CollapseLauncher/Classes/Helper/TaskSchedulerHelper.cs index 68bc9862f..1746b8d9f 100644 --- a/CollapseLauncher/Classes/Helper/TaskSchedulerHelper.cs +++ b/CollapseLauncher/Classes/Helper/TaskSchedulerHelper.cs @@ -1,4 +1,5 @@ -using Hi3Helper; +using CollapseLauncher.Classes.Extension; +using Hi3Helper; using Hi3Helper.SentryHelper; using Hi3Helper.Shared.Region; using Hi3Helper.Win32.ShellLinkCOM; @@ -132,7 +133,7 @@ private static async Task InvokeToggleCommand() private static void AppendTaskNameAndPathArgument(StringBuilder argumentBuilder) { // Get current stub or main executable path - string currentExecPath = MainEntryPoint.FindCollapseStubPath(); + string currentExecPath = VelopackLocatorExtension.FindCollapseStubPath(); // Build argument to the task name argumentBuilder.Append(" \""); diff --git a/CollapseLauncher/Classes/Helper/WindowUtility.cs b/CollapseLauncher/Classes/Helper/WindowUtility.cs index 8afd40482..06bb1719b 100644 --- a/CollapseLauncher/Classes/Helper/WindowUtility.cs +++ b/CollapseLauncher/Classes/Helper/WindowUtility.cs @@ -11,8 +11,9 @@ using Hi3Helper.Win32.Native.Structs; using Hi3Helper.Win32.Screen; using Hi3Helper.Win32.TaskbarListCOM; -using Hi3Helper.Win32.ToastCOM; -using Hi3Helper.Win32.ToastCOM.Notification; +using Hi3Helper.Win32.WinRT.ToastCOM; +using Hi3Helper.Win32.WinRT.ToastCOM.Notification; +using Microsoft.Extensions.Logging; using Microsoft.Graphics.Display; using Microsoft.UI; using Microsoft.UI.Composition.SystemBackdrops; @@ -23,6 +24,8 @@ using Microsoft.UI.Xaml.Media; using System; using System.Collections.Generic; +using System.IO; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Windows.Foundation; using Windows.Graphics; @@ -285,7 +288,7 @@ internal static IconShowOptions CurrentWindowTitlebarIconShowOption internal static Guid? CurrentAumidInGuid { get => field ??= Extensions.GetGuidFromString(CurrentAumid ?? ""); - set; + private set; } internal static string? CurrentAumid @@ -314,6 +317,7 @@ internal static string? CurrentAumid internal static NotificationService? CurrentToastNotificationService { + [method: MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] get { // If toast notification service field is null, then initialize @@ -326,32 +330,31 @@ internal static NotificationService? CurrentToastNotificationService { // Get Icon location paths (string iconLocationStartMenu, _) - = TaskSchedulerHelper.GetIconLocationPaths( - out string? appAumIdNameAlternative, + = TaskSchedulerHelper.GetIconLocationPaths(out string? appAumidFromShortcut, out _, out string? executablePath, out _); // Register notification service - field = new NotificationService(ILoggerHelper.GetILogger("ToastCOM")); + ILogger logger = ILoggerHelper.GetILogger("ToastCOM"); + field = new NotificationService(logger); - // Get AumId to use - string? currentAumId = CurrentAumid ??= appAumIdNameAlternative; + // Borrow existing guid from TrayIcon shell + Guid existingAumidGuidFromShell = TrayIcon.Current.CollapseTaskbar.Id; - // Get string for AumId registration - if (!string.IsNullOrEmpty(currentAumId)) - { - // Initialize Toast Notification service - CurrentAumidInGuid = field.Initialize( - currentAumId, - executablePath ?? "", - iconLocationStartMenu, - asElevatedUser: true - ); - - // Subscribe ToastCallback - field.ToastCallback += Service_ToastNotificationCallback; - } + // Use custom defined path for the Toast icon + string iconPath = Path.Combine(LauncherConfig.AppAssetsFolder, "CollapseLauncherLogoSmall.png"); + + // Initialize Toast Notification service + CurrentAumidInGuid = field.Initialize(appAumidFromShortcut ?? MainEntryPoint.AppAumid, + executablePath ?? "", + iconLocationStartMenu, + applicationId: existingAumidGuidFromShell, + toastIconPngPath: iconPath + ); + + // Subscribe ToastCallback + field.ToastCallback += Service_ToastNotificationCallback; } catch (Exception ex) { @@ -872,9 +875,16 @@ private static void Service_ToastNotificationCallback(string app, string arg, Di // If the MainWindow is currently active, then set the window // to foreground. - window._TrayIcon?.ToggleAllVisibility(); + window._TrayIcon?.ToggleMainVisibility(true); + + IntPtr consoleWindowHandle = PInvoke.GetConsoleWindow(); + if (LauncherConfig.GetAppConfigValue("EnableConsole") && PInvoke.IsWindowVisible(consoleWindowHandle)) + { + window._TrayIcon?.ToggleConsoleVisibility(true); + } // TODO: Make the callback actually usable on elevated app + // 2025-03-09 11:08 PM+7 by neon-nyan: I FINALLY DID IT YO HOOOOOOOOOOOOOOO } #endregion diff --git a/CollapseLauncher/Classes/InstallManagement/Base/InstallManagerBase.Sophon.cs b/CollapseLauncher/Classes/InstallManagement/Base/InstallManagerBase.Sophon.cs index 0d3ae801a..29223e1f3 100644 --- a/CollapseLauncher/Classes/InstallManagement/Base/InstallManagerBase.Sophon.cs +++ b/CollapseLauncher/Classes/InstallManagement/Base/InstallManagerBase.Sophon.cs @@ -177,18 +177,18 @@ await GameVersionManager.GamePreset } #if SIMULATEAPPLYPRELOAD - string requestedUrl = gameState switch + string? requestedUrl = gameState switch { - GameInstallStateEnum.InstalledHavePreload => _gameVersionManager.GamePreset + GameInstallStateEnum.InstalledHavePreload => GameVersionManager.GamePreset .LauncherResourceChunksURL.PreloadUrl, - _ => _gameVersionManager.GamePreset.LauncherResourceChunksURL.MainUrl + _ => GameVersionManager.GamePreset.LauncherResourceChunksURL.MainUrl }; GameVersion? requestedVersion = gameState switch { - GameInstallStateEnum.InstalledHavePreload => _gameVersionManager! - .GetGameVersionAPIPreload(), - _ => _gameVersionManager!.GetGameVersionAPIPreload() - } ?? _gameVersionManager!.GetGameVersionAPI(); + GameInstallStateEnum.InstalledHavePreload => GameVersionManager! + .GetGameVersionApiPreload(), + _ => GameVersionManager!.GetGameVersionApiPreload() + } ?? GameVersionManager!.GetGameVersionApi(); #else string? requestedUrl = gameState switch { @@ -567,7 +567,7 @@ await GameVersionManager.GamePreset ? GameVersionManager.GamePreset.LauncherResourceChunksURL.PreloadUrl : GameVersionManager.GamePreset.LauncherResourceChunksURL.MainUrl; #if SIMULATEAPPLYPRELOAD - string requestedBaseUrlTo = _gameVersionManager.GamePreset.LauncherResourceChunksURL.PreloadUrl!; + string requestedBaseUrlTo = GameVersionManager.GamePreset.LauncherResourceChunksURL.PreloadUrl!; #else string requestedBaseUrlTo = requestedBaseUrlFrom!; #endif diff --git a/CollapseLauncher/Classes/InstallManagement/Genshin/GenshinInstall.cs b/CollapseLauncher/Classes/InstallManagement/Genshin/GenshinInstall.cs index 521812ed0..344eff92e 100644 --- a/CollapseLauncher/Classes/InstallManagement/Genshin/GenshinInstall.cs +++ b/CollapseLauncher/Classes/InstallManagement/Genshin/GenshinInstall.cs @@ -196,5 +196,21 @@ protected override UninstallGameProperty AssignUninstallFolders() } #endregion + + #region Override Methods - GetUnusedFileInfoList + protected override async Task<(List, long)> GetUnusedFileInfoList(bool includeZipCheck) + { + // Get the result from base method + (List, long) resultBase = await base.GetUnusedFileInfoList(includeZipCheck); + + // Once we get the result, take the "StreamingAssets\\ctable.dat" file out of the list + List unusedFilesFiltered = resultBase + .Item1 + .Where(x => !x.FullPath + .EndsWith("StreamingAssets\\ctable.dat", StringComparison.OrdinalIgnoreCase)) + .ToList(); + return (unusedFilesFiltered, unusedFilesFiltered.Select(x => x.FileSize).ToArray().Sum()); + } + #endregion } } \ No newline at end of file diff --git a/CollapseLauncher/Classes/InstallManagement/StarRail/StarRailInstall.cs b/CollapseLauncher/Classes/InstallManagement/StarRail/StarRailInstall.cs index 4f17f8096..367053f4a 100644 --- a/CollapseLauncher/Classes/InstallManagement/StarRail/StarRailInstall.cs +++ b/CollapseLauncher/Classes/InstallManagement/StarRail/StarRailInstall.cs @@ -1,8 +1,11 @@ using CollapseLauncher.InstallManager.Base; using CollapseLauncher.Interfaces; +using Hi3Helper.Data; using Microsoft.UI.Xaml; +using System; using System.Collections.Generic; using System.IO; +using System.Threading; using System.Threading.Tasks; using static Hi3Helper.Locale; // ReSharper disable PartialTypeWithSinglePart @@ -152,6 +155,68 @@ protected override UninstallGameProperty AssignUninstallFolders() #endregion + #region Override Method - InnerParsePkgVersion2FileInfo +#nullable enable + protected override async ValueTask InnerParsePkgVersion2FileInfo(string gamePath, string path, + List pkgFileInfo, + HashSet pkgFileInfoHashSet, + CancellationToken token) + { + // Assign path to reader + using StreamReader reader = new StreamReader(path, true); + // Do loop until EOF + while (!reader.EndOfStream) + { + // Read line and deserialize + string? line = await reader.ReadLineAsync(token); + LocalFileInfo? localFileInfo = line?.Deserialize(LocalFileInfoJsonContext.Default.LocalFileInfo); + + // Assign the values + if (localFileInfo == null) + continue; + + localFileInfo.FullPath = Path.Combine(gamePath, localFileInfo.RelativePath); + localFileInfo.FileName = Path.GetFileName(localFileInfo.RelativePath); + localFileInfo.IsFileExist = File.Exists(localFileInfo.FullPath); + + // Add it to the list and hashset + pkgFileInfo.Add(localFileInfo); + pkgFileInfoHashSet.Add(localFileInfo.RelativePath); + + // If it's an audio file, then add the mark file into the entry as well. + // This to avoid the mark file to be tagged as "Unused" (as per issue #672) + if (localFileInfo.RelativePath.EndsWith(".pck")) + { + // Get the string of the mark hex hash + string? markHashString = HexTool.BytesToHexUnsafe(localFileInfo.MD5Hash); + if (string.IsNullOrEmpty(markHashString)) + { + continue; + } + + // Get the mark file's relative path + string relativePathDir = Path.GetDirectoryName(localFileInfo.RelativePath) ?? ""; + string relativePathNameNoExt = Path.GetFileNameWithoutExtension(localFileInfo.RelativePath) ?? ""; + string relativePathMarkMerged = Path.Combine(relativePathDir, relativePathNameNoExt + $"_{markHashString}.hash"); + + // Create the LocalFileInfo instance of the mark file + LocalFileInfo localFileInfoMark = new LocalFileInfo + { + FullPath = Path.Combine(gamePath, relativePathMarkMerged), + RelativePath = relativePathMarkMerged, + FileName = Path.GetFileName(relativePathMarkMerged) + }; + localFileInfoMark.IsFileExist = File.Exists(localFileInfoMark.FullPath); + + // Add the mark file entry into the list and hashset + pkgFileInfo.Add(localFileInfoMark); + pkgFileInfoHashSet.Add(localFileInfoMark.RelativePath); + } + } + } +#nullable restore + #endregion + #region Override Methods - Others protected override string GetLanguageLocaleCodeByID(int id) diff --git a/CollapseLauncher/Classes/ShortcutCreator/SteamShortcut.cs b/CollapseLauncher/Classes/ShortcutCreator/SteamShortcut.cs index 6fc8f437a..67cd7092e 100644 --- a/CollapseLauncher/Classes/ShortcutCreator/SteamShortcut.cs +++ b/CollapseLauncher/Classes/ShortcutCreator/SteamShortcut.cs @@ -1,4 +1,5 @@ -using CollapseLauncher.Helper.Loading; +using CollapseLauncher.Classes.Extension; +using CollapseLauncher.Helper.Loading; using CollapseLauncher.Helper.Metadata; using Hi3Helper; using Hi3Helper.Data; @@ -45,7 +46,7 @@ internal SteamShortcut(string path, PresetConfig preset, bool play = false) Lang._GameClientRegions); AppName = $"{translatedGameTitle} - {translatedGameRegion}"; - var stubPath = FindCollapseStubPath(); + var stubPath = VelopackLocatorExtension.FindCollapseStubPath(); Exe = $"\"{stubPath}\""; StartDir = $"{Path.GetDirectoryName(stubPath)}"; diff --git a/CollapseLauncher/CollapseLauncher.csproj b/CollapseLauncher/CollapseLauncher.csproj index b96367199..355daeafb 100644 --- a/CollapseLauncher/CollapseLauncher.csproj +++ b/CollapseLauncher/CollapseLauncher.csproj @@ -10,13 +10,13 @@ CollapseLauncher Collapse Collapse - Collapse Launcher - Collapse Launcher + Collapse + Collapse Collapse Launcher Team $(Company). neon-nyan, Cry0, bagusnl, shatyuka, gablm. - Copyright 2022-2024 $(Company) + Copyright 2022-2025 $(Company) - 1.82.18 + 1.82.19 preview x64 @@ -153,12 +153,10 @@ --> - - @@ -177,19 +175,18 @@ - + - + - - + + - @@ -204,6 +201,7 @@ + @@ -231,8 +229,9 @@ - + Always + LICENSE.rtf diff --git a/CollapseLauncher/NonTrimmableRoots.xml b/CollapseLauncher/NonTrimmableRoots.xml index b2e48ed52..7dd8361b3 100644 --- a/CollapseLauncher/NonTrimmableRoots.xml +++ b/CollapseLauncher/NonTrimmableRoots.xml @@ -31,8 +31,4 @@ - - - - \ No newline at end of file diff --git a/CollapseLauncher/Program.cs b/CollapseLauncher/Program.cs index edcbb1826..61af5b2e6 100644 --- a/CollapseLauncher/Program.cs +++ b/CollapseLauncher/Program.cs @@ -1,18 +1,16 @@ +using CollapseLauncher.Classes.Extension; using CollapseLauncher.Helper; using CollapseLauncher.Helper.Database; using CollapseLauncher.Helper.Update; using Hi3Helper; -using Hi3Helper.Data; using Hi3Helper.Http.Legacy; using Hi3Helper.SentryHelper; using Hi3Helper.Shared.ClassStruct; using Hi3Helper.Win32.Native.LibraryImport; using Hi3Helper.Win32.Native.ManagedTools; -using Hi3Helper.Win32.ShellLinkCOM; using InnoSetupHelper; using Microsoft.UI.Dispatching; using Microsoft.UI.Xaml; -using NuGet.Versioning; using System; using System.Diagnostics; using System.Globalization; @@ -24,7 +22,6 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -using Velopack; using WinRT; using static CollapseLauncher.ArgumentParser; using static CollapseLauncher.InnerLauncherConfig; @@ -47,7 +44,9 @@ public static partial class MainEntryPointExtension public static class MainEntryPoint { - #nullable enable + // Decide AUMID string + public const string AppAumid = "Collapse"; +#nullable enable public static int InstanceCount { get; set; } public static App? CurrentAppInstance { get; set; } #nullable restore @@ -73,14 +72,8 @@ public static void Main(params string[] args) AppIconSmall = smallIcons[0]; } - // Decide AUMID string - const string aumid = "Collapse"; - // Start Updater Hook - StartUpdaterHook(aumid); - - // Set AUMID - WindowUtility.CurrentAumid = aumid; + VelopackLocatorExtension.StartUpdaterHook(AppAumid); InitAppPreset(); var logPath = AppGameLogsFolder; @@ -180,7 +173,7 @@ public static void Main(params string[] args) m_arguments.Migrate.KeyName); return; case AppMode.GenerateVelopackMetadata: - GenerateVelopackMetadata(aumid); + VelopackLocatorExtension.GenerateVelopackMetadata(AppAumid); return; } @@ -314,212 +307,6 @@ private static void OnProcessExit(object sender, EventArgs e) // App.IsAppKilled = true; } - private static void StartUpdaterHook(string aumid) - { - #if !USEVELOPACK - // Add Squirrel Hooks - SquirrelAwareApp.HandleEvents( - // Add shortcut and uninstaller entry on first start-up - // ReSharper disable UnusedParameter.Local - (_, sqr) => - { - Console - .WriteLine("Please do not close this console window while Collapse is preparing the installation via Squirrel..."); - }, - (_, sqr) => - { - Console - .WriteLine("Please do not close this console window while Collapse is updating via Squirrel..."); - }, - onAppUninstall: (_, sqr) => - { - Console - .WriteLine("Uninstalling Collapse via Squirrel...\r\n" + - "Please do not close this console window while action is being performed!"); - }, - // ReSharper restore UnusedParameter.Local - onEveryRun: (_, _, _) => { } - ); - #else - VelopackApp.Build() - .WithRestarted(TryCleanupFallbackUpdate) - .WithAfterUpdateFastCallback(TryCleanupFallbackUpdate) - .WithFirstRun(TryCleanupFallbackUpdate) - .Run(ILoggerHelper.GetILogger()); - - _ = Task.Run(DeleteVelopackLock); - - GenerateVelopackMetadata(aumid); - - void DeleteVelopackLock() - { - // Get the current application directory - string currentAppDir = AppDomain.CurrentDomain.BaseDirectory; - - // Construct the path to the .velopack_lock file - string velopackLockPath = Path.Combine(currentAppDir, "..", "packages", ".velopack_lock"); - - // Normalize the path - velopackLockPath = Path.GetFullPath(velopackLockPath); - - // Check if the file exists - if (!File.Exists(velopackLockPath)) - { - return; - } - - // Delete the file - File.Delete(velopackLockPath); - LogWriteLine(".velopack_lock file deleted successfully."); - } - #endif - } - - #if USEVELOPACK - public static void TryCleanupFallbackUpdate(SemanticVersion newVersion) - { - string currentExecutedAppFolder = AppExecutableDir.TrimEnd('\\'); - string currentExecutedPath = AppExecutablePath; - - // If the path is not actually running under "current" velopack folder, then return - #if !DEBUG - if (!currentExecutedAppFolder.EndsWith("current", StringComparison.OrdinalIgnoreCase)) // Expecting "current" - { - Logger.LogWriteLine("[TryCleanupFallbackUpdate] The launcher does not run from \"current\" folder"); - return; - } - #endif - - try - { - // Otherwise, start cleaning-up process - string currentExecutedParentFolder = Path.GetDirectoryName(currentExecutedAppFolder); - if (currentExecutedParentFolder != null) - { - DirectoryInfo directoryInfo = new DirectoryInfo(currentExecutedParentFolder); - foreach (DirectoryInfo childLegacyAppSemVerFolder in - directoryInfo.EnumerateDirectories("app-*", SearchOption.TopDirectoryOnly)) - { - // Removing the "app-*" folder - childLegacyAppSemVerFolder.Delete(true); - LogWriteLine($"[TryCleanupFallbackUpdate] Removed {childLegacyAppSemVerFolder.FullName} folder!", - LogType.Default, true); - } - - // Try to remove squirrel temp clowd folder - string squirrelTempPackagesFolder = Path.Combine(currentExecutedParentFolder, "SquirrelClowdTemp"); - DirectoryInfo squirrelTempPackagesFolderInfo = new DirectoryInfo(squirrelTempPackagesFolder); - if (squirrelTempPackagesFolderInfo.Exists) - { - squirrelTempPackagesFolderInfo.Delete(true); - LogWriteLine($"[TryCleanupFallbackUpdate] Removed package temp folder: {squirrelTempPackagesFolder}!", - LogType.Default, true); - } - - // Try to remove stub executable - string squirrelLegacyStubPath = Path.Combine(currentExecutedParentFolder, "CollapseLauncher.exe"); - RemoveSquirrelFilePath(squirrelLegacyStubPath); - - // Try to remove createdump executable - string squirrelLegacyDumpPath = Path.Combine(currentExecutedParentFolder, "createdump.exe"); - RemoveSquirrelFilePath(squirrelLegacyDumpPath); - - // Try to remove RestartAgent executable - string squirrelLegacyRestartAgentPath = - Path.Combine(currentExecutedParentFolder, "RestartAgent.exe"); - RemoveSquirrelFilePath(squirrelLegacyRestartAgentPath); - } - - // Try to remove legacy shortcuts - string currentWindowsPathDrive = Path.GetPathRoot(Environment.SystemDirectory); - if (!string.IsNullOrEmpty(currentWindowsPathDrive)) - { - string squirrelLegacyStartMenuGlobal = - Path.Combine(currentWindowsPathDrive, - @"ProgramData\Microsoft\Windows\Start Menu\Programs\Collapse\Collapse Launcher"); - string squirrelLegacyStartMenuGlobalParent = Path.GetDirectoryName(squirrelLegacyStartMenuGlobal); - if (Directory.Exists(squirrelLegacyStartMenuGlobalParent) && - Directory.Exists(squirrelLegacyStartMenuGlobal)) - { - Directory.Delete(squirrelLegacyStartMenuGlobalParent, true); - } - } - - // Try to delete all possible shortcuts on any users (since the shortcut used will be the global one) - // Only do this if shortcut path is not same as current path tho... It pain to re-pin the shortcut again... - string currentUsersDirPath = Path.Combine(currentWindowsPathDrive!, "Users"); - foreach (string userDirInfoPath in Directory - .EnumerateDirectories(currentUsersDirPath, "*", - SearchOption.TopDirectoryOnly) - .Where(ConverterTool.IsUserHasPermission)) - { - // Get the shortcut file - string thisUserStartMenuShortcut = Path.Combine(userDirInfoPath, - @"AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Collapse.lnk"); - if (!File.Exists(thisUserStartMenuShortcut)) - { - continue; - } - - // Try open the shortcut and check whether this shortcut is actually pointing to - // CollapseLauncher.exe file - using ShellLink shellLink = new ShellLink(thisUserStartMenuShortcut); - // Try to get the target path and its filename - string shortcutTargetPath = shellLink.Target; - if (!shortcutTargetPath.Equals(currentExecutedPath, StringComparison.OrdinalIgnoreCase)) - { - continue; - } - - // Compare if the filename is equal, then delete it. - File.Delete(thisUserStartMenuShortcut); - LogWriteLine($"[TryCleanupFallbackUpdate] Deleted old shortcut located at: " + - $"{thisUserStartMenuShortcut} -> {shortcutTargetPath}", - LogType.Default, true); - } - - // Try to recreate shortcuts - TaskSchedulerHelper.RecreateIconShortcuts(); - } - catch (Exception ex) - { - SentryHelper.ExceptionHandler(ex, SentryHelper.ExceptionType.UnhandledOther); - LogWriteLine($"[TryCleanupFallbackUpdate] Failed while operating clean-up routines...\r\n{ex}"); - } - - return; - - void RemoveSquirrelFilePath(string filePath) - { - if (!File.Exists(filePath)) - { - return; - } - - File.Delete(filePath); - LogWriteLine($"[TryCleanupFallbackUpdate] Removed old squirrel executables: {filePath}!", - LogType.Default, true); - } - } - #endif - - public static string FindCollapseStubPath() - { - var collapseMainPath = AppExecutablePath; - // var collapseExecName = "CollapseLauncher.exe"; - // var collapseStubPath = Path.Combine(Directory.GetParent(Path.GetDirectoryName(collapseMainPath)!)!.FullName, - // collapseExecName); - // if (File.Exists(collapseStubPath)) - // { - // LogWriteLine($"Found stub at {collapseStubPath}", LogType.Default, true); - // return collapseStubPath; - // } - - LogWriteLine($"Collapse stub is not used anymore, returning current executable path!\r\n\t{collapseMainPath}", - LogType.Default, true); - return collapseMainPath; - } - private static async Task CheckRuntimeFeatures() { try @@ -585,34 +372,6 @@ private static void RunElevateUpdate() elevatedProc.Start(); } - private static void GenerateVelopackMetadata(string aumid) - { - const string xmlTemplate = """ - - - - CollapseLauncher - Collapse - Collapse - Collapse Project Team - {0} - {1} - CollapseLauncher.exe - win - win - Desktop,StartMenuRoot - {2} - {2} - - - """; // Adding shortcutAumid for future use, since they typo-ed the XML tag LMAO - string currentVersion = LauncherUpdateHelper.LauncherCurrentVersionString; - string xmlPath = Path.Combine(AppExecutableDir, "sq.version"); - string xmlContent = string.Format(xmlTemplate, currentVersion, IsPreview ? "preview" : "stable", aumid); - File.WriteAllText(xmlPath, xmlContent.ReplaceLineEndings("\n")); - LogWriteLine($"Velopack metadata has been successfully written!\r\n{xmlContent}", LogType.Default, true); - } - public static string GetVersionString() { var version = Environment.OSVersion.Version; diff --git a/CollapseLauncher/XAMLs/MainApp/MainPage.Notification.cs b/CollapseLauncher/XAMLs/MainApp/MainPage.Notification.cs index b3b751de0..3627fd62a 100644 --- a/CollapseLauncher/XAMLs/MainApp/MainPage.Notification.cs +++ b/CollapseLauncher/XAMLs/MainApp/MainPage.Notification.cs @@ -6,7 +6,7 @@ using Hi3Helper; using Hi3Helper.SentryHelper; using Hi3Helper.Shared.ClassStruct; -using Hi3Helper.Win32.ToastCOM.Notification; +using Hi3Helper.Win32.WinRT.ToastCOM.Notification; using InnoSetupHelper; using Microsoft.UI.Text; using Microsoft.UI.Xaml; diff --git a/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml b/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml index 5b8a3cfa5..288f43752 100644 --- a/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml +++ b/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml @@ -132,9 +132,11 @@ - + + diff --git a/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml.cs b/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml.cs index b258fb8db..c89648b4c 100644 --- a/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml.cs +++ b/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/StarRailGameSettingsPage.xaml.cs @@ -86,6 +86,8 @@ private async void LoadPage() ApplyButton.Translation = Shadow32; GameSettingsApplyGrid.Translation = new Vector3(0, 0, 64); SettingsScrollViewer.EnableImplicitAnimation(true); + + MobileModeToggleText.Text = $"[{Lang._Misc.Tag_Deprecated}] {Lang._GameSettingsPage.MobileLayout}"; InheritApplyTextColor = ApplyText.Foreground!; #nullable enable diff --git a/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/ZenlessGameSettingsPage.xaml.cs b/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/ZenlessGameSettingsPage.xaml.cs index edd75db8d..7fe827379 100644 --- a/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/ZenlessGameSettingsPage.xaml.cs +++ b/CollapseLauncher/XAMLs/MainApp/Pages/GameSettingsPages/ZenlessGameSettingsPage.xaml.cs @@ -273,6 +273,8 @@ private List GetResPairs_Fullscreen(Size defaultResolution) List resPairs = []; int indexOfDefaultRes = -1; + // ReSharper disable once LoopCanBeConvertedToQuery + // ReSharper disable once ForCanBeConvertedToForeach for (int i = 0; i < acH.Count; i++) { // Get height and calculate width @@ -312,7 +314,9 @@ private List GetResPairs_Windowed() if (Math.Abs(nativeAspRatio - ulWideRatio) < 0.01) resPairs.Add($"{SizeProp.Width}x{SizeProp.Height}"); - for (int i = acH.Count - 1; i >= 0; i--) + // ReSharper disable once LoopCanBeConvertedToQuery + // ReSharper disable once ForCanBeConvertedToForeach + for (int i = 0; i < acH.Count; i++) { // Get height and calculate width int h = acH[i]; diff --git a/CollapseLauncher/XAMLs/MainApp/Pages/HomePage.xaml.cs b/CollapseLauncher/XAMLs/MainApp/Pages/HomePage.xaml.cs index 912c5a284..105ff6dde 100644 --- a/CollapseLauncher/XAMLs/MainApp/Pages/HomePage.xaml.cs +++ b/CollapseLauncher/XAMLs/MainApp/Pages/HomePage.xaml.cs @@ -421,17 +421,15 @@ private async Task StartCarouselAutoScroll(int delaySeconds = 5) { while (true) { - if (CarouselToken == null || CarouselToken.IsCancellationRequested || CarouselToken.IsDisposed || CarouselToken.IsCancelled) - { - CarouselToken = new CancellationTokenSourceWrapper(); - } + CarouselToken ??= new CancellationTokenSourceWrapper(); + await Task.Delay(TimeSpan.FromSeconds(delaySeconds), CarouselToken.Token); if (!IsCarouselPanelAvailable) return; - if (ImageCarousel.SelectedIndex != GameNewsData!.NewsCarousel!.Count - 1 + if (ImageCarousel.SelectedIndex != GameNewsData?.NewsCarousel?.Count - 1 && ImageCarousel.SelectedIndex < ImageCarousel.Items.Count - 1) ImageCarousel.SelectedIndex++; else - for (int i = GameNewsData.NewsCarousel.Count; i > 0; i--) + for (int i = GameNewsData?.NewsCarousel?.Count ?? 0; i > 0; i--) { if (i - 1 >= 0 && i - 1 < ImageCarousel.Items.Count) { diff --git a/CollapseLauncher/XAMLs/MainApp/Pages/OOBE/OOBESelectGame.xaml.cs b/CollapseLauncher/XAMLs/MainApp/Pages/OOBE/OOBESelectGame.xaml.cs index c31a855cf..3464e40bd 100644 --- a/CollapseLauncher/XAMLs/MainApp/Pages/OOBE/OOBESelectGame.xaml.cs +++ b/CollapseLauncher/XAMLs/MainApp/Pages/OOBE/OOBESelectGame.xaml.cs @@ -3,7 +3,7 @@ using CollapseLauncher.Helper.Metadata; using Hi3Helper; using Hi3Helper.SentryHelper; -using Hi3Helper.Win32.ToastCOM.Notification; +using Hi3Helper.Win32.WinRT.ToastCOM.Notification; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media.Animation; diff --git a/CollapseLauncher/XAMLs/MainApp/TrayIcon.xaml b/CollapseLauncher/XAMLs/MainApp/TrayIcon.xaml index a67b540f8..bddd41b87 100644 --- a/CollapseLauncher/XAMLs/MainApp/TrayIcon.xaml +++ b/CollapseLauncher/XAMLs/MainApp/TrayIcon.xaml @@ -6,6 +6,7 @@ xmlns:tb="using:H.NotifyIcon" mc:Ignorable="d"> - + - + diff --git a/Hi3Helper.CommunityToolkit/ImageCropper/packages.lock.json b/Hi3Helper.CommunityToolkit/ImageCropper/packages.lock.json index 68b4ac7f7..bf2b1d206 100644 --- a/Hi3Helper.CommunityToolkit/ImageCropper/packages.lock.json +++ b/Hi3Helper.CommunityToolkit/ImageCropper/packages.lock.json @@ -47,9 +47,9 @@ }, "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.2957.106, )", - "resolved": "1.0.2957.106", - "contentHash": "eHc2yKD//d1a6Razu6jl373RGKdzLhxDBk/wc/i//tC9+nEVXcO38pvjZwR2s0C34y+0trzKvbGHffrEx7vyVw==" + "requested": "[1.0.3065.39, )", + "resolved": "1.0.3065.39", + "contentHash": "ww6ToZ2jpHyP4k3DCQJETjKcdVS1cha9pS8dV2NetyfafItxz08wcAyQV0Yl86W7euhI02UJWEaC5sM8WLr0tQ==" }, "Microsoft.Windows.CsWinRT": { "type": "Direct", @@ -65,9 +65,9 @@ }, "Microsoft.WindowsAppSDK": { "type": "Direct", - "requested": "[1.6.250108002, )", - "resolved": "1.6.250108002", - "contentHash": "dOJ3oFeHnehVBAR98lR6YfX0JgDJkrehLqwZQqQE/iZgyye1c1TZu9oj3MBbgWP9xFApWUrb0G49KKnQWEZLtA==", + "requested": "[1.6.250205002, )", + "resolved": "1.6.250205002", + "contentHash": "zcOHaqII9erAmn3w3MP5rSmBzWf/IC8yU4nPCtwDquhy3vadW6Pm/0lOvnOCcZNN6TztPPODl9CQqDKSAGCeHQ==", "dependencies": { "Microsoft.Web.WebView2": "1.0.2651.64", "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756" @@ -95,15 +95,15 @@ }, "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.2957.106, )", - "resolved": "1.0.2957.106", - "contentHash": "eHc2yKD//d1a6Razu6jl373RGKdzLhxDBk/wc/i//tC9+nEVXcO38pvjZwR2s0C34y+0trzKvbGHffrEx7vyVw==" + "requested": "[1.0.3065.39, )", + "resolved": "1.0.3065.39", + "contentHash": "ww6ToZ2jpHyP4k3DCQJETjKcdVS1cha9pS8dV2NetyfafItxz08wcAyQV0Yl86W7euhI02UJWEaC5sM8WLr0tQ==" }, "Microsoft.WindowsAppSDK": { "type": "Direct", - "requested": "[1.6.250108002, )", - "resolved": "1.6.250108002", - "contentHash": "dOJ3oFeHnehVBAR98lR6YfX0JgDJkrehLqwZQqQE/iZgyye1c1TZu9oj3MBbgWP9xFApWUrb0G49KKnQWEZLtA==", + "requested": "[1.6.250205002, )", + "resolved": "1.6.250205002", + "contentHash": "zcOHaqII9erAmn3w3MP5rSmBzWf/IC8yU4nPCtwDquhy3vadW6Pm/0lOvnOCcZNN6TztPPODl9CQqDKSAGCeHQ==", "dependencies": { "Microsoft.Web.WebView2": "1.0.2651.64", "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756" diff --git a/Hi3Helper.CommunityToolkit/SettingsControls/Hi3Helper.CommunityToolkit.WinUI.Controls.SettingsControls.csproj b/Hi3Helper.CommunityToolkit/SettingsControls/Hi3Helper.CommunityToolkit.WinUI.Controls.SettingsControls.csproj index 35d2b6ea9..e8258fb3c 100644 --- a/Hi3Helper.CommunityToolkit/SettingsControls/Hi3Helper.CommunityToolkit.WinUI.Controls.SettingsControls.csproj +++ b/Hi3Helper.CommunityToolkit/SettingsControls/Hi3Helper.CommunityToolkit.WinUI.Controls.SettingsControls.csproj @@ -36,9 +36,9 @@ - + - + diff --git a/Hi3Helper.CommunityToolkit/SettingsControls/packages.lock.json b/Hi3Helper.CommunityToolkit/SettingsControls/packages.lock.json index 7c1160597..e1d49b39f 100644 --- a/Hi3Helper.CommunityToolkit/SettingsControls/packages.lock.json +++ b/Hi3Helper.CommunityToolkit/SettingsControls/packages.lock.json @@ -26,9 +26,9 @@ }, "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.2957.106, )", - "resolved": "1.0.2957.106", - "contentHash": "eHc2yKD//d1a6Razu6jl373RGKdzLhxDBk/wc/i//tC9+nEVXcO38pvjZwR2s0C34y+0trzKvbGHffrEx7vyVw==" + "requested": "[1.0.3065.39, )", + "resolved": "1.0.3065.39", + "contentHash": "ww6ToZ2jpHyP4k3DCQJETjKcdVS1cha9pS8dV2NetyfafItxz08wcAyQV0Yl86W7euhI02UJWEaC5sM8WLr0tQ==" }, "Microsoft.Windows.CsWinRT": { "type": "Direct", @@ -44,9 +44,9 @@ }, "Microsoft.WindowsAppSDK": { "type": "Direct", - "requested": "[1.6.250108002, )", - "resolved": "1.6.250108002", - "contentHash": "dOJ3oFeHnehVBAR98lR6YfX0JgDJkrehLqwZQqQE/iZgyye1c1TZu9oj3MBbgWP9xFApWUrb0G49KKnQWEZLtA==", + "requested": "[1.6.250205002, )", + "resolved": "1.6.250205002", + "contentHash": "zcOHaqII9erAmn3w3MP5rSmBzWf/IC8yU4nPCtwDquhy3vadW6Pm/0lOvnOCcZNN6TztPPODl9CQqDKSAGCeHQ==", "dependencies": { "Microsoft.Web.WebView2": "1.0.2651.64", "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756" @@ -74,15 +74,15 @@ "net9.0-windows10.0.22621/win-x64": { "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.2957.106, )", - "resolved": "1.0.2957.106", - "contentHash": "eHc2yKD//d1a6Razu6jl373RGKdzLhxDBk/wc/i//tC9+nEVXcO38pvjZwR2s0C34y+0trzKvbGHffrEx7vyVw==" + "requested": "[1.0.3065.39, )", + "resolved": "1.0.3065.39", + "contentHash": "ww6ToZ2jpHyP4k3DCQJETjKcdVS1cha9pS8dV2NetyfafItxz08wcAyQV0Yl86W7euhI02UJWEaC5sM8WLr0tQ==" }, "Microsoft.WindowsAppSDK": { "type": "Direct", - "requested": "[1.6.250108002, )", - "resolved": "1.6.250108002", - "contentHash": "dOJ3oFeHnehVBAR98lR6YfX0JgDJkrehLqwZQqQE/iZgyye1c1TZu9oj3MBbgWP9xFApWUrb0G49KKnQWEZLtA==", + "requested": "[1.6.250205002, )", + "resolved": "1.6.250205002", + "contentHash": "zcOHaqII9erAmn3w3MP5rSmBzWf/IC8yU4nPCtwDquhy3vadW6Pm/0lOvnOCcZNN6TztPPODl9CQqDKSAGCeHQ==", "dependencies": { "Microsoft.Web.WebView2": "1.0.2651.64", "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756" diff --git a/Hi3Helper.Core/Hi3Helper.Core.csproj b/Hi3Helper.Core/Hi3Helper.Core.csproj index e6b841f9b..6c91ac3ac 100644 --- a/Hi3Helper.Core/Hi3Helper.Core.csproj +++ b/Hi3Helper.Core/Hi3Helper.Core.csproj @@ -1,15 +1,15 @@  - - net9.0-windows10.0.22621.0 - x64 - Debug;Release;Publish - 6 - preview - true - portable - true - true + + net9.0-windows10.0.22621.0 + x64 + Debug;Release;Publish + 6 + preview + true + portable + true + true Hi3Helper.Core Hi3Helper.Core @@ -17,46 +17,46 @@ Core module for Collapse Launcher Collapse Launcher Team $(Company). neon-nyan, Cry0, bagusnl, shatyuka, gablm. - Copyright 2022-2024 $(Company) + Copyright 2022-2025 $(Company) true - - - - True - - - - False - - - - - - - - - - - Always - - - - - - - - - - - - - - - - - - - - + + + + True + + + + False + + + + + + + + + + + Always + + + + + + + + + + + + + + + + + + + + diff --git a/Hi3Helper.Core/Lang/Locale/LangMisc.cs b/Hi3Helper.Core/Lang/Locale/LangMisc.cs index 981006c09..aa96fc6ab 100644 --- a/Hi3Helper.Core/Lang/Locale/LangMisc.cs +++ b/Hi3Helper.Core/Lang/Locale/LangMisc.cs @@ -151,6 +151,10 @@ public sealed partial class LangMisc public string ExceptionFeedbackTemplate_User { get; set; } = LangFallback?._Misc.ExceptionFeedbackTemplate_User; public string ExceptionFeedbackTemplate_Email { get; set; } = LangFallback?._Misc.ExceptionFeedbackTemplate_Email; public string ExceptionFeedbackTemplate_Message { get; set; } = LangFallback?._Misc.ExceptionFeedbackTemplate_Message; + + public string Tag_Deprecated { get; set; } = LangFallback?._Misc.Tag_Deprecated; + + public string Generic_GameFeatureDeprecation { get; set; } = LangFallback?._Misc.Generic_GameFeatureDeprecation; } } #endregion diff --git a/Hi3Helper.Core/Lang/de_DE.json b/Hi3Helper.Core/Lang/de_DE.json index 8a7f34698..b11c945b7 100644 --- a/Hi3Helper.Core/Lang/de_DE.json +++ b/Hi3Helper.Core/Lang/de_DE.json @@ -499,7 +499,7 @@ "HelpLocalizeBtn": "Hilf uns Collapse zu übersetzen!", "About": "Info", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Unter der", "About_Copyright4": ". Alle Rechte vorbehalten.", diff --git a/Hi3Helper.Core/Lang/en_US.json b/Hi3Helper.Core/Lang/en_US.json index f0b042569..c564ea8f6 100644 --- a/Hi3Helper.Core/Lang/en_US.json +++ b/Hi3Helper.Core/Lang/en_US.json @@ -533,7 +533,7 @@ "ShareYourFeedbackBtn": "Share Your Feedback", "About": "About", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Under", "About_Copyright4": ". All rights reserved.", @@ -808,7 +808,10 @@ "ExceptionFeedbackTitle": "Tell us what happened:", "ExceptionFeedbackTemplate_User": "Username (Optional):", "ExceptionFeedbackTemplate_Email": "Email (Optional):", - "ExceptionFeedbackTemplate_Message": "Insert your feedback after this line" + "ExceptionFeedbackTemplate_Message": "Insert your feedback after this line", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { diff --git a/Hi3Helper.Core/Lang/es_419.json b/Hi3Helper.Core/Lang/es_419.json index 2d6372a46..682d4e5fe 100644 --- a/Hi3Helper.Core/Lang/es_419.json +++ b/Hi3Helper.Core/Lang/es_419.json @@ -533,7 +533,7 @@ "ShareYourFeedbackBtn": "Compártenos tus comentarios", "About": "Acerca de", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Bajo", "About_Copyright4": ". Todos los derechos reservados.", @@ -808,7 +808,10 @@ "ExceptionFeedbackTitle": "Cuéntanos lo que pasó:", "ExceptionFeedbackTemplate_User": "Nombre de Usuario (Opcional)", "ExceptionFeedbackTemplate_Email": "Email (Opcional):", - "ExceptionFeedbackTemplate_Message": "Introduzca sus comentarios después de esta línea" + "ExceptionFeedbackTemplate_Message": "Introduzca sus comentarios después de esta línea", + + "Tag_Deprecated": "Obsoleto", + "Generic_GameFeatureDeprecation": "Debido a cambios imprevistos en el juego, esta función quedo obsoleta y se eliminará en el futuro. Usarla puede provocar comportamientos inesperados." }, "_BackgroundNotification": { diff --git a/Hi3Helper.Core/Lang/fr_FR.json b/Hi3Helper.Core/Lang/fr_FR.json index c402c8777..53dd3aa37 100644 --- a/Hi3Helper.Core/Lang/fr_FR.json +++ b/Hi3Helper.Core/Lang/fr_FR.json @@ -157,6 +157,7 @@ "GameSettings_Panel3CustomBGRegionSectionTitle": "Arrière-plan régional personnalisé", "GameSettings_Panel4": "Global - Divers", "GameSettings_Panel4ShowEventsPanel": "Afficher le panneau des évènements", + "GameSettings_Panel4ScaleUpEventsPanel": "Grossir le panneau des évènements au survol", "GameSettings_Panel4ShowSocialMediaPanel": "Afficher le panneau des médias sociaux", "GameSettings_Panel4ShowPlaytimeButton": "Afficher le compteur de temps de jeu", "GameSettings_Panel4SyncPlaytimeDatabase": "Synchroniser le temps de jeu avec la base de données", @@ -361,6 +362,8 @@ "SpecVeryHigh": "Très élevé", "SpecMaximum": "Maximal", "SpecUltra": "Ultra", + "SpecDynamic": "Dynamique", + "SpecGlobal": "Global", "Audio_Title": "Paramètres audio", "Audio_Master": "Volume principal", @@ -527,9 +530,10 @@ "ContributePRBtn": "Contribuer avec une Pull Request", "ContributorListBtn": "Liste de contributeurs Open Source", "HelpLocalizeBtn": "Aidez-nous à traduire Collapse !", + "ShareYourFeedbackBtn": "Faites-nous part de votre avis", "About": "À propos", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka et gablm", "About_Copyright3": "Sous", "About_Copyright4": ". Tous droits réservés.", @@ -797,7 +801,17 @@ "IsBytesNotANumber": "= NaN", "MissingVcRedist": "Redistribuable Visual C/C++ manquant", - "MissingVcRedistSubtitle": "Vous devez installer le redistribuable Visual C/C++ pour exécuter cette fonction. Voulez-vous le télécharger maintenant ?\r\nRemarque : Cela ouvrira une fenêtre de navigateur et téléchargera un fichier depuis le site de Microsoft. Veuillez exécuter le programme d'installation après l'avoir téléchargé, puis redémarrez Collapse et réessayez.\r\nSi l'erreur persiste malgré l'installation du redistribuable, veuillez soumettre un rapport de bug." + "MissingVcRedistSubtitle": "Vous devez installer le redistribuable Visual C/C++ pour exécuter cette fonction. Voulez-vous le télécharger maintenant ?\r\nRemarque : Cela ouvrira une fenêtre de navigateur et téléchargera un fichier depuis le site de Microsoft. Veuillez exécuter le programme d'installation après l'avoir téléchargé, puis redémarrez Collapse et réessayez.\r\nSi l'erreur persiste malgré l'installation du redistribuable, veuillez soumettre un rapport de bug.", + "ExceptionFeedbackBtn": "Dites-nous ce qu'il s'est passé", + "ExceptionFeedbackBtn_Unavailable": "Le rapport de plantage est désactivé ou n'est pas disponible", + "ExceptionFeedbackBtn_FeedbackSent": "Vos commentaires ont été envoyés !", + "ExceptionFeedbackTitle": "Dites-nous ce qu'il s'est passé :", + "ExceptionFeedbackTemplate_User": "Nom d'utilisateur (optionnel) :", + "ExceptionFeedbackTemplate_Email": "Adresse e-mail (optionnel) :", + "ExceptionFeedbackTemplate_Message": "Insérez vos commentaires sous cette ligne", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { @@ -906,6 +920,10 @@ "ReleaseChannelChangeSubtitle2": "Note :", "ReleaseChannelChangeSubtitle3": "Cette action peut entraîner des changements irréversibles et/ou des ruptures par rapport à votre configuration actuelle. Nous ne sommes pas responsables de la perte ou de la corruption des données associées à votre jeu.", + "ForceUpdateCurrentInstallTitle": "Forcer la mise à jour de l'installation actuelle", + "ForceUpdateCurrentInstallSubtitle1": "Vous êtes sur le point d'effectuer une mise à jour forcée sur votre installation", + "ForceUpdateCurrentInstallSubtitle2": "actuelle. Nous vous recommandons de fermer tout jeu(x) actuellement en cours d'utilisation.", + "ChangePlaytimeTitle": "Modifier le temps de jeu ?", "ChangePlaytimeSubtitle": "Modifier votre temps de jeu signifie remplacer la valeur actuelle par celle que vous venez de saisir.\r\n\r\nVoulez-vous poursuivre ?\r\n\r\nNote : Ceci n'a aucun impact sur le fonctionnement de Collapse et vous pouvez modifier cette valeur à tout moment lorsque vous n'êtes pas en jeu.", "ResetPlaytimeTitle": "Réinitialisation du temps de jeu", @@ -984,9 +1002,10 @@ "SteamShortcutCreationSuccessSubtitle5": " • Les nouveaux raccourcis ne seront affichés qu'après le redémarrage de Steam.", "SteamShortcutCreationSuccessSubtitle6": " • Afin d'utiliser l'overlay Steam, Steam doit être exécuté en tant qu'administrateur et Collapse doit être complètement fermé ou d'avoir l'option « Multiple instances » activée dans les paramètres.", "SteamShortcutCreationSuccessSubtitle7": " • Si le jeu n'est pas installé/à jour, Collapse essaiera de l'installer/mettre à jour. Notez que les boîtes de dialogue liés à ces processus seront toujours affichées.", - "SteamShortcutCreationFailureTitle": "Dossier de données Steam invalide", "SteamShortcutCreationFailureSubtitle": "Il n'a pas été possible de trouver un dossier de données utilisateur valide.\r\n\r\nVeuillez vous assurer de vous être connecté au moins une fois à votre client Steam avant d'essayer d'utiliser cette fonctionnalité.", + "SteamShortcutTitle": "Raccourci Steam", + "SteamShortcutDownloadingImages": "Téléchargement des images de grille Steam ({0}/{1})", "DownloadSettingsTitle": "Paramètres de téléchargement", "DownloadSettingsOption1": "Démarrer le jeu après l'installation", @@ -1001,7 +1020,28 @@ "SophonIncrementUpdateUnavailSubtitle1": "La version de votre jeu: {0}", "SophonIncrementUpdateUnavailSubtitle2": "est trop ancienne", "SophonIncrementUpdateUnavailSubtitle3": " et la mise à jour incrémentielle à partir de celle-ci n'est pas disponible. Il est cependant possible de mettre à jour le jeu en effectuant un nouveau téléchargement au complet de celui-ci.", - "SophonIncrementUpdateUnavailSubtitle4": "Cliquez sur « {0} » pour procéder à la mise à jour complète ou sur « {1} » pour annuler le processus." + "SophonIncrementUpdateUnavailSubtitle4": "Cliquez sur « {0} » pour procéder à la mise à jour complète ou sur « {1} » pour annuler le processus.", + + "UACWarningTitle": "Avertissement : UAC désactivé détecté", + "UACWarningContent": "Désactiver le Contrôle de compte d'utilisateur (UAC) n'est jamais une bonne idée.\r\nLa sécurité de votre système d'exploitation pourrait en pâtir ainsi qu'empêcher votre jeu de s'exécuter correctement.\r\n\r\nCliquez sur « En savoir plus » pour voir comment activer l'UAC.\r\nL'entrée relatif est : Exécuter tous les administrateurs en mode d’approbation Administration.", + "UACWarningLearnMore": "En savoir plus", + "UACWarningDontShowAgain": "Ne plus afficher", + + "EnsureExitTitle": "Quitter l'application", + "EnsureExitSubtitle": "Il y a des tâches critiques en cours en arrière-plan. Êtes-vous sûr de vouloir quitter l'application ?", + + "UserFeedback_DialogTitle": "Partagez vos pensées", + "UserFeedback_TextFieldTitleHeader": "Titre de l'avis", + "UserFeedback_TextFieldTitlePlaceholder": "Saisissez un titre pour votre avis ici…", + "UserFeedback_TextFieldMessageHeader": "Message", + "UserFeedback_TextFieldMessagePlaceholder": "Message…", + "UserFeedback_TextFieldRequired": "(requis)", + "UserFeedback_RatingText": "Une petite note ?", + "UserFeedback_CancelBtn": "Annuler", + "UserFeedback_SubmitBtn": "Envoyer", + "UserFeedback_SubmitBtn_Processing": "Traitement…", + "UserFeedback_SubmitBtn_Completed": "Commentaires envoyés !", + "UserFeedback_SubmitBtn_Cancelled": "Annulé !" }, "_FileMigrationProcess": { @@ -1238,11 +1278,11 @@ "Graphics_BloomQuality": "Qualité du flou lumineux", "Graphics_AAMode": "Mode anti-aliasing", "Graphics_SFXQuality": "Qualité des effets spéciaux", - "Graphics_DLSSQualityMode": "Mode Nvidia DLSS", + "Graphics_DlssQuality": "NVIDIA DLSS", "Graphics_SelfShadow": "Ombre du personnage en temps réel lors de l'exploration", "Graphics_HalfResTransparent": "Transparence semi-résolution", - "Graphics_DLSS_UHP": "Ultra haute perf.", + "Graphics_DLSS_UHP": "Performance ultra", "Graphics_DLSS_Perf": "Performance", "Graphics_DLSS_Balanced": "Équilibré", "Graphics_DLSS_Quality": "Qualité", diff --git a/Hi3Helper.Core/Lang/id_ID.json b/Hi3Helper.Core/Lang/id_ID.json index 7dcc3479e..8568bd30a 100644 --- a/Hi3Helper.Core/Lang/id_ID.json +++ b/Hi3Helper.Core/Lang/id_ID.json @@ -533,7 +533,7 @@ "ShareYourFeedbackBtn": "Bagikan Umpan-Balikmu", "About": "Tentang", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Di bawah lisensi", "About_Copyright4": ". Hak cipta dilindungi.", @@ -808,7 +808,10 @@ "ExceptionFeedbackTitle": "Apa yang terjadi?:", "ExceptionFeedbackTemplate_User": "Username (Opsional):", "ExceptionFeedbackTemplate_Email": "Email (Opsional):", - "ExceptionFeedbackTemplate_Message": "Masukan Umpan-Balikmu setelah garis ini" + "ExceptionFeedbackTemplate_Message": "Masukan Umpan-Balikmu setelah garis ini", + + "Tag_Deprecated": "Tidak berlaku", + "Generic_GameFeatureDeprecation": "Karena perubahan di sisi game, fitur ini tidak berlaku lagi dan akan dihapus di waktu mendatang. Menggunakan fitur ini dapat mengakibatkan perilaku game yang tidak diharapkan." }, "_BackgroundNotification": { diff --git a/Hi3Helper.Core/Lang/ja_JP.json b/Hi3Helper.Core/Lang/ja_JP.json index 9cf5ba5e5..98b2421ab 100644 --- a/Hi3Helper.Core/Lang/ja_JP.json +++ b/Hi3Helper.Core/Lang/ja_JP.json @@ -533,7 +533,7 @@ "ShareYourFeedbackBtn": "フィードバックを送る", "About": "Collapse Launcherについて", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Under", "About_Copyright4": ". All rights reserved.", @@ -808,7 +808,10 @@ "ExceptionFeedbackTitle": "発生したエラー:", "ExceptionFeedbackTemplate_User": "ユーザー名(任意):", "ExceptionFeedbackTemplate_Email": "メールアドレス(任意):", - "ExceptionFeedbackTemplate_Message": "この行よりも後にコメントを入力してください" + "ExceptionFeedbackTemplate_Message": "この行よりも後にコメントを入力してください", + + "Tag_Deprecated": "非推奨", + "Generic_GameFeatureDeprecation": "ゲーム側の仕様変更が原因で、この機能の使用は推奨できなくなりました。今後削除する予定です。使用した場合、予期せぬ動作を引き起こす可能性があります。" }, "_BackgroundNotification": { diff --git a/Hi3Helper.Core/Lang/ko_KR.json b/Hi3Helper.Core/Lang/ko_KR.json index e5d85d8b6..db25b8679 100644 --- a/Hi3Helper.Core/Lang/ko_KR.json +++ b/Hi3Helper.Core/Lang/ko_KR.json @@ -31,7 +31,7 @@ "OverlayPrepareFolderTitle": "앱 폴더 준비", "PageTitle": "첫 시작 페이지", "Pg1LoadingSubitle1": "지원되는 게임 목록을 준비하는 중...", - "Pg1LoadingSubitle2": "완료! 다음 단계로 진행하셔도 돼요!", + "Pg1LoadingSubitle2": "완료! 다음 단계로 넘어가는 중...", "Pg1LoadingTitle1": "게임 목록 로드 중...", "Pg1NextBtn": "다음 - 게임 선택", "Pg2ComboBox": "게임 선택", @@ -54,7 +54,7 @@ "Subtitle4_1": "시작하려면", "Subtitle4_2": "\"폴더 지정\"", "Subtitle4_3": "버튼을 눌러 게임을 설치할 경로를 선택해 주세요.", - "Title1": "Welcome to", + "Title1": "환영해요", "Title2": "Collapse Launcher" }, @@ -65,11 +65,11 @@ "Footer1": "인터넷 연결을 확인하고", "Footer2": "페이몬", "Footer3": "을 눌러 다시 시도해 주세요.", - "ShowErrorBtn": "오류 메시지 표시하기", - "GoToAppSettingsBtn": "Go to App Settings", - "GoBackOverlayFrameBtn": "Go Back", - "RegionChangerTitle": "Change the Game Region", - "RegionChangerSubtitle": "In-case you're stuck in this page" + "ShowErrorBtn": "오류 메시지 표시", + "GoToAppSettingsBtn": "앱 설정으로 이동", + "GoBackOverlayFrameBtn": "돌아가기", + "RegionChangerTitle": "게임 서버 변경", + "RegionChangerSubtitle": "이 페이지에서 막혔을 경우" }, "_UnhandledExceptionPage": { @@ -81,6 +81,8 @@ "UnhandledSubtitle3": "게임이 아래 오류로 인해 충돌했어요:", "UnhandledTitle4": "경고", "UnhandledSubtitle4": "이 문제는 크진 않지만, 알려드려야 할 거 같아서 알려드려요:\r\nmiHoYo A/B 테스트로 인해 이 키를 읽을 수 없어요: App_Settings_h2319593470.\r\n불편을 끼쳐드린 점 사과드리며 양해해 주셔서 감사해요.", + "UnhandledTitleDiskCrc": "디스크 손상이 감지되었어요!", + "UnhandledSubDiskCrc": "파일 접근 중 디스크 손상이 감지되었어요. chkdsk 명령어를 사용해 디스크를 확인해 주세요.", "CopyClipboardBtn1": "클립보드에 모두 복사", "CopyClipboardBtn2": "클립보드에 복사되었어요!", "GoBackPageBtn1": "이전 페이지로 돌아가기" @@ -103,9 +105,9 @@ "NotifClearAll": "모든 알림 지우기", "NavigationMenu": "메뉴", "NavigationUtilities": "유틸리티", - "Initializing": "Initializing", - "LoadingLauncherMetadata": "Loading Launcher Metadata", - "LoadingGameConfiguration": "Loading Game Configuration" + "Initializing": "설정 중", + "LoadingLauncherMetadata": "런처 메타데이터 로드 중", + "LoadingGameConfiguration": "게임 설정 로드 중" }, "_HomePage": { @@ -133,8 +135,8 @@ "PauseCancelBtn": "일시 중지/취소", "DownloadBtn": "게임 다운로드", - "GameStatusPlaceholderComingSoonBtn": "Coming Soon", - "GameStatusPlaceholderPreRegisterBtn": "Pre-Register Now!", + "GameStatusPlaceholderComingSoonBtn": "곧 출시 예정", + "GameStatusPlaceholderPreRegisterBtn": "지금 사전 등록하세요!", "GameSettingsBtn": "빠른 설정", "GameSettings_Panel1": "빠른 설정", @@ -146,12 +148,19 @@ "GameSettings_Panel2UninstallGame": "게임 삭제", "GameSettings_Panel2ConvertVersion": "게임 버전 변경", "GameSettings_Panel2MoveGameLocationGame": "게임 경로 변경", + "GameSettings_Panel2MoveGameLocationGame_SamePath": "드라이브 루트로 게임을 이동할 수 없어요!\r\n폴더를 만든 다음 다시 시도해 보세요.", "GameSettings_Panel2StopGame": "강제 종료", + "GameSettings_Panel3RegionalSettings": "서버별 설정", "GameSettings_Panel3": "사용자 지정 시작 인수", - "GameSettings_Panel4": "기타", + "GameSettings_Panel3RegionRpc": "Discord에 플레이 정보 표시", + "GameSettings_Panel3CustomBGRegion": "서버 배경 변경", + "GameSettings_Panel3CustomBGRegionSectionTitle": "사용자 지정 서버 배경", + "GameSettings_Panel4": "모든 서버가 공유하는 기타 설정", "GameSettings_Panel4ShowEventsPanel": "이벤트 패널 표시", + "GameSettings_Panel4ScaleUpEventsPanel": "이벤트 패널 위에 마우스를 올리면 확대", "GameSettings_Panel4ShowSocialMediaPanel": "소셜 미디어 패널 표시", - "GameSettings_Panel4ShowPlaytimeButton": "Show Game Playtime", + "GameSettings_Panel4ShowPlaytimeButton": "플레이 시간 표시", + "GameSettings_Panel4SyncPlaytimeDatabase": "플레이 시간 데이터베이스 동기화", "GameSettings_Panel4CreateShortcutBtn": "바로가기 만들기", "GameSettings_Panel4AddToSteamBtn": "Steam에 추가", @@ -160,10 +169,20 @@ "GamePlaytime_Idle_Panel1Minutes": "분", "GamePlaytime_Idle_ResetBtn": "초기화", "GamePlaytime_Idle_ChangeBtn": "변경", + "GamePlaytime_Idle_SyncDb": "동기화", + "GamePlaytime_Idle_SyncDbSyncing": "동기화 중...", "GamePlaytime_Running_Info1": "게임이 실행 중이므로 플레이 시간을 수정할 수 없어요.", - "GamePlaytime_Running_Info2": "Collapse를 완전히 닫으면 플레이 시간 추적이 중지되고 (그 시점까지 플레이된 시간을 저장), Collapse를 통해 시작한 세션만 추적돼요.", + "GamePlaytime_Running_Info2": "Collapse를 완전히 종료하면 플레이 시간 집계가 중단된다는 점에 유의해 주세요 (종료된 시점까지 저장).", "GamePlaytime_Display": "{0}시간 {1}분", "GamePlaytime_DateDisplay": "{2:0000}/{1:00}/{0:00} {3:00}:{4:00}", + "GamePlaytime_Stats_Title": "플레이 시간 통계", + "GamePlaytime_Stats_NeverPlayed": "실행되지 않음", + "GamePlaytime_Stats_LastSession": "최근 세션", + "GamePlaytime_Stats_LastSession_StartTime": "시작 시간", + "GamePlaytime_Stats_LastSession_Duration": "실행 시간", + "GamePlaytime_Stats_Daily": "오늘", + "GamePlaytime_Stats_Weekly": "이번 주", + "GamePlaytime_Stats_Monthly": "이번 달", "PostPanel_Events": "이벤트", "PostPanel_Notices": "공지사항", @@ -177,22 +196,25 @@ "CreateShortcut_FolderPicker": "바로가기 경로 설정", - "Exception_DownloadTimeout1": "Timeout occurred when trying to install {0}", - "Exception_DownloadTimeout2": "Check stability of your internet! If your internet speed is slow, please lower the download thread count.", - "Exception_DownloadTimeout3": "**WARNING** Changing download thread count WILL reset your download from 0, and you have to delete the existing download chunks manually!", + "Exception_DownloadTimeout1": "{0} 설치 중 시간 초과", + "Exception_DownloadTimeout2": "인터넷의 안정성을 확인하세요! 인터넷 속도가 느리다면 다운로드 스레드 수를 낮춰주세요.", + "Exception_DownloadTimeout3": "**경고** 다운로드 스레드 수를 변경하면 다운로드가 0으로 초기화되며, 기존 다운로드 청크를 수동으로 삭제해야 해요!", "GameStateInvalid_Title": "Game Data Directory/Executable Name/Config.ini/App.Info file is Invalid!", - "GameStateInvalid_Subtitle1": "Collapse Launcher has detected that the game file properties are invalid for region:\r\n", + "GameStateInvalid_Subtitle1": "Collapse Launcher가 게임 파일 속성과 아래 서버와의 설정이 다른 걸 감지했어요: \r \n", "GameStateInvalid_Subtitle2": "It's recommended to perform a fix in order the launcher to detect the game properly", "GameStateInvalid_Subtitle3": "Click \"", "GameStateInvalid_Subtitle4": "\" to fix the game properties or click \"", "GameStateInvalid_Subtitle5": "\" to cancel the operation.", - "GameStateInvalidFixed_Title": "Game File Properties have been Succesfully Fixed!", + "GameStateInvalidFixed_Title": "게임 파일 속성이 성공적으로 복구되었어요!", "GameStateInvalidFixed_Subtitle1": "Game file properties have been fixed for region:", "GameStateInvalidFixed_Subtitle2": "Please perform a \"", "GameStateInvalidFixed_Subtitle3": "\" in the \"", - "GameStateInvalidFixed_Subtitle4": "\" menu in order to make sure all the files are verified." + "GameStateInvalidFixed_Subtitle4": "\" menu in order to make sure all the files are verified.", + + "InstallFolderRootTitle": "Drive Root Provided!", + "InstallFolderRootSubtitle": "드라이브 최상위에 게임을 설치할 수 없어요! 새 폴더를 생성한 다음 다시 시도해 주세요." }, "_GameRepairPage": { @@ -248,7 +270,7 @@ "ListCol6": "R.CRC", "ListCol7": "상태", "Status1": "캐시 업데이트를 확인하려면 \"업데이트 확인\"을 눌러주세요.", - "Status2": "Trying to determine \"{0}\" cache asset availability: {1}", + "Status2": "{0}건의 캐시 에셋 가용성 확인 중: {1}", "CachesStatusHeader1": "총 진행률", "CachesStatusCancelled": "작업이 취소되었어요!", "CachesStatusFetchingType": "캐시 유형을 불러오는 중: {0}", @@ -287,13 +309,13 @@ "Graphics_ResCustom": "사용자 지정 해상도 사용", "Graphics_ResCustomW": "너비", "Graphics_ResCustomH": "높이", - "Graphics_ResPrefixFullscreen": "{0}x{1} Fullscreen", - "Graphics_ResPrefixWindowed": "{0}x{1} Windowed", + "Graphics_ResPrefixFullscreen": "{0}x{1} 전체 화면", + "Graphics_ResPrefixWindowed": "{0}x{1} 창 모드", - "Graphics_VSync": "VSync", + "Graphics_VSync": "수직 동기화", "Graphics_FPS": "FPS", - "Graphics_FPSUnlimited": "Unlimited", + "Graphics_FPSUnlimited": "제한 없음", "Graphics_FPSPanel": "최대 FPS", "Graphics_FPSInCombat": "전투 중", "Graphics_FPSInMenu": "메인 메뉴", @@ -333,13 +355,15 @@ "Graphics_Legacy_Subtitle": "이 설정들은 게임 내에 존재하지 않고 아무 영향도 미치지 않을 수 있어요.", "SpecDisabled": "꺼짐", - "SpecCustom": "Custom", + "SpecCustom": "사용자 지정", "SpecLow": "낮음", "SpecMedium": "중간", "SpecHigh": "높음", "SpecVeryHigh": "매우 높음", "SpecMaximum": "최상", "SpecUltra": "울트라", + "SpecDynamic": "다이나믹", + "SpecGlobal": "전역", "Audio_Title": "오디오 설정", "Audio_Master": "마스터 볼륨", @@ -382,13 +406,13 @@ "CustomArgs_Footer2": "Unity Standalone 명령줄 문서를", "CustomArgs_Footer3": "참조해 더 많은 인수를 확인하세요.", - "GameBoost": "게임 우선 순위 올리기 [실험 기능]", - "MobileLayout": "모바일 레이아웃 사용하기", + "GameBoost": "게임 우선 순위 올리기", + "MobileLayout": "모바일 레이아웃 사용", "Advanced_Title": "고급 설정", - "Advanced_Subtitle1": "Collapse Launcher Team", - "Advanced_Subtitle2": "IS NOT RESPONSIBLE", - "Advanced_Subtitle3": "for anything happened to your game, account or system while this settings is in use! Use at your own risk.", + "Advanced_Subtitle1": "Collapse Launcher 팀은 이 설정을 사용하는 동안 게임, 계정 또는 시스템에 발생한 어떤 일에도", + "Advanced_Subtitle2": "책임지지 않아요!", + "Advanced_Subtitle3": "유의해서 사용해 주세요.", "Advanced_GLC_WarningAdmin": "경고: 입력한 명령어는 관리자 권한으로 실행될 거예요!", "Advanced_GLC_PreLaunch_Title": "사전 실행 명령어", "Advanced_GLC_PreLaunch_Subtitle": "게임 실행 전 실행할 명령어", @@ -404,10 +428,12 @@ "Debug": "추가 설정", "Debug_Console": "콘솔 표시", "Debug_IncludeGameLogs": "게임 로그를 Collapse의 로그에 저장 (중요한 데이터가 포함되어 있을 수 있어요)", + "Debug_SendRemoteCrashData": "개발자에게 익명 충돌 보고서 보내기", + "Debug_SendRemoteCrashData_EnvVarDisablement": "This setting is disabled due to 'DISABLE_SENTRY' environment variable being set to true.", "Debug_MultipleInstance": "여러 인스턴스에서 실행 허용", "ChangeRegionWarning_Toggle": "서버 변경 경고 표시", - "ChangeRegionInstant_Toggle": "Instantly Change Region on Selection", + "ChangeRegionInstant_Toggle": "서버 선택 시 즉시 변경", "ChangeRegionWarning_Warning": "*이 설정을 적용하려면 앱을 다시 시작해야 해요.", "Language": "앱 언어", @@ -420,7 +446,7 @@ "AppThemes_Dark": "다크", "AppThemes_ApplyNeedRestart": "*테마 변경 사항을 적용하려면 앱을 다시 시작해야 해요.", - "IntroSequenceToggle": "Use Intro Animation Sequence", + "IntroSequenceToggle": "시작 애니메이션 사용", "AppWindowSize": "창 크기", "AppWindowSize_Normal": "일반", @@ -430,7 +456,8 @@ "AppBG": "앱 배경", "AppBG_Checkbox": "사용자 지정 배경 사용", - "AppBG_Note": "Accepted formats:\r\nImage: {0}\r\nVideo: {1}", + "AppBG_Note": "지원하는 확장자:\r \n이미지: {0}\r \n비디오: {1}", + "AppBG_Note_Regional": "서버 별 사용자 지정 배경 설정은 런처 홈의 \"빠른 설정\" 버튼에 있어요.", "AppThreads": "앱 스레드", "AppThreads_Download": "다운로드 스레드", @@ -442,19 +469,21 @@ "AppThreads_Help5": "이 스레드는 게임을 설치/복구하는 동안 압축 해제/무결성 검사 작업을 처리해요.", "AppThreads_Help6": "참고: 이 설정은 더 이상 붕괴3rd 설치와 작동하지 않아요.", - "SophonSettingsTitle": "Sophon Mode Settings", - "SophonHelp_Title": "What is Sophon Downloader Mode?", - "SophonHelp_1": "\"Sophon\" is a new download mechanism introduced by HoYoVerse recently and allows files to be downloaded into \"chunks\" rather than downloading a big ZIP archive. The benefits are mainly a lower drive space requirement and increased efficiency for downloads and updates.", - "SophonHelp_2": "This method might be slower for those who uses Hard Drives for their game.", - "SophonHelp_IndicatorTitle": "Indicator Icons", - "SophonHelp_Indicator1": "File Size to Write on Disk", - "SophonHelp_Indicator2": "File Size to Download", - "SophonHelp_Indicator3": "Disk I/O Speed on Write", - "SophonHelp_Indicator4": "Network I/O Speed on Write", - "SophonHelp_Thread": "This controls number of simultaneous chunks download Collapse is doing. Lower this value if you get sudden stuck when downloading.", - "SophonHttpNumberBox": "Maximum HTTP Connections", + "SophonSettingsTitle": "Sophon 모드 설정", + "SophonHelp_Title": "Sophon 다운로드 모드가 뭔가요?", + "SophonHelp_1": "\"Sophon\"은 HoYoVerse에서 최근에 도입한 새로운 다운로드 매커니즘으로, 대용량 zip 아카이브를 다운받는 대신 파일을 \"청크\"로 나누어 다운로드 할 수 있게 해줘요. 이것으로 얻는 이점은 주로 드라이브의 여유 공간을 적게 요구하게 되며 다운로드와 업데이트의 효율성이 향상돼요.", + "SophonHelp_2": "이 방법은 하드 드라이브를 게임에 사용하는 경우 더 느려질 수 있어요.", + "SophonHelp_IndicatorTitle": "상태 표시 아이콘", + "SophonHelp_Indicator1": "디스크에 기록해야 하는 파일의 전체 크기", + "SophonHelp_Indicator2": "다운로드 중인 파일의 크기", + "SophonHelp_Indicator3": "현재 디스크 쓰기 속도", + "SophonHelp_Indicator4": "현재 다운로드 속도", + "SophonHelp_Thread": "이 항목은 Collapse가 동시에 처리하는 청크의 수를 제어해요. 다운로드 중에 갑자기 멈추는 경우 이 값을 낮춰주세요.", + "SophonHttpNumberBox": "최대 HTTP 연결 수", "SophonHelp_Http": "This controls maximum number of network connection being established by Collapse to download the chunks.", - "SophonToggle": "Enable Sophon on Supported Regions", + "SophonToggle": "지원하는 서버에서 Sophon 사용", + "SophonPredownPerfMode_Toggle": "사전 다운로드 적용 시 CPU의 모든 코어 사용 [실험 기능]", + "SophonPredownPerfMode_Tooltip": "활성화 하면 시스템에서 CPU 쓰레드를 이용 가능한 최대치로 사용하게 될 거에요. 문제가 발생하면 이 설정을 비활성화 해주세요.", "AppThreads_Attention": "주의", "AppThreads_Attention1": "​", @@ -463,15 +492,19 @@ "AppThreads_Attention4": "다운로드에 필요한 세션 수가 일치하지 않아", "AppThreads_Attention5": "전체를 다시 다운로드", "AppThreads_Attention6": "해야 할 수도 있어요.", + "AppThreads_AttentionTop1": "아래의 문제는 ", + "AppThreads_AttentionTop2": "설정을 사용하면 해결할 수 있어요.", "DiscordRPC": "Discord 활동 상태", "DiscordRPC_Toggle": "Discord 활동 상태 표시", - "DiscordRPC_GameStatusToggle": "디스코드 활동 상태에 현재 게임 표시", + "DiscordRPC_GameStatusToggle": "Discord 활동 상태에 현재 게임 표시", "DiscordRPC_IdleStatusToggle": "대기 중일 때 활동 상태 표시", - "VideoBackground": "Video Background Settings", - "VideoBackground_IsEnableAudio": "Enable Audio", - "VideoBackground_AudioVolume": "Audio Volume", + "ImageBackground": "이미지 배경 설정", + "VideoBackground": "비디오 배경 설정", + "VideoBackground_IsEnableAudio": "오디오 활성화", + "VideoBackground_IsEnableAcrylicBackground": "비디오 배경을 사용 중인 경우 아크릴 효과를 적용", + "VideoBackground_AudioVolume": "볼륨", "Update": "업데이트 확인", "Update_CurVer": "현재 버전:", @@ -480,8 +513,8 @@ "Update_NewVer1": "버전", "Update_NewVer2": "(으)로 업데이트 할 수 있어요!", "Update_LatestVer": "최신 버전을 사용하고 있어요.", - "Update_SeeChangelog": "See Latest Changes (EN)", - "Update_ChangelogTitle": "Latest Changes", + "Update_SeeChangelog": "최신 변경 사항 확인하기 (영어)", + "Update_ChangelogTitle": "최신 변경 사항", "AppFiles": "앱 파일 관리", "AppFiles_OpenDataFolderBtn": "앱 데이터 폴더 열기", @@ -497,28 +530,30 @@ "ContributePRBtn": "기여하기", "ContributorListBtn": "오픈 소스 기여자분들", "HelpLocalizeBtn": "Collapse를 번역할 수 있도록 도와주세요!", + "ShareYourFeedbackBtn": "Share Your Feedback", "About": "정보", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "​", "About_Copyright4": "하에. All rights reserved.", - "LicenseType": "MIT 허가서", + "LicenseType": "MIT 라이선스", "Disclaimer": "면책 조항", "Disclaimer1": "이 앱은", "Disclaimer2": "와 어떠한 관계도 없으며", "Disclaimer3": "완전히 오픈 소스에요. 어떤 기여도 환영해요.", - - "DiscordBtn1": "Armada Discord 참여하기", - "DiscordBtn2": "Honkai Impact 3rd Discord 방문하기", + "WebsiteBtn": "Collapse Launcher의 공식 사이트!", + "DiscordBtn1": "Armada Discord에 참여하세요!", + "DiscordBtn2": "Honkai Impact 3rd Discord", "DiscordBtn3": "Collapse의 공식 Discord!", "AppChangeReleaseChannel": "{0} 릴리스 채널로 변경", "EnableAcrylicEffect": "아크릴 흐림 효과 사용", "EnableDownloadChunksMerging": "다운로드한 패키지 청크 병합", + "Enforce7ZipExtract": "게임 설치/업데이트 시 항상 7-zip 사용", "UseExternalBrowser": "항상 외부 브라우저 사용", "LowerCollapsePrioOnGameLaunch": "게임이 실행됐을 때 Collapse 프로세스 리소스 사용량 감소", @@ -534,51 +569,102 @@ "AppBehavior_PostGameLaunch_ToTray": "트레이로 숨기기", "AppBehavior_PostGameLaunch_Nothing": "아무것도 하지 않기", "AppBehavior_MinimizeToTray": "트레이로 최소화", - "AppBehavior_LaunchOnStartup": "컴퓨터 시작 시 자동으로 Collapse 시작하기", + "AppBehavior_LaunchOnStartup": "컴퓨터 시작 시 자동으로 Collapse 시작", "AppBehavior_StartupToTray": "자동으로 시작할 때 Collapse 창 숨기기", - "Waifu2X_Toggle": "Waifu2X 사용 [실험적 기능]", + "Waifu2X_Toggle": "Waifu2X 사용", "Waifu2X_Help": "Waifu2X를 사용해 배경 이미지를 확대해요.\n켜면 화질이 크게 향상되지만 처음 이미지를 로드하는 데 조금 더 시간이 걸릴 거에요.", - "Waifu2X_Help2": "Only available for still images!", + "Waifu2X_Help2": "움직이지 않는 이미지에만 사용이 가능해요!", "Waifu2X_Warning_CpuMode": "경고: 사용 가능한 Vulkan GPU 장치를 찾을 수 없어 CPU 모드를 사용할 거예요. 이렇게 되면 이미지 처리 시간이 크게 늘어날 거예요.", "Waifu2X_Warning_D3DMappingLayers": "경고: 시스템에 \"OpenCL™, OpenGL®, Vulkan® 호환 팩\"이 설치되어 있어요. Vulkan 로더와 호환되지 않아서 일부 GPU에서 충돌이 발생할 수 있다고 해요. GPU 모드를 사용하려면 이 팩을 제거해 주세요.", "Waifu2X_Error_Loader": "에러: Vulkan 로더 설정에 실패했어요. 적절한 GPU 드라이버가 설치된 Vulkan 호환 GPU를 사용하고 있는지 확인해 주세요.", "Waifu2X_Error_Output": "에러: Waifu2X 자체 테스트를 통과하지 못했어요. 비어있는 출력 이미지를 받았어요.", - "NetworkSettings_Title": "Network Settings", - "NetworkSettings_Proxy_Title": "Proxy Settings", - - "NetworkSettings_Proxy_Hostname": "Proxy Hostname", - "NetworkSettings_Proxy_HostnameHelp1": "Represents the URL of the Proxy to use.", - "NetworkSettings_Proxy_HostnameHelp2": "Collapse can only support", - "NetworkSettings_Proxy_HostnameHelp3": "HTTP/HTTPS and SOCKS4/4a/5", - "NetworkSettings_Proxy_HostnameHelp4": "type of proxy at the moment.", - - "NetworkSettings_ProxyWarn_UrlInvalid": "The URL entered is not valid!", - "NetworkSettings_ProxyWarn_NotSupported": "The proxy scheme is not supported! Collapse only supports http://, https://, socks4://, socks4a:// and socks5://", - - "NetworkSettings_Proxy_Username": "Proxy Username", - "NetworkSettings_Proxy_UsernamePlaceholder": "Enter Proxy Username", - "NetworkSettings_Proxy_UsernameHelp1": "Default:", - "NetworkSettings_Proxy_UsernameHelp2": "[Empty]", - "NetworkSettings_Proxy_UsernameHelp3": "Leave this field empty if your proxy doesn't require authentication.", - - "NetworkSettings_Proxy_Password": "Proxy Password", - "NetworkSettings_Proxy_PasswordPlaceholder": "Enter Proxy Password", - "NetworkSettings_Proxy_PasswordHelp1": "Default:", - "NetworkSettings_Proxy_PasswordHelp2": "[Empty]", - "NetworkSettings_Proxy_PasswordHelp3": "Leave this field empty if your proxy doesn't require authentication.", - - "NetworkSettings_ProxyTest_Button": "Test Proxy Connectivity", - "NetworkSettings_ProxyTest_ButtonChecking": "Checking Connectivity...", - "NetworkSettings_ProxyTest_ButtonSuccess": "Proxy Connectivity Test is Successful!", - "NetworkSettings_ProxyTest_ButtonFailed": "Test Failed! Proxy is not Reachable", - - "NetworkSettings_Http_Title": ".NET HTTP Client Settings", - "NetworkSettings_Http_Redirect": "Allow HTTP Redirection", - "NetworkSettings_Http_SimulateCookies": "Allow Simulate HTTP Cookies", - "NetworkSettings_Http_UntrustedHttps": "Allow Untrusted HTTPS Certificate", - "NetworkSettings_Http_Timeout": "HTTP Client Timeout (in Seconds)" + "NetworkSettings_Title": "네트워크 설정", + "NetworkSettings_Proxy_Title": "프록시 설정", + + "NetworkSettings_Proxy_Hostname": "프록시 호스트 이름", + "NetworkSettings_Proxy_HostnameHelp1": "사용할 프록시의 URL을 지정해요.", + "NetworkSettings_Proxy_HostnameHelp2": "Collapse는", + "NetworkSettings_Proxy_HostnameHelp3": "HTTP/HTTPS 와 SOCKS4/4a/5", + "NetworkSettings_Proxy_HostnameHelp4": "방식의 프록시만 지원해요.", + + "NetworkSettings_ProxyWarn_UrlInvalid": "입력한 URL이 잘못되었어요!", + "NetworkSettings_ProxyWarn_NotSupported": "프록시 스키마가 지원되지 않아요! Collapse는 오직 https://, https://, socks4://, socks4a:// 와 socks5:// 만 지원해요.", + + "NetworkSettings_Proxy_Username": "프록시 사용자이름", + "NetworkSettings_Proxy_UsernamePlaceholder": "프록시 사용자이름 입력", + "NetworkSettings_Proxy_UsernameHelp1": "기본:", + "NetworkSettings_Proxy_UsernameHelp2": "[비어있음]", + "NetworkSettings_Proxy_UsernameHelp3": "프록시에 인증이 필요하지 않은 경우 이 칸을 비워두세요.", + + "NetworkSettings_Proxy_Password": "프록시 비밀번호", + "NetworkSettings_Proxy_PasswordPlaceholder": "프록시 비밀번호 입력", + "NetworkSettings_Proxy_PasswordHelp1": "기본:", + "NetworkSettings_Proxy_PasswordHelp2": "[비어있음]", + "NetworkSettings_Proxy_PasswordHelp3": "프록시에 인증이 필요하지 않은 경우 이 칸을 비워두세요.", + + "NetworkSettings_ProxyTest_Button": "프록시 연결 테스트", + "NetworkSettings_ProxyTest_ButtonChecking": "연결 확인 중...", + "NetworkSettings_ProxyTest_ButtonSuccess": "프록시 연결 테스트가 성공했어요!", + "NetworkSettings_ProxyTest_ButtonFailed": "테스트 실패! 프록시에 연결할 수 없어요", + + "NetworkSettings_Http_Title": ".NET HTTP 클라이언트 설정", + "NetworkSettings_Http_Redirect": "HTTP 리디렉션 허용", + "NetworkSettings_Http_SimulateCookies": "HTTP 쿠키 시뮬레이션 허용", + "NetworkSettings_Http_UntrustedHttps": "신뢰할 수 없는 HTTPS 인증서 허용", + "NetworkSettings_Http_Timeout": "HTTP 클라이언트 타임아웃 (초 단위)", + + "FileDownloadSettings_Title": "다운로드 설정", + "FileDownloadSettings_SpeedLimit_Title": "다운로드 속도 제한", + "FileDownloadSettings_SpeedLimit_NumBox": "속도 제한 (MiB 단위)", + "FileDownloadSettings_SpeedLimitHelp1": "기본:", + "FileDownloadSettings_SpeedLimitHelp2": "속도 제한 값의 범위:", + "FileDownloadSettings_SpeedLimitHelp3": "1 - 1000 MiB/초", + "FileDownloadSettings_SpeedLimitHelp4": "다운로드에 사용하는 최대 대역폭을 제한해요. 이 설정은", + "FileDownloadSettings_SpeedLimitHelp5": "와 같이 사용되지 않아요.", + + "FileDownloadSettings_NewPreallocChunk_Title": "새로운 사전 할당 다운로더", + "FileDownloadSettings_NewPreallocChunk_Subtitle": "게임 설치, 게임 복구 또는 캐시 업데이트 전용.", + "FileDownloadSettings_NewPreallocChunk_NumBox": "청크 크기 (MiB 단위)", + "FileDownloadSettings_NewPreallocChunkHelp1": "기본:", + "FileDownloadSettings_NewPreallocChunkHelp2": "청크 크기 값의 범위:", + "FileDownloadSettings_NewPreallocChunkHelp3": "1 - 32 MiB", + "FileDownloadSettings_NewPreallocChunkHelp4": "이 설정이 켜져 있으면 다운로더가 파일 다운로드 중에 파일 크기를 동적으로 사전에 할당해요.", + "FileDownloadSettings_NewPreallocChunkHelp5": "이렇게 하면 다운로더가 청크를 개별 파일로 분할하지 않고 직접 파일에 쓸 수 있어요.", + "FileDownloadSettings_NewPreallocChunkHelp6": "When disabled, the launcher will use the old allocation method, where data chunks will be written into separate files. It will also disable the", + "FileDownloadSettings_NewPreallocChunkHelp7": "and", + "FileDownloadSettings_NewPreallocChunkHelp8": "settings.", + "FileDownloadSettings_NewPreallocChunkHelp9": "참고:", + "FileDownloadSettings_NewPreallocChunkHelp10": "이 기능은 게임 설치 (최초 설치, 업데이트와 사전 설치 등), 게임 복구 및 캐시 업데이트 단계에서만 사용할 수 있어요.", + + "FileDownloadSettings_BurstDownload_Title": "버스트 파일 다운로드 모드", + "FileDownloadSettings_BurstDownload_Subtitle": "게임 복구 시 또는 캐시 업데이트 전용", + "FileDownloadSettings_BurstDownloadHelp1": "기본:", + "FileDownloadSettings_BurstDownloadHelp2": "When enabled, this feature will allow the download process on", + "FileDownloadSettings_BurstDownloadHelp3": "and", + "FileDownloadSettings_BurstDownloadHelp4": "features to run in parallel to make the download process more efficient.", + "FileDownloadSettings_BurstDownloadHelp5": "When disabled, the download process for", + "FileDownloadSettings_BurstDownloadHelp6": "and", + "FileDownloadSettings_BurstDownloadHelp7": "features will use a sequential download process.", + + "Database_Title": "User Synchronizable Database", + "Database_ConnectionOk": "데이터베이스 연결에 성공했어요!", + "Database_ConnectFail": "데이터베이스 연결에 실패했어요, 아래 오류를 확인해 주세요:", + "Database_Toggle": "온라인 데이터베이스 사용", + "Database_Url": "데이터베이스 URL", + "Database_Url_Example": "예: https://db-collapse.turso.io", + "Database_Token": "토큰", + "Database_UserId": "유저 ID", + "Database_GenerateGuid": "UID 생성", + "Database_Validate": "검증 & 설정 저장", + "Database_Error_EmptyUri": "데이터베이스 URL을 비워둘 수 없어요!", + "Database_Error_EmptyToken": "데이터베이스 토큰을 비워둘 수 없어요!", + "Database_Error_InvalidGuid": "사용자 ID가 유효한 GUID가 아니에요!", + "Database_Warning_PropertyChanged": "데이터베이스 설정을 변경했어요", + "Database_ValidationChecking": "설정을 검증하고 있어요...", + "Database_Placeholder_DbUserIdTextBox": "GUID 입력 예시: ed6e8048-e3a0-4983-bd56-ad19956c701f", + "Database_Placeholder_DbTokenPasswordBox": "여기에 인증 토큰을 입력해 주세요" }, "_Misc": { @@ -592,12 +678,13 @@ "TimeRemainHMSFormat": "{0:%h}시간 {0:%m}분 {0:%s}초 남음", "TimeRemainHMSFormatPlaceholder": "--시간 --분 --초 남음", "Speed": "속도: {0}/초", - "SpeedTextOnly": "Speed", + "SpeedTextOnly": "속도", "SpeedPerSec": "{0}/초", "SpeedPlaceholder": "속도: - /초", "PerFromTo": "{0} / {1}", "PerFromToPlaceholder": "- / -", + "EverythingIsOkay": "완벽해요!", "Cancel": "취소", "Close": "닫기", "UseCurrentDir": "현재 경로 사용", @@ -643,14 +730,14 @@ "LangNameKR": "한국어", "Downloading": "다운로드 중", - "Updating": "Updating", - "UpdatingAndApplying": "Update + Applying", - "Applying": "Applying", + "Updating": "업데이트 중", + "UpdatingAndApplying": "업데이트 + 적용 중", + "Applying": "적용 중", "Merging": "병합 중", "Idle": "대기 중", "Change": "변경", "Cancelled": "취소됨", - "FinishingUp": "Finishing Up", + "FinishingUp": "곧 마무리 돼요", "Extracting": "압축 해제 중", "Converting": "변환 중", "Patching": "패치 중", @@ -666,6 +753,7 @@ "Disabled": "꺼짐", "Enabled": "켜짐", "UseAsDefault": "기본으로 사용", + "Default": "기본", "BuildChannelPreview": "미리 보기", "BuildChannelStable": "안정", @@ -673,8 +761,8 @@ "CDNDescription_Github": "런처의 공식 (기본) 저장소", "CDNDescription_Cloudflare": "Cloudflare R2 버킷에서 호스팅되는 공식 (기본) 저장소 미러", "CDNDescription_Bitbucket": "Bitbucket에서 호스팅되는 공식 (기본) 저장소 미러", - "CDNDescription_GitLab": "A mirror of the official (main) repository hosted in GitLab.", - "CDNDescription_Coding": "A mirror of the official (main) repository hosted in Coding.", + "CDNDescription_GitLab": "GitLab에서 호스팅되는 공식 (기본) 저장소 미러.", + "CDNDescription_Coding": "Coding에서 호스팅되는 공식 (기본) 저장소 미러.", "LocateExecutable": "실행 파일 지정", "OpenDownloadPage": "다운로드 페이지 열기", @@ -691,10 +779,10 @@ "DiscordRP_Ad": "- Collapse Launcher", "DiscordRP_Region": "서버:", - "DownloadModeLabelSophon": "Sophon Mode", + "DownloadModeLabelSophon": "Sophon 모드", - "Taskbar_PopupHelp1": "Click to bring Collapse to foreground", - "Taskbar_PopupHelp2": "Double click to toggle windows visibility", + "Taskbar_PopupHelp1": "클릭하여 Collapse를 포그라운드로 가져오기", + "Taskbar_PopupHelp2": "두 번 클릭하여 창을 표시하거나 숨기기", "Taskbar_ShowApp": "Collapse 창 표시", "Taskbar_HideApp": "작업 표시줄에 Collapse 창 숨기기", "Taskbar_ShowConsole": "Collapse 콘솔 창 표시", @@ -706,7 +794,24 @@ "LauncherNameSteam": "Steam", "LauncherNameUnknown": "(런처 이름 알 수 없음)", - "ImageCropperTitle": "이미지 자르기" + "ImageCropperTitle": "이미지 자르기", + + "IsBytesMoreThanBytes": "= {0} bytes (-/+ {1})", + "IsBytesUnlimited": "= 무제한", + "IsBytesNotANumber": "= 숫자로 입력해 주세요", + + "MissingVcRedist": "Visual C/C++ 재배포 가능 패키지를 찾을 수 없어요", + "MissingVcRedistSubtitle": "이 기능을 실행하려면 Visual C/C++ 재배포 가능 패키지를 설치해야 해요. 지금 설치하시겠어요?\r \n참고: 브라우저 창이 열리고 Microsoft에서 파일을 다운로드 할 거에요. 다운로드 후 설치 프로그램을 실행한 다음 Collapse를 재시작 해서 다시 시도해 주세요.\r \n이미 설치했지만 오류가 남아있는 경우, GitHub의 issue로 저희에게 알려주세요.", + "ExceptionFeedbackBtn": "무슨 일이 있었는지 말씀해 주세요", + "ExceptionFeedbackBtn_Unavailable": "충돌 보고서가 비활성화 되어 있거나 현재 사용할 수 없어요", + "ExceptionFeedbackBtn_FeedbackSent": "피드백이 전송되었어요!", + "ExceptionFeedbackTitle": "무슨 일이 있었는지 말씀해 주세요:", + "ExceptionFeedbackTemplate_User": "사용자 이름 (선택 사항):", + "ExceptionFeedbackTemplate_Email": "이메일 (선택 사항):", + "ExceptionFeedbackTemplate_Message": "이 줄 뒤에 피드백을 작성해 주세요", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { @@ -753,11 +858,11 @@ "RepairCompletedSubtitle": "{0}개의 파일이 복구되었어요.", "RepairCompletedSubtitleNoBroken": "손상된 파일을 찾을 수 없어요.", "ExtremeGraphicsSettingsWarnTitle": "매우 높은 설정 프리셋이 선택되었어요!", - "ExtremeGraphicsSettingsWarnSubtitle": "설정 프리셋을 매우 높음으로 설정할려고 해요!\r\n매우 높음 설정 프리셋은 기본적으로 MSAA가 활성화되면 렌더 스케일이 2배가 되며 전혀 최적화되어있지 않아요! (NASA의 슈퍼컴퓨터를 가지고 있지 않다면 말이죠).\r\n\r\n이 설정을 사용하시겠어요?", + "ExtremeGraphicsSettingsWarnSubtitle": "프리셋을 매우 높음으로 설정하려고 해요!\r \n매우 높음 프리셋은 기본적으로 MSAA가 활성화된 1.6x 렌더링 스케일을 사용하며 전혀 최적화 되어있지 않아요!\r \n\r \n이 설정을 사용하시겠어요?", "MigrateExistingMoveDirectoryTitle": "Moving Existing Installation for: {0}", - "MigrateExistingInstallChoiceTitle": "An Existing Installation of {0} is Detected!", - "MigrateExistingInstallChoiceSubtitle1": "You have an existing installation of the game using {0} on this directory:", - "MigrateExistingInstallChoiceSubtitle2": "You have an option to move your existing game data into another directory or use the current directory as the existing one. It's recommended that you use the current directory as the one already installed to ensure that you can still launch your game using {0}.", + "MigrateExistingInstallChoiceTitle": "이전에 설치한 {0}을 찾았어요! ", + "MigrateExistingInstallChoiceSubtitle1": "이 경로에 {0}를 사용하는 게임이 이미 설치되어 있어요:", + "MigrateExistingInstallChoiceSubtitle2": "기존의 게임 데이터를 다른 경로로 이동하거나 기존의 경로를 그대로 사용할 수도 있어요. {0}를 사용하여 게임을 계속 실행할 수 있도록 이미 사용 중인 경로를 선택 하는 것이 좋아요.", "ExistingInstallTitle": "기존 설치가 감지되었어요!", "ExistingInstallSubtitle": "게임이 다음 경로에 이미 설치되어 있어요:\r\n\r\n{0}\r\n\r\n게임을 Collapse Launcher로 이동하는 것을 추천드려요.\r\n게임을 이동하더라도 공식 런처를 사용하여 게임을 시작할 수 있어요.\r\n\r\n계속하시겠어요?", "ExistingInstallBHI3LTitle": "BetterHi3Launcher의 기존 설치가 감지되었어요!", @@ -772,14 +877,14 @@ "SteamConvertFailedSubtitle": "변환 작업이 실패했어요! :(\n변환 작업을 다시 시작해 보세요.", "InstallDataCorruptTitle": "게임 설치 손상됨", "InstallDataCorruptSubtitle": "다운로드된 파일이 손상되었어요.\r\n\r\n서버 해시: {0}\r\n다운로드된 해시: {1}\r\n\r\n파일을 다시 다운로드하시겠어요?", - "InstallCorruptDataAnywayTitle": "Extract Corrupted Data", - "InstallCorruptDataAnywaySubtitle1": "You're about to extract this corrupted data: ", + "InstallCorruptDataAnywayTitle": "압축 해제 중 손상된 데이터 발견", + "InstallCorruptDataAnywaySubtitle1": "이 손상된 데이터를 압축 해제 하려고 해요:", "InstallCorruptDataAnywaySubtitle2": "{0} - {1} ({2} bytes)", - "InstallCorruptDataAnywaySubtitle3": ". Keep in-mind that the extraction for this data might fail or renders the game fail to run.\r\n\r\nAre you sure to extract this data anyway?", + "InstallCorruptDataAnywaySubtitle3": ". 압축 해제에 실패하거나, 게임 그래픽이 제대로 렌더링 되지 않을 수 있어요.\r \n\r \n압축 해제를 계속 진행할까요?", "InstallDataDownloadResumeTitle": "다운로드를 다시 시작하시겠어요?", "InstallDataDownloadResumeSubtitle": "이전에 게임의 {0}/{1}을(를) 다운로드했어요.\r\n\r\n다운로드를 다시 시작하시겠어요?", "InsufficientDiskTitle": "디스크 공간 부족", - "InsufficientDiskSubtitle": "You do not have enough free space to install this game on your {2} drive!\r\n\r\nFree Space: {0}\r\nRequired Space: {1}\r\n\r\nPlease ensure that you have enough disk space before proceeding with the installation.", + "InsufficientDiskSubtitle": "{2} 드라이브에 이 게임을 설치할 공간이 부족해요!\r \n\r \n사용 가능한 공간: {0}\r \n필요한 공간: {1}.\r \n\r \n설치를 진행하기 전에 먼저 충분한 공간을 확보해 주세요.", "RelocateFolderTitle": "앱 데이터 폴더 경로 변경", "RelocateFolderSubtitle": "현재 이 폴더를 앱 데이터 폴더로 사용하고 있어요:\r\n\r\n {0}\r\n\r\n경로를 변경하시겠어요?", "UninstallGameTitle": "게임 삭제 중: {0}", @@ -815,36 +920,56 @@ "ReleaseChannelChangeSubtitle2": "참고:", "ReleaseChannelChangeSubtitle3": "이 작업으로 인해 되돌릴 수 없는 변경이나 비호환성이 발생할 수 있어요.", + "ForceUpdateCurrentInstallTitle": "Force-update Current Installation", + "ForceUpdateCurrentInstallSubtitle1": "You are about to perform a forced-update to your current:", + "ForceUpdateCurrentInstallSubtitle2": "installation and we recommend you to close your currently opened game(s).", + "ChangePlaytimeTitle": "정말로 플레이 시간을 변경하시겠어요?", "ChangePlaytimeSubtitle": "플레이 시간을 변경한다는 것은 방금 입력한 값으로 현재 값을 덮어쓰는 것을 의미해요.\n\n정말로 계속하시겠어요?\n\n참고: 이 변경은 Collapse 작동에 영향을 미치지 않고 게임을 플레이하지 않을 때는 언제든지 이 값을 변경할 수 있어요.", "ResetPlaytimeTitle": "정말로 플레이 시간을 초기화하시겠어요?", - "ResetPlaytimeSubtitle": "플레이 시간을 초기화한다는 것은 플레이 시간을 다시 0으로 설정한다는 것을 의미해요. 이 초기화는 ", + "ResetPlaytimeSubtitle": "Resetting your playtime means setting the playtime counter and all related statistics back to 0. This is a ", "ResetPlaytimeSubtitle2": "치명적인", "ResetPlaytimeSubtitle3": " 설정이고, 되돌릴 수 없어요. \n\n정말로 계속하시겠어요?\n\n참고: 이 변경은 Collapse 작동에 영향을 미치지 않고 게임을 플레이하지 않을 때는 언제든지 이 값을 변경할 수 있어요.", - "InvalidPlaytimeTitle": "There was a problem saving this session's playtime", + "InvalidPlaytimeTitle": "이 세션의 플레이 시간을 저장하는데 문제가 발생했어요", "InvalidPlaytimeSubtitle1": "The difference between the starting and ending times results in a negative number.", "InvalidPlaytimeSubtitle2": "A fallback value is saved every minute and will be used instead:", - "InvalidPlaytimeSubtitle3": "Please refrain from adjusting the computer clock while in-game.", + "InvalidPlaytimeSubtitle3": "게임 내 에서는 컴퓨터의 시간을 조정하지 마세요.", "LocateExePathTitle": "실행 파일 설치 경로 지정", "LocateExePathSubtitle": "Please point Collapse to the location of your application's executable:", "CannotUseAppLocationForGameDirTitle": "폴더가 올바르지 않아요!", - "CannotUseAppLocationForGameDirSubtitle": "You can't use this folder as it is being used as a system folder or being used for main executable of the app. Please choose another folder!", + "CannotUseAppLocationForGameDirSubtitle": "이 폴더는 시스템 폴더로 사용되거나 앱의 주요 실행 폴더로 사용되기 때문에 이 폴더를 사용할 수 없어요. 다른 폴더를 선택해 주세요!", + "InvalidGameDirNewTitleFormat": "경로가 올바르지 않아요: {0}", + "InvalidGameDirNewSubtitleSelectedPath": "선택한 위치:", + "InvalidGameDirNewSubtitleSelectOther": "다른 폴더/위치를 선택해 주세요!", + "InvalidGameDirNew1Title": "폴더가 올바르지 않아요!", + "InvalidGameDirNew1Subtitle": "이 폴더는 시스템 폴더로 사용되거나 앱의 주요 실행 폴더로 사용되기 때문에 이 폴더를 사용할 수 없어요. 다른 폴더를 선택해 주세요!", + "InvalidGameDirNew2Title": "선택한 폴더에 엑세스할 수 없어요", + "InvalidGameDirNew2Subtitle": "런처가 이 폴더에 접근할 권한을 가지고 있지 않아요!", + "InvalidGameDirNew3Title": "최상위 디렉터리를 선택할 수 없어요", + "InvalidGameDirNew3Subtitle": "선택한 경로는 최상위 디렉터리 경로여서 사용할 수 없어요!", + "InvalidGameDirNew4Title": "Windows 폴더를 선택할 수 없어요", + "InvalidGameDirNew4Subtitle": "귀찮은 일이 생기는 걸 막기 위해 Windows 폴더를 게임 설치 위치로 사용할 수 없어요.", + "InvalidGameDirNew5Title": "Program Data 폴더를 선택할 수 없어요 ", + "InvalidGameDirNew5Subtitle": "귀찮은 일이 생기는 걸 막기 위해 Program Data 폴더를 게임 설치 위치로 사용할 수 없어요.", + "InvalidGameDirNew6Title": "Program Files 또는 Program Files (x86) 폴더를 선택할 수 없어요", + "InvalidGameDirNew6Subtitle": "귀찮은 일이 생기는 걸 막기 위해 Program Files 또는 Program Files (x86) 폴더를 게임 설치 위치로 사용할 수 없어요.", + "FolderDialogTitle1": "게임 설치 위치 선택", "StopGameTitle": "게임 강제 종료", - "StopGameSubtitle": "Are you sure you want to force stop current running game?\r\nYou may lose some in-game progress.", + "StopGameSubtitle": "현재 실행 중인 게임을 정말로 강제 종료 하시겠어요?\r \n게임 내의 일부 진행 사항을 잃을 수 있어요.", - "MeteredConnectionWarningTitle": "Metered Connection Detected!", - "MeteredConnectionWarningSubtitle": "Your current internet connection was detected as being 'Metered'! Continuing the update process may incur additional charges from your internet provider. Do you wish to proceed?", + "MeteredConnectionWarningTitle": "데이터 요금제 연결이 감지되었어요!", + "MeteredConnectionWarningSubtitle": "현재 인터넷 연결이 \"데이터 요금제 연결\"임을 감지했어요! 업데이트 과정을 계속할 경우 인터넷 공급업체로부터 추가적인 요금이 발생할 수 있어요. 이대로 계속할까요?", - "ResetKbShortcutsTitle": "Are you sure you want to reset all shortcuts?", - "ResetKbShortcutsSubtitle": "This means every shortcut will be changed to their default key combination. \n\nDo you wish to proceed?\n\nNote: This has no impact on how Collapse operates and you can still change the combination of shortcuts by accessing the Keyboard Shortcuts menu.", + "ResetKbShortcutsTitle": "정말 단축키 설정을 초기화 하시겠어요?", + "ResetKbShortcutsSubtitle": "이는 모든 단축키 설정이 초기 기본 상태로 변경됨을 의미해요. \n\n계속하시겠어요? \n\n참고: 이 작업은 Collapse 작동에 영향을 미치지 않으며, 키보드 단축키 설정에서 얼마든지 다시 단축키 조합을 바꿀 수 있어요.", - "OperationErrorDiskSpaceInsufficientTitle": "Disk Space for Drive: {0} is Insufficient!", - "OperationErrorDiskSpaceInsufficientMsg": "You do not have enough free space to do the operation on your {2} drive!\r\n\r\nFree Space: {0}\r\nRequired Space: {1}.\r\n\r\nPlease ensure that you have enough disk space before proceeding.", + "OperationErrorDiskSpaceInsufficientTitle": "드라이브: {0}의 디스크 공간이 부족해요!", + "OperationErrorDiskSpaceInsufficientMsg": "{2} 드라이브에 이 게임을 설치할 공간이 부족해요!\r \n\r \n사용 가능한 공간: {0}\r \n필요한 공간: {1}.\r \n\r \n설치를 진행하기 전에 먼저 충분한 공간을 확보해 주세요.", - "OperationWarningNotCancellableTitle": "Attention: This Operation is NOT CANCELLABLE!", + "OperationWarningNotCancellableTitle": "주의: 이 작업은 취소할 수 없습니다!", "OperationWarningNotCancellableMsg1": "You might need to check that you don't have any heavy tasks running on your computer to avoid possible issues while the process is running. Keep in-mind that you ", "OperationWarningNotCancellableMsg2": "이 진행을 취소할 수 없습니다", "OperationWarningNotCancellableMsg3": " while it's running!\r\n\r\nClick \"", @@ -854,52 +979,83 @@ "GenericWarningExceptionTitle": "경고", "GenericWarningExceptionSubtitle": "This isn't a major issue, but we thought we should let you know:", - "ShortcutCreationConfirmTitle": "Are you sure you want to continue?", - "ShortcutCreationConfirmSubtitle1": "A shortcut will be created in the following path:", - "ShortcutCreationConfirmSubtitle2": "If there is already a shortcut with the same name in this folder, it will be replaced.", - "ShortcutCreationConfirmCheckBox": "Automatically start game after using this shortcut", + "ShortcutCreationConfirmTitle": "정말로 계속 하시겠어요?", + "ShortcutCreationConfirmSubtitle1": "이 위치에 바로 가기가 생성될 거에요:", + "ShortcutCreationConfirmSubtitle2": "만약 폴더에 이미 같은 이름의 바로 가기가 있는 경우 덮어 쓸 거에요.", + "ShortcutCreationConfirmCheckBox": "바로 가기를 사용할 시 게임과 런처를 모두 시작", "ShortcutCreationSuccessTitle": "성공!", - "ShortcutCreationSuccessSubtitle1": "A shiny new shortcut was created!", + "ShortcutCreationSuccessSubtitle1": "반짝한 새 바로 가기가 만들어 졌어요! ", "ShortcutCreationSuccessSubtitle2": "경로: ", "ShortcutCreationSuccessSubtitle3": "참고:", - "ShortcutCreationSuccessSubtitle4": " • Using this shortcut will start the game after loading the region.", - "ShortcutCreationSuccessSubtitle5": " • If the game is not installed/updated, Collapse will try to install/update it. Please note that dialogs related to these processes will still be shown.", + "ShortcutCreationSuccessSubtitle4": "• 바로 가기를 사용했을 때 서버를 먼저 불러온 후 게임이 시작돼요.", + "ShortcutCreationSuccessSubtitle5": "• 만약 게임이 설치/업데이트가 되어 있지 않은 경우, Collapse는 설치/업데이트를 시도할 거에요. 이러한 프로세스에 관한 대화 상자는 계속 표시 됨을 참고해 주세요.", - "SteamShortcutCreationConfirmTitle": "Are you sure you want to continue?", - "SteamShortcutCreationConfirmSubtitle1": "A shortcut will be added to every Steam user in this computer.", + "SteamShortcutCreationConfirmTitle": "정말로 계속 하시겠어요?", + "SteamShortcutCreationConfirmSubtitle1": "Steam에 로그인 되어있는 사용자의 라이브러리에 바로 가기가 추가될 거에요.", "SteamShortcutCreationConfirmSubtitle2": "If already added, the assets related to the shortcut will be verified.", - "SteamShortcutCreationConfirmCheckBox": "Automatically start game after using this shortcut", + "SteamShortcutCreationConfirmCheckBox": "바로 가기를 사용할 시 게임과 런처를 모두 시작", "SteamShortcutCreationSuccessTitle": "성공!", - "SteamShortcutCreationSuccessSubtitle1": "A new shiny shortcut was added to every Steam users in this computer!", + "SteamShortcutCreationSuccessSubtitle1": "Steam에 로그인 되어있는 사용자의 라이브러리에 반짝 반짝한 바로 가기를 추가했어요!", "SteamShortcutCreationSuccessSubtitle2": "참고:", - "SteamShortcutCreationSuccessSubtitle3": " • Using this shortcut will start the game after loading the region.", - "SteamShortcutCreationSuccessSubtitle4": " • Running this process again will fix any corrupted/missing images belonging to the shortcut.", - "SteamShortcutCreationSuccessSubtitle5": " • New shortcuts will only be shown after Steam is reloaded.", - "SteamShortcutCreationSuccessSubtitle6": " • In order to use the Steam overlay, Steam needs to be run as administrator and Collapse must either be fully closed or have the \"Multiple Instances\" option enabled in the settings.", - "SteamShortcutCreationSuccessSubtitle7": " • If the game is not installed/updated, Collapse will try to install/update it. Please note that dialogs related to these processes will still be shown.", - - "SteamShortcutCreationFailureTitle": "Invalid Steam data folder", - "SteamShortcutCreationFailureSubtitle": "It was not possible to find a valid userdata folder.\n\nPlease be sure to login at least once to the Steam client before trying to use this functionality.", - - "DownloadSettingsTitle": "Download Settings", - "DownloadSettingsOption1": "Start game after install", - - "OpenInExternalBrowser": "Open in External Browser", - "CloseOverlay": "Close Overlay" + "SteamShortcutCreationSuccessSubtitle3": "• 바로 가기를 사용했을 때 서버를 먼저 불러온 후 게임이 시작돼요.", + "SteamShortcutCreationSuccessSubtitle4": "• 이 작업을 다시 실행하면 바로 가기와 관련된 손상 또는 누락된 이미지가 수정돼요.", + "SteamShortcutCreationSuccessSubtitle5": "• 새로운 바로 가기는 Steam을 다시 로드한 후에 표시돼요.", + "SteamShortcutCreationSuccessSubtitle6": "• Steam 오버레이를 사용하려면 Steam을 관리자 권한으로 실행해야 하며 Collapse를 완전히 종료하거나 설정에서 \"여러 인스턴스에서 실행 허용\" 옵션이 켜져 있어야 해요. ", + "SteamShortcutCreationSuccessSubtitle7": "• 만약 게임이 설치/업데이트가 되어 있지 않은 경우, Collapse는 설치/업데이트를 시도할 거에요. 이러한 프로세스에 관한 대화 상자는 계속 표시 됨을 참고해 주세요.", + "SteamShortcutCreationFailureTitle": "Steam 데이터 폴더가 잘못됨", + "SteamShortcutCreationFailureSubtitle": "유효한 사용자 데이터 폴더를 찾지 못했어요. \n\n이 기능을 사용하려면 Steam 클라이언트에 적어도 한 번 이상 로그인이 필요해요.", + "SteamShortcutTitle": "Steam 바로가기", + "SteamShortcutDownloadingImages": "Steam 라이브러리 이미지 다운로드 중 ({0}/{1})", + + "DownloadSettingsTitle": "다운로드 설정", + "DownloadSettingsOption1": "설치 완료 후 게임 시작", + + "OpenInExternalBrowser": "외부 브라우저로 열기", + "CloseOverlay": "오버레이 종료", + + "DbGenerateUid_Title": "정말 유저 ID를 변경 하시겠어요?", + "DbGenerateUid_Content": "사용자 ID를 바꾸기 전 현재 사용자 ID를 잊어버리면 해당 데이터에 접근할 수 없게 돼요.", + + "SophonIncrementUpdateUnavailTitle": "분할 업데이트를 사용할 수 없음: 버전이 너무 오래됨!", + "SophonIncrementUpdateUnavailSubtitle1": "설치되어 있는 버전 {0}이", + "SophonIncrementUpdateUnavailSubtitle2": "너무 오래된 버전이에요", + "SophonIncrementUpdateUnavailSubtitle3": "때문에 설치되어 있는 버전에선 분할 업데이트를 사용할 수 없어요. 하지만 게임의 전체를 다시 다운로드 하는 방식으로 업데이트를 할 수 있어요.", + "SophonIncrementUpdateUnavailSubtitle4": "전체를 다시 다운로드 하려면 \"{0}\"을 클릭하거나 이 작업을 취소하려면 \"{1}\"을 클릭하세요", + + "UACWarningTitle": "경고: UAC가 비활성화 됨이 감지되었어요!", + "UACWarningContent": "사용자 계정 컨트롤 (UAC)를 비활성화 하는 것은 전혀 좋은 생각이 아니에요.\nOS의 보안이 위협 받을 수 있으며 게임이 제대로 실행되지 않을 수도 있어요.\n\n\"더 보기\" 버튼을 클릭하여 UAC를 어떻게 활성화 하는지 알아보세요.\n관련 항목은 다음과 같아요: 관리 승인 모드에서 모든 관리자 실행 ", + "UACWarningLearnMore": "더 보기", + "UACWarningDontShowAgain": "다시 표시하지 않기", + + "EnsureExitTitle": "앱 종료", + "EnsureExitSubtitle": "백그라운드 에서 중요한 작업이 실행 중 이에요. 정말 종료하시겠어요?", + + "UserFeedback_DialogTitle": "생각하고 계신 걸 공유해 주세요", + "UserFeedback_TextFieldTitleHeader": "피드백 제목", + "UserFeedback_TextFieldTitlePlaceholder": "피드백 제목을 여기에 적어주세요...", + "UserFeedback_TextFieldMessageHeader": "메시지", + "UserFeedback_TextFieldMessagePlaceholder": "여기에 메시지를 입력해 주세요...", + "UserFeedback_TextFieldRequired": "(필수 항목)", + "UserFeedback_RatingText": "평가를 부탁 드려요!", + "UserFeedback_CancelBtn": "취소", + "UserFeedback_SubmitBtn": "피드백 공유하기", + "UserFeedback_SubmitBtn_Processing": "처리 중...", + "UserFeedback_SubmitBtn_Completed": "완료되었어요!", + "UserFeedback_SubmitBtn_Cancelled": "취소되었어요!" }, "_FileMigrationProcess": { - "PathActivityPanelTitle": "Moving: ", + "PathActivityPanelTitle": "이동 중:", "SpeedIndicatorTitle": "속도:", - "FileCountIndicatorTitle": "File processed: ", - "LocateFolderSubtitle": "Choose the location to move the file/folder to the target path.", - "ChoosePathTextBoxPlaceholder": "Choose the target path...", - "ChoosePathButton": "Choose Target", - "ChoosePathErrorTitle": "Error has Occured!", - "ChoosePathErrorPathIdentical": "The output path you choose is within or identical to the current location!\r\nPlease move to another location!", - "ChoosePathErrorPathUnselected": "Please choose your path before continue!", - "ChoosePathErrorPathNotExist": "Path does not exist!", - "ChoosePathErrorPathNoPermission": "You don't have a permission to access this location! Please choose another location!" + "FileCountIndicatorTitle": "이동이 끝난 파일:", + "LocateFolderSubtitle": "파일과 폴더를 이동할 경로의 위치를 선택해 주세요.", + "ChoosePathTextBoxPlaceholder": "이동할 경로를 선택해 주세요...", + "ChoosePathButton": "경로 선택하기", + "ChoosePathErrorTitle": "오류가 발생했어요!", + "ChoosePathErrorPathIdentical": "현재 사용 중인 경로와 이동할 경로가 같아요!\r \n이동할 다른 경로를 선택해 주세요!", + "ChoosePathErrorPathUnselected": "계속하기 전에 경로를 선택해 주세요!", + "ChoosePathErrorPathNotExist": "경로가 존재하지 않아요!", + "ChoosePathErrorPathNoPermission": "이 위치에 접근할 수 있는 권한이 없어요! 다른 경로를 선택해 주세요!" }, "_InstallMgmt": { @@ -999,7 +1155,7 @@ "ReleaseNote": "릴리스 노트", "NeverShowNotification": "다시 표시하지 않기", "RemindLaterBtn": "나중에 다시 알림", - "UpdateNowBtn": "지금 업데이트하기", + "UpdateNowBtn": "지금 업데이트", "LoadingRelease": "릴리스 노트를 가져오는 중...", "LoadingReleaseFailed": "릴리스 노트를 가져오는 동안 오류가 발생했어요.\r\n{0}", @@ -1009,7 +1165,7 @@ "UpdateHeader4": "속도:", "UpdateHeader5PlaceHolder": "업데이트 다운로드 중 [- / -]:", - "UpdateForcedHeader": "The launcher will be forcely updated due to urgent changes to ensure the launcher to work properly.", + "UpdateForcedHeader": "긴급 변경 사항으로 인해 런처가 정상적으로 작동하도록 강제 업데이트가 이루어질 예정이에요.", "UpdateStatus1": "업데이트 불러오는 중:", "UpdateMessage1": "업데이트 저장소에 연결하는 중...", @@ -1026,10 +1182,10 @@ "ApplyUpdateTitle1": "We're updating", "ApplyUpdateTitle2": "Collapse Launcher", - "ApplyUpdateCDNSelectorTitle": "Select your CDN for update", - "ApplyUpdateCDNSelectorSubtitle": "Select the CDN options and click \"{0}\" to start the update!", - "ApplyUpdateCDNSelectorSubtitleCount": "The CDN will be automatically selected in: {0}", - "ApplyUpdateUpdateNowBtn": "Update Now!", + "ApplyUpdateCDNSelectorTitle": "업데이트를 받아올 CDN 선택", + "ApplyUpdateCDNSelectorSubtitle": "CDN을 선택하고 {0}를 클릭해 업데이트를 시작하세요!", + "ApplyUpdateCDNSelectorSubtitleCount": "CDN이 {0}초 후에 자동으로 선택돼요", + "ApplyUpdateUpdateNowBtn": "지금 업데이트!", "ApplyUpdateUpdateVersionTitle": "업데이트:", "ApplyUpdateUpdateChannelTitle": "채널:", @@ -1039,10 +1195,14 @@ "ApplyUpdateMiscNone": "없음", "ApplyUpdateVersionSeparator": "to", - "ApplyUpdateErrCollapseRunTitle": "Please close Collapse before applying the update!", - "ApplyUpdateErrCollapseRunSubtitle": "Waiting for Collapse to close...", + "ApplyUpdateErrCollapseRunTitle": "업데이트를 적용하기 전에 Collapse를 종료해 주세요!", + "ApplyUpdateErrCollapseRunSubtitle": "Collapse가 종료되길 기다리는 중...", + "ApplyUpdateErrCollapseRunTitleWarnBox": "Collapse Launcher가 아직 실행중 이에요!", + "ApplyUpdateErrCollapseRunSubtitleWarnBox": "백그라운드에서 실행 중인 Collapse Launcher를 발견했어요. 런처를 강제로 닫으려면 \"네\"를 클릭하고, 직접 수동으로 닫으려면 \"아니요\"를 클릭해 주세요.", + "ApplyUpdateErrVelopackStateBrokenTitleWarnBox": "이전에 설치한 파일이 파손됨!", + "ApplyUpdateErrVelopackStateBrokenSubtitleWarnBox": "이전에 설치한 파일이 파손된 걸 확인했어요.\r \n\r \n\"예\"를 클릭하면 업데이트를 설치하기 전에 복구를 진행하고 \"아니요\"를 클릭하면 업데이트만 설치할 거에요.", "ApplyUpdateErrReleaseFileNotFoundTitle": "ERROR:\r\n\"release\" file doesn't have \"stable\" or \"preview\" string in it", - "ApplyUpdateErrReleaseFileNotFoundSubtitle": "Please check your \"release\" file and try again.", + "ApplyUpdateErrReleaseFileNotFoundSubtitle": "\"release\" 파일을 확인하고 다시 시도해주세요.", "ApplyUpdateDownloadSizePlaceholder": "- B / - B", "ApplyUpdateDownloadSpeed": "{0}/s", @@ -1050,13 +1210,13 @@ "ApplyUpdateDownloadTimeEst": "{0:%h}시간 {0:%m}분 {0:%s}초 남음", "ApplyUpdateDownloadTimeEstPlaceholder": "--시간 --분 --초 남음", - "ApplyUpdateTaskLegacyVerFoundTitle": "A previous legacy installation of Collapse v{0} detected!", - "ApplyUpdateTaskLegacyVerFoundSubtitle1": "We detected that you have a legacy Collapse v{0} installed on your PC. ", - "ApplyUpdateTaskLegacyVerFoundSubtitle2": "The updater needs to clean-up all the old files inside its directory.\r\n", - "ApplyUpdateTaskLegacyVerFoundSubtitle3": "Please make sure you don't have any important files inside of the Collapse directory or it will be COMPLETELY WIPED OUT!", - "ApplyUpdateTaskLegacyVerFoundSubtitle4": "\r\n\r\nClick \"Yes\" to proceed or \"No\" to cancel.", - "ApplyUpdateTaskLegacyVerFoundSubtitle5": "Click \"Yes\" once again to confirm.", - "ApplyUpdateTaskLegacyCleanupCount": "Clean-up process will be started in {0}...", + "ApplyUpdateTaskLegacyVerFoundTitle": "이전 버전의 Collapse v{0}이 설치되어 있어요!", + "ApplyUpdateTaskLegacyVerFoundSubtitle1": "이전 버전의 Collapse v{0}가 PC에 설치되어 있어요.", + "ApplyUpdateTaskLegacyVerFoundSubtitle2": "업데이트를 위해 이전 버전 폴더에 포함된 모든 파일을 정리할 거에요.\r \n", + "ApplyUpdateTaskLegacyVerFoundSubtitle3": "Collapse 폴더 내에 중요한 파일을 절대 저장하지 마세요! 그렇지 않으면 파일을 잃게 될 거에요!", + "ApplyUpdateTaskLegacyVerFoundSubtitle4": "\r \n\r \n\"네\"를 클릭하면 계속 진행하고 \"아니요\"를 클릭하면 작업을 취소해요.", + "ApplyUpdateTaskLegacyVerFoundSubtitle5": "확인을 위해 다시 \"네\"를 눌러주세요.", + "ApplyUpdateTaskLegacyCleanupCount": "정리를 {0}초 뒤에 시작할 거에요...", "ApplyUpdateTaskLegacyDeleting": "삭제 중: {0}...", "ApplyUpdateTaskDownloadingPkgTitle": "패키지 다운로드 중", @@ -1067,7 +1227,7 @@ "ApplyUpdateTaskLauncherUpdatedTitle": "런처가 {0}(으)로 업데이트되었어요!", "ApplyUpdateTaskLauncherUpdatedSubtitle": "{0}초 후에 Collapse가 실행돼요...", - "ApplyUpdateTaskError": "ERROR:\r\nError occurred while applying update!\r\n{0}" + "ApplyUpdateTaskError": "ERROR:\r \n업데이트를 적용하는 중에 오류가 발생했어요!\r \n{0}" }, "_AppNotification": { @@ -1079,14 +1239,14 @@ "NotifFirstWelcomeTitle": "Collapse에 오신 것을 환영해요!", "NotifFirstWelcomeSubtitle": "시작하려면 아래의 \"{0}\" 버튼을 눌러 기존 게임을 설치하거나 이동하는 방법을 확인하세요.", - "NotifFirstWelcomeBtn": "GitHub 위키 방문하기", + "NotifFirstWelcomeBtn": "GitHub 위키 방문", "NotifPreviewBuildUsedTitle": "미리 보기 빌드를 사용하고 있어요!", - "NotifPreviewBuildUsedSubtitle": "현재 테스트 중인 미리 보기 빌드를 사용하고 있어요. 문제가 발생하면 아래의 \"{0}\" 버튼을 사용하여 문제를 보고해 주세요. 감사해요!", + "NotifPreviewBuildUsedSubtitle": "현재 테스트 중인 [미리 보기] 빌드를 사용하고 있어요. 문제가 발생하면 아래의 \"{0}\" 버튼을 사용하여 문제를 보고해 주세요. 감사해요!", "NotifPreviewBuildUsedBtn": "문제 보고", "NotifKbShortcutTitle": "새로운 기능이 도착했어요!", - "NotifKbShortcutSubtitle": "We are introducing a new way to navigate around Collapse, Keyboard Shortcuts.\nYou can now use your keyboard to have faster access to some functionalities!\n\nWanna know more?\nTry using CTRL + Tab or click the button below.", + "NotifKbShortcutSubtitle": "Collapse를 새롭고, 신기한 방법으로 사용할 수 있는 키보드 단축키 기능을 소개할게요. \n이제부터 키보드를 사용해 원하는 기능을 빠르게 사용할 수 있답니다! \n\n더 알고 싶으시다고요? \nCTRL + Tab을 누르거나 아래 버튼을 클릭해 주세요.", "NotifKbShortcutBtn": "모든 단축키 표시" }, @@ -1099,15 +1259,15 @@ "Graphics_ExclusiveFullscreen": "독점 전체 화면 사용", "Graphics_ResSelectPlaceholder": "선택", "Graphics_ResCustom": "사용자 지정 해상도 사용", - "Graphics_ResCustomTooltip": "Custom Resolution can only be used with Resizable Window enabled", + "Graphics_ResCustomTooltip": "이 설정은 크기 조절 가능 창 사용 옵션을 활성화 해야 사용할 수 있어요", "Graphics_ResCustomW": "W", "Graphics_ResCustomH": "높이", "Graphics_FPS": "FPS", "Graphics_FPS_Help": "120 FPS는 실험 기능이에요! 붕괴: 스타레일은 공식적으로 지원하지 않으므로 주의해서 사용해주세요!", - "Graphics_FPS_Help2": "Setting the FPS value to 120 no longer causes the menu to break, but changing the in-game FPS setting to a lower value will no longer work.\r\nShould you use the 120 FPS option, use Collapse to change the Game Graphics Settings.", - "Graphics_VSync": "수직동기화", - "Graphics_VSync_Help": "VSync is not available on 120 FPS", + "Graphics_FPS_Help2": "FPS 값을 120으로 설정해도 더 이상 설정 메뉴가 깨지지 않아요, 다만 게임 내 FPS 설정에서 값을 변경하게 되면 120 FPS를 사용할 수 없게 돼요.\r \n120 FPS 옵션을 사용하려면 Collapse를 사용하여 게임 그래픽 설정을 변경하세요.", + "Graphics_VSync": "수직 동기화", + "Graphics_VSync_Help": "Vsync는 120FPS에서 사용할 수 없어요", "Graphics_RenderScale": "렌더링 스케일", "Graphics_ResolutionQuality": "해상도 품질", "Graphics_ShadowQuality": "그림자 품질", @@ -1118,8 +1278,15 @@ "Graphics_BloomQuality": "광원 품질", "Graphics_AAMode": "안티앨리어싱 모드", "Graphics_SFXQuality": "SFX Quality", - "Graphics_SelfShadow": "Character Shadow in Map Exploration", + "Graphics_DlssQuality": "NVIDIA DLSS", + "Graphics_SelfShadow": "맵 탐사 중 실시간 그림자", "Graphics_HalfResTransparent": "Half Resolution Transparency", + + "Graphics_DLSS_UHP": "최고 성능", + "Graphics_DLSS_Perf": "성능", + "Graphics_DLSS_Balanced": "균형", + "Graphics_DLSS_Quality": "품질", + "Graphics_DLSS_DLAA": "DLAA", "Graphics_SpecPanel": "전역 그래픽 설정", "SpecEnabled": "켜짐", @@ -1154,10 +1321,10 @@ "Audio_Mute": "오디오 음소거", "Language": "언어 설정", - "Language_Help1": "Collapse currently cannot download Audio package directly.", - "Language_Help2": "Audio package will be downloaded in-game next time you launch the game.", + "Language_Help1": "Collapse에서는 직접 오디오 패키지를 다운로드 할 수 없어요.", + "Language_Help2": "다음번에 게임을 실행할 때 오디오 패키지가 게임 내에서 다운로드 될 거에요.", "LanguageAudio": "오디오", - "LanguageText": "Text", + "LanguageText": "텍스트", "VO_en": "영어", "VO_cn": "중국어", "VO_jp": "일본어", @@ -1177,18 +1344,18 @@ "Graphics_ResCustomW": "너비", "Graphics_ResCustomH": "H", - "Graphics_Gamma": "Gamma", + "Graphics_Gamma": "감마", "Graphics_FPS": "FPS", "Graphics_RenderScale": "렌더링 스케일", "Graphics_ShadowQuality": "그림자 품질", "Graphics_VisualFX": "시각 효과", "Graphics_SFXQuality": "특수 효과 품질", "Graphics_EnvDetailQuality": "환경 세부 품질", - "Graphics_VSync": "VSync", + "Graphics_VSync": "수직 동기화", "Graphics_AAMode": "안티앨리어싱 모드", "Graphics_VolFogs": "볼륨 조명", "Graphics_VolFogs_ToolTip": "그림자 품질을 보통 또는 높음으로 설정해야 해요!", - "Graphics_ReflectionQuality": "Reflection", + "Graphics_ReflectionQuality": "반사", "Graphics_MotionBlur": "모션 블러", "Graphics_BloomQuality": "Bloom", "Graphics_CrowdDensity": "군중 밀도", @@ -1203,17 +1370,17 @@ "Graphics_DynamicCharacterResolution_Tooltip": "지원되는 기기에만 적용할 수 있어요!", "Graphics_HDR": "HDR", "Graphics_HDR_Enable": "HDR 활성화", - "Graphics_HDR_NotSupported1": "Your display does not support HDR.", + "Graphics_HDR_NotSupported1": "사용 중인 디스플레이가 HDR을 지원하지 않아요.", "Graphics_HDR_NotSupported2": "HDR 지원 모니터가 필요해요!", "Graphics_HDR_NotEnabled1": "장치에서 HDR을 지원하지만, 활성화되어 있지 않아요.", "Graphics_HDR_NotEnabled2": "윈도우의 설정에서 \"HDR 사용\" 옵션이 켜져 있어야 해요.", "Graphics_HDR_Help_Link": "자세한 정보", - "Graphics_HDR_MaxLuminosity": "Max Luminosity (nits)", + "Graphics_HDR_MaxLuminosity": "최대 휘도(니트)", "Graphics_HDR_MaxLuminosity_Help": "Maximum allowed peak brightness for highlights", "Graphics_HDR_Calibration_Help": "Adjust until the image shown is faint but visible", "Graphics_HDR_UiBrightness": "UI 밝기", "Graphics_HDR_UiBrightness_Help": "Controls how bright UI elements should be", - "Graphics_HDR_SceneBrightness": "Scenery Brightness", + "Graphics_HDR_SceneBrightness": "배경 밝기", "Graphics_HDR_SceneBrightness_Help": "Controls how bright a scenery should be", "Graphics_SpecPanel": "전역 그래픽 설정", @@ -1250,14 +1417,14 @@ "Audio_VO": "음성 볼륨", "Audio_Output_Surround": "서라운드 음향 사용", - "Audio_DynamicRange": "Full Dynamic Range", + "Audio_DynamicRange": "동적 범위", "Audio_MuteOnMinimize": "최소화 시 음소거", "Language": "언어 설정", - "Language_Help1": "Collapse currently cannot download Audio package directly.", - "Language_Help2": "Audio package will be downloaded in-game next time you launch the game.", + "Language_Help1": "Collapse에서는 직접 오디오 패키지를 다운로드 할 수 없어요.", + "Language_Help2": "다음번에 게임을 실행할 때 오디오 패키지가 게임 내에서 다운로드 될 거에요.", "LanguageAudio": "오디오", - "LanguageText": "Text", + "LanguageText": "텍스트", "VO_en": "영어", "VO_cn": "중국어", "VO_jp": "일본어", @@ -1336,40 +1503,42 @@ }, "_FileCleanupPage": { - "Title": "Files Clean-up", - "TopButtonRescan": "Re-Scan", - "NoFilesToBeDeletedText": "No files need to be deleted!", - "ListViewFieldFileName": "File Name", - "ListViewFieldFileSize": "File Size", - "LoadingTitle": "Processing", - "LoadingSubtitle1": "Calculating Existing Files ({0} file(s) found - {1} in total)...", - "LoadingSubtitle2": "Checking pkg_version's availability...", - "BottomButtonDeleteAllFiles": "Delete All Files", - "BottomButtonDeleteSelectedFiles": "Delete {0} Selected File(s)", - "BottomCheckboxFilesSelected": "{0} File(s) Selected ({1} / {2} Total)", - "BottomCheckboxNoFileSelected": "No File Selected", - "DialogDeletingFileTitle": "Deleting Files", - "DialogDeletingFileSubtitle1": "You're about to", - "DialogDeletingFileSubtitle2": "delete {0} file(s)", - "DialogDeletingFileSubtitle3": "which contains", - "DialogDeletingFileSubtitle4": "{0} in size.", - "DialogDeletingFileSubtitle5": "Are you sure to delete the files?", - "DialogDeleteSuccessTitle": "Files Deleted!", - "DialogDeleteSuccessSubtitle1": "{0} file(s) have been successfully deleted", - "DialogDeleteSuccessSubtitle2": "with {0} failed to delete", - "DialogMoveToRecycleBin": "Move to Recycle Bin", - "DialogTitleMovedToRecycleBin": "Files moved to Recycle Bin!" + "Title": "파일 정리", + "TopButtonRescan": "다시 스캔", + "NoFilesToBeDeletedText": "불필요한 파일이 없어요!", + "ListViewFieldFileName": "파일 이름", + "ListViewFieldFileSize": "파일 크기", + "LoadingTitle": "불러오는 중", + "LoadingSubtitle1": "파일을 계산하는 중 ({0}개 파일을 찾음 - 총 {1})...", + "LoadingSubtitle2": "pkg_version의 가용성을 확인하는 중...", + "LoadingSubtitle3": "이 단계가 진행 중에는 UI가 응답하지 않을 수 있어요... ", + "DeleteSubtitle": "파일 삭제 중...", + "BottomButtonDeleteAllFiles": "모든 파일 삭제", + "BottomButtonDeleteSelectedFiles": "선택된 {0}개 파일 삭제", + "BottomCheckboxFilesSelected": "{0}개의 파일이 선택 되었어요 ({1} / 전체 {2})", + "BottomCheckboxNoFileSelected": "선택된 파일이 없어요", + "DialogDeletingFileTitle": "파일 삭제", + "DialogDeletingFileSubtitle1": "선택된 파일", + "DialogDeletingFileSubtitle2": "{0}개,", + "DialogDeletingFileSubtitle3": "총", + "DialogDeletingFileSubtitle4": "{0} 용량을 정리하려고 해요.", + "DialogDeletingFileSubtitle5": "정말 파일을 삭제할까요?", + "DialogDeleteSuccessTitle": "파일이 삭제 되었어요!", + "DialogDeleteSuccessSubtitle1": "{0}개의 파일을 성공적으로 삭제했어요", + "DialogDeleteSuccessSubtitle2": "다만 {0}개의 파일을 삭제하지 못했어요", + "DialogMoveToRecycleBin": "휴지통으로 이동", + "DialogTitleMovedToRecycleBin": "파일이 휴지통으로 이동 되었어요!" }, "_OOBEStartUpMenu": { "WelcomeTitleString": { - "Upper": [ "Welcome", " To" ], - "Lower": [ "Collapse", " Launcher" ] + "Upper": [ "Collapse Launcher", "에" ], + "Lower": [ "오신 걸", "환영합니다" ] }, - "SetupNextButton": "여기를 눌러 계속하기", + "SetupNextButton": "여기를 눌러 계속", "SetupBackButton": "돌아가기", - "CustomizationTitle": "런처 설정하기", + "CustomizationTitle": "런처 설정", "CustomizationSettingsLanguageHeader": "언어", "CustomizationSettingsLanguageDescription": "표시되는 정보의 언어가 변경돼요.", "CustomizationSettingsWindowSizeHeader": "창 크기", @@ -1383,7 +1552,7 @@ "CustomizationSettingsStyleCustomBackgroundHeader": "사용자 지정 배경 이미지", "CustomizationSettingsStyleCustomBackgroundDescription": "기본 배경 이미지 대신 사용자 지정 배경 이미지를 사용해요.", - "VideoBackgroundPreviewUnavailableHeader": "Video Background Preview is Unavailable", + "VideoBackgroundPreviewUnavailableHeader": "비디오 배경 미리 보기를 사용할 수 없어요", "VideoBackgroundPreviewUnavailableDescription": "You cannot preview your video background in OOBE but do not worry! Your video background will be applied once you are completing OOBE.", "LoadingInitializationTitle": "런처 초기 시작 설정 중", @@ -1400,14 +1569,50 @@ }, "_ZenlessGameSettingsPage": { - "Graphics_ColorFilter": "Color Filter Strength", - "Graphics_RenderRes": "Render Resolution", - "Graphics_EffectsQ": "Effects Quality", - "Graphics_ShadingQ": "Shading Quality", - "Graphics_Distortion": "Distortion", - "Audio_PlaybackDev": "Audio Playback Device", - "Audio_PlaybackDev_Headphones": "Headphones", - "Audio_PlaybackDev_Speakers": "Speakers", + "Graphics_ColorFilter": "색상 필터 강도", + "Graphics_RenderRes": "렌더링 해상도", + "Graphics_EffectsQ": "이펙트 품질", + "Graphics_ShadingQ": "그림자 정밀도", + "Graphics_Distortion": "왜곡", + "Graphics_HighPrecisionCharacterAnimation": "캐릭터 동적 해상도", + "Audio_PlaybackDev": "기기 재생", + "Audio_PlaybackDev_Headphones": "헤드셋", + "Audio_PlaybackDev_Speakers": "스피커", "Audio_PlaybackDev_TV": "TV" + }, + + "_NotificationToast": { + "WindowHiddenToTray_Title": "Collapse Launcher가 트레이에 최소화 되었어요", + "WindowHiddenToTray_Subtitle": "런처가 이제 백그라운드에서 실행 중 이에요. \r \n이 알림 또는 트레이의 아이콘을 클릭하면 다시 창을 열 수 있어요.", + + "GameInstallCompleted_Title": "{0}을(를) 플레이 할 준비가 완료되었어요", + "GameInstallCompleted_Subtitle": "{0}을(를) 성공적으로 설치했어요!", + + "GameUpdateCompleted_Title": "{0}이(가) 업데이트 되었어요", + "GameUpdateCompleted_Subtitle": "{0}이(가) 버전 {1}으로 성공적으로 업데이트 되었어요!", + + "GamePreloadCompleted_Title": "{0}의 사전 다운로드 패키지가 다운로드되었어요!", + + "GameRepairCheckCompleted_Title": "게임을 복구하기 위한 검사를 완료했어요", + "GameRepairCheckCompletedFound_Subtitle": "{0}개의 파일에 업데이트 또는 복구가 필요해요. 이 알림을 클릭해 런처를 열어주세요.", + "GameRepairCheckCompletedNotFound_Subtitle": "파일을 업데이트 하거나 복구할 필요가 없어요.", + + "GameRepairDownloadCompleted_Title": "게임을 복구하기 위한 파일 다운로드가 완료되었어요", + "GameRepairDownloadCompleted_Subtitle": "{0}개의 파일이 성공적으로 업데이트 혹은 복구 되었어요.", + + "CacheUpdateCheckCompleted_Title": "캐시 업데이트 확인을 완료했어요", + "CacheUpdateCheckCompletedFound_Subtitle": "{0}개의 캐시 파일에 업데이트가 필요해요. 이 알림을 클릭해 런처를 열어주세요.", + "CacheUpdateCheckCompletedNotFound_Subtitle": "캐시 파일을 업데이트할 필요가 없어요.", + + "CacheUpdateDownloadCompleted_Title": "캐시를 업데이트 하기 위한 다운로드를 완료했어요", + "CacheUpdateDownloadCompleted_Subtitle": "{0}개의 캐시 파일을 성공적으로 업데이트 했어요.", + + "GenericClickNotifToGoBack_Subtitle": "이 알림을 클릭하면 런처로 돌아 갈 수 있어요.", + + "OOBE_WelcomeTitle": "Collapse Launcher에 오신 것을 환영해요!", + "OOBE_WelcomeSubtitle": "지금 {0} - {1} 게임을 선택 중 이에요. 더 많은 게임이 기다리고 있으니, 한번 둘러보죠!", + + "LauncherUpdated_NotifTitle": "런처가 최신 상태에요!", + "LauncherUpdated_NotifSubtitle": "런처가 {0} 버전으로 업데이트 되었어요. \"{1}\" 에서 \"{2}\" 를 클릭하면 어떤 부분이 바뀌었는지 볼 수 있어요." } } diff --git a/Hi3Helper.Core/Lang/pl_PL.json b/Hi3Helper.Core/Lang/pl_PL.json index 239e48378..54237825e 100644 --- a/Hi3Helper.Core/Lang/pl_PL.json +++ b/Hi3Helper.Core/Lang/pl_PL.json @@ -374,7 +374,7 @@ "ContributorListBtn": "Współtwórcy open source", "About": "O aplikacji", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "pod", "About_Copyright4": ". Wszystkie prawa zastrzeżone.", diff --git a/Hi3Helper.Core/Lang/pt_BR.json b/Hi3Helper.Core/Lang/pt_BR.json index cce479af3..8528d244c 100644 --- a/Hi3Helper.Core/Lang/pt_BR.json +++ b/Hi3Helper.Core/Lang/pt_BR.json @@ -81,6 +81,8 @@ "UnhandledSubtitle3": "O jogo travou com os detalhes de erro abaixo:", "UnhandledTitle4": "Aviso", "UnhandledSubtitle4": "Isso não é um problema grave, mas achamos que deveríamos lhe informar:\r\nDevido aos testes A/B da miHoYo, o Collapse não suporta a leitura da seguinte chave: App_Settings_h2319593470\r\nPedimos desculpas pela inconveniência e agradecemos sua compreensão.", + "UnhandledTitleDiskCrc": "Disk Corruption Detected!", + "UnhandledSubDiskCrc": "Disk corruption is detected while accessing a file. Please check your disk using chkdsk.", "CopyClipboardBtn1": "Copiar Tudo", "CopyClipboardBtn2": "Copiado!", "GoBackPageBtn1": "Voltar Para a Página Anterior" @@ -146,12 +148,19 @@ "GameSettings_Panel2UninstallGame": "Desinstalar Jogo", "GameSettings_Panel2ConvertVersion": "Converter Versão do Jogo", "GameSettings_Panel2MoveGameLocationGame": "Mover Localização do Jogo", + "GameSettings_Panel2MoveGameLocationGame_SamePath": "Cannot move game to the root of your drive!\r\nPlease make a folder and try again.", "GameSettings_Panel2StopGame": "Forçar Encerramento do Jogo", + "GameSettings_Panel3RegionalSettings": "Regional Settings", "GameSettings_Panel3": "Opções de Inicialização", - "GameSettings_Panel4": "Outros", + "GameSettings_Panel3RegionRpc": "Show Playing Status in Discord", + "GameSettings_Panel3CustomBGRegion": "Change Region Background", + "GameSettings_Panel3CustomBGRegionSectionTitle": "Custom Background for Region", + "GameSettings_Panel4": "Global - Miscellaneous", "GameSettings_Panel4ShowEventsPanel": "Exibir Painel de Eventos", + "GameSettings_Panel4ScaleUpEventsPanel": "Scale Up Events Panel on Hover", "GameSettings_Panel4ShowSocialMediaPanel": "Exibir Painel de Redes Sociais", "GameSettings_Panel4ShowPlaytimeButton": "Mostrar tempo de jogo", + "GameSettings_Panel4SyncPlaytimeDatabase": "Sync Playtime with Database", "GameSettings_Panel4CreateShortcutBtn": "Criar atalho", "GameSettings_Panel4AddToSteamBtn": "Adicionar à Steam", @@ -160,10 +169,20 @@ "GamePlaytime_Idle_Panel1Minutes": "Minutos", "GamePlaytime_Idle_ResetBtn": "Redefinir", "GamePlaytime_Idle_ChangeBtn": "Alterar", + "GamePlaytime_Idle_SyncDb": "Sync", + "GamePlaytime_Idle_SyncDbSyncing": "Syncing...", "GamePlaytime_Running_Info1": "Uma instância desse jogo está em execução, portanto o tempo de jogo não pode ser editado.", - "GamePlaytime_Running_Info2": "Por favor, esteja ciente que fechar completamente o Collapse irá parar a contagem de tempo de jogo (com exceção do que foi jogado até o fechamento) e apenas as sessões iniciadas usando o Collapse serão contadas.", + "GamePlaytime_Running_Info2": "Please be aware that fully closing Collapse will stop playtime tracking (saving what was played until that point).", "GamePlaytime_Display": "{0}h {1}m", "GamePlaytime_DateDisplay": "{0:00}/{1:00}/{2:0000} {3:00}:{4:00}", + "GamePlaytime_Stats_Title": "Playtime Statistics", + "GamePlaytime_Stats_NeverPlayed": "Never Played", + "GamePlaytime_Stats_LastSession": "Most Recent Session", + "GamePlaytime_Stats_LastSession_StartTime": "Start Time", + "GamePlaytime_Stats_LastSession_Duration": "Duration", + "GamePlaytime_Stats_Daily": "Today", + "GamePlaytime_Stats_Weekly": "Week", + "GamePlaytime_Stats_Monthly": "Month", "PostPanel_Events": "Eventos", "PostPanel_Notices": "Notícias", @@ -192,7 +211,10 @@ "GameStateInvalidFixed_Subtitle1": "As propriedades dos arquivos do jogo foram reparadas para a regiao:", "GameStateInvalidFixed_Subtitle2": "Por favor, execute um \"", "GameStateInvalidFixed_Subtitle3": "\" no \"", - "GameStateInvalidFixed_Subtitle4": "\" menu para ter certeza de que todos os arquivos foram verificados." + "GameStateInvalidFixed_Subtitle4": "\" menu para ter certeza de que todos os arquivos foram verificados.", + + "InstallFolderRootTitle": "Drive Root Provided!", + "InstallFolderRootSubtitle": "Cannot install game to the root of your drive! Please make a new folder and try again." }, "_GameRepairPage": { @@ -340,6 +362,8 @@ "SpecVeryHigh": "Muito Alta", "SpecMaximum": "Máxima", "SpecUltra": "Ultra", + "SpecDynamic": "Dynamic", + "SpecGlobal": "Global", "Audio_Title": "Configurações de Áudio", "Audio_Master": "Volume Principal", @@ -382,7 +406,7 @@ "CustomArgs_Footer2": "documentação dos argumentos da linha de comandos do Standalone Player da Unity (em inglês)", "CustomArgs_Footer3": "para ver mais parâmetros.", - "GameBoost": "Aumentar Prioridade do Jogo [Experimental]", + "GameBoost": "Boost Game Priority", "MobileLayout": "Usar Layout de Dispositivo Móvel", "Advanced_Title": "Configurações Avançadas", @@ -404,6 +428,8 @@ "Debug": "Configurações Adicionais", "Debug_Console": "Mostrar Console", "Debug_IncludeGameLogs": "Salvar Registros de Jogo no Collapse (pode conter dados pessoais)", + "Debug_SendRemoteCrashData": "Send anonymous crash reports to developers", + "Debug_SendRemoteCrashData_EnvVarDisablement": "This setting is disabled due to 'DISABLE_SENTRY' environment variable being set to true.", "Debug_MultipleInstance": "Permitir execução de várias instâncias do Collapse", "ChangeRegionWarning_Toggle": "Mostrar Aviso de Alteração de Região", @@ -431,6 +457,7 @@ "AppBG": "Tela de Fundo do Cliente", "AppBG_Checkbox": "Usar Tela de Fundo Personalizada", "AppBG_Note": "Formatos aceitos:\r\nImagem: {0}\r\nVídeo: {1}", + "AppBG_Note_Regional": "Regional specific custom background settings is in \"Quick Settings\" button in the home page.", "AppThreads": "Processadores Lógicos do Cliente", "AppThreads_Download": "Processadores Lógicos de Download", @@ -455,6 +482,8 @@ "SophonHttpNumberBox": "Máximo de conexões HTTP", "SophonHelp_Http": "Controla o número de conexões estabelecidas pelo Collapse para baixar os \"pedaços\".", "SophonToggle": "Habilita o Modo de Download Sophon nas regiões suportadas", + "SophonPredownPerfMode_Toggle": "[EXPERIMENTAL] Use all CPU cores when applying pre-download", + "SophonPredownPerfMode_Tooltip": "Enabling this will set CPU threads to maximum available for your system. Disable if you get any problems.", "AppThreads_Attention": "Aviso", "AppThreads_Attention1": "Antes de alterar o", @@ -463,14 +492,18 @@ "AppThreads_Attention4": "o valor se você estiver baixando algo no cliente, já que isso poderá", "AppThreads_Attention5": "FAZER O DOWNLOAD COMEÇAR DO ZERO", "AppThreads_Attention6": "por causa da contagem da sessão necessária para o download não ser a mesma.", + "AppThreads_AttentionTop1": "The issues below will no longer occur if you have", + "AppThreads_AttentionTop2": "setting enabled.", "DiscordRPC": "Status de Atividade do Discord", "DiscordRPC_Toggle": "Mostrar Status do Discord", "DiscordRPC_GameStatusToggle": "Mostrar jogo atual no Status do Discord", "DiscordRPC_IdleStatusToggle": "Mostrar Status quando inativo", + "ImageBackground": "Image Background Settings", "VideoBackground": "Configurações de Vídeo de Fundo", "VideoBackground_IsEnableAudio": "Permitir Áudio", + "VideoBackground_IsEnableAcrylicBackground": "Use Acrylic Effect while using Video Background", "VideoBackground_AudioVolume": "Volume do Áudio", "Update": "Verificar Atualizações", @@ -497,9 +530,10 @@ "ContributePRBtn": "Contribuir com uma Pull Request", "ContributorListBtn": "Contribuidores do Projeto", "HelpLocalizeBtn": "Nos Ajude a Traduzir o Collapse!", + "ShareYourFeedbackBtn": "Share Your Feedback", "About": "Sobre", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Sob a", "About_Copyright4": ". Todos os direitos reservados.", @@ -510,7 +544,7 @@ "Disclaimer1": "Este programa não é afiliado à", "Disclaimer2": "de forma alguma", "Disclaimer3": "e é totalmente código aberto. Qualquer contribuição é bem-vinda.", - + "WebsiteBtn": "Visit our Website", "DiscordBtn1": "Junte-se ao Discord de nossa Armada!", "DiscordBtn2": "Discord Oficial de Honkai Impact 3rd", "DiscordBtn3": "Discord Oficial do Collapse!", @@ -519,6 +553,7 @@ "EnableAcrylicEffect": "Usar Efeito de Desfoque Acrílico", "EnableDownloadChunksMerging": "Mesclar Blocos de Pacotes Baixados", + "Enforce7ZipExtract": "Always Use 7-zip for Game Installation/Update", "UseExternalBrowser": "Sempre Usar Navegador Externo", "LowerCollapsePrioOnGameLaunch": "Reduzir a prioridade de processo do Collapse quando um jogo for iniciado", @@ -537,7 +572,7 @@ "AppBehavior_LaunchOnStartup": "Iniciar Collapse automaticamente quando o computador for ligado", "AppBehavior_StartupToTray": "Ocultar a janela do Collapse quando ele for iniciado automaticamente", - "Waifu2X_Toggle": "Usar Waifu2X [Experimental]", + "Waifu2X_Toggle": "Use Waifu2X", "Waifu2X_Help": "Use o Waifu2X para ampliar imagens de fundo.\nQuando ativado, a qualidade da imagem é significativamente melhorada, mas levará um pouco mais de tempo para carregar a imagem pela primeira vez.", "Waifu2X_Help2": "Disponível apenas para imagens estáticas!", "Waifu2X_Warning_CpuMode": "AVISO: Nenhuma Placa de Vídeo com suporte à Vulkan foi encontrada e o modo CPU será usado. Isso aumentará muito o tempo de processamento da imagem.", @@ -578,7 +613,58 @@ "NetworkSettings_Http_Redirect": "Permitir redirecionamento HTTP", "NetworkSettings_Http_SimulateCookies": "Permitir cookies HTTP simulados", "NetworkSettings_Http_UntrustedHttps": "Permitir certificado HTTPS não confiável", - "NetworkSettings_Http_Timeout": "Tempo limite do Cliente HTTP (em segundos)" + "NetworkSettings_Http_Timeout": "HTTP Client Timeout (in seconds)", + + "FileDownloadSettings_Title": "File Download Settings", + "FileDownloadSettings_SpeedLimit_Title": "Limit Download Speed", + "FileDownloadSettings_SpeedLimit_NumBox": "Speed Limit (in MiB)", + "FileDownloadSettings_SpeedLimitHelp1": "Default:", + "FileDownloadSettings_SpeedLimitHelp2": "Speed Limit value range:", + "FileDownloadSettings_SpeedLimitHelp3": "1 - 1000 MiB/s", + "FileDownloadSettings_SpeedLimitHelp4": "Limits the maximum allowed bandwidth for downloading. This setting cannot be used alongside the", + "FileDownloadSettings_SpeedLimitHelp5": "setting.", + + "FileDownloadSettings_NewPreallocChunk_Title": "New Pre-allocated Downloader", + "FileDownloadSettings_NewPreallocChunk_Subtitle": "For Game Installation, Game Repair and Cache Updates only.", + "FileDownloadSettings_NewPreallocChunk_NumBox": "Chunk Size (in MiB)", + "FileDownloadSettings_NewPreallocChunkHelp1": "Default:", + "FileDownloadSettings_NewPreallocChunkHelp2": "Chunk Size value range:", + "FileDownloadSettings_NewPreallocChunkHelp3": "1 - 32 MiB", + "FileDownloadSettings_NewPreallocChunkHelp4": "When enabled, the downloader will dynamically pre-allocate the file size during its download.", + "FileDownloadSettings_NewPreallocChunkHelp5": "This enables the downloader to directly writes data chunks into the file without splitting it into separate files.", + "FileDownloadSettings_NewPreallocChunkHelp6": "When disabled, the launcher will use the old allocation method, where data chunks will be written into separate files. It will also disable the", + "FileDownloadSettings_NewPreallocChunkHelp7": "and", + "FileDownloadSettings_NewPreallocChunkHelp8": "settings.", + "FileDownloadSettings_NewPreallocChunkHelp9": "Note:", + "FileDownloadSettings_NewPreallocChunkHelp10": "This feature is only available for game installation (such as Initial Install, Update, and Pre-load), Game Repair, and Cache Update steps.", + + "FileDownloadSettings_BurstDownload_Title": "Burst File Download Mode", + "FileDownloadSettings_BurstDownload_Subtitle": "For Game Repair and Cache Updates only.", + "FileDownloadSettings_BurstDownloadHelp1": "Default:", + "FileDownloadSettings_BurstDownloadHelp2": "When enabled, this feature will allow the download process on", + "FileDownloadSettings_BurstDownloadHelp3": "and", + "FileDownloadSettings_BurstDownloadHelp4": "features to run in parallel to make the download process more efficient.", + "FileDownloadSettings_BurstDownloadHelp5": "When disabled, the download process for", + "FileDownloadSettings_BurstDownloadHelp6": "and", + "FileDownloadSettings_BurstDownloadHelp7": "features will use a sequential download process.", + + "Database_Title": "User Synchronizable Database", + "Database_ConnectionOk": "Database connected successfully!", + "Database_ConnectFail": "Failed to connect to the database, see error(s) below:", + "Database_Toggle": "Enable Online Database", + "Database_Url": "Database URL", + "Database_Url_Example": "Example: https://db-collapse.turso.io", + "Database_Token": "Token", + "Database_UserId": "User ID", + "Database_GenerateGuid": "Generate UID", + "Database_Validate": "Validate & Save Settings", + "Database_Error_EmptyUri": "Database URL cannot be empty!", + "Database_Error_EmptyToken": "Database token cannot be empty!", + "Database_Error_InvalidGuid": "User ID is not a valid GUID!", + "Database_Warning_PropertyChanged": "Database settings has changed", + "Database_ValidationChecking": "Validating Settings...", + "Database_Placeholder_DbUserIdTextBox": "GUID Example: ed6e8048-e3a0-4983-bd56-ad19956c701f", + "Database_Placeholder_DbTokenPasswordBox": "Enter your authentication token here" }, "_Misc": { @@ -598,6 +684,7 @@ "PerFromTo": "{0} / {1}", "PerFromToPlaceholder": "- / -", + "EverythingIsOkay": "All OK!", "Cancel": "Cancelar", "Close": "Fechar", "UseCurrentDir": "Usar pasta atual", @@ -666,6 +753,7 @@ "Disabled": "Desativado", "Enabled": "Ativado", "UseAsDefault": "Usar como Padrão", + "Default": "Default", "BuildChannelPreview": "Prévia", "BuildChannelStable": "Estável", @@ -706,7 +794,24 @@ "LauncherNameSteam": "Steam", "LauncherNameUnknown": "(Nome do Cliente é Desconhecido)", - "ImageCropperTitle": "Cortar imagem" + "ImageCropperTitle": "Cortar imagem", + + "IsBytesMoreThanBytes": "= {0} bytes (-/+ {1})", + "IsBytesUnlimited": "= Unlimited", + "IsBytesNotANumber": "= NaN", + + "MissingVcRedist": "Missing Visual C/C++ Redistributable", + "MissingVcRedistSubtitle": "You need to install the Visual C/C++ Redistributable to run this function. Do you want to download it now?\r\nNote: This will open a browser window and download a file from Microsoft. Please run the installer after downloading it then restart Collapse and try again.\r\nIf you have already installed it but the error remains, please send a issue ticket to us.", + "ExceptionFeedbackBtn": "Tell us what happened", + "ExceptionFeedbackBtn_Unavailable": "Crash report is disabled or not available", + "ExceptionFeedbackBtn_FeedbackSent": "Feedback has been sent!", + "ExceptionFeedbackTitle": "Tell us what happened:", + "ExceptionFeedbackTemplate_User": "Username (Optional):", + "ExceptionFeedbackTemplate_Email": "Email (Optional):", + "ExceptionFeedbackTemplate_Message": "Insert your feedback after this line", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { @@ -753,7 +858,7 @@ "RepairCompletedSubtitle": "{0} arquivos foram reparados.", "RepairCompletedSubtitleNoBroken": "Nenhum arquivo quebrado foi encontrado.", "ExtremeGraphicsSettingsWarnTitle": "Predefinição Muito Alta Selecionada!", - "ExtremeGraphicsSettingsWarnSubtitle": "Você está prestes a definir a qualidade dos gráficos como Muito Alta!\r\nA qualidade dos gráficos Muito Alta é basicamente uma Qualidade de Renderização em 2x com MSAA Ativado e é EXTREMAMENTE NÃO OTIMIZADA!\r\n\r\nVocê tem certeza que deseja usar essa configuração?", + "ExtremeGraphicsSettingsWarnSubtitle": "You are about to set the setting preset to Very High!\r\nVery High setting preset is essentially a 1.6x Render Scale with MSAA Enabled and is VERY UNOPTIMIZED!\r\n\r\nAre you sure you want to use this setting?", "MigrateExistingMoveDirectoryTitle": "Movendo Instalação Existente para: {0}", "MigrateExistingInstallChoiceTitle": "Uma Instalação existente de {0} foi Detectada!", "MigrateExistingInstallChoiceSubtitle1": "Você tem uma instalação existente do jogo usando {0} nessa pasta:", @@ -815,10 +920,14 @@ "ReleaseChannelChangeSubtitle2": "Observação:", "ReleaseChannelChangeSubtitle3": "Essa ação pode causar alterações irreversíveis e/ou fazer com que coisas quebrem em seu cliente atual. Não nos responsabilizamos por qualquer perda ou corrupção de dados associados ao seu jogo.", + "ForceUpdateCurrentInstallTitle": "Force-update Current Installation", + "ForceUpdateCurrentInstallSubtitle1": "You are about to perform a forced-update to your current:", + "ForceUpdateCurrentInstallSubtitle2": "installation and we recommend you to close your currently opened game(s).", + "ChangePlaytimeTitle": "Você tem certeza que deseja alterar seu tempo de jogo?", "ChangePlaytimeSubtitle": "Alterar o tempo de jogo significa substituir o valor atual pelo valor que você acabou de inserir. \n\nVocê deseja continuar?\n\nObservação: Isso não afeta o funcionamento do Collapse e você pode alterar esse valor novamente a qualquer momento quando não estiver jogando.", "ResetPlaytimeTitle": "Você tem certeza que deseja redefinir seu tempo de jogo?", - "ResetPlaytimeSubtitle": "Redefinir o tempo de jogo significa definir o contador de volta ao 0. Isso é uma ação ", + "ResetPlaytimeSubtitle": "Resetting your playtime means setting the playtime counter and all related statistics back to 0. This is a ", "ResetPlaytimeSubtitle2": "destrutiva", "ResetPlaytimeSubtitle3": ", o que significa que você não poderá desfazer isso após confirmar. \n\nVocê deseja continuar?\n\nObservação: Isso não afeta o funcionamento do Collapse e você pode alterar esse valor novamente a qualquer momento quando não estiver jogando.", "InvalidPlaytimeTitle": "Houve um problema ao salvar o tempo de jogo dessa sessão", @@ -831,6 +940,22 @@ "CannotUseAppLocationForGameDirTitle": "Pasta inválida!", "CannotUseAppLocationForGameDirSubtitle": "Você não pode usar essa pasta já que ela está sendo usada como uma pasta do sistema ou como a pasta do executável principal do programa. Por favor, escolha outra pasta!", + "InvalidGameDirNewTitleFormat": "Path is Invalid: {0}", + "InvalidGameDirNewSubtitleSelectedPath": "Selected Path:", + "InvalidGameDirNewSubtitleSelectOther": "Please select another folder/location!", + "InvalidGameDirNew1Title": "Folder is invalid!", + "InvalidGameDirNew1Subtitle": "You can't use this folder as it is being used as a system folder or being used for main executable of the app. Please choose another folder!", + "InvalidGameDirNew2Title": "Cannot access the selected folder", + "InvalidGameDirNew2Subtitle": "The launcher does not have permission to access this folder!", + "InvalidGameDirNew3Title": "Cannot select root drive", + "InvalidGameDirNew3Subtitle": "You have selected a path on top of the root drive, which is forbidden!", + "InvalidGameDirNew4Title": "Cannot select Windows folder", + "InvalidGameDirNew4Subtitle": "You cannot use Windows folder as Game Installation Location to avoid any unnecessary that might happen.", + "InvalidGameDirNew5Title": "Cannot select Program Data folder", + "InvalidGameDirNew5Subtitle": "You cannot use Program Data folder as Game Installation Location to avoid any unnecessary that might happen.", + "InvalidGameDirNew6Title": "Cannot select Program Files or Program Files (x86) folder", + "InvalidGameDirNew6Subtitle": "You cannot use Program Files or Program Files (x86) folder as Game Installation Location to avoid any unnecessary that might happen.", + "FolderDialogTitle1": "Select Game Installation Location", "StopGameTitle": "Forçar Interrupção", "StopGameSubtitle": "Você tem certeza que deseja forçar a interrupção do jogo em execução?\r\nVocê pode perder um pouco do progresso no jogo.", @@ -877,15 +1002,46 @@ "SteamShortcutCreationSuccessSubtitle5": " • Os novos atalhos só serão exibidos depois que a Steam for recarregada.", "SteamShortcutCreationSuccessSubtitle6": " • Para usar a sobreposição da Steam, a Steam precisa ser executada como administrador e o Collapse deve estar totalmente fechado ou estar com a opção \"Várias Instâncias\" ativada nas configurações.", "SteamShortcutCreationSuccessSubtitle7": " • Se o jogo não estiver instalado/atualizado, o Collapse irá tentar instalá-lo/atualizá-lo. Por favor, lembre-se que as caixas de diálogo relacionadas a esses processos ainda serão exibidas.", - "SteamShortcutCreationFailureTitle": "Pasta de dados da Steam inválida", "SteamShortcutCreationFailureSubtitle": "Não foi possível encontrar uma pasta userdata válida.\n\nPor favor, certifique-se de fazer o login pelo menos uma vez no cliente da Steam antes de tentar usar essa funcionalidade.", + "SteamShortcutTitle": "Steam Shortcut", + "SteamShortcutDownloadingImages": "Downloading Steam Grid Images ({0}/{1})", "DownloadSettingsTitle": "Configurações de Download", "DownloadSettingsOption1": "Iniciar jogo após instalação", - + "OpenInExternalBrowser": "Abrir no navegador externo", - "CloseOverlay": "Fechar a overlay" + "CloseOverlay": "Fechar a overlay", + + "DbGenerateUid_Title": "Are you sure you wish to change your user ID?", + "DbGenerateUid_Content": "Changing the current user ID will cause the associated data to be lost if you lose it.", + + "SophonIncrementUpdateUnavailTitle": "Incremental Update is Unavailable: Version is Too Obsolete!", + "SophonIncrementUpdateUnavailSubtitle1": "Your game version: {0}", + "SophonIncrementUpdateUnavailSubtitle2": " is too obsolete", + "SophonIncrementUpdateUnavailSubtitle3": " and incremental update for your version is not available. However, you could still update your game by re-downloading the entire thing from scratch.", + "SophonIncrementUpdateUnavailSubtitle4": "Click \"{0}\" to continue updating the entire thing or click \"{1}\" to cancel the process", + + "UACWarningTitle": "Warning: UAC Disabled Detected", + "UACWarningContent": "Disabling User Account Control (UAC) is never a good idea.\nThe security of the OS will be compromised and the game may not run properly.\n\nClick the \"Learn More\" button to see how to enable UAC.\nThe related entry is: Run all administrators in Admin Approval Mode.", + "UACWarningLearnMore": "Learn More", + "UACWarningDontShowAgain": "Don't Show Again", + + "EnsureExitTitle": "Exiting Application", + "EnsureExitSubtitle": "There are critical operations running in the background. Are you sure you want to exit?", + + "UserFeedback_DialogTitle": "Share Your Thoughts", + "UserFeedback_TextFieldTitleHeader": "Feedback Title", + "UserFeedback_TextFieldTitlePlaceholder": "Write your feedback's title here...", + "UserFeedback_TextFieldMessageHeader": "Message", + "UserFeedback_TextFieldMessagePlaceholder": "Message...", + "UserFeedback_TextFieldRequired": "(required)", + "UserFeedback_RatingText": "Mind to share your ratings?", + "UserFeedback_CancelBtn": "Cancel", + "UserFeedback_SubmitBtn": "Submit your feedback", + "UserFeedback_SubmitBtn_Processing": "Processing...", + "UserFeedback_SubmitBtn_Completed": "Completed!", + "UserFeedback_SubmitBtn_Cancelled": "Cancelled!" }, "_FileMigrationProcess": { @@ -1041,6 +1197,10 @@ "ApplyUpdateErrCollapseRunTitle": "Por favor, feche o Collapse antes de aplicar a atualização!", "ApplyUpdateErrCollapseRunSubtitle": "Esperando o Collapse fechar...", + "ApplyUpdateErrCollapseRunTitleWarnBox": "An Instance of Collapse Launcher is Still Running!", + "ApplyUpdateErrCollapseRunSubtitleWarnBox": "We detected an instance of Collapse Launcher is running in the background. To forcely close the launcher, click \"Yes\". To wait until you manually close it, click \"No\".", + "ApplyUpdateErrVelopackStateBrokenTitleWarnBox": "Broken Existing Installation Detected!", + "ApplyUpdateErrVelopackStateBrokenSubtitleWarnBox": "We detected that you have a broken existing installation.\r\n\r\nClick on \"Yes\" to repair the installation before installing updates or Click \"No\" to just run the update installation.", "ApplyUpdateErrReleaseFileNotFoundTitle": "ERRO:\r\nArquivo \"release\" não possui a informação de \"stable\" ou \"preview\" nele", "ApplyUpdateErrReleaseFileNotFoundSubtitle": "Por favor, verifique seu arquivo \"release\" e tente novamente.", @@ -1118,8 +1278,15 @@ "Graphics_BloomQuality": "Efeito Resplendor (Bloom)", "Graphics_AAMode": "Modo de Antiserrilhamento", "Graphics_SFXQuality": "Qualidade dos Efeitos Especiais", + "Graphics_DlssQuality": "NVIDIA DLSS", "Graphics_SelfShadow": "Sombra de Personagem na Exploração do Mapa", "Graphics_HalfResTransparent": "Transparência de Meia Resolução", + + "Graphics_DLSS_UHP": "Ultra Performance", + "Graphics_DLSS_Perf": "Performance", + "Graphics_DLSS_Balanced": "Balanced", + "Graphics_DLSS_Quality": "Quality", + "Graphics_DLSS_DLAA": "DLAA", "Graphics_SpecPanel": "Configurações de Gráfico Globais", "SpecEnabled": "Lig.", @@ -1344,6 +1511,8 @@ "LoadingTitle": "Processando", "LoadingSubtitle1": "Calculando arquivos existentes ({0} arquivo(s) encontrado(s) - {1} no total)...", "LoadingSubtitle2": "Chegando a disponibilidade do pkg_version", + "LoadingSubtitle3": "UI might be unresponsive during this process...", + "DeleteSubtitle": "Deleting files...", "BottomButtonDeleteAllFiles": "Deletar todos os arquivos", "BottomButtonDeleteSelectedFiles": "Deletar {0} arquivo(s) selecionado(s).", "BottomCheckboxFilesSelected": "{0} arquivo(s) selecionado(s) ({1} / {2} Total)", @@ -1405,9 +1574,45 @@ "Graphics_EffectsQ": "Qualidade dos Efeitos Especiais", "Graphics_ShadingQ": "Qualidade de Sombras", "Graphics_Distortion": "Distorção", + "Graphics_HighPrecisionCharacterAnimation": "High-Precision Character Animation", "Audio_PlaybackDev": "Dispositivo de Reprodução", "Audio_PlaybackDev_Headphones": "Fones de Ouvido", "Audio_PlaybackDev_Speakers": "Alto-Falantes", "Audio_PlaybackDev_TV": "TV" + }, + + "_NotificationToast": { + "WindowHiddenToTray_Title": "Collapse Launcher is Minimized to Tray", + "WindowHiddenToTray_Subtitle": "The launcher is now running in the background.\r\nClick this notification or the icon on the tray to restore the window.", + + "GameInstallCompleted_Title": "{0} is Ready to Play", + "GameInstallCompleted_Subtitle": "{0} has been successfully installed!", + + "GameUpdateCompleted_Title": "{0} has been Updated", + "GameUpdateCompleted_Subtitle": "{0} has been successfully updated to v{1}!", + + "GamePreloadCompleted_Title": "Pre-load for {0} has been Downloaded", + + "GameRepairCheckCompleted_Title": "Game Repair Check is Completed", + "GameRepairCheckCompletedFound_Subtitle": "{0} file(s) need to be updated/repaired. Click this notification to go back to the launcher.", + "GameRepairCheckCompletedNotFound_Subtitle": "No files need to be updated/repaired.", + + "GameRepairDownloadCompleted_Title": "Game Repair Download is Completed", + "GameRepairDownloadCompleted_Subtitle": "{0} file(s) have been successfully updated/repaired.", + + "CacheUpdateCheckCompleted_Title": "Cache Update Check is Completed", + "CacheUpdateCheckCompletedFound_Subtitle": "{0} cache file(s) need to be updated. Click this notification to go back to the launcher.", + "CacheUpdateCheckCompletedNotFound_Subtitle": "No cache files need to be updated.", + + "CacheUpdateDownloadCompleted_Title": "Cache Update Download is Completed", + "CacheUpdateDownloadCompleted_Subtitle": "{0} cache file(s) have been successfully updated.", + + "GenericClickNotifToGoBack_Subtitle": "Click this notification to go back to the launcher.", + + "OOBE_WelcomeTitle": "Welcome to Collapse Launcher!", + "OOBE_WelcomeSubtitle": "You are currently selecting {0} - {1} as your game. There are more games awaits you, find out more!", + + "LauncherUpdated_NotifTitle": "Your launcher is up-to-date!", + "LauncherUpdated_NotifSubtitle": "Your launcher has been updated to: {0}. Go to \"{1}\" and click \"{2}\" to see what changed." } } diff --git a/Hi3Helper.Core/Lang/pt_PT.json b/Hi3Helper.Core/Lang/pt_PT.json index 38b0823b8..e22db1224 100644 --- a/Hi3Helper.Core/Lang/pt_PT.json +++ b/Hi3Helper.Core/Lang/pt_PT.json @@ -499,7 +499,7 @@ "HelpLocalizeBtn": "Ajuda-nos a traduzir o Collapse!", "About": "Sobre", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\nshatyuka & gablm", "About_Copyright3": "Sobre", "About_Copyright4": ". Todos os direitos reservados.", diff --git a/Hi3Helper.Core/Lang/ru_RU.json b/Hi3Helper.Core/Lang/ru_RU.json index a8187d092..33a6d14a1 100644 --- a/Hi3Helper.Core/Lang/ru_RU.json +++ b/Hi3Helper.Core/Lang/ru_RU.json @@ -81,6 +81,8 @@ "UnhandledSubtitle3": "Игра завершилась. Детали ошибки приведены ниже:", "UnhandledTitle4": "Предупреждение", "UnhandledSubtitle4": "Это не является серьезной проблемой, но мы решили, что должны сообщить вам об этом: \nВ связи с A/B тестированием miHoYo, Collapse не поддерживает чтение следующих файлов:\nkey: App_Settings_h2319593470.\nМы приносим извинения за причиненные неудобства и благодарим вас за понимание.", + "UnhandledTitleDiskCrc": "Обнаружено повреждение диска!", + "UnhandledSubDiskCrc": "Обнаружено повреждение диска при доступе к файлу. Пожалуйста, проверьте диск с помощью команды chkdsk.", "CopyClipboardBtn1": "Скопировать всё в буфер обмена", "CopyClipboardBtn2": "Скопировано в буфер обмена!", "GoBackPageBtn1": "Вернуться к предыдущей странице" @@ -146,12 +148,19 @@ "GameSettings_Panel2UninstallGame": "Удалить игру", "GameSettings_Panel2ConvertVersion": "Изменить версию игры", "GameSettings_Panel2MoveGameLocationGame": "Переместить игру", + "GameSettings_Panel2MoveGameLocationGame_SamePath": "Cannot move game to the root of your drive!\r\nPlease make a folder and try again.", "GameSettings_Panel2StopGame": "Принудительно закрыть игру ", + "GameSettings_Panel3RegionalSettings": "Regional Settings", "GameSettings_Panel3": "Пользовательские команды запуска", - "GameSettings_Panel4": "Разное", + "GameSettings_Panel3RegionRpc": "Show Playing Status in Discord", + "GameSettings_Panel3CustomBGRegion": "Изменить фон региона", + "GameSettings_Panel3CustomBGRegionSectionTitle": "Пользовательский фон для региона", + "GameSettings_Panel4": "Global - Miscellaneous", "GameSettings_Panel4ShowEventsPanel": "Показать панель событий", + "GameSettings_Panel4ScaleUpEventsPanel": "Scale Up Events Panel on Hover", "GameSettings_Panel4ShowSocialMediaPanel": "Показать панель соцсетей", "GameSettings_Panel4ShowPlaytimeButton": "Показать время в игре", + "GameSettings_Panel4SyncPlaytimeDatabase": "Sync Playtime with Database", "GameSettings_Panel4CreateShortcutBtn": "Создать ярлык", "GameSettings_Panel4AddToSteamBtn": "Добавить в Steam", @@ -160,10 +169,20 @@ "GamePlaytime_Idle_Panel1Minutes": "Минут", "GamePlaytime_Idle_ResetBtn": "Сбросить", "GamePlaytime_Idle_ChangeBtn": "Изменить", + "GamePlaytime_Idle_SyncDb": "Sync", + "GamePlaytime_Idle_SyncDbSyncing": "Syncing...", "GamePlaytime_Running_Info1": "Эта игра сейчас запущена, поэтому нельзя изменить время игры.", - "GamePlaytime_Running_Info2": "Учтите что полное закрытие Collapse перестанет отслеживать время в игре (сохранится то, что было до запуска), будут отслеживаться только те сеансы, которые запущены с помощью Collapse.", + "GamePlaytime_Running_Info2": "Please be aware that fully closing Collapse will stop playtime tracking (saving what was played until that point).", "GamePlaytime_Display": "{0}ч {1}м", "GamePlaytime_DateDisplay": "{0:00}/{1:00}/{2:0000} {3:00}:{4:00}", + "GamePlaytime_Stats_Title": "Playtime Statistics", + "GamePlaytime_Stats_NeverPlayed": "Никогда", + "GamePlaytime_Stats_LastSession": "Самая последняя сессия", + "GamePlaytime_Stats_LastSession_StartTime": "Время запуска", + "GamePlaytime_Stats_LastSession_Duration": "Длительность", + "GamePlaytime_Stats_Daily": "Сегодня", + "GamePlaytime_Stats_Weekly": "Неделя", + "GamePlaytime_Stats_Monthly": "Месяц", "PostPanel_Events": "События", "PostPanel_Notices": "Примечания", @@ -181,18 +200,21 @@ "Exception_DownloadTimeout2": "Проверьте стабильность вашего интернета! Если у вас низкая скорость интернета, уменьшите количество загружаемых потоков.", "Exception_DownloadTimeout3": "**ПРЕДУПРЕЖДЕНИЕ** Изменение количества потоков загрузки СБРОСИТ вашу загрузку с 0, и вам придется удалить существующие части загрузки вручную!", - "GameStateInvalid_Title": "Game Data Directory/Executable Name/Config.ini/App.Info file is Invalid!", - "GameStateInvalid_Subtitle1": "Collapse Launcher has detected that the game file properties are invalid for region:\r\n", - "GameStateInvalid_Subtitle2": "It's recommended to perform a fix in order the launcher to detect the game properly", - "GameStateInvalid_Subtitle3": "Click \"", - "GameStateInvalid_Subtitle4": "\" to fix the game properties or click \"", - "GameStateInvalid_Subtitle5": "\" to cancel the operation.", - - "GameStateInvalidFixed_Title": "Game File Properties have been Succesfully Fixed!", - "GameStateInvalidFixed_Subtitle1": "Game file properties have been fixed for region:", - "GameStateInvalidFixed_Subtitle2": "Please perform a \"", - "GameStateInvalidFixed_Subtitle3": "\" in the \"", - "GameStateInvalidFixed_Subtitle4": "\" menu in order to make sure all the files are verified." + "GameStateInvalid_Title": "Каталог игровых данных/Имя исполняемого файла/Конфиг.ini/App.Info недействителен!", + "GameStateInvalid_Subtitle1": "Collapse Launcher обнаружил, что свойства файла игры не соответствуют региону:\r\n", + "GameStateInvalid_Subtitle2": "Рекомендуется выполнить исправление, чтобы программа запуска обнаружила игру правильно", + "GameStateInvalid_Subtitle3": "Нажмите \"", + "GameStateInvalid_Subtitle4": "\", чтобы исправить свойства игры, или нажмите кнопку \"", + "GameStateInvalid_Subtitle5": "\" для отмены операции.", + + "GameStateInvalidFixed_Title": "Свойства игрового файла были успешно исправлены!", + "GameStateInvalidFixed_Subtitle1": "Свойства игрового файла были исправлены для региона:", + "GameStateInvalidFixed_Subtitle2": "Пожалуйста, выполните \"", + "GameStateInvalidFixed_Subtitle3": "\" в \"", + "GameStateInvalidFixed_Subtitle4": "\"меню, чтобы убедиться, что все файлы проверены.\"", + + "InstallFolderRootTitle": "Drive Root Provided!", + "InstallFolderRootSubtitle": "Cannot install game to the root of your drive! Please make a new folder and try again." }, "_GameRepairPage": { @@ -340,6 +362,8 @@ "SpecVeryHigh": "Очень высокий", "SpecMaximum": "Максимальный", "SpecUltra": "Ультра", + "SpecDynamic": "Dynamic", + "SpecGlobal": "Global", "Audio_Title": "Настройки аудио", "Audio_Master": "Общая громкость", @@ -382,7 +406,7 @@ "CustomArgs_Footer2": "документацию по командной строке Unity Standalone Player", "CustomArgs_Footer3": ", чтобы увидеть больше параметров.", - "GameBoost": "Повысить приоритет игры [Экспериментально]", + "GameBoost": "Boost Game Priority", "MobileLayout": "Использовать мобильную раскладку", "Advanced_Title": "Дополнительные настройки", @@ -404,6 +428,8 @@ "Debug": "Дополнительные настройки", "Debug_Console": "Показать консоль", "Debug_IncludeGameLogs": "Сохранять журналы игры в Collapse (могут быть конфиденциальные данные)", + "Debug_SendRemoteCrashData": "Send anonymous crash reports to developers", + "Debug_SendRemoteCrashData_EnvVarDisablement": "This setting is disabled due to 'DISABLE_SENTRY' environment variable being set to true.", "Debug_MultipleInstance": "Разрешить запуск нескольких лаунчеров Collapse", "ChangeRegionWarning_Toggle": "Показывать предупреждение об изменении региона", @@ -420,7 +446,7 @@ "AppThemes_Dark": "Темная", "AppThemes_ApplyNeedRestart": "*Чтобы изменение темы вступило в силу, необходимо перезапустить приложение.", - "IntroSequenceToggle": "Use Intro Animation Sequence", + "IntroSequenceToggle": "Используйте последовательность вступительной анимации", "AppWindowSize": "Размер окна", "AppWindowSize_Normal": "Обычный", @@ -431,6 +457,7 @@ "AppBG": "Фоновое изображение приложения", "AppBG_Checkbox": "Использовать пользовательский фон", "AppBG_Note": "Допустимые форматы:\r\nИзображение: {0}\r\nВидео: {1}", + "AppBG_Note_Regional": "Региональные настройки пользовательского фона находятся в кнопке \"Быстрые настройки\" на главной странице.", "AppThreads": "Потоки приложения", "AppThreads_Download": "Потоки загрузок", @@ -455,6 +482,8 @@ "SophonHttpNumberBox": "Максимальное количество HTTP-соединений", "SophonHelp_Http": "Это контролирует максимальное количество сетевых подключений, устанавливаемых Collapse для загрузки частей.", "SophonToggle": "Включить Sophon в поддерживаемых регионах", + "SophonPredownPerfMode_Toggle": "[EXPERIMENTAL] Use all CPU cores when applying pre-download", + "SophonPredownPerfMode_Tooltip": "Enabling this will set CPU threads to maximum available for your system. Disable if you get any problems.", "AppThreads_Attention": "Внимание", "AppThreads_Attention1": "Перед тем как изменить", @@ -463,14 +492,18 @@ "AppThreads_Attention4": "значение, если у вас есть существующая загрузка, поскольку это могло бы", "AppThreads_Attention5": "ПОВТОРНОЙ ЗАГРУЗКЕ ВСЕГО ФАЙЛА", "AppThreads_Attention6": "из-за несоответствия количества сеансов, необходимых для загрузки.", + "AppThreads_AttentionTop1": "The issues below will no longer occur if you have", + "AppThreads_AttentionTop2": "setting enabled.", "DiscordRPC": "Расширенная активность в Discord", "DiscordRPC_Toggle": "Показывать статус в Discord", "DiscordRPC_GameStatusToggle": "Показывать текущую игру в статусе в Discord", "DiscordRPC_IdleStatusToggle": "Показывать RPC во время простоя", + "ImageBackground": "Image Background Settings", "VideoBackground": "Настройки видеофона", "VideoBackground_IsEnableAudio": "Включить аудио", + "VideoBackground_IsEnableAcrylicBackground": "Use Acrylic Effect while using Video Background", "VideoBackground_AudioVolume": "Громкость аудио", "Update": "Проверить наличие обновлений", @@ -480,8 +513,8 @@ "Update_NewVer1": "Обновить до", "Update_NewVer2": "доступно!", "Update_LatestVer": "Вы используете самую последнюю версию.", - "Update_SeeChangelog": "See Latest Changes (EN)", - "Update_ChangelogTitle": "Latest Changes", + "Update_SeeChangelog": "Посмотреть последние изменения (EN)", + "Update_ChangelogTitle": "Последние изменения", "AppFiles": "Управление файлами приложения", "AppFiles_OpenDataFolderBtn": "Открыть папку с данными приложения", @@ -497,9 +530,10 @@ "ContributePRBtn": "Внести свой вклад, сделав Pull Request", "ContributorListBtn": "Участники проекта с открытым исходным кодом", "HelpLocalizeBtn": "Помогите нам перевести Collapse!", + "ShareYourFeedbackBtn": "Share Your Feedback", "About": "О программе", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\nshatyuka & gablm", "About_Copyright3": "защищённый", "About_Copyright4": "Все права защищены.", @@ -510,7 +544,7 @@ "Disclaimer1": "Это приложение не ассоциировано с", "Disclaimer2": "любым способом", "Disclaimer3": "и полностью open-source, любой вклад приветствуется.", - + "WebsiteBtn": "Visit our Website", "DiscordBtn1": "Присоединяйтесь к нам в Discord!", "DiscordBtn2": "Дискорд Honkai Impact 3rd", "DiscordBtn3": "Официальный Discord сервер Collapse!", @@ -519,6 +553,7 @@ "EnableAcrylicEffect": "Использовать эффект акрилового размытия", "EnableDownloadChunksMerging": "Объединение загруженных фрагментов пакетов", + "Enforce7ZipExtract": "Always Use 7-zip for Game Installation/Update", "UseExternalBrowser": "Использовать внешний браузер", "LowerCollapsePrioOnGameLaunch": "Уменьшение использования ресурсов процесса Collapse при запуске игры", @@ -537,7 +572,7 @@ "AppBehavior_LaunchOnStartup": "Запустить Collapse при включении компьютера", "AppBehavior_StartupToTray": "Скрыть Collapse после включения компьютера", - "Waifu2X_Toggle": "Использовать Waifu2X [Экспериментально]", + "Waifu2X_Toggle": "Use Waifu2X", "Waifu2X_Help": "Использование Waifu2X для увеличения фоновых изображений.\nКогда активно, качество изображения значительно улучшается, но это потребует больше времени для первой загрузки изображения.", "Waifu2X_Help2": "Доступно только для неподвижных изображений!", "Waifu2X_Warning_CpuMode": "ВНИМАНИЕ: Доступное графическое устройство Vulkan не найдено, и будет использоваться режим CPU. Это значительно увеличит время обработки изображения.", @@ -545,40 +580,91 @@ "Waifu2X_Error_Loader": "ОШИБКА: Не удалось определить Загрузчик Vulkan. Удостоверьтесь, что ваша видеокарта поддерживает технологию Vulkan, и необходимый драйвер установлен.", "Waifu2X_Error_Output": "ОШИБКА: Не удалось пройти самопроверку Waifu2X, получено пустое выходное изображение.", - "NetworkSettings_Title": "Network Settings", - "NetworkSettings_Proxy_Title": "Proxy Settings", - - "NetworkSettings_Proxy_Hostname": "Proxy Hostname", - "NetworkSettings_Proxy_HostnameHelp1": "Represents the URL of the Proxy to use.", - "NetworkSettings_Proxy_HostnameHelp2": "Collapse can only support", - "NetworkSettings_Proxy_HostnameHelp3": "HTTP/HTTPS and SOCKS4/4a/5", - "NetworkSettings_Proxy_HostnameHelp4": "type of proxy at the moment.", - - "NetworkSettings_ProxyWarn_UrlInvalid": "The URL entered is not valid!", - "NetworkSettings_ProxyWarn_NotSupported": "The proxy scheme is not supported! Collapse only supports http://, https://, socks4://, socks4a:// and socks5://", - - "NetworkSettings_Proxy_Username": "Proxy Username", - "NetworkSettings_Proxy_UsernamePlaceholder": "Enter Proxy Username", - "NetworkSettings_Proxy_UsernameHelp1": "Default:", - "NetworkSettings_Proxy_UsernameHelp2": "[Empty]", - "NetworkSettings_Proxy_UsernameHelp3": "Leave this field empty if your proxy doesn't require authentication.", - - "NetworkSettings_Proxy_Password": "Proxy Password", - "NetworkSettings_Proxy_PasswordPlaceholder": "Enter Proxy Password", - "NetworkSettings_Proxy_PasswordHelp1": "Default:", - "NetworkSettings_Proxy_PasswordHelp2": "[Empty]", - "NetworkSettings_Proxy_PasswordHelp3": "Leave this field empty if your proxy doesn't require authentication.", - - "NetworkSettings_ProxyTest_Button": "Test Proxy Connectivity", - "NetworkSettings_ProxyTest_ButtonChecking": "Checking Connectivity...", - "NetworkSettings_ProxyTest_ButtonSuccess": "Proxy Connectivity Test is Successful!", - "NetworkSettings_ProxyTest_ButtonFailed": "Test Failed! Proxy is not Reachable", - - "NetworkSettings_Http_Title": ".NET HTTP Client Settings", - "NetworkSettings_Http_Redirect": "Allow HTTP Redirection", - "NetworkSettings_Http_SimulateCookies": "Allow Simulate HTTP Cookies", - "NetworkSettings_Http_UntrustedHttps": "Allow Untrusted HTTPS Certificate", - "NetworkSettings_Http_Timeout": "HTTP Client Timeout (in Seconds)" + "NetworkSettings_Title": "Настройки сети", + "NetworkSettings_Proxy_Title": "Настройки прокси-сервера", + + "NetworkSettings_Proxy_Hostname": "Имя хоста прокси-сервера", + "NetworkSettings_Proxy_HostnameHelp1": "Представляет собой URL-адрес используемого прокси.", + "NetworkSettings_Proxy_HostnameHelp2": "Collapse может поддерживает только", + "NetworkSettings_Proxy_HostnameHelp3": "HTTP/HTTPS и SOCKS4/4a/5", + "NetworkSettings_Proxy_HostnameHelp4": "тип прокси на данный момент.", + + "NetworkSettings_ProxyWarn_UrlInvalid": "Введенный URL-адрес недействителен!", + "NetworkSettings_ProxyWarn_NotSupported": "Схема прокси не поддерживается! Collapse поддерживает только http://, https://, socks4://, socks4a:// и socks5://.", + + "NetworkSettings_Proxy_Username": "Имя пользователя прокси-сервера", + "NetworkSettings_Proxy_UsernamePlaceholder": "Введите имя пользователя прокси-сервера", + "NetworkSettings_Proxy_UsernameHelp1": "По умолчанию:", + "NetworkSettings_Proxy_UsernameHelp2": "[Пусто]", + "NetworkSettings_Proxy_UsernameHelp3": "Оставьте это поле пустым, если ваш прокси не требует аутентификации.", + + "NetworkSettings_Proxy_Password": "Пароль от прокси-сервера", + "NetworkSettings_Proxy_PasswordPlaceholder": "Введите пароль прокси-сервера", + "NetworkSettings_Proxy_PasswordHelp1": "По умолчанию:", + "NetworkSettings_Proxy_PasswordHelp2": "[Пусто]", + "NetworkSettings_Proxy_PasswordHelp3": "Оставьте это поле пустым, если ваш прокси не требует аутентификации.", + + "NetworkSettings_ProxyTest_Button": "Проверка соединения с прокси-сервером...", + "NetworkSettings_ProxyTest_ButtonChecking": "Проверка подключения...", + "NetworkSettings_ProxyTest_ButtonSuccess": "Тест подключения к прокси-серверу успешно завершен!", + "NetworkSettings_ProxyTest_ButtonFailed": "Тест провален! Прокси-сервер недоступен", + + "NetworkSettings_Http_Title": "Настройки HTTP-клиента .NET", + "NetworkSettings_Http_Redirect": "Разрешить перенаправление HTTP", + "NetworkSettings_Http_SimulateCookies": "Разрешить симуляцию файлов HTTP Cookies", + "NetworkSettings_Http_UntrustedHttps": "Разрешить недоверенный сертификат HTTPS", + "NetworkSettings_Http_Timeout": "HTTP Client Timeout (in seconds)", + + "FileDownloadSettings_Title": "File Download Settings", + "FileDownloadSettings_SpeedLimit_Title": "Limit Download Speed", + "FileDownloadSettings_SpeedLimit_NumBox": "Speed Limit (in MiB)", + "FileDownloadSettings_SpeedLimitHelp1": "Default:", + "FileDownloadSettings_SpeedLimitHelp2": "Speed Limit value range:", + "FileDownloadSettings_SpeedLimitHelp3": "1 - 1000 MiB/s", + "FileDownloadSettings_SpeedLimitHelp4": "Limits the maximum allowed bandwidth for downloading. This setting cannot be used alongside the", + "FileDownloadSettings_SpeedLimitHelp5": "setting.", + + "FileDownloadSettings_NewPreallocChunk_Title": "New Pre-allocated Downloader", + "FileDownloadSettings_NewPreallocChunk_Subtitle": "For Game Installation, Game Repair and Cache Updates only.", + "FileDownloadSettings_NewPreallocChunk_NumBox": "Chunk Size (in MiB)", + "FileDownloadSettings_NewPreallocChunkHelp1": "Default:", + "FileDownloadSettings_NewPreallocChunkHelp2": "Chunk Size value range:", + "FileDownloadSettings_NewPreallocChunkHelp3": "1 - 32 MiB", + "FileDownloadSettings_NewPreallocChunkHelp4": "When enabled, the downloader will dynamically pre-allocate the file size during its download.", + "FileDownloadSettings_NewPreallocChunkHelp5": "This enables the downloader to directly writes data chunks into the file without splitting it into separate files.", + "FileDownloadSettings_NewPreallocChunkHelp6": "When disabled, the launcher will use the old allocation method, where data chunks will be written into separate files. It will also disable the", + "FileDownloadSettings_NewPreallocChunkHelp7": "and", + "FileDownloadSettings_NewPreallocChunkHelp8": "settings.", + "FileDownloadSettings_NewPreallocChunkHelp9": "Note:", + "FileDownloadSettings_NewPreallocChunkHelp10": "This feature is only available for game installation (such as Initial Install, Update, and Pre-load), Game Repair, and Cache Update steps.", + + "FileDownloadSettings_BurstDownload_Title": "Burst File Download Mode", + "FileDownloadSettings_BurstDownload_Subtitle": "For Game Repair and Cache Updates only.", + "FileDownloadSettings_BurstDownloadHelp1": "Default:", + "FileDownloadSettings_BurstDownloadHelp2": "When enabled, this feature will allow the download process on", + "FileDownloadSettings_BurstDownloadHelp3": "and", + "FileDownloadSettings_BurstDownloadHelp4": "features to run in parallel to make the download process more efficient.", + "FileDownloadSettings_BurstDownloadHelp5": "When disabled, the download process for", + "FileDownloadSettings_BurstDownloadHelp6": "and", + "FileDownloadSettings_BurstDownloadHelp7": "features will use a sequential download process.", + + "Database_Title": "Пользовательская синхронизируемая база данных", + "Database_ConnectionOk": "Успешное подключение к базе данных!", + "Database_ConnectFail": "Failed to connect to the database, see error(s) below:", + "Database_Toggle": "Включить онлайн базу данных", + "Database_Url": "Ссылка на базу данных", + "Database_Url_Example": "Пример: https://db-collapse.turso.io", + "Database_Token": "Токен", + "Database_UserId": "Пользовательский ID", + "Database_GenerateGuid": "Сгенерировать UID", + "Database_Validate": "Проверить и сохранить настройки", + "Database_Error_EmptyUri": "Ссылка на базу данных не может быть пустой!", + "Database_Error_EmptyToken": "Токен базы данных не может быть пустым!", + "Database_Error_InvalidGuid": "User ID is not a valid GUID!", + "Database_Warning_PropertyChanged": "Database settings has changed", + "Database_ValidationChecking": "Validating Settings...", + "Database_Placeholder_DbUserIdTextBox": "GUID Example: ed6e8048-e3a0-4983-bd56-ad19956c701f", + "Database_Placeholder_DbTokenPasswordBox": "Enter your authentication token here" }, "_Misc": { @@ -598,6 +684,7 @@ "PerFromTo": "{0} / {1}", "PerFromToPlaceholder": "- / -", + "EverythingIsOkay": "Все хорошо!", "Cancel": "Отменить", "Close": "Закрыть", "UseCurrentDir": "Использовать текущую директорию", @@ -666,6 +753,7 @@ "Disabled": "Отключено", "Enabled": "Включено", "UseAsDefault": "Использовать по умолчанию", + "Default": "Default", "BuildChannelPreview": "Предпросмотр", "BuildChannelStable": "Стабильная", @@ -706,7 +794,24 @@ "LauncherNameSteam": "Steam", "LauncherNameUnknown": "(Название лаунчера неизвестно)", - "ImageCropperTitle": "Обрезать изображение" + "ImageCropperTitle": "Обрезать изображение", + + "IsBytesMoreThanBytes": "= {0} bytes (-/+ {1})", + "IsBytesUnlimited": "= Unlimited", + "IsBytesNotANumber": "= NaN", + + "MissingVcRedist": "Missing Visual C/C++ Redistributable", + "MissingVcRedistSubtitle": "You need to install the Visual C/C++ Redistributable to run this function. Do you want to download it now?\r\nNote: This will open a browser window and download a file from Microsoft. Please run the installer after downloading it then restart Collapse and try again.\r\nIf you have already installed it but the error remains, please send a issue ticket to us.", + "ExceptionFeedbackBtn": "Tell us what happened", + "ExceptionFeedbackBtn_Unavailable": "Crash report is disabled or not available", + "ExceptionFeedbackBtn_FeedbackSent": "Feedback has been sent!", + "ExceptionFeedbackTitle": "Tell us what happened:", + "ExceptionFeedbackTemplate_User": "Username (Optional):", + "ExceptionFeedbackTemplate_Email": "Email (Optional):", + "ExceptionFeedbackTemplate_Message": "Insert your feedback after this line", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { @@ -753,7 +858,7 @@ "RepairCompletedSubtitle": "{0} файл(ов) были восстановлены.", "RepairCompletedSubtitleNoBroken": "Поврежденных файлов не найдено.", "ExtremeGraphicsSettingsWarnTitle": "Пресет \"Очень высокие\" выбран!", - "ExtremeGraphicsSettingsWarnSubtitle": "Вы собираетесь установить пресет \"Очень высокие\"!\nОчень высокими настройками, по сути, является 2x масштаб визуализации с включенным MSAA, что ОЧЕНЬ ПЛОХО ОПТИМИЗИРОВАНО!\n\nВы уверены, что хотите использовать эту настройку?", + "ExtremeGraphicsSettingsWarnSubtitle": "You are about to set the setting preset to Very High!\r\nVery High setting preset is essentially a 1.6x Render Scale with MSAA Enabled and is VERY UNOPTIMIZED!\r\n\r\nAre you sure you want to use this setting?", "MigrateExistingMoveDirectoryTitle": "Перемещение установки для: {0}", "MigrateExistingInstallChoiceTitle": "Обнаружена существующая установка {0}!", "MigrateExistingInstallChoiceSubtitle1": "В этой папке уже установлена игра, использующая {0}:", @@ -815,10 +920,14 @@ "ReleaseChannelChangeSubtitle2": "Примечание:", "ReleaseChannelChangeSubtitle3": "Это действие может привести к необратимым изменениям и/или нарушить работу вашей текущей установки. Мы не несем ответственность за потерю или повреждение данных, связанных с игрой.", + "ForceUpdateCurrentInstallTitle": "Force-update Current Installation", + "ForceUpdateCurrentInstallSubtitle1": "You are about to perform a forced-update to your current:", + "ForceUpdateCurrentInstallSubtitle2": "installation and we recommend you to close your currently opened game(s).", + "ChangePlaytimeTitle": "Вы точно хотите изменить ваше время в игре?", "ChangePlaytimeSubtitle": "Изменение времени в игре означает замену текущего значения только что введенным.\n\nВы хотите продолжить?\n\nПримечание: Это не влияет на работу Collapse, и вы можете изменить это значение в любое время, когда не играете в игру.", "ResetPlaytimeTitle": "Вы уверены, что хотите сбросить время в игре?", - "ResetPlaytimeSubtitle": "Сброс вашего времени в игре означает установку счетчика игрового времени в 0. Это ", + "ResetPlaytimeSubtitle": "Resetting your playtime means setting the playtime counter and all related statistics back to 0. This is a ", "ResetPlaytimeSubtitle2": "удаляющее", "ResetPlaytimeSubtitle3": " действие, вы не сможете вернуться обратно после подтверждения.\n\nВы хотите продолжить?\n\nЗаметка: Это не влияет на работу Collapse и вы в любой момент можете поменять это значение, пока вы не в игре.", "InvalidPlaytimeTitle": "Возникла проблема с сохранением времени игры в этой сессии", @@ -831,6 +940,22 @@ "CannotUseAppLocationForGameDirTitle": "Папка недопустима!", "CannotUseAppLocationForGameDirSubtitle": "Вы не можете использовать эту папку, так как она используется в качестве системной папки или для основного исполняемого файла приложения. Пожалуйста, выберите другую папку!", + "InvalidGameDirNewTitleFormat": "Path is Invalid: {0}", + "InvalidGameDirNewSubtitleSelectedPath": "Selected Path:", + "InvalidGameDirNewSubtitleSelectOther": "Please select another folder/location!", + "InvalidGameDirNew1Title": "Folder is invalid!", + "InvalidGameDirNew1Subtitle": "You can't use this folder as it is being used as a system folder or being used for main executable of the app. Please choose another folder!", + "InvalidGameDirNew2Title": "Cannot access the selected folder", + "InvalidGameDirNew2Subtitle": "The launcher does not have permission to access this folder!", + "InvalidGameDirNew3Title": "Cannot select root drive", + "InvalidGameDirNew3Subtitle": "You have selected a path on top of the root drive, which is forbidden!", + "InvalidGameDirNew4Title": "Cannot select Windows folder", + "InvalidGameDirNew4Subtitle": "You cannot use Windows folder as Game Installation Location to avoid any unnecessary that might happen.", + "InvalidGameDirNew5Title": "Cannot select Program Data folder", + "InvalidGameDirNew5Subtitle": "You cannot use Program Data folder as Game Installation Location to avoid any unnecessary that might happen.", + "InvalidGameDirNew6Title": "Cannot select Program Files or Program Files (x86) folder", + "InvalidGameDirNew6Subtitle": "You cannot use Program Files or Program Files (x86) folder as Game Installation Location to avoid any unnecessary that might happen.", + "FolderDialogTitle1": "Select Game Installation Location", "StopGameTitle": "Принудительно закрыть игру", "StopGameSubtitle": "Вы действительно хотите принудительно закрыть игру?\nВы можете потерять внутриигровой прогресс.", @@ -877,15 +1002,46 @@ "SteamShortcutCreationSuccessSubtitle5": " • Новые ярлыки будут отображаться только после перезапуска Steam.", "SteamShortcutCreationSuccessSubtitle6": " • Чтобы использовать оверлей Steam, необходимо запустить Steam от имени администратора, а Collapse должен быть полностью закрыт или в настройках должна быть включена опция \"Разрешить запуск несколько лаунчеров Collapse\".", "SteamShortcutCreationSuccessSubtitle7": " • Если игра не установлена/обновлена, Collapse попытается установить/обновить ее. Пожалуйста, обратите внимание, что диалоги, связанные с этими процессами, по-прежнему будут отображаться.", - "SteamShortcutCreationFailureTitle": "Неверная папка данных Steam", "SteamShortcutCreationFailureSubtitle": "Не удалось найти корректную папку userdata.\n\nПожалуйста, убедитесь, что вы хотя бы раз вошли в клиент Steam, прежде чем пытаться использовать эту функцию.", + "SteamShortcutTitle": "Steam Shortcut", + "SteamShortcutDownloadingImages": "Downloading Steam Grid Images ({0}/{1})", "DownloadSettingsTitle": "Настройки загрузки", "DownloadSettingsOption1": "Запустить игру после установки", - - "OpenInExternalBrowser": "Open in External Browser", - "CloseOverlay": "Close Overlay" + + "OpenInExternalBrowser": "Открыть во внешнем браузере", + "CloseOverlay": "Закрыть оверлей", + + "DbGenerateUid_Title": "Вы действительно хотите изменить свой пользовательский ID?", + "DbGenerateUid_Content": "Changing the current user ID will cause the associated data to be lost if you lose it.", + + "SophonIncrementUpdateUnavailTitle": "Incremental Update is Unavailable: Version is Too Obsolete!", + "SophonIncrementUpdateUnavailSubtitle1": "Your game version: {0}", + "SophonIncrementUpdateUnavailSubtitle2": " is too obsolete", + "SophonIncrementUpdateUnavailSubtitle3": " and incremental update for your version is not available. However, you could still update your game by re-downloading the entire thing from scratch.", + "SophonIncrementUpdateUnavailSubtitle4": "Click \"{0}\" to continue updating the entire thing or click \"{1}\" to cancel the process", + + "UACWarningTitle": "Warning: UAC Disabled Detected", + "UACWarningContent": "Disabling User Account Control (UAC) is never a good idea.\nThe security of the OS will be compromised and the game may not run properly.\n\nClick the \"Learn More\" button to see how to enable UAC.\nThe related entry is: Run all administrators in Admin Approval Mode.", + "UACWarningLearnMore": "Learn More", + "UACWarningDontShowAgain": "Don't Show Again", + + "EnsureExitTitle": "Exiting Application", + "EnsureExitSubtitle": "There are critical operations running in the background. Are you sure you want to exit?", + + "UserFeedback_DialogTitle": "Share Your Thoughts", + "UserFeedback_TextFieldTitleHeader": "Feedback Title", + "UserFeedback_TextFieldTitlePlaceholder": "Write your feedback's title here...", + "UserFeedback_TextFieldMessageHeader": "Message", + "UserFeedback_TextFieldMessagePlaceholder": "Message...", + "UserFeedback_TextFieldRequired": "(required)", + "UserFeedback_RatingText": "Mind to share your ratings?", + "UserFeedback_CancelBtn": "Cancel", + "UserFeedback_SubmitBtn": "Submit your feedback", + "UserFeedback_SubmitBtn_Processing": "Processing...", + "UserFeedback_SubmitBtn_Completed": "Completed!", + "UserFeedback_SubmitBtn_Cancelled": "Cancelled!" }, "_FileMigrationProcess": { @@ -1041,6 +1197,10 @@ "ApplyUpdateErrCollapseRunTitle": "Пожалуйста, закройте Collapse перед применением обновления!", "ApplyUpdateErrCollapseRunSubtitle": "Ждем закрытия Collapse...", + "ApplyUpdateErrCollapseRunTitleWarnBox": "An Instance of Collapse Launcher is Still Running!", + "ApplyUpdateErrCollapseRunSubtitleWarnBox": "We detected an instance of Collapse Launcher is running in the background. To forcely close the launcher, click \"Yes\". To wait until you manually close it, click \"No\".", + "ApplyUpdateErrVelopackStateBrokenTitleWarnBox": "Broken Existing Installation Detected!", + "ApplyUpdateErrVelopackStateBrokenSubtitleWarnBox": "We detected that you have a broken existing installation.\r\n\r\nClick on \"Yes\" to repair the installation before installing updates or Click \"No\" to just run the update installation.", "ApplyUpdateErrReleaseFileNotFoundTitle": "ОШИБКА:\nВ файле \"release\" нет строки \"stable\" или \"preview\"", "ApplyUpdateErrReleaseFileNotFoundSubtitle": "Пожалуйста, проверьте файл \"release\" и повторите попытку.", @@ -1118,8 +1278,15 @@ "Graphics_BloomQuality": "Качество растительности", "Graphics_AAMode": "Режим сглаживания", "Graphics_SFXQuality": "SFX Quality", + "Graphics_DlssQuality": "NVIDIA DLSS", "Graphics_SelfShadow": "Тень персонажа в режиме «Исследование карты»", - "Graphics_HalfResTransparent": "Half Resolution Transparency", + "Graphics_HalfResTransparent": "Прозрачность с половинным разрешением", + + "Graphics_DLSS_UHP": "Ultra Performance", + "Graphics_DLSS_Perf": "Performance", + "Graphics_DLSS_Balanced": "Balanced", + "Graphics_DLSS_Quality": "Quality", + "Graphics_DLSS_DLAA": "DLAA", "Graphics_SpecPanel": "Общие настройки графики", "SpecEnabled": "Включено", @@ -1344,6 +1511,8 @@ "LoadingTitle": "Обработка", "LoadingSubtitle1": "Расчет существующих файлов (найдено {0} файлов - всего {1})...", "LoadingSubtitle2": "Проверка доступности pkg_version...", + "LoadingSubtitle3": "UI might be unresponsive during this process...", + "DeleteSubtitle": "Deleting files...", "BottomButtonDeleteAllFiles": "Удалить все файлы", "BottomButtonDeleteSelectedFiles": "Удалить {0} выбранных файлов", "BottomCheckboxFilesSelected": "{0} Выбран файл(ы) ({1} / {2} всего)", @@ -1405,9 +1574,45 @@ "Graphics_EffectsQ": "Качество эффектов", "Graphics_ShadingQ": "Тени", "Graphics_Distortion": "Деформация", + "Graphics_HighPrecisionCharacterAnimation": "High-Precision Character Animation", "Audio_PlaybackDev": "Устройство воспроизведения звука", "Audio_PlaybackDev_Headphones": "Наушники", - "Audio_PlaybackDev_Speakers": "Speakers", - "Audio_PlaybackDev_TV": "TV" + "Audio_PlaybackDev_Speakers": "Колонки", + "Audio_PlaybackDev_TV": "ТВ" + }, + + "_NotificationToast": { + "WindowHiddenToTray_Title": "Collapse Launcher свернут в трей", + "WindowHiddenToTray_Subtitle": "The launcher is now running in the background.\r\nClick this notification or the icon on the tray to restore the window.", + + "GameInstallCompleted_Title": "{0} готова к запуску", + "GameInstallCompleted_Subtitle": "{0} успешно установлена!", + + "GameUpdateCompleted_Title": "{0} обновлена", + "GameUpdateCompleted_Subtitle": "{0} была успешно обновлена до версии v{1}!", + + "GamePreloadCompleted_Title": "Пакет предварительной загрузки для {0} скачался", + + "GameRepairCheckCompleted_Title": "Game Repair Check is Completed", + "GameRepairCheckCompletedFound_Subtitle": "{0} file(s) need to be updated/repaired. Click this notification to go back to the launcher.", + "GameRepairCheckCompletedNotFound_Subtitle": "No files need to be updated/repaired.", + + "GameRepairDownloadCompleted_Title": "Game Repair Download is Completed", + "GameRepairDownloadCompleted_Subtitle": "{0} file(s) have been successfully updated/repaired.", + + "CacheUpdateCheckCompleted_Title": "Cache Update Check is Completed", + "CacheUpdateCheckCompletedFound_Subtitle": "{0} cache file(s) need to be updated. Click this notification to go back to the launcher.", + "CacheUpdateCheckCompletedNotFound_Subtitle": "No cache files need to be updated.", + + "CacheUpdateDownloadCompleted_Title": "Cache Update Download is Completed", + "CacheUpdateDownloadCompleted_Subtitle": "{0} cache file(s) have been successfully updated.", + + "GenericClickNotifToGoBack_Subtitle": "Click this notification to go back to the launcher.", + + "OOBE_WelcomeTitle": "Welcome to Collapse Launcher!", + "OOBE_WelcomeSubtitle": "You are currently selecting {0} - {1} as your game. There are more games awaits you, find out more!", + + "LauncherUpdated_NotifTitle": "Your launcher is up-to-date!", + "LauncherUpdated_NotifSubtitle": "Your launcher has been updated to: {0}. Go to \"{1}\" and click \"{2}\" to see what changed." } } diff --git a/Hi3Helper.Core/Lang/th_TH.json b/Hi3Helper.Core/Lang/th_TH.json index 678a2d4ca..a504d2f60 100644 --- a/Hi3Helper.Core/Lang/th_TH.json +++ b/Hi3Helper.Core/Lang/th_TH.json @@ -455,7 +455,7 @@ "HelpLocalizeBtn": "ช่วยเราในการแปลภาษา Collapse!", "About": "เกี่ยวกับ", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "ต่ำกว่า", "About_Copyright4": " สงวนลิขสิทธิ์ทั้งหมด", diff --git a/Hi3Helper.Core/Lang/uk_UA.json b/Hi3Helper.Core/Lang/uk_UA.json index 56ecd3a95..397308190 100644 --- a/Hi3Helper.Core/Lang/uk_UA.json +++ b/Hi3Helper.Core/Lang/uk_UA.json @@ -150,13 +150,17 @@ "GameSettings_Panel2MoveGameLocationGame": "Перемістити гру", "GameSettings_Panel2MoveGameLocationGame_SamePath": "Не вдається перемістити гру в кореневий каталог вашого диска!\r\nБудь ласка, створіть папку та спробуйте знову.", "GameSettings_Panel2StopGame": "Примусово закрити гру", + "GameSettings_Panel3RegionalSettings": "Regional Settings", "GameSettings_Panel3": "Кастомні команди запуску", + "GameSettings_Panel3RegionRpc": "Show Playing Status in Discord", "GameSettings_Panel3CustomBGRegion": "Змінити фон регіону", "GameSettings_Panel3CustomBGRegionSectionTitle": "Кастомний фон регіону", - "GameSettings_Panel4": "Різне", + "GameSettings_Panel4": "Global - Miscellaneous", "GameSettings_Panel4ShowEventsPanel": "Показати панель подій", + "GameSettings_Panel4ScaleUpEventsPanel": "Scale Up Events Panel on Hover", "GameSettings_Panel4ShowSocialMediaPanel": "Показати панель соц. мереж", "GameSettings_Panel4ShowPlaytimeButton": "Показати час гри", + "GameSettings_Panel4SyncPlaytimeDatabase": "Sync Playtime with Database", "GameSettings_Panel4CreateShortcutBtn": "Створити ярлик", "GameSettings_Panel4AddToSteamBtn": "Додати в Steam", @@ -165,6 +169,8 @@ "GamePlaytime_Idle_Panel1Minutes": "Хвилин", "GamePlaytime_Idle_ResetBtn": "Скинути", "GamePlaytime_Idle_ChangeBtn": "Змінити", + "GamePlaytime_Idle_SyncDb": "Sync", + "GamePlaytime_Idle_SyncDbSyncing": "Syncing...", "GamePlaytime_Running_Info1": "Ця гра вже запущена, тому час гри змінити не можна.", "GamePlaytime_Running_Info2": "Зверніть увагу, що повне закриття Collapse зупинить відстеження часу гри (збереження того, що було зіграно до цього моменту).", "GamePlaytime_Display": "{0}г {1}хв", @@ -356,6 +362,8 @@ "SpecVeryHigh": "Дуже висока", "SpecMaximum": "Максимальна", "SpecUltra": "Ультра", + "SpecDynamic": "Dynamic", + "SpecGlobal": "Global", "Audio_Title": "Налаштування аудіо", "Audio_Master": "Загальна гучність", @@ -398,7 +406,7 @@ "CustomArgs_Footer2": "документацію командного рядку Unity Standalone Player", "CustomArgs_Footer3": "щоб побачити більше параметрів.", - "GameBoost": "Прискорити пріорітет гри [Експериментально]", + "GameBoost": "Boost Game Priority", "MobileLayout": "Використовувати мобільну версію оформлення", "Advanced_Title": "Розширені налаштування", @@ -420,6 +428,8 @@ "Debug": "Додаткові налаштування", "Debug_Console": "Показати консоль", "Debug_IncludeGameLogs": "Зберегти логи гри до Collapse (може містити конфіденційні дані)", + "Debug_SendRemoteCrashData": "Send anonymous crash reports to developers", + "Debug_SendRemoteCrashData_EnvVarDisablement": "This setting is disabled due to 'DISABLE_SENTRY' environment variable being set to true.", "Debug_MultipleInstance": "Дозволити декілька запущених вікон Collapse", "ChangeRegionWarning_Toggle": "Показувати попередження про зміну регіону", @@ -520,9 +530,10 @@ "ContributePRBtn": "Зробити внесок за допомогою Pull Request", "ContributorListBtn": "Помічники з відкритого коду", "HelpLocalizeBtn": "Допоможіть нам перекласти Collapse!", + "ShareYourFeedbackBtn": "Share Your Feedback", "About": "Про програму", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\nshatyuka & gablm", "About_Copyright3": "під", "About_Copyright4": ". Всі права захищено.", @@ -533,7 +544,7 @@ "Disclaimer1": "Ця програма не пов'язана з", "Disclaimer2": "жодним способом", "Disclaimer3": "та повністю з відкритим кодом. За будь-який внесок буде приємно.", - + "WebsiteBtn": "Visit our Website", "DiscordBtn1": "Зайдіть в Discord нашої армади!", "DiscordBtn2": "Discord Honkai Impact 3rd", "DiscordBtn3": "Офіційний Discord Collapse!", @@ -561,7 +572,7 @@ "AppBehavior_LaunchOnStartup": "Автоматично відкривати Collapse при запуску комп'ютера", "AppBehavior_StartupToTray": "Сховати вікно Collapse при автозапуску", - "Waifu2X_Toggle": "Використовувати Waifu2X [Експериментально]", + "Waifu2X_Toggle": "Use Waifu2X", "Waifu2X_Help": "Використовуйте Waifu2X для збільшення фонових зображень.\nКоли ця опція ввімкнена, якість зображення значно покращується, але на завантаження зображення вперше знадобиться трохи більше часу.", "Waifu2X_Help2": "Доступно тільки для статичних зображень!", "Waifu2X_Warning_CpuMode": "УВАГА: Не знайдено доступного Vulkan GPU пристрою, тому буде використано режим CPU. Це значно збільшить час обробки зображень.", @@ -635,7 +646,25 @@ "FileDownloadSettings_BurstDownloadHelp4": "функції для паралельного запуску, щоб зробити процес завантаження більш ефективним.", "FileDownloadSettings_BurstDownloadHelp5": "Коли вимкнено, процес завантаження для", "FileDownloadSettings_BurstDownloadHelp6": "Також", - "FileDownloadSettings_BurstDownloadHelp7": "будуть використовувати послідовний процес завантаження." + "FileDownloadSettings_BurstDownloadHelp7": "будуть використовувати послідовний процес завантаження.", + + "Database_Title": "User Synchronizable Database", + "Database_ConnectionOk": "Database connected successfully!", + "Database_ConnectFail": "Failed to connect to the database, see error(s) below:", + "Database_Toggle": "Enable Online Database", + "Database_Url": "Database URL", + "Database_Url_Example": "Example: https://db-collapse.turso.io", + "Database_Token": "Token", + "Database_UserId": "User ID", + "Database_GenerateGuid": "Generate UID", + "Database_Validate": "Validate & Save Settings", + "Database_Error_EmptyUri": "Database URL cannot be empty!", + "Database_Error_EmptyToken": "Database token cannot be empty!", + "Database_Error_InvalidGuid": "User ID is not a valid GUID!", + "Database_Warning_PropertyChanged": "Database settings has changed", + "Database_ValidationChecking": "Validating Settings...", + "Database_Placeholder_DbUserIdTextBox": "GUID Example: ed6e8048-e3a0-4983-bd56-ad19956c701f", + "Database_Placeholder_DbTokenPasswordBox": "Enter your authentication token here" }, "_Misc": { @@ -655,6 +684,7 @@ "PerFromTo": "{0} / {1}", "PerFromToPlaceholder": "- / -", + "EverythingIsOkay": "All OK!", "Cancel": "Скасувати", "Close": "Закрити", "UseCurrentDir": "Використати поточну директорію", @@ -723,6 +753,7 @@ "Disabled": "Вимкнено", "Enabled": "Ввімкнено", "UseAsDefault": "Використовувати за замовчуванням", + "Default": "Default", "BuildChannelPreview": "Передогляд", "BuildChannelStable": "Стабільний", @@ -767,7 +798,20 @@ "IsBytesMoreThanBytes": "= {0} байт (-/+ {1})", "IsBytesUnlimited": "= Необмежено", - "IsBytesNotANumber": "= NaN" + "IsBytesNotANumber": "= NaN", + + "MissingVcRedist": "Missing Visual C/C++ Redistributable", + "MissingVcRedistSubtitle": "You need to install the Visual C/C++ Redistributable to run this function. Do you want to download it now?\r\nNote: This will open a browser window and download a file from Microsoft. Please run the installer after downloading it then restart Collapse and try again.\r\nIf you have already installed it but the error remains, please send a issue ticket to us.", + "ExceptionFeedbackBtn": "Tell us what happened", + "ExceptionFeedbackBtn_Unavailable": "Crash report is disabled or not available", + "ExceptionFeedbackBtn_FeedbackSent": "Feedback has been sent!", + "ExceptionFeedbackTitle": "Tell us what happened:", + "ExceptionFeedbackTemplate_User": "Username (Optional):", + "ExceptionFeedbackTemplate_Email": "Email (Optional):", + "ExceptionFeedbackTemplate_Message": "Insert your feedback after this line", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { @@ -876,6 +920,10 @@ "ReleaseChannelChangeSubtitle2": "Примітка:", "ReleaseChannelChangeSubtitle3": "Ця дія може спричинити незворотні зміни та/або призвести до поломки ваших поточних налаштувань. Ми не несемо відповідальності за втрату або пошкодження даних, пов'язаних з вашою грою.", + "ForceUpdateCurrentInstallTitle": "Force-update Current Installation", + "ForceUpdateCurrentInstallSubtitle1": "You are about to perform a forced-update to your current:", + "ForceUpdateCurrentInstallSubtitle2": "installation and we recommend you to close your currently opened game(s).", + "ChangePlaytimeTitle": "Ви впевнені, що бажаєте змінити час гри?", "ChangePlaytimeSubtitle": "Зміна часу гри означає перезапис поточного значення на введене вами. \n\nЧи бажаєте ви продовжити?\n\nПримітка: Це не впливає на роботу Collapse, і ви можете змінити це значення знову в будь-який час, коли не граєте в гру.", "ResetPlaytimeTitle": "Ви впевнені, що бажаєте скинути час гри?", @@ -892,6 +940,22 @@ "CannotUseAppLocationForGameDirTitle": "Папка недійсна!", "CannotUseAppLocationForGameDirSubtitle": "Ви не можете використати цю папку, оскільки її використовують як системну папку, або як основний виконуваний шлях цієї програми. Будь ласка, оберіть іншу папку!", + "InvalidGameDirNewTitleFormat": "Path is Invalid: {0}", + "InvalidGameDirNewSubtitleSelectedPath": "Selected Path:", + "InvalidGameDirNewSubtitleSelectOther": "Please select another folder/location!", + "InvalidGameDirNew1Title": "Folder is invalid!", + "InvalidGameDirNew1Subtitle": "You can't use this folder as it is being used as a system folder or being used for main executable of the app. Please choose another folder!", + "InvalidGameDirNew2Title": "Cannot access the selected folder", + "InvalidGameDirNew2Subtitle": "The launcher does not have permission to access this folder!", + "InvalidGameDirNew3Title": "Cannot select root drive", + "InvalidGameDirNew3Subtitle": "You have selected a path on top of the root drive, which is forbidden!", + "InvalidGameDirNew4Title": "Cannot select Windows folder", + "InvalidGameDirNew4Subtitle": "You cannot use Windows folder as Game Installation Location to avoid any unnecessary that might happen.", + "InvalidGameDirNew5Title": "Cannot select Program Data folder", + "InvalidGameDirNew5Subtitle": "You cannot use Program Data folder as Game Installation Location to avoid any unnecessary that might happen.", + "InvalidGameDirNew6Title": "Cannot select Program Files or Program Files (x86) folder", + "InvalidGameDirNew6Subtitle": "You cannot use Program Files or Program Files (x86) folder as Game Installation Location to avoid any unnecessary that might happen.", + "FolderDialogTitle1": "Select Game Installation Location", "StopGameTitle": "Примусово зупинити гру", "StopGameSubtitle": "Ви впевнені, що хочете примусово зупинити поточну гру?\r\nВи можете втратити деякий прогрес в грі.", @@ -938,15 +1002,46 @@ "SteamShortcutCreationSuccessSubtitle5": " • Нові ярлики будуть показані лише після перезапуску Steam.", "SteamShortcutCreationSuccessSubtitle6": " • Щоб користуватися оверлеєм Steam, Steam має бути запущеним з правами адміністратора, та Collapse має бути повністю закритим, або мати ввімкненою функцію декількох запущених вікон в налаштуваннях.", "SteamShortcutCreationSuccessSubtitle7": "• Якщо гра не встановлена або не оновлена, Collapse спробує встановити або оновити її. Будь ласка, зверніть увагу, що діалогові вікна, пов’язані з цими процесами, все ще будуть відображатися.", - "SteamShortcutCreationFailureTitle": "Некоректна папка з даними Steam", "SteamShortcutCreationFailureSubtitle": "Неможливо знайти коректну папку даних користувача.\n\nУвійдіть в Steam хоча б раз перед використанням цієї функції.", + "SteamShortcutTitle": "Steam Shortcut", + "SteamShortcutDownloadingImages": "Downloading Steam Grid Images ({0}/{1})", "DownloadSettingsTitle": "Завантажити налаштування", "DownloadSettingsOption1": "Запустіть гру після встановлення", "OpenInExternalBrowser": "Відкрити в зовнішньому браузері", - "CloseOverlay": "Закрити накладання" + "CloseOverlay": "Закрити накладання", + + "DbGenerateUid_Title": "Are you sure you wish to change your user ID?", + "DbGenerateUid_Content": "Changing the current user ID will cause the associated data to be lost if you lose it.", + + "SophonIncrementUpdateUnavailTitle": "Incremental Update is Unavailable: Version is Too Obsolete!", + "SophonIncrementUpdateUnavailSubtitle1": "Your game version: {0}", + "SophonIncrementUpdateUnavailSubtitle2": " is too obsolete", + "SophonIncrementUpdateUnavailSubtitle3": " and incremental update for your version is not available. However, you could still update your game by re-downloading the entire thing from scratch.", + "SophonIncrementUpdateUnavailSubtitle4": "Click \"{0}\" to continue updating the entire thing or click \"{1}\" to cancel the process", + + "UACWarningTitle": "Warning: UAC Disabled Detected", + "UACWarningContent": "Disabling User Account Control (UAC) is never a good idea.\nThe security of the OS will be compromised and the game may not run properly.\n\nClick the \"Learn More\" button to see how to enable UAC.\nThe related entry is: Run all administrators in Admin Approval Mode.", + "UACWarningLearnMore": "Learn More", + "UACWarningDontShowAgain": "Don't Show Again", + + "EnsureExitTitle": "Exiting Application", + "EnsureExitSubtitle": "There are critical operations running in the background. Are you sure you want to exit?", + + "UserFeedback_DialogTitle": "Share Your Thoughts", + "UserFeedback_TextFieldTitleHeader": "Feedback Title", + "UserFeedback_TextFieldTitlePlaceholder": "Write your feedback's title here...", + "UserFeedback_TextFieldMessageHeader": "Message", + "UserFeedback_TextFieldMessagePlaceholder": "Message...", + "UserFeedback_TextFieldRequired": "(required)", + "UserFeedback_RatingText": "Mind to share your ratings?", + "UserFeedback_CancelBtn": "Cancel", + "UserFeedback_SubmitBtn": "Submit your feedback", + "UserFeedback_SubmitBtn_Processing": "Processing...", + "UserFeedback_SubmitBtn_Completed": "Completed!", + "UserFeedback_SubmitBtn_Cancelled": "Cancelled!" }, "_FileMigrationProcess": { @@ -1102,6 +1197,10 @@ "ApplyUpdateErrCollapseRunTitle": "Будь ласка, закрийте Collapse перед тим, як приміняти оновлення!", "ApplyUpdateErrCollapseRunSubtitle": "Чекаємо на закриття Collapse...", + "ApplyUpdateErrCollapseRunTitleWarnBox": "An Instance of Collapse Launcher is Still Running!", + "ApplyUpdateErrCollapseRunSubtitleWarnBox": "We detected an instance of Collapse Launcher is running in the background. To forcely close the launcher, click \"Yes\". To wait until you manually close it, click \"No\".", + "ApplyUpdateErrVelopackStateBrokenTitleWarnBox": "Broken Existing Installation Detected!", + "ApplyUpdateErrVelopackStateBrokenSubtitleWarnBox": "We detected that you have a broken existing installation.\r\n\r\nClick on \"Yes\" to repair the installation before installing updates or Click \"No\" to just run the update installation.", "ApplyUpdateErrReleaseFileNotFoundTitle": "ПОМИЛКА:\r\nфайл \"release\" не має рядку \"stable\" або \"preview\" в ньому", "ApplyUpdateErrReleaseFileNotFoundSubtitle": "Будь ласка, перевірте ваш файл \"release\" та спробуйте ще раз.", @@ -1179,8 +1278,15 @@ "Graphics_BloomQuality": "Якість світіння", "Graphics_AAMode": "Режим анти-згладжування", "Graphics_SFXQuality": "Якість ефектів", + "Graphics_DlssQuality": "NVIDIA DLSS", "Graphics_SelfShadow": "Тіни персонажів під час дослідження карти", "Graphics_HalfResTransparent": "Прозорість у половині роздільної здатності", + + "Graphics_DLSS_UHP": "Ultra Performance", + "Graphics_DLSS_Perf": "Performance", + "Graphics_DLSS_Balanced": "Balanced", + "Graphics_DLSS_Quality": "Quality", + "Graphics_DLSS_DLAA": "DLAA", "Graphics_SpecPanel": "Глобальні налаштування графіки", "SpecEnabled": "Ввімкнено", @@ -1405,6 +1511,8 @@ "LoadingTitle": "Обробка", "LoadingSubtitle1": "Обчислення існуючих файлів ({0} файл(и) знайдено - {1} всього)...", "LoadingSubtitle2": "Перевірка доступності версії pkg_version...", + "LoadingSubtitle3": "UI might be unresponsive during this process...", + "DeleteSubtitle": "Deleting files...", "BottomButtonDeleteAllFiles": "Видалити всі файли", "BottomButtonDeleteSelectedFiles": "Видалити {0} Вибрані файл(и)", "BottomCheckboxFilesSelected": "{0} Вибрані файл(и) ({1} / {2} Всього)", @@ -1466,6 +1574,7 @@ "Graphics_EffectsQ": "Якість ефектів ", "Graphics_ShadingQ": "Якість затінення", "Graphics_Distortion": "Спотворення", + "Graphics_HighPrecisionCharacterAnimation": "High-Precision Character Animation", "Audio_PlaybackDev": "Пристрій для відтворення аудіо", "Audio_PlaybackDev_Headphones": "Навушники", "Audio_PlaybackDev_Speakers": "Колонки", @@ -1498,6 +1607,12 @@ "CacheUpdateDownloadCompleted_Title": "Завантаження оновлення кешу завершено", "CacheUpdateDownloadCompleted_Subtitle": "{0} файл(и) кешу успішно оновлено.", - "GenericClickNotifToGoBack_Subtitle": "Натисніть на це сповіщення, щоб повернутися до панелі запуску." + "GenericClickNotifToGoBack_Subtitle": "Натисніть на це сповіщення, щоб повернутися до панелі запуску.", + + "OOBE_WelcomeTitle": "Welcome to Collapse Launcher!", + "OOBE_WelcomeSubtitle": "You are currently selecting {0} - {1} as your game. There are more games awaits you, find out more!", + + "LauncherUpdated_NotifTitle": "Your launcher is up-to-date!", + "LauncherUpdated_NotifSubtitle": "Your launcher has been updated to: {0}. Go to \"{1}\" and click \"{2}\" to see what changed." } } diff --git a/Hi3Helper.Core/Lang/vi_VN.json b/Hi3Helper.Core/Lang/vi_VN.json index 14f6ecb1a..2fb9e9d9a 100644 --- a/Hi3Helper.Core/Lang/vi_VN.json +++ b/Hi3Helper.Core/Lang/vi_VN.json @@ -533,7 +533,7 @@ "ShareYourFeedbackBtn": "Chia sẻ phản hồi của bạn", "About": "Về chúng tôi", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": "neon-nyan, Cry0, bagusnl,\r\nshatyuka & gablm", "About_Copyright3": "Được dùng bởi bản quyền của", "About_Copyright4": ". Đã đăng ký Bản quyền.", @@ -808,7 +808,10 @@ "ExceptionFeedbackTitle": "Hãy cho chúng tôi biết chuyện gì đã xảy ra", "ExceptionFeedbackTemplate_User": "Tên Người Dùng (Không Bắt Buộc)", "ExceptionFeedbackTemplate_Email": "Email (Không Bắt Buộc)", - "ExceptionFeedbackTemplate_Message": "Chèn phản hồi của bạn sau dòng này" + "ExceptionFeedbackTemplate_Message": "Chèn phản hồi của bạn sau dòng này", + + "Tag_Deprecated": "Deprecated", + "Generic_GameFeatureDeprecation": "Due to unforeseen game changes, this feature has been deprecated and will be removed in the future. Using this feature may cause unexpected behavior." }, "_BackgroundNotification": { diff --git a/Hi3Helper.Core/Lang/zh_CN.json b/Hi3Helper.Core/Lang/zh_CN.json index 54e076631..14637fc2a 100644 --- a/Hi3Helper.Core/Lang/zh_CN.json +++ b/Hi3Helper.Core/Lang/zh_CN.json @@ -533,7 +533,7 @@ "ShareYourFeedbackBtn": "分享您的反馈", "About": "关于", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "采用", "About_Copyright4": "。版权所有。", @@ -808,7 +808,10 @@ "ExceptionFeedbackTitle": "告诉我们发生了什么:", "ExceptionFeedbackTemplate_User": "用户名(可选):", "ExceptionFeedbackTemplate_Email": "邮箱(可选):", - "ExceptionFeedbackTemplate_Message": "在此行后插入您的反馈" + "ExceptionFeedbackTemplate_Message": "在此行后插入您的反馈", + + "Tag_Deprecated": "废弃", + "Generic_GameFeatureDeprecation": "因不可预见的游戏变化,该功能已被弃用,并将在未来移除。使用此功能可能会导致意料外的行为。" }, "_BackgroundNotification": { diff --git a/Hi3Helper.Core/Lang/zh_TW.json b/Hi3Helper.Core/Lang/zh_TW.json index efb9ecbc9..1856e6e27 100644 --- a/Hi3Helper.Core/Lang/zh_TW.json +++ b/Hi3Helper.Core/Lang/zh_TW.json @@ -499,7 +499,7 @@ "HelpLocalizeBtn": "協助我們翻譯 Collapse 啟動器吧!", "About": "關於", - "About_Copyright1": "© 2022-2024", + "About_Copyright1": "© 2022-2025", "About_Copyright2": " neon-nyan, Cry0, bagusnl,\r\n shatyuka & gablm", "About_Copyright3": "Under", "About_Copyright4": "。版權所有。", diff --git a/Hi3Helper.Core/packages.lock.json b/Hi3Helper.Core/packages.lock.json index 0e475ec81..3afd8f0da 100644 --- a/Hi3Helper.Core/packages.lock.json +++ b/Hi3Helper.Core/packages.lock.json @@ -16,14 +16,14 @@ }, "Sentry": { "type": "Direct", - "requested": "[5.1.0, )", - "resolved": "5.1.0", - "contentHash": "G9ynQGBc937yO+TFda09WQfTHKiwqVN8pgtM7LU6o2ciu8WVAE8IceSW0olp6nI9nWj99DtV/KAS2OKGK4B+Vg==" + "requested": "[5.2.0, )", + "resolved": "5.2.0", + "contentHash": "b3aZSOU2CjlIIFRtPRbXParKQ+9PF+JOqkSD7Gxq6PiR07t1rnK+crPtdrWMXfW6PVo/s67trCJ+fuLsgTeADw==" }, "Google.Protobuf": { "type": "Transitive", - "resolved": "3.29.3", - "contentHash": "t7nZFFUFwigCwZ+nIXHDLweXvwIpsOXi+P7J7smPT/QjI3EKxnCzTQOhBqyEh6XEzc/pNH+bCFOOSjatrPt6Tw==" + "resolved": "3.30.0", + "contentHash": "ZnEI4oZWnHvd+Yz5Gcnx5Q5RQIuzptIzd0fmxAN8f81FYHI0USZqMOrPTkrsd/QEzo9vl2b217v9FqFgHfufQw==" }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", @@ -41,7 +41,7 @@ "hi3helper.enctool": { "type": "Project", "dependencies": { - "Google.Protobuf": "[3.29.3, )", + "Google.Protobuf": "[3.30.0, )", "Hi3Helper.Http": "[2.0.0, )", "Hi3Helper.Win32": "[1.0.0, )" } diff --git a/Hi3Helper.EncTool b/Hi3Helper.EncTool index 46f76a823..999e9aea2 160000 --- a/Hi3Helper.EncTool +++ b/Hi3Helper.EncTool @@ -1 +1 @@ -Subproject commit 46f76a823b1e4138747c52cd65ef27fbb32b5603 +Subproject commit 999e9aea2d037d010ca256b9edf2679e444d8d45 diff --git a/Hi3Helper.Http b/Hi3Helper.Http index 3405032f2..239ca3f8f 160000 --- a/Hi3Helper.Http +++ b/Hi3Helper.Http @@ -1 +1 @@ -Subproject commit 3405032f2526ee7edea9bc289c918e187096f166 +Subproject commit 239ca3f8f44f2c668e0c6b66141261fe7d062841 diff --git a/Hi3Helper.SharpDiscordRPC b/Hi3Helper.SharpDiscordRPC index 11c323625..0e03111f7 160000 --- a/Hi3Helper.SharpDiscordRPC +++ b/Hi3Helper.SharpDiscordRPC @@ -1 +1 @@ -Subproject commit 11c3236256062609a06bcba7207388a4218f1544 +Subproject commit 0e03111f7b766502c3b1073a9a5988c181fa4172 diff --git a/Hi3Helper.Sophon b/Hi3Helper.Sophon index de30906f8..25dc0a5ee 160000 --- a/Hi3Helper.Sophon +++ b/Hi3Helper.Sophon @@ -1 +1 @@ -Subproject commit de30906f89a4d373d1f42379e019d6d2446baad4 +Subproject commit 25dc0a5ee8936209f740d41fb6f20557299c8a13 diff --git a/Hi3Helper.TaskScheduler/Hi3Helper.TaskScheduler.csproj b/Hi3Helper.TaskScheduler/Hi3Helper.TaskScheduler.csproj index 8162e405b..844af0498 100644 --- a/Hi3Helper.TaskScheduler/Hi3Helper.TaskScheduler.csproj +++ b/Hi3Helper.TaskScheduler/Hi3Helper.TaskScheduler.csproj @@ -15,7 +15,7 @@ Collapse Launcher's Task Scheduler Shell Collapse Launcher Team $(Company). neon-nyan, Cry0, bagusnl, shatyuka, gablm. - Copyright 2022-2024 $(Company) + Copyright 2022-2025 $(Company) 8.0 1.0.2 @@ -25,13 +25,13 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive; compile - + all runtime; build; native; contentfiles; analyzers; buildtransitive; compile - + diff --git a/Hi3Helper.TaskScheduler/packages.lock.json b/Hi3Helper.TaskScheduler/packages.lock.json index 23052f83a..56e94c9e6 100644 --- a/Hi3Helper.TaskScheduler/packages.lock.json +++ b/Hi3Helper.TaskScheduler/packages.lock.json @@ -13,9 +13,9 @@ }, "Fody": { "type": "Direct", - "requested": "[6.9.1, )", - "resolved": "6.9.1", - "contentHash": "Y33IOTstqsDaq2+1Cweu4s/V2iAAaRY6bPIANCre3Wlx9REc+ONyYmUdCc67Z12dy0N2Haq3t7QP4ANndsu/HA==" + "requested": "[6.9.2, )", + "resolved": "6.9.2", + "contentHash": "YBHobPGogb0vYhGYIxn/ndWqTjNWZveDi5jdjrcshL2vjwU3gQGyDeI7vGgye+2rAM5fGRvlLgNWLW3DpviS/w==" }, "Microsoft.NETFramework.ReferenceAssemblies": { "type": "Direct", @@ -43,9 +43,9 @@ }, "TaskScheduler": { "type": "Direct", - "requested": "[2.11.0, )", - "resolved": "2.11.0", - "contentHash": "p9wH58XSNIyUtO7PIFAEldaKUzpYmlj+YWAfnUqBKnGxIZRY51I9BrsBGJijUVwlxrgmLLPUigRIv2ZTD4uPJA==" + "requested": "[2.12.1, )", + "resolved": "2.12.1", + "contentHash": "DzSVmVs0i5yHmuDy9ZMcTtKg48GU0aEFBbhp2XJrzA4saTRec/KbU5aGE/4P4FE499G3PDx9KPOHysoKzS/i3g==" }, "Microsoft.NETFramework.ReferenceAssemblies.net462": { "type": "Transitive", diff --git a/Hi3Helper.Win32 b/Hi3Helper.Win32 index 7f78a6a29..2564a264f 160000 --- a/Hi3Helper.Win32 +++ b/Hi3Helper.Win32 @@ -1 +1 @@ -Subproject commit 7f78a6a29fd3e4dd3d3be51de2afc181ca2bc5ba +Subproject commit 2564a264fe7e01672137119f3842c06e4426b218 diff --git a/ImageEx b/ImageEx index afaf5d8f4..c59ba6a02 160000 --- a/ImageEx +++ b/ImageEx @@ -1 +1 @@ -Subproject commit afaf5d8f4ded38fb120f50d47a3e6e6c7427b06f +Subproject commit c59ba6a0210925ac44256d40e1c3b90e894d50e4 diff --git a/InnoSetupHelper/InnoSetupHelper.csproj b/InnoSetupHelper/InnoSetupHelper.csproj index 580353136..84b06410d 100644 --- a/InnoSetupHelper/InnoSetupHelper.csproj +++ b/InnoSetupHelper/InnoSetupHelper.csproj @@ -14,7 +14,7 @@ Module for parsing and modifying the Inno Setup Log file (unins000.dat) for Collapse Launcher Collapse Launcher Team $(Company). neon-nyan, Cry0, bagusnl, shatyuka, gablm. - Copyright 2022-2024 $(Company) + Copyright 2022-2025 $(Company) true diff --git a/README.md b/README.md index 83405a8cc..f3e6da446 100644 --- a/README.md +++ b/README.md @@ -229,11 +229,11 @@ Not only that, this launcher also has some advanced features for **Genshin Impac > > Please keep in mind that the Game Conversion feature is currently only available for Honkai Impact: 3rd. Other miHoYo/Cognosphere Pte. Ltd. games are currently not planned for game conversion. # Download Ready-To-Use Builds -[](https://github.com/CollapseLauncher/Collapse/releases/download/CL-v1.82.17/CollapseLauncher-stable-Setup.exe) -> **Note**: The version for this build is `1.82.17` (Released on: February 10th, 2025). +[](https://github.com/CollapseLauncher/Collapse/releases/download/CL-v1.82.18/CollapseLauncher-stable-Setup.exe) +> **Note**: The version for this build is `1.82.18` (Released on: February 18th, 2025). -[](https://github.com/CollapseLauncher/Collapse/releases/download/CL-v1.82.17-pre/CollapseLauncher-preview-Setup.exe) -> **Note**: The version for this build is `1.82.17` (Released on: February 10th, 2025). +[](https://github.com/CollapseLauncher/Collapse/releases/download/CL-v1.82.18-pre/CollapseLauncher-preview-Setup.exe) +> **Note**: The version for this build is `1.82.18` (Released on: February 18th, 2025). To view all releases, [**click here**](https://github.com/neon-nyan/CollapseLauncher/releases). diff --git a/SevenZipExtractor b/SevenZipExtractor index 70af2744a..24925758b 160000 --- a/SevenZipExtractor +++ b/SevenZipExtractor @@ -1 +1 @@ -Subproject commit 70af2744af3dd80e81ea11d44a304f296f718466 +Subproject commit 24925758b8dc04b9e6f21a9099f2908269bb646f diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 64549c496..cf141e213 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -32,74 +32,80 @@ This project uses third-party libraries, each governed by their respective licen ## Third-party software list -This page lists the third-party software dependencies used in CollapseLauncher. Autogenerated by Qodana at Dec, 23th 2024. +This page lists the third-party software dependencies used in CollapseLauncher. Autogenerated by Qodana at March 7th, 2025. | Dependency | Version | Licenses | |--------------------------------------------------------------------------------------------------------------------------|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------| | [CommunityToolkit.Common](https://github.com/CommunityToolkit/dotnet) | 8.4.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [CommunityToolkit.Mvvm](https://github.com/CommunityToolkit/dotnet) | 8.4.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Animations](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Behaviors](https://www.nuget.org/packages/CommunityToolkit.WinUI.Behaviors) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Controls.Primitives](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Controls.Sizers](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Converters](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Extensions](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Helpers](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Media](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [CommunityToolkit.WinUI.Triggers](https://github.com/CommunityToolkit/Windows) | 8.2.241112-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Animations](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Behaviors](https://www.nuget.org/packages/CommunityToolkit.WinUI.Behaviors) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Controls.Primitives](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Controls.Sizers](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Converters](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Extensions](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Helpers](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Media](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [CommunityToolkit.WinUI.Triggers](https://github.com/CommunityToolkit/Windows) | 8.2.250129-preview2 | [MIT](http://opensource.org/licenses/mit-license.php) | | [Costura.Fody](https://github.com/Fody/Costura) | 6.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [DependencyPropertyGenerator](https://www.nuget.org/packages/DependencyPropertyGenerator) | 1.5.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [DotNet.ReproducibleBuilds](https://www.nuget.org/packages/DotNet.ReproducibleBuilds) | 1.2.25 | [MIT](http://opensource.org/licenses/mit-license.php) | | [EventGenerator.Generator](https://www.nuget.org/packages/EventGenerator.Generator) | 0.13.1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Fody](https://github.com/Fody/Fody) | 6.9.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Fody](https://github.com/Fody/Fody) | 6.9.2 | [MIT](http://opensource.org/licenses/mit-license.php) | | [GitInfo](https://clarius.org/GitInfo) | 3.5.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Google.Protobuf.Tools](https://github.com/protocolbuffers/protobuf) | 3.29.1 | PROTOBUF | -| [Google.Protobuf](https://github.com/protocolbuffers/protobuf) | 3.29.1 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) | -| [Hi3Helper.ZstdNet](https://github.com/CollapseLauncher/Hi3Helper.ZstdNet) | 1.6.3 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) | -| [HtmlAgilityPack](http://html-agility-pack.net/) | 1.11.71 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Markdig.Signed](https://github.com/lunet-io/markdig) | 0.39.1 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) | +| [Google.Protobuf.Tools](https://github.com/protocolbuffers/protobuf) | 3.30.0 | PROTOBUF | +| [Google.Protobuf](https://github.com/protocolbuffers/protobuf) | 3.30.0 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) | +| [Hi3Helper.ZstdNet](https://github.com/CollapseLauncher/Hi3Helper.ZstdNet) | 1.6.4 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause) | +| [HtmlAgilityPack](http://html-agility-pack.net/) | 1.11.74 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Markdig.Signed](https://github.com/lunet-io/markdig) | 0.40.0 | [BSD-2-Clause](http://www.opensource.org/licenses/BSD-2-Clause) | | [Microsoft.CSharp](https://github.com/dotnet/corefx) | 4.7.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Extensions.DependencyInjection.Abstractions](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Extensions.DependencyInjection](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Extensions.Logging.Abstractions](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Extensions.Logging](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Extensions.Options](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Extensions.Primitives](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Graphics.Win2D](http://go.microsoft.com/fwlink/?LinkID=519078) | 1.3.1 | [MS-ASP-NET-WEB-OPTIMIZATION](https://www.microsoft.com/web/webpi/eula/weboptimization_1_eula_enu.htm) | -| [Microsoft.NET.ILLink.Tasks](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.DotNet.ILCompiler](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.DependencyInjection.Abstractions](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.DependencyInjection.Abstractions](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.DependencyInjection](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.Logging.Abstractions](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.Logging.Abstractions](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.Logging](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.Options](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Extensions.Primitives](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Graphics.Win2D](http://go.microsoft.com/fwlink/?LinkID=519078) | 1.3.2 | [MS-ASP-NET-WEB-OPTIMIZATION](https://www.microsoft.com/web/webpi/eula/weboptimization_1_eula_enu.htm) | +| [Microsoft.NET.ILLink.Tasks](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | | [Microsoft.NETCore.Targets](https://www.nuget.org/packages/Microsoft.NETCore.Targets) | 6.0.0-preview.4.21253.7 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Web.WebView2](https://aka.ms/webview) | 1.0.2950-prerelease | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause)
BSD-MYLEX | -| [Microsoft.Win32.SystemEvents](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Windows.CsWin32](https://github.com/Microsoft/CsWin32) | 0.3.106 | [Apache-2.0](http://www.apache.org/licenses/) | +| [Microsoft.Web.WebView2](https://aka.ms/webview) | 1.0.3065.39 | [BSD-3-Clause](http://www.opensource.org/licenses/BSD-3-Clause)
BSD-MYLEX | +| [Microsoft.Win32.SystemEvents](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Windows.CsWin32](https://github.com/Microsoft/CsWin32) | 0.3.183 | [Apache-2.0](http://www.apache.org/licenses/) | | [Microsoft.Windows.CsWinRT](https://github.com/microsoft/cswinrt) | 2.2.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [Microsoft.Windows.SDK.BuildTools](https://aka.ms/WinSDKProjectURL) | 10.0.26100.1742 | PROPRIETARY-LICENSE | | [Microsoft.Windows.SDK.Win32Docs](https://github.com/microsoft/win32metadata) | 0.1.42-alpha | PROPRIETARY-LICENSE | -| [Microsoft.Windows.SDK.Win32Metadata](https://github.com/microsoft/win32metadata) | 60.0.34-preview | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.Windows.WDK.Win32Metadata](https://github.com/microsoft/wdkmetadata) | 0.11.4-experimental | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Microsoft.WindowsAppSDK](https://github.com/microsoft/windowsappsdk) | 1.6.241114003 | [MIT](http://opensource.org/licenses/mit-license.php)
[MS-DXSDK-D3DX-9.29.952.3](https://www.nuget.org/packages/Microsoft.DXSDK.D3DX/9.29.952.3/License) | -| [Microsoft.Xaml.Behaviors.WinUI.Managed](http://go.microsoft.com/fwlink/?LinkID=651678) | 2.0.9 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Windows.SDK.Win32Metadata](https://github.com/microsoft/win32metadata) | 61.0.15-preview | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.Windows.WDK.Win32Metadata](https://github.com/microsoft/wdkmetadata) | 0.12.8-experimental | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Microsoft.WindowsAppSDK](https://github.com/microsoft/windowsappsdk) | 1.6.250205002 | [MIT](http://opensource.org/licenses/mit-license.php)
[MS-DXSDK-D3DX-9.29.952.3](https://www.nuget.org/packages/Microsoft.DXSDK.D3DX/9.29.952.3/License) | +| [Microsoft.Xaml.Behaviors.WinUI.Managed](http://go.microsoft.com/fwlink/?LinkID=651678) | 3.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [MinVer](https://github.com/adamralph/minver) | 6.0.0 | [Apache-2.0](http://www.apache.org/licenses/) | | [NuGet.Versioning](https://aka.ms/nugetprj) | 6.12.1 | [Apache-2.0](http://www.apache.org/licenses/) | | [PhotoSauce.MagicScaler](https://photosauce.net/) | 0.15.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [PhotoSauce.NativeCodecs.Libwebp](https://photosauce.net/) | 1.4.0-preview1 | [MIT](http://opensource.org/licenses/mit-license.php) | | [Roman-Numerals](https://github.com/picrap/RomanNumerals) | 2.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Sentry](https://sentry.io/) | 5.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [SharpCompress](https://github.com/adamhathcock/sharpcompress) | 0.38.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Sentry](https://sentry.io/) | 5.2.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [SharpCompress](https://github.com/adamhathcock/sharpcompress) | 0.39.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [SharpHDiffPatch.Core](https://github.com/CollapseLauncher/SharpHDiffPatch.Core) | 2.2.8 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [System.Drawing.Common](https://github.com/dotnet/winforms) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [System.IO.Hashing](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.Buffers](https://github.com/dotnet/maintenance-packages) | 4.6.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.Drawing.Common](https://github.com/dotnet/winforms) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.IO.Hashing](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Net.Http](https://dot.net/) | 4.3.4 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Security.AccessControl](https://dot.net/) | 6.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Security.Cryptography.Algorithms](https://dot.net/) | 4.3.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Security.Cryptography.Encoding](https://dot.net/) | 4.3.0 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Security.Cryptography.Primitives](https://dot.net/) | 4.3.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [System.Security.Cryptography.ProtectedData](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.Security.Cryptography.ProtectedData](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Security.Cryptography.X509Certificates](https://dot.net/) | 4.3.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [System.Text.Encoding.CodePages](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [System.Text.Json](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.Text.Encoding.CodePages](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.Text.Json](https://dot.net/) | 9.0.1 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [System.Text.Json](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Text.RegularExpressions](https://dot.net/) | 4.3.1 | [MIT](http://opensource.org/licenses/mit-license.php) | | [System.Threading.Tasks.Extensions](https://dot.net/) | 4.5.4 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [TaskScheduler](https://github.com/dahall/taskscheduler) | 2.11.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [TaskScheduler](https://github.com/dahall/taskscheduler) | 2.12.1 | [MIT](http://opensource.org/licenses/mit-license.php) | | [ThisAssembly.Constants](https://clarius.org/ThisAssembly) | 2.0.6 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [Velopack](https://github.com/velopack/velopack) | 0.0.1015 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [ZstdSharp.Port](https://github.com/oleg-st/ZstdSharp) | 0.8.1 | [MIT](http://opensource.org/licenses/mit-license.php) | -| [runtime.win-x64.Microsoft.DotNet.ILCompiler](https://dot.net/) | 9.0.0 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [Velopack](https://github.com/velopack/velopack) | 0.0.1053 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [ZstdSharp.Port](https://github.com/oleg-st/ZstdSharp) | 0.8.4 | [MIT](http://opensource.org/licenses/mit-license.php) | +| [runtime.win-x64.Microsoft.DotNet.ILCompiler](https://dot.net/) | 9.0.2 | [MIT](http://opensource.org/licenses/mit-license.php) | \ No newline at end of file diff --git a/global.json b/global.json index a4effd961..ee2876ea5 100644 --- a/global.json +++ b/global.json @@ -2,4 +2,4 @@ "sdk": { "version": "9.0.102" } -} \ No newline at end of file +} diff --git a/LICENSE.rtf b/msi-installer-licensefile.rtf similarity index 100% rename from LICENSE.rtf rename to msi-installer-licensefile.rtf