From 5edd0db80be3580c2592ef3858ee9a8982f078b0 Mon Sep 17 00:00:00 2001 From: bluepilledgreat <97983689+bluepilledgreat@users.noreply.github.com> Date: Sun, 15 Oct 2023 15:07:28 +0100 Subject: [PATCH 1/3] add localisation --- Bloxstrap/App.xaml | 3 + Bloxstrap/App.xaml.cs | 4 +- Bloxstrap/Bloxstrap.csproj | 17 + Bloxstrap/Bootstrapper.cs | 42 +- Bloxstrap/Controls/MarkdownTextBlock.cs | 87 + Bloxstrap/Converters/ResourceConverter.cs | 30 + .../Enums/FlagPresets/InGameMenuVersion.cs | 10 + Bloxstrap/Enums/FlagPresets/LightingMode.cs | 10 + Bloxstrap/Enums/FlagPresets/MSAAMode.cs | 11 + .../Enums/FlagPresets/MaterialVersion.cs | 9 + Bloxstrap/Enums/FlagPresets/RenderingMode.cs | 11 + Bloxstrap/Extensions/ResourceManagerEx.cs | 24 + Bloxstrap/FastFlagManager.cs | 57 +- Bloxstrap/InstallChecker.cs | 16 +- Bloxstrap/Integrations/ActivityWatcher.cs | 4 +- Bloxstrap/ProtocolHandler.cs | 3 +- Bloxstrap/Resources/Strings.Designer.cs | 2606 +++++++++++++++++ Bloxstrap/Resources/Strings.en-US.resx | 132 + Bloxstrap/Resources/Strings.resx | 982 +++++++ .../Elements/Bootstrapper/FluentDialog.xaml | 3 +- .../Elements/Bootstrapper/LegacyDialog2008.cs | 2 + .../Elements/Bootstrapper/LegacyDialog2011.cs | 1 + .../UI/Elements/ContextMenu/LogTracer.xaml | 15 +- .../Elements/ContextMenu/MenuContainer.xaml | 11 +- .../ContextMenu/MenuContainer.xaml.cs | 2 +- .../ContextMenu/ServerInformation.xaml | 17 +- .../Elements/Dialogs/AddFastFlagDialog.xaml | 13 +- .../Dialogs/BulkAddFastFlagDialog.xaml | 12 +- .../Elements/Dialogs/ConnectivityDialog.xaml | 7 +- .../Dialogs/ConnectivityDialog.xaml.cs | 2 +- .../UI/Elements/Dialogs/ExceptionDialog.xaml | 18 +- .../Elements/Dialogs/ExceptionDialog.xaml.cs | 17 +- .../Elements/Dialogs/FluentMessageBox.xaml.cs | 21 +- Bloxstrap/UI/Elements/Menu/MainWindow.xaml | 23 +- Bloxstrap/UI/Elements/Menu/MainWindow.xaml.cs | 4 + .../UI/Elements/Menu/Pages/AboutPage.xaml | 23 +- .../Elements/Menu/Pages/AppearancePage.xaml | 55 +- .../UI/Elements/Menu/Pages/BehaviourPage.xaml | 39 +- .../Menu/Pages/FastFlagEditorPage.xaml | 19 +- .../UI/Elements/Menu/Pages/FastFlagsPage.xaml | 110 +- .../Elements/Menu/Pages/InstallationPage.xaml | 19 +- .../Elements/Menu/Pages/IntegrationsPage.xaml | 55 +- .../UI/Elements/Menu/Pages/ModsPage.xaml | 58 +- .../Elements/Menu/Pages/PreInstallPage.xaml | 15 +- .../Menu/Pages/PreInstallPage.xaml.cs | 5 +- .../ContextMenu/ServerInformationViewModel.cs | 8 +- .../UI/ViewModels/Menu/AboutViewModel.cs | 2 +- .../UI/ViewModels/Menu/AppearanceViewModel.cs | 62 +- .../UI/ViewModels/Menu/BehaviourViewModel.cs | 23 +- .../UI/ViewModels/Menu/FastFlagsViewModel.cs | 36 +- .../ViewModels/Menu/IntegrationsViewModel.cs | 2 +- .../UI/ViewModels/Menu/MainWindowViewModel.cs | 14 +- Bloxstrap/UI/ViewModels/Menu/ModsViewModel.cs | 9 +- .../UI/ViewModels/Menu/PreInstallViewModel.cs | 14 + 54 files changed, 4419 insertions(+), 375 deletions(-) create mode 100644 Bloxstrap/Controls/MarkdownTextBlock.cs create mode 100644 Bloxstrap/Converters/ResourceConverter.cs create mode 100644 Bloxstrap/Enums/FlagPresets/InGameMenuVersion.cs create mode 100644 Bloxstrap/Enums/FlagPresets/LightingMode.cs create mode 100644 Bloxstrap/Enums/FlagPresets/MSAAMode.cs create mode 100644 Bloxstrap/Enums/FlagPresets/MaterialVersion.cs create mode 100644 Bloxstrap/Enums/FlagPresets/RenderingMode.cs create mode 100644 Bloxstrap/Extensions/ResourceManagerEx.cs create mode 100644 Bloxstrap/Resources/Strings.Designer.cs create mode 100644 Bloxstrap/Resources/Strings.en-US.resx create mode 100644 Bloxstrap/Resources/Strings.resx create mode 100644 Bloxstrap/UI/ViewModels/Menu/PreInstallViewModel.cs diff --git a/Bloxstrap/App.xaml b/Bloxstrap/App.xaml index c46ad48..44454f3 100644 --- a/Bloxstrap/App.xaml +++ b/Bloxstrap/App.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:Bloxstrap" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" + xmlns:converters="clr-namespace:Bloxstrap.Converters" ShutdownMode="OnExplicitShutdown" DispatcherUnhandledException="GlobalExceptionHandler"> @@ -13,6 +14,8 @@ pack://application:,,,/Resources/Fonts/#Rubik Light + + diff --git a/Bloxstrap/App.xaml.cs b/Bloxstrap/App.xaml.cs index c6886c9..e3d42ea 100644 --- a/Bloxstrap/App.xaml.cs +++ b/Bloxstrap/App.xaml.cs @@ -213,7 +213,7 @@ namespace Bloxstrap { if (Process.GetProcessesByName(ProjectName).Length > 1 && !IsQuiet) Controls.ShowMessageBox( - $"{ProjectName} is currently running, likely as a background Roblox process. Please note that not all your changes will immediately apply until you close all currently open Roblox instances.", + Bloxstrap.Resources.Strings.Menu_AlreadyRunning, MessageBoxImage.Information ); @@ -230,7 +230,7 @@ namespace Bloxstrap { if (Settings.Prop.UseDisableAppPatch) Controls.ShowMessageBox( - "Roblox was launched via a deeplink, however the desktop app is required for deeplink launching to work. Because you've opted to disable the desktop app, it will temporarily be re-enabled for this launch only.", + Bloxstrap.Resources.Strings.Bootstrapper_DeeplinkTempEnabled, MessageBoxImage.Information ); diff --git a/Bloxstrap/Bloxstrap.csproj b/Bloxstrap/Bloxstrap.csproj index 36a6796..aae05be 100644 --- a/Bloxstrap/Bloxstrap.csproj +++ b/Bloxstrap/Bloxstrap.csproj @@ -40,12 +40,14 @@ + all + @@ -61,4 +63,19 @@ + + + True + True + Strings.resx + + + + + + PublicResXFileCodeGenerator + Strings.Designer.cs + + + diff --git a/Bloxstrap/Bootstrapper.cs b/Bloxstrap/Bootstrapper.cs index c4205f7..062a748 100644 --- a/Bloxstrap/Bootstrapper.cs +++ b/Bloxstrap/Bootstrapper.cs @@ -137,7 +137,7 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, "Performing connectivity check..."); - SetStatus("Connecting to Roblox..."); + SetStatus(Resources.Strings.Bootstrapper_Status_Connecting); try { @@ -148,12 +148,12 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, "Connectivity check failed!"); App.Logger.WriteException(LOG_IDENT, ex); - string message = $"It's possible that something is preventing {App.ProjectName} from connecting to the internet. Please check and try again."; + string message = Resources.Strings.Bootstrapper_Connectivity_Preventing; if (ex.GetType() == typeof(HttpResponseException)) - message = "Roblox may be down right now. See status.roblox.com for more information. Please try again later."; + message = Resources.Strings.Bootstrapper_Connectivity_RobloxDown; else if (ex.GetType() == typeof(TaskCanceledException)) - message = "Bloxstrap timed out when trying to connect to three different Roblox deployment mirrors, indicating a poor internet connection. Please try again later."; + message = Resources.Strings.Bootstrapper_Connectivity_TimedOut; else if (ex.GetType() == typeof(AggregateException)) ex = ex.InnerException!; @@ -180,7 +180,7 @@ namespace Bloxstrap { Mutex.OpenExisting("Bloxstrap_SingletonMutex").Close(); App.Logger.WriteLine(LOG_IDENT, "Bloxstrap_SingletonMutex mutex exists, waiting..."); - SetStatus("Waiting for other instances..."); + SetStatus(Resources.Strings.Bootstrapper_Status_WaitingOtherInstances); mutexExists = true; } catch (Exception) @@ -231,7 +231,7 @@ namespace Bloxstrap await mutex.ReleaseAsync(); if (App.IsFirstRun && App.IsNoLaunch) - Dialog?.ShowSuccess($"{App.ProjectName} has successfully installed"); + Dialog?.ShowSuccess(Resources.Strings.Bootstrapper_SuccessfullyInstalled); else if (!App.IsNoLaunch && !_cancelFired) await StartRoblox(); } @@ -263,8 +263,7 @@ namespace Bloxstrap MessageBoxResult action = App.Settings.Prop.ChannelChangeMode switch { ChannelChangeMode.Prompt => Controls.ShowMessageBox( - $"The channel you're currently on ({App.Settings.Prop.Channel}) is out of date, and appears to no longer be receiving updates.\n" + - $"Would you like to switch to the default channel ({RobloxDeployment.DefaultChannel})?", + string.Format(Resources.Strings.Bootstrapper_ChannelOutOfDate, App.Settings.Prop.Channel, RobloxDeployment.DefaultChannel), MessageBoxImage.Warning, MessageBoxButton.YesNo ), @@ -291,7 +290,7 @@ namespace Bloxstrap { const string LOG_IDENT = "Bootstrapper::StartRoblox"; - SetStatus("Starting {product}..."); + SetStatus(Resources.Strings.Bootstrapper_Status_Starting); if (_launchCommandLine == "--app" && App.Settings.Prop.UseDisableAppPatch) { @@ -303,7 +302,7 @@ namespace Bloxstrap if (!File.Exists(Path.Combine(Paths.System, "mfplat.dll"))) { Controls.ShowMessageBox( - "Roblox requires the use of Windows Media Foundation components. You appear to be missing them, likely because you are using an N edition of Windows. Please install them first, and then launch Roblox.", + Resources.Strings.Bootstrapper_WMFNotFound, MessageBoxImage.Error ); @@ -635,7 +634,7 @@ namespace Bloxstrap return; } - SetStatus($"Getting the latest {App.ProjectName}..."); + SetStatus(Resources.Strings.Bootstrapper_Status_UpgradingBloxstrap); try { @@ -676,7 +675,7 @@ namespace Bloxstrap App.Logger.WriteException(LOG_IDENT, ex); Controls.ShowMessageBox( - $"Bloxstrap was unable to auto-update to {releaseInfo.TagName}. Please update it manually by downloading and running the latest release from the GitHub page.", + string.Format(Resources.Strings.Bootstrapper_AutoUpdateFailed, releaseInfo.TagName), MessageBoxImage.Information ); } @@ -692,7 +691,7 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, $"Prompting to shut down all open Roblox instances"); MessageBoxResult result = Controls.ShowMessageBox( - "Roblox is currently running, but must be closed before uninstalling Bloxstrap. Would you like close Roblox now?", + Resources.Strings.Bootstrapper_Uninstall_RobloxRunning, MessageBoxImage.Information, MessageBoxButton.OKCancel ); @@ -722,7 +721,7 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, $"All Roblox processes closed"); } - SetStatus($"Uninstalling {App.ProjectName}..."); + SetStatus(Resources.Strings.Bootstrapper_Status_Uninstalling); App.ShouldSaveConfigs = false; bool robloxPlayerStillInstalled = true; @@ -841,7 +840,7 @@ namespace Bloxstrap }; } - Dialog?.ShowSuccess($"{App.ProjectName} has successfully uninstalled", callback); + Dialog?.ShowSuccess(Resources.Strings.Bootstrapper_SuccessfullyUninstalled, callback); } #endregion @@ -852,7 +851,7 @@ namespace Bloxstrap _isInstalling = true; - SetStatus(FreshInstall ? "Installing {product}..." : "Upgrading {product}..."); + SetStatus(FreshInstall ? Resources.Strings.Bootstrapper_Status_Installing : Resources.Strings.Bootstrapper_Status_Upgrading); Directory.CreateDirectory(Paths.Base); Directory.CreateDirectory(Paths.Downloads); @@ -866,7 +865,7 @@ namespace Bloxstrap if (Filesystem.GetFreeDiskSpace(Paths.Base) < totalSizeRequired) { Controls.ShowMessageBox( - $"{App.ProjectName} does not have enough disk space to download and install Roblox. Please free up some disk space and try again.", + Resources.Strings.Bootstrapper_NotEnoughSpace, MessageBoxImage.Error ); @@ -911,7 +910,7 @@ namespace Bloxstrap if (Dialog is not null) { Dialog.ProgressStyle = ProgressBarStyle.Marquee; - SetStatus("Configuring {product}..."); + SetStatus(Resources.Strings.Bootstrapper_Status_Configuring); } // wait for all packages to finish extracting, with an exception for the webview2 runtime installer @@ -1032,7 +1031,7 @@ namespace Bloxstrap await ExtractPackage(package); } - SetStatus("Installing WebView2, please wait..."); + SetStatus(Resources.Strings.Bootstrapper_Status_InstallingWebView2); ProcessStartInfo startInfo = new() { @@ -1061,8 +1060,7 @@ namespace Bloxstrap if (File.Exists(injectorLocation)) { Controls.ShowMessageBox( - "Roblox has now finished rolling out the new game client update, featuring 64-bit support and the Hyperion anticheat. ReShade does not work with this update, and so it has now been disabled and removed from Bloxstrap.\n\n"+ - "Your ReShade configuration files will still be saved, and you can locate them by opening the folder where Bloxstrap is installed to, and navigating to the Integrations folder. You can choose to delete these if you want.", + Resources.Strings.Bootstrapper_HyperionUpdateInfo, MessageBoxImage.Warning ); @@ -1083,7 +1081,7 @@ namespace Bloxstrap return; } - SetStatus("Applying Roblox modifications..."); + SetStatus(Resources.Strings.Bootstrapper_Status_ApplyingModifications); // set executable flags for fullscreen optimizations App.Logger.WriteLine(LOG_IDENT, "Checking executable flags..."); diff --git a/Bloxstrap/Controls/MarkdownTextBlock.cs b/Bloxstrap/Controls/MarkdownTextBlock.cs new file mode 100644 index 0000000..3d5acf7 --- /dev/null +++ b/Bloxstrap/Controls/MarkdownTextBlock.cs @@ -0,0 +1,87 @@ +using Bloxstrap.UI.ViewModels; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Markup; +using System.Windows; +using Markdig.Syntax; +using Markdig.Syntax.Inlines; +using Markdig; + +namespace Bloxstrap.ControlsWpf +{ + /// + /// TextBlock with markdown support.
+ /// Only supports text and urls. + ///
+ [ContentProperty("MarkdownText")] + [Localizability(LocalizationCategory.Text)] + class MarkdownTextBlock : TextBlock + { + public static readonly DependencyProperty MarkdownTextProperty = DependencyProperty.Register( + "MarkdownText", + typeof(string), + typeof(MarkdownTextBlock), + new FrameworkPropertyMetadata( + string.Empty, + FrameworkPropertyMetadataOptions.AffectsMeasure | FrameworkPropertyMetadataOptions.AffectsRender, + OnTextMarkdownChanged)); + + public MarkdownTextBlock(string markdownText) + { + MarkdownText = markdownText; + } + + public MarkdownTextBlock() + { + } + + [Localizability(LocalizationCategory.Text)] + public string MarkdownText + { + get => Inlines.ToString() ?? ""; + set => SetValue(MarkdownTextProperty, value); + } + + private static void OnTextMarkdownChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) + { + var markdownTextBlock = dependencyObject as MarkdownTextBlock; + + if (markdownTextBlock == null) + return; + + MarkdownDocument document = Markdown.Parse((string)dependencyPropertyChangedEventArgs.NewValue); + ParagraphBlock? paragraphBlock = document.FirstOrDefault() as ParagraphBlock; + + markdownTextBlock.Inlines.Clear(); + + if (paragraphBlock == null || paragraphBlock.Inline == null) + return; + + foreach (var inline in paragraphBlock.Inline) + { + if (inline is LiteralInline literalInline) + { + markdownTextBlock.Inlines.Add(new Run(literalInline.ToString())); + } + else if (inline is LinkInline linkInline) + { + string? url = linkInline.Url; + string? text = linkInline.FirstChild?.ToString(); + + if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(text)) + continue; + + var link = new Hyperlink(new Run(text)) + { + Command = GlobalViewModel.OpenWebpageCommand, + CommandParameter = url + }; + + link.SetResourceReference(Control.ForegroundProperty, "TextFillColorPrimaryBrush"); + + markdownTextBlock.Inlines.Add(link); + } + } + } + } +} diff --git a/Bloxstrap/Converters/ResourceConverter.cs b/Bloxstrap/Converters/ResourceConverter.cs new file mode 100644 index 0000000..0b443f7 --- /dev/null +++ b/Bloxstrap/Converters/ResourceConverter.cs @@ -0,0 +1,30 @@ +using System.Windows.Data; + +namespace Bloxstrap.Converters +{ + internal class ResourceConverter : IValueConverter + { + // parameter is the resource namespace prefix + public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture) + { + if (value is null) + return ""; + + if (parameter is null) + return value.ToString()!; + + string valueStr = value.ToString()!; + string parameterStr = parameter.ToString()!; + string resourceName = parameterStr + valueStr; + + string resourceValue = Resources.Strings.ResourceManager.GetStringSafe(resourceName); + + return resourceValue; + } + + public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture) + { + throw new NotImplementedException(nameof(ConvertBack)); + } + } +} diff --git a/Bloxstrap/Enums/FlagPresets/InGameMenuVersion.cs b/Bloxstrap/Enums/FlagPresets/InGameMenuVersion.cs new file mode 100644 index 0000000..ce1b7a6 --- /dev/null +++ b/Bloxstrap/Enums/FlagPresets/InGameMenuVersion.cs @@ -0,0 +1,10 @@ +namespace Bloxstrap.Enums.FlagPresets +{ + public enum InGameMenuVersion + { + Default, + V1, + V2, + V4 + } +} diff --git a/Bloxstrap/Enums/FlagPresets/LightingMode.cs b/Bloxstrap/Enums/FlagPresets/LightingMode.cs new file mode 100644 index 0000000..88ba4da --- /dev/null +++ b/Bloxstrap/Enums/FlagPresets/LightingMode.cs @@ -0,0 +1,10 @@ +namespace Bloxstrap.Enums.FlagPresets +{ + public enum LightingMode + { + Default, + Voxel, + ShadowMap, + Future + } +} diff --git a/Bloxstrap/Enums/FlagPresets/MSAAMode.cs b/Bloxstrap/Enums/FlagPresets/MSAAMode.cs new file mode 100644 index 0000000..8cc85a5 --- /dev/null +++ b/Bloxstrap/Enums/FlagPresets/MSAAMode.cs @@ -0,0 +1,11 @@ +namespace Bloxstrap.Enums.FlagPresets +{ + public enum MSAAMode + { + Default, + x1, + x2, + x4, + x8 + } +} diff --git a/Bloxstrap/Enums/FlagPresets/MaterialVersion.cs b/Bloxstrap/Enums/FlagPresets/MaterialVersion.cs new file mode 100644 index 0000000..9e17d61 --- /dev/null +++ b/Bloxstrap/Enums/FlagPresets/MaterialVersion.cs @@ -0,0 +1,9 @@ +namespace Bloxstrap.Enums.FlagPresets +{ + public enum MaterialVersion + { + Default, + Old, + New + } +} diff --git a/Bloxstrap/Enums/FlagPresets/RenderingMode.cs b/Bloxstrap/Enums/FlagPresets/RenderingMode.cs new file mode 100644 index 0000000..2e94952 --- /dev/null +++ b/Bloxstrap/Enums/FlagPresets/RenderingMode.cs @@ -0,0 +1,11 @@ +namespace Bloxstrap.Enums.FlagPresets +{ + public enum RenderingMode + { + Default, + Vulkan, + D3D11, + D3D10, + OpenGL + } +} diff --git a/Bloxstrap/Extensions/ResourceManagerEx.cs b/Bloxstrap/Extensions/ResourceManagerEx.cs new file mode 100644 index 0000000..def61c2 --- /dev/null +++ b/Bloxstrap/Extensions/ResourceManagerEx.cs @@ -0,0 +1,24 @@ +using System.Resources; + +namespace Bloxstrap.Extensions +{ + static class ResourceManagerEx + { + /// + /// Returns the value of the specified string resource.
+ /// If the resource is not found, the resource name will be returned. + ///
+ public static string GetStringSafe(this ResourceManager manager, string name) => manager.GetStringSafe(name, null); + + /// + /// Returns the value of the string resource localized for the specified culture.
+ /// If the resource is not found, the resource name will be returned. + ///
+ public static string GetStringSafe(this ResourceManager manager, string name, CultureInfo? culture) + { + string? resourceValue = manager.GetString(name, culture); + + return resourceValue ?? name; + } + } +} diff --git a/Bloxstrap/FastFlagManager.cs b/Bloxstrap/FastFlagManager.cs index 53c5874..679a0e5 100644 --- a/Bloxstrap/FastFlagManager.cs +++ b/Bloxstrap/FastFlagManager.cs @@ -1,4 +1,5 @@ -using System.Windows.Forms; +using Bloxstrap.Enums.FlagPresets; +using System.Windows.Forms; using Windows.Win32; using Windows.Win32.Graphics.Gdi; @@ -56,45 +57,45 @@ namespace Bloxstrap }; // only one missing here is Metal because lol - public static IReadOnlyDictionary RenderingModes => new Dictionary + public static IReadOnlyDictionary RenderingModes => new Dictionary { - { "Automatic", "None" }, - { "Vulkan", "Vulkan" }, - { "Direct3D 11", "D3D11" }, - { "Direct3D 10", "D3D10" }, - { "OpenGL", "OpenGL" } + { RenderingMode.Default, "None" }, + { RenderingMode.Vulkan, "Vulkan" }, + { RenderingMode.D3D11, "D3D11" }, + { RenderingMode.D3D10, "D3D10" }, + { RenderingMode.OpenGL, "OpenGL" } }; - public static IReadOnlyDictionary LightingModes => new Dictionary + public static IReadOnlyDictionary LightingModes => new Dictionary { - { "Chosen by game", "None" }, - { "Voxel (Phase 1)", "Voxel" }, - { "ShadowMap (Phase 2)", "ShadowMap" }, - { "Future (Phase 3)", "Future" } + { LightingMode.Default, "None" }, + { LightingMode.Voxel, "Voxel" }, + { LightingMode.ShadowMap, "ShadowMap" }, + { LightingMode.Future, "Future" } }; - public static IReadOnlyDictionary MSAAModes => new Dictionary + public static IReadOnlyDictionary MSAAModes => new Dictionary { - { "Automatic", null }, - { "1x MSAA", "1" }, - { "2x MSAA", "2" }, - { "4x MSAA", "4" }, - { "8x MSAA", "8" } + { MSAAMode.Default, null }, + { MSAAMode.x1, "1" }, + { MSAAMode.x2, "2" }, + { MSAAMode.x4, "4" }, + { MSAAMode.x8, "8" } }; - public static IReadOnlyDictionary MaterialVersions => new Dictionary + public static IReadOnlyDictionary MaterialVersions => new Dictionary { - { "Chosen by game", "None" }, - { "Old (Pre-2022)", "NewTexturePack" }, - { "New (2022)", "OldTexturePack" } + { MaterialVersion.Default, "None" }, + { MaterialVersion.Old, "NewTexturePack" }, + { MaterialVersion.New, "OldTexturePack" } }; // this is one hell of a dictionary definition lmao // since these all set the same flags, wouldn't making this use bitwise operators be better? - public static IReadOnlyDictionary> IGMenuVersions => new Dictionary> + public static IReadOnlyDictionary> IGMenuVersions => new Dictionary> { { - "Default", + InGameMenuVersion.Default, new Dictionary { { "DisableV2", null }, @@ -104,7 +105,7 @@ namespace Bloxstrap }, { - "Version 1 (2015)", + InGameMenuVersion.V1, new Dictionary { { "DisableV2", "True" }, @@ -114,7 +115,7 @@ namespace Bloxstrap }, { - "Version 2 (2020)", + InGameMenuVersion.V2, new Dictionary { { "DisableV2", "False" }, @@ -124,7 +125,7 @@ namespace Bloxstrap }, { - "Version 4 (2023)", + InGameMenuVersion.V4, new Dictionary { { "DisableV2", "True" }, @@ -194,7 +195,7 @@ namespace Bloxstrap public string? GetPreset(string name) => GetValue(PresetFlags[name]); - public string GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value) + public T GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value) where T : Enum { foreach (var pair in mapping) { diff --git a/Bloxstrap/InstallChecker.cs b/Bloxstrap/InstallChecker.cs index 7e4bb09..f1f5f0d 100644 --- a/Bloxstrap/InstallChecker.cs +++ b/Bloxstrap/InstallChecker.cs @@ -33,7 +33,7 @@ namespace Bloxstrap _installLocation = Path.GetDirectoryName(Paths.Process)!; var result = Controls.ShowMessageBox( - $"It appears as if {App.ProjectName} hasn't been properly installed. Is it supposed to be installed at {_installLocation}?", + string.Format(Resources.Strings.InstallChecker_NotInstalledProperly, _installLocation), MessageBoxImage.Warning, MessageBoxButton.YesNo ); @@ -75,9 +75,7 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, $"Drive has changed from {driveName} to {newDriveName}"); Controls.ShowMessageBox( - $"{App.ProjectName} has detected a drive letter change and has reconfigured its install location from the {driveName} drive to the {newDriveName} drive.\n" + - "\n" + - $"While {App.ProjectName} will continue to work, it's recommended that you change the drive leter back to its original value as other installed applications can experience similar issues.", + string.Format(Resources.Strings.InstallChecker_DriveLetterChangeDetected, driveName, newDriveName), MessageBoxImage.Warning, MessageBoxButton.OK ); @@ -90,7 +88,7 @@ namespace Bloxstrap App.Logger.WriteLine(LOG_IDENT, $"Drive {driveName} does not exist anymore, and has likely been removed"); var result = Controls.ShowMessageBox( - $"{App.ProjectName} was originally installed to the {driveName} drive, but it appears to no longer be present. Would you like to continue and carry out a fresh install?", + string.Format(Resources.Strings.InstallChecker_InstallDriveMissing, driveName), MessageBoxImage.Warning, MessageBoxButton.OKCancel ); @@ -168,7 +166,7 @@ namespace Bloxstrap else { result = Controls.ShowMessageBox( - $"The version of {App.ProjectName} you've launched is different to the version you currently have installed.\nWould you like to upgrade your currently installed version?", + Resources.Strings.InstallChecker_VersionDifferentThanInstalled, MessageBoxImage.Question, MessageBoxButton.YesNo ); @@ -234,8 +232,8 @@ namespace Bloxstrap if (isAutoUpgrade) { App.NotifyIcon?.ShowAlert( - $"{App.ProjectName} has been upgraded to v{currentVersionInfo.ProductVersion}", - "See what's new in this version", + string.Format(Resources.Strings.InstallChecker_Updated, currentVersionInfo.ProductVersion), + Resources.Strings.InstallChecker_SeeWhatsNew, 30, (_, _) => Utilities.ShellExecute($"https://github.com/{App.ProjectRepository}/releases/tag/v{currentVersionInfo.ProductVersion}") ); @@ -243,7 +241,7 @@ namespace Bloxstrap else if (!App.IsQuiet) { Controls.ShowMessageBox( - $"{App.ProjectName} has been upgraded to v{currentVersionInfo.ProductVersion}", + string.Format(Resources.Strings.InstallChecker_Updated, currentVersionInfo.ProductVersion), MessageBoxImage.Information, MessageBoxButton.OK ); diff --git a/Bloxstrap/Integrations/ActivityWatcher.cs b/Bloxstrap/Integrations/ActivityWatcher.cs index 0571e3c..857b410 100644 --- a/Bloxstrap/Integrations/ActivityWatcher.cs +++ b/Bloxstrap/Integrations/ActivityWatcher.cs @@ -293,7 +293,7 @@ App.Logger.WriteLine(LOG_IDENT, $"Failed to get server location for {ActivityMachineAddress}"); App.Logger.WriteException(LOG_IDENT, ex); - return "N/A (lookup failed)"; + return $"N/A ({Resources.Strings.ActivityTracker_LookupFailed})"; } locationCity = locationCity.ReplaceLineEndings(""); @@ -308,7 +308,7 @@ location = $"{locationCity}, {locationRegion}, {locationCountry}"; if (!ActivityInGame) - return "N/A (left game)"; + return $"N/A ({Resources.Strings.ActivityTracker_LeftGame})"; GeolocationCache[ActivityMachineAddress] = location; diff --git a/Bloxstrap/ProtocolHandler.cs b/Bloxstrap/ProtocolHandler.cs index 3193d63..50131cb 100644 --- a/Bloxstrap/ProtocolHandler.cs +++ b/Bloxstrap/ProtocolHandler.cs @@ -91,8 +91,7 @@ namespace Bloxstrap return; MessageBoxResult result = Controls.ShowMessageBox( - $"Roblox is attempting to set your channel to {channel}, however your current preferred channel is {App.Settings.Prop.Channel}.\n\n" + - $"Would you like to switch your preferred channel to {channel}?", + string.Format(Resources.Strings.ProtocolHandler_RobloxSwitchedChannel, channel, App.Settings.Prop.Channel), MessageBoxImage.Question, MessageBoxButton.YesNo ); diff --git a/Bloxstrap/Resources/Strings.Designer.cs b/Bloxstrap/Resources/Strings.Designer.cs new file mode 100644 index 0000000..63c7161 --- /dev/null +++ b/Bloxstrap/Resources/Strings.Designer.cs @@ -0,0 +1,2606 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Bloxstrap.Resources { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Strings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Bloxstrap.Resources.Strings", typeof(Strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to left game. + /// + public static string ActivityTracker_LeftGame { + get { + return ResourceManager.GetString("ActivityTracker.LeftGame", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to lookup failed. + /// + public static string ActivityTracker_LookupFailed { + get { + return ResourceManager.GetString("ActivityTracker.LookupFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap was unable to auto-update to {0}. Please update it manually by downloading and running the latest release from the GitHub page.. + /// + public static string Bootstrapper_AutoUpdateFailed { + get { + return ResourceManager.GetString("Bootstrapper.AutoUpdateFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The channel you're currently on ({0}) is out of date, and appears to no longer be receiving updates. + ///Would you like to switch to the default channel ({1})?. + /// + public static string Bootstrapper_ChannelOutOfDate { + get { + return ResourceManager.GetString("Bootstrapper.ChannelOutOfDate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to It's possible that something is preventing Bloxstrap from connecting to the internet. Please check and try again.. + /// + public static string Bootstrapper_Connectivity_Preventing { + get { + return ResourceManager.GetString("Bootstrapper.Connectivity.Preventing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox may be down right now. See status.roblox.com for more information. Please try again later.. + /// + public static string Bootstrapper_Connectivity_RobloxDown { + get { + return ResourceManager.GetString("Bootstrapper.Connectivity.RobloxDown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap timed out when trying to connect to three different Roblox deployment mirrors, indicating a poor internet connection. Please try again later.. + /// + public static string Bootstrapper_Connectivity_TimedOut { + get { + return ResourceManager.GetString("Bootstrapper.Connectivity.TimedOut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox was launched via a deeplink, however the desktop app is required for deeplink launching to work. Because you've opted to disable the desktop app, it will temporarily be re-enabled for this launch only.. + /// + public static string Bootstrapper_DeeplinkTempEnabled { + get { + return ResourceManager.GetString("Bootstrapper.DeeplinkTempEnabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox has now finished rolling out the new game client update, featuring 64-bit support and the Hyperion anticheat. ReShade does not work with this update, and so it has now been disabled and removed from Bloxstrap. + /// + ///Your ReShade configuration files will still be saved, and you can locate them by opening the folder where Bloxstrap is installed to, and navigating to the Integrations folder. You can choose to delete these if you want.. + /// + public static string Bootstrapper_HyperionUpdateInfo { + get { + return ResourceManager.GetString("Bootstrapper.HyperionUpdateInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap does not have enough disk space to download and install Roblox. Please free up some disk space and try again.. + /// + public static string Bootstrapper_NotEnoughSpace { + get { + return ResourceManager.GetString("Bootstrapper.NotEnoughSpace", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Applying Roblox modifications.... + /// + public static string Bootstrapper_Status_ApplyingModifications { + get { + return ResourceManager.GetString("Bootstrapper.Status.ApplyingModifications", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuring {product}.... + /// + public static string Bootstrapper_Status_Configuring { + get { + return ResourceManager.GetString("Bootstrapper.Status.Configuring", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting to Roblox.... + /// + public static string Bootstrapper_Status_Connecting { + get { + return ResourceManager.GetString("Bootstrapper.Status.Connecting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing {product}.... + /// + public static string Bootstrapper_Status_Installing { + get { + return ResourceManager.GetString("Bootstrapper.Status.Installing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing WebView2, please wait.... + /// + public static string Bootstrapper_Status_InstallingWebView2 { + get { + return ResourceManager.GetString("Bootstrapper.Status.InstallingWebView2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting {product}.... + /// + public static string Bootstrapper_Status_Starting { + get { + return ResourceManager.GetString("Bootstrapper.Status.Starting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Uninstalling Bloxstrap.... + /// + public static string Bootstrapper_Status_Uninstalling { + get { + return ResourceManager.GetString("Bootstrapper.Status.Uninstalling", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upgrading {product}.... + /// + public static string Bootstrapper_Status_Upgrading { + get { + return ResourceManager.GetString("Bootstrapper.Status.Upgrading", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Getting the latest Bloxstrap.... + /// + public static string Bootstrapper_Status_UpgradingBloxstrap { + get { + return ResourceManager.GetString("Bootstrapper.Status.UpgradingBloxstrap", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Waiting for other instances.... + /// + public static string Bootstrapper_Status_WaitingOtherInstances { + get { + return ResourceManager.GetString("Bootstrapper.Status.WaitingOtherInstances", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap has successfully installed. + /// + public static string Bootstrapper_SuccessfullyInstalled { + get { + return ResourceManager.GetString("Bootstrapper.SuccessfullyInstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap has successfully uninstalled. + /// + public static string Bootstrapper_SuccessfullyUninstalled { + get { + return ResourceManager.GetString("Bootstrapper.SuccessfullyUninstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox is currently running, but must be closed before uninstalling Bloxstrap. Would you like close Roblox now?. + /// + public static string Bootstrapper_Uninstall_RobloxRunning { + get { + return ResourceManager.GetString("Bootstrapper.Uninstall.RobloxRunning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox requires the use of Windows Media Foundation components. You appear to be missing them, likely because you are using an N edition of Windows. Please install them first, and then launch Roblox.. + /// + public static string Bootstrapper_WMFNotFound { + get { + return ResourceManager.GetString("Bootstrapper.WMFNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Browse. + /// + public static string Common_Browse { + get { + return ResourceManager.GetString("Common.Browse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string Common_Cancel { + get { + return ResourceManager.GetString("Common.Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close. + /// + public static string Common_Close { + get { + return ResourceManager.GetString("Common.Close", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string Common_Delete { + get { + return ResourceManager.GetString("Common.Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Discord Rich Presence. + /// + public static string Common_DiscordRichPresence { + get { + return ResourceManager.GetString("Common.DiscordRichPresence", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Help. + /// + public static string Common_Help { + get { + return ResourceManager.GetString("Common.Help", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Import JSON. + /// + public static string Common_ImportJson { + get { + return ResourceManager.GetString("Common.ImportJson", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Locate log file. + /// + public static string Common_LocateLogFile { + get { + return ResourceManager.GetString("Common.LocateLogFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Miscellaneous. + /// + public static string Common_Miscellaneous { + get { + return ResourceManager.GetString("Common.Miscellaneous", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name. + /// + public static string Common_Name { + get { + return ResourceManager.GetString("Common.Name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New. + /// + public static string Common_New { + get { + return ResourceManager.GetString("Common.New", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + public static string Common_No { + get { + return ResourceManager.GetString("Common.No", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OK. + /// + public static string Common_OK { + get { + return ResourceManager.GetString("Common.OK", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Presets. + /// + public static string Common_Presets { + get { + return ResourceManager.GetString("Common.Presets", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reset. + /// + public static string Common_Reset { + get { + return ResourceManager.GetString("Common.Reset", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Value. + /// + public static string Common_Value { + get { + return ResourceManager.GetString("Common.Value", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes. + /// + public static string Common_Yes { + get { + return ResourceManager.GetString("Common.Yes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Close Roblox. + /// + public static string ContextMenu_CloseRoblox { + get { + return ResourceManager.GetString("ContextMenu.CloseRoblox", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to close Roblox? This will forcefully end the process.. + /// + public static string ContextMenu_CloseRobloxMessage { + get { + return ResourceManager.GetString("ContextMenu.CloseRobloxMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy invite deeplink. + /// + public static string ContextMenu_CopyDeeplinkInvite { + get { + return ResourceManager.GetString("ContextMenu.CopyDeeplinkInvite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep on top. + /// + public static string ContextMenu_LogTracer_KeepOnTop { + get { + return ResourceManager.GetString("ContextMenu.LogTracer.KeepOnTop", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scroll to end. + /// + public static string ContextMenu_LogTracer_ScrollToEnd { + get { + return ResourceManager.GetString("ContextMenu.LogTracer.ScrollToEnd", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Text wrapping. + /// + public static string ContextMenu_LogTracer_TextWrapping { + get { + return ResourceManager.GetString("ContextMenu.LogTracer.TextWrapping", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Log tracer. + /// + public static string ContextMenu_LogTracer_Title { + get { + return ResourceManager.GetString("ContextMenu.LogTracer.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Tracing {0}. + /// + public static string ContextMenu_LogTracer_TracingFormat { + get { + return ResourceManager.GetString("ContextMenu.LogTracer.TracingFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open log tracer. + /// + public static string ContextMenu_OpenLogTracer { + get { + return ResourceManager.GetString("ContextMenu.OpenLogTracer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See server details. + /// + public static string ContextMenu_SeeServerDetails { + get { + return ResourceManager.GetString("ContextMenu.SeeServerDetails", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy Instance ID. + /// + public static string ContextMenu_ServerInformation_CopyInstanceId { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.CopyInstanceId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Instance ID. + /// + public static string ContextMenu_ServerInformation_InstanceId { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.InstanceId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Loading, please wait.... + /// + public static string ContextMenu_ServerInformation_Loading { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.Loading", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Location. + /// + public static string ContextMenu_ServerInformation_Location { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.Location", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Server information. + /// + public static string ContextMenu_ServerInformation_Title { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type. + /// + public static string ContextMenu_ServerInformation_Type { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.Type", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} server. + /// + public static string ContextMenu_ServerInformation_TypeFormat { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.TypeFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to UDMUX proxied. + /// + public static string ContextMenu_ServerInformation_UdmuxProxied { + get { + return ResourceManager.GetString("ContextMenu.ServerInformation.UdmuxProxied", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add FastFlag. + /// + public static string Dialog_AddFastFlag_Title { + get { + return ResourceManager.GetString("Dialog.AddFastFlag.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Paste in your JSON here.... + /// + public static string Dialog_BulkAddFastFlag_Paste { + get { + return ResourceManager.GetString("Dialog.BulkAddFastFlag.Paste", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to More information:. + /// + public static string Dialog_Connectivity_MoreInfo { + get { + return ResourceManager.GetString("Dialog.Connectivity.MoreInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connectivity error. + /// + public static string Dialog_Connectivity_Title { + get { + return ResourceManager.GetString("Dialog.Connectivity.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap is unable to connect to {0}. + /// + public static string Dialog_Connectivity_UnableToConnect { + get { + return ResourceManager.GetString("Dialog.Connectivity.UnableToConnect", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy log contents. + /// + public static string Dialog_Exception_CopyLogContents { + get { + return ResourceManager.GetString("Dialog.Exception.CopyLogContents", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to An exception occurred while running Bloxstrap. + /// + public static string Dialog_Exception_Info_1 { + get { + return ResourceManager.GetString("Dialog.Exception.Info.1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please report this exception through a GitHub issue or in our Discord chat, along with a copy of the log file that was created.. + /// + public static string Dialog_Exception_Info_2 { + get { + return ResourceManager.GetString("Dialog.Exception.Info.2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Submit report.... + /// + public static string Dialog_Exception_SubmitReport { + get { + return ResourceManager.GetString("Dialog.Exception.SubmitReport", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Submit report via Discord. + /// + public static string Dialog_Exception_SubmitReportDiscord { + get { + return ResourceManager.GetString("Dialog.Exception.SubmitReportDiscord", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Submit report via GitHub. + /// + public static string Dialog_Exception_SubmitReportGithub { + get { + return ResourceManager.GetString("Dialog.Exception.SubmitReportGithub", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap Exception. + /// + public static string Dialog_Exception_Title { + get { + return ResourceManager.GetString("Dialog.Exception.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2008. + /// + public static string Enums_BootstrapperIcon_Icon2008 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.Icon2008", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2011. + /// + public static string Enums_BootstrapperIcon_Icon2011 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.Icon2011", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2017. + /// + public static string Enums_BootstrapperIcon_Icon2017 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.Icon2017", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2019. + /// + public static string Enums_BootstrapperIcon_Icon2019 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.Icon2019", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2022. + /// + public static string Enums_BootstrapperIcon_Icon2022 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.Icon2022", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap. + /// + public static string Enums_BootstrapperIcon_IconBloxstrap { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.IconBloxstrap", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom. + /// + public static string Enums_BootstrapperIcon_IconCustom { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.IconCustom", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Early 2015. + /// + public static string Enums_BootstrapperIcon_IconEarly2015 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.IconEarly2015", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Late 2015. + /// + public static string Enums_BootstrapperIcon_IconLate2015 { + get { + return ResourceManager.GetString("Enums.BootstrapperIcon.IconLate2015", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fake Byfron (2023). + /// + public static string Enums_BootstrapperStyle_ByfronDialog { + get { + return ResourceManager.GetString("Enums.BootstrapperStyle.ByfronDialog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fluent. + /// + public static string Enums_BootstrapperStyle_FluentDialog { + get { + return ResourceManager.GetString("Enums.BootstrapperStyle.FluentDialog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Legacy (2008 - 2011). + /// + public static string Enums_BootstrapperStyle_LegacyDialog2008 { + get { + return ResourceManager.GetString("Enums.BootstrapperStyle.LegacyDialog2008", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Legacy (2011 - 2014). + /// + public static string Enums_BootstrapperStyle_LegacyDialog2011 { + get { + return ResourceManager.GetString("Enums.BootstrapperStyle.LegacyDialog2011", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Progress (~2014). + /// + public static string Enums_BootstrapperStyle_ProgressDialog { + get { + return ResourceManager.GetString("Enums.BootstrapperStyle.ProgressDialog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vista (2008 - 2011). + /// + public static string Enums_BootstrapperStyle_VistaDialog { + get { + return ResourceManager.GetString("Enums.BootstrapperStyle.VistaDialog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change automatically. + /// + public static string Enums_ChannelChangeMode_Automatic { + get { + return ResourceManager.GetString("Enums.ChannelChangeMode.Automatic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Never change. + /// + public static string Enums_ChannelChangeMode_Ignore { + get { + return ResourceManager.GetString("Enums.ChannelChangeMode.Ignore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Always prompt. + /// + public static string Enums_ChannelChangeMode_Prompt { + get { + return ResourceManager.GetString("Enums.ChannelChangeMode.Prompt", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Default. + /// + public static string Enums_FlagPresets_InGameMenuVersion_Default { + get { + return ResourceManager.GetString("Enums.FlagPresets.InGameMenuVersion.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version 1 (2015). + /// + public static string Enums_FlagPresets_InGameMenuVersion_V1 { + get { + return ResourceManager.GetString("Enums.FlagPresets.InGameMenuVersion.V1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version 2 (2020). + /// + public static string Enums_FlagPresets_InGameMenuVersion_V2 { + get { + return ResourceManager.GetString("Enums.FlagPresets.InGameMenuVersion.V2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version 4 (2023). + /// + public static string Enums_FlagPresets_InGameMenuVersion_V4 { + get { + return ResourceManager.GetString("Enums.FlagPresets.InGameMenuVersion.V4", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Chosen by game. + /// + public static string Enums_FlagPresets_LightingMode_Default { + get { + return ResourceManager.GetString("Enums.FlagPresets.LightingMode.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Future (Phase 3). + /// + public static string Enums_FlagPresets_LightingMode_Future { + get { + return ResourceManager.GetString("Enums.FlagPresets.LightingMode.Future", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shadow Map (Phase 2). + /// + public static string Enums_FlagPresets_LightingMode_ShadowMap { + get { + return ResourceManager.GetString("Enums.FlagPresets.LightingMode.ShadowMap", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Voxel (Phase 1). + /// + public static string Enums_FlagPresets_LightingMode_Voxel { + get { + return ResourceManager.GetString("Enums.FlagPresets.LightingMode.Voxel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Chosen by game. + /// + public static string Enums_FlagPresets_MaterialVersion_Default { + get { + return ResourceManager.GetString("Enums.FlagPresets.MaterialVersion.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New (2022). + /// + public static string Enums_FlagPresets_MaterialVersion_New { + get { + return ResourceManager.GetString("Enums.FlagPresets.MaterialVersion.New", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Old (Pre-2022). + /// + public static string Enums_FlagPresets_MaterialVersion_Old { + get { + return ResourceManager.GetString("Enums.FlagPresets.MaterialVersion.Old", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatic. + /// + public static string Enums_FlagPresets_MSAAMode_Default { + get { + return ResourceManager.GetString("Enums.FlagPresets.MSAAMode.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1x MSAA. + /// + public static string Enums_FlagPresets_MSAAMode_x1 { + get { + return ResourceManager.GetString("Enums.FlagPresets.MSAAMode.x1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 2x MSAA. + /// + public static string Enums_FlagPresets_MSAAMode_x2 { + get { + return ResourceManager.GetString("Enums.FlagPresets.MSAAMode.x2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 4x MSAA. + /// + public static string Enums_FlagPresets_MSAAMode_x4 { + get { + return ResourceManager.GetString("Enums.FlagPresets.MSAAMode.x4", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 8x MSAA. + /// + public static string Enums_FlagPresets_MSAAMode_x8 { + get { + return ResourceManager.GetString("Enums.FlagPresets.MSAAMode.x8", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to D3D10. + /// + public static string Enums_FlagPresets_RenderingMode_D3D10 { + get { + return ResourceManager.GetString("Enums.FlagPresets.RenderingMode.D3D10", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to D3D11. + /// + public static string Enums_FlagPresets_RenderingMode_D3D11 { + get { + return ResourceManager.GetString("Enums.FlagPresets.RenderingMode.D3D11", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatic. + /// + public static string Enums_FlagPresets_RenderingMode_Default { + get { + return ResourceManager.GetString("Enums.FlagPresets.RenderingMode.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OpenGL. + /// + public static string Enums_FlagPresets_RenderingMode_OpenGL { + get { + return ResourceManager.GetString("Enums.FlagPresets.RenderingMode.OpenGL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vulkan. + /// + public static string Enums_FlagPresets_RenderingMode_Vulkan { + get { + return ResourceManager.GetString("Enums.FlagPresets.RenderingMode.Vulkan", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Private. + /// + public static string Enums_ServerType_Private { + get { + return ResourceManager.GetString("Enums.ServerType.Private", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Public. + /// + public static string Enums_ServerType_Public { + get { + return ResourceManager.GetString("Enums.ServerType.Public", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reserved. + /// + public static string Enums_ServerType_Reserved { + get { + return ResourceManager.GetString("Enums.ServerType.Reserved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dark. + /// + public static string Enums_Theme_Dark { + get { + return ResourceManager.GetString("Enums.Theme.Dark", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to System Default. + /// + public static string Enums_Theme_Default { + get { + return ResourceManager.GetString("Enums.Theme.Default", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Light. + /// + public static string Enums_Theme_Light { + get { + return ResourceManager.GetString("Enums.Theme.Light", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap has detected a drive letter change and has reconfigured its install location from the {0} drive to the {1} drive. + /// + ///While Bloxstrap will continue to work, it's recommended that you change the drive letter back to its original value as other installed applications can experience similar issues.. + /// + public static string InstallChecker_DriveLetterChangeDetected { + get { + return ResourceManager.GetString("InstallChecker.DriveLetterChangeDetected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap was originally installed to the {0} drive, but it appears to no longer be present. Would you like to continue and carry out a fresh install?. + /// + public static string InstallChecker_InstallDriveMissing { + get { + return ResourceManager.GetString("InstallChecker.InstallDriveMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to It appears as if Bloxstrap hasn't been properly installed. Is it supposed to be installed at {0}?. + /// + public static string InstallChecker_NotInstalledProperly { + get { + return ResourceManager.GetString("InstallChecker.NotInstalledProperly", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See what's new in this version. + /// + public static string InstallChecker_SeeWhatsNew { + get { + return ResourceManager.GetString("InstallChecker.SeeWhatsNew", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap has been upgraded to v{0}. + /// + public static string InstallChecker_Updated { + get { + return ResourceManager.GetString("InstallChecker.Updated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The version of Bloxstrap you've launched is different to the version you currently have installed. + ///Would you like to upgrade your currently installed version?. + /// + public static string InstallChecker_VersionDifferentThanInstalled { + get { + return ResourceManager.GetString("InstallChecker.VersionDifferentThanInstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Commit Hash. + /// + public static string Menu_About_BuildCommitHash { + get { + return ResourceManager.GetString("Menu.About.BuildCommitHash", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Build Information. + /// + public static string Menu_About_BuildInformation { + get { + return ResourceManager.GetString("Menu.About.BuildInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Machine. + /// + public static string Menu_About_BuildMachine { + get { + return ResourceManager.GetString("Menu.About.BuildMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Commit Ref. + /// + public static string Menu_About_BuildRef { + get { + return ResourceManager.GetString("Menu.About.BuildRef", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Timestamp. + /// + public static string Menu_About_BuildTimestamp { + get { + return ResourceManager.GetString("Menu.About.BuildTimestamp", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Contributors. + /// + public static string Menu_About_Contributors { + get { + return ResourceManager.GetString("Menu.About.Contributors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to These are the people who have made notable contributions to Bloxstrap, helping make it what it is.. + /// + public static string Menu_About_Contributors_Description { + get { + return ResourceManager.GetString("Menu.About.Contributors.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to An open-source, feature-packed alternative bootstrapper for Roblox. + /// + public static string Menu_About_Description_1 { + get { + return ResourceManager.GetString("Menu.About.Description.1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Developed by pizzaboxer - if you like this, please consider leaving a star on GitHub!. + /// + public static string Menu_About_Description_2 { + get { + return ResourceManager.GetString("Menu.About.Description.2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Discord server. + /// + public static string Menu_About_DiscordServer { + get { + return ResourceManager.GetString("Menu.About.DiscordServer", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to GitHub repository. + /// + public static string Menu_About_GithubRepository { + get { + return ResourceManager.GetString("Menu.About.GithubRepository", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Help and Information. + /// + public static string Menu_About_HelpInformation { + get { + return ResourceManager.GetString("Menu.About.HelpInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Licenses. + /// + public static string Menu_About_Licenses { + get { + return ResourceManager.GetString("Menu.About.Licenses", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Report an issue. + /// + public static string Menu_About_ReportIssue { + get { + return ResourceManager.GetString("Menu.About.ReportIssue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to About. + /// + public static string Menu_About_Title { + get { + return ResourceManager.GetString("Menu.About.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Using an unreleased version, I see?. + /// + public static string Menu_About_UnreleasedVersion { + get { + return ResourceManager.GetString("Menu.About.UnreleasedVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version {0}. + /// + public static string Menu_About_Version { + get { + return ResourceManager.GetString("Menu.About.Version", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to All files. + /// + public static string Menu_AllFiles { + get { + return ResourceManager.GetString("Menu.AllFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap is currently running, likely as a background Roblox process. Please note that not all your changes will immediately apply until you close all currently open Roblox instances.". + /// + public static string Menu_AlreadyRunning { + get { + return ResourceManager.GetString("Menu.AlreadyRunning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure other customisable Bootstrapper options.. + /// + public static string Menu_Appearance_Customisation_Description { + get { + return ResourceManager.GetString("Menu.Appearance.Customisation.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bootstrapper customisation. + /// + public static string Menu_Appearance_Customisation_Title { + get { + return ResourceManager.GetString("Menu.Appearance.Customisation.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Must be a multi-size .ico file with sizes 16px to 128px. Set Icon as 'Custom' to use it.. + /// + public static string Menu_Appearance_CustomisationIcon_Description { + get { + return ResourceManager.GetString("Menu.Appearance.CustomisationIcon.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Icon. + /// + public static string Menu_Appearance_CustomisationIcon_Title { + get { + return ResourceManager.GetString("Menu.Appearance.CustomisationIcon.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The text that shows as the title of the bootstrapper.. + /// + public static string Menu_Appearance_CustomisationTitle_Description { + get { + return ResourceManager.GetString("Menu.Appearance.CustomisationTitle.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Title. + /// + public static string Menu_Appearance_CustomisationTitle_Title { + get { + return ResourceManager.GetString("Menu.Appearance.CustomisationTitle.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure how Bloxstrap should look.. + /// + public static string Menu_Appearance_Description { + get { + return ResourceManager.GetString("Menu.Appearance.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose what icon the bootstrapper should use.. + /// + public static string Menu_Appearance_Icon_Description { + get { + return ResourceManager.GetString("Menu.Appearance.Icon.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Icon. + /// + public static string Menu_Appearance_Icon_Title { + get { + return ResourceManager.GetString("Menu.Appearance.Icon.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preview. + /// + public static string Menu_Appearance_Preview { + get { + return ResourceManager.GetString("Menu.Appearance.Preview", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose how the bootstrapper should look.. + /// + public static string Menu_Appearance_Style_Description { + get { + return ResourceManager.GetString("Menu.Appearance.Style.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Style. + /// + public static string Menu_Appearance_Style_Title { + get { + return ResourceManager.GetString("Menu.Appearance.Style.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dark theme does not apply to Legacy or Vista styles.. + /// + public static string Menu_Appearance_Theme_Description { + get { + return ResourceManager.GetString("Menu.Appearance.Theme.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Theme. + /// + public static string Menu_Appearance_Theme_Title { + get { + return ResourceManager.GetString("Menu.Appearance.Theme.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Appearance. + /// + public static string Menu_Appearance_Title { + get { + return ResourceManager.GetString("Menu.Appearance.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox or Bloxstrap may try to change your preferred channel.. + /// + public static string Menu_Behaviour_AutoChannelChange_Description { + get { + return ResourceManager.GetString("Menu.Behaviour.AutoChannelChange.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatic channel change action. + /// + public static string Menu_Behaviour_AutoChannelChange_Title { + get { + return ResourceManager.GetString("Menu.Behaviour.AutoChannelChange.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap will automatically check and update itself when launching Roblox.. + /// + public static string Menu_Behaviour_AutoUpdate_Description { + get { + return ResourceManager.GetString("Menu.Behaviour.AutoUpdate.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Automatically update Bloxstrap. + /// + public static string Menu_Behaviour_AutoUpdate_Title { + get { + return ResourceManager.GetString("Menu.Behaviour.AutoUpdate.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployed. + /// + public static string Menu_Behaviour_Channel_Deployed { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.Deployed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which deployment channel Roblox should be downloaded from.. + /// + public static string Menu_Behaviour_Channel_Description { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified channel name does not exist.. + /// + public static string Menu_Behaviour_Channel_DoesNotExist { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.DoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Failed to fetch information!. + /// + public static string Menu_Behaviour_Channel_FetchFailed { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.FetchFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fetching latest deploy info, please wait.... + /// + public static string Menu_Behaviour_Channel_Fetching { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.Fetching", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This channel is out of date, and is likely no longer being updated. Please use another channel.. + /// + public static string Menu_Behaviour_Channel_Outdated { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.Outdated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Channel. + /// + public static string Menu_Behaviour_Channel_Title { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version. + /// + public static string Menu_Behaviour_Channel_Version { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.Version", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Version GUID. + /// + public static string Menu_Behaviour_Channel_VersionGuid { + get { + return ResourceManager.GetString("Menu.Behaviour.Channel.VersionGuid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap will place an icon on the desktop that launches Roblox the next time it launches.. + /// + public static string Menu_Behaviour_CreateDesktopIcon_Description { + get { + return ResourceManager.GetString("Menu.Behaviour.CreateDesktopIcon.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create desktop icon. + /// + public static string Menu_Behaviour_CreateDesktopIcon_Title { + get { + return ResourceManager.GetString("Menu.Behaviour.CreateDesktopIcon.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure what Bloxstrap should do when launching.. + /// + public static string Menu_Behaviour_Description { + get { + return ResourceManager.GetString("Menu.Behaviour.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox will be installed fresh on next launch.. + /// + public static string Menu_Behaviour_ForceRobloxReinstall_Description { + get { + return ResourceManager.GetString("Menu.Behaviour.ForceRobloxReinstall.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Force Roblox reinstallation. + /// + public static string Menu_Behaviour_ForceRobloxReinstall_Title { + get { + return ResourceManager.GetString("Menu.Behaviour.ForceRobloxReinstall.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Behaviour. + /// + public static string Menu_Behaviour_Title { + get { + return ResourceManager.GetString("Menu.Behaviour.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add new. + /// + public static string Menu_FastFlagEditor_AddNew { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.AddNew", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Back. + /// + public static string Menu_FastFlagEditor_Back { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.Back", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete selected. + /// + public static string Menu_FastFlagEditor_DeleteSelected { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.DeleteSelected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Manage your own FastFlags. Double click a column to edit.. + /// + public static string Menu_FastFlagEditor_Description { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Search. + /// + public static string Menu_FastFlagEditor_Search { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.Search", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show preset flags. + /// + public static string Menu_FastFlagEditor_ShowPresetFlags { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.ShowPresetFlags", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fast Flag Editor. + /// + public static string Menu_FastFlagEditor_Title { + get { + return ResourceManager.GetString("Menu.FastFlagEditor.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Control how specific Roblox engine parameters and features are configured.. + /// + public static string Menu_FastFlags_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Manage your own FastFlags.. + /// + public static string Menu_FastFlags_Editor_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Editor.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Learn more about FastFlags.. + /// + public static string Menu_FastFlags_Help_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Help.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggle between using the consolidated 1-10 / fine-grained 1-21 graphics quality slider.. + /// + public static string Menu_FastFlags_Presets_AltGraphicsSelector_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.AltGraphicsSelector.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use alternate graphics quality selector. + /// + public static string Menu_FastFlags_Presets_AltGraphicsSelector_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.AltGraphicsSelector.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to FastFlag preset for Direct3D [exclusive fullscreen]({0}) using Alt+Enter is already enabled by default.. + /// + public static string Menu_FastFlags_Presets_D3DExclusiveFullscreenInfo { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.D3DExclusiveFullscreenInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show values of specified flags during runtime. Each flag is comma separated.. + /// + public static string Menu_FastFlags_Presets_Debug_FlagStateOverlay_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.FlagStateOverlay.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Flag state overlay. + /// + public static string Menu_FastFlags_Presets_Debug_FlagStateOverlay_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.FlagStateOverlay.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set blank if not using a proxy. Don't forget to add cacert.pem as a mod.. + /// + public static string Menu_FastFlags_Presets_Debug_HttpProxyAddress_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.HttpProxyAddress.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to HTTP proxy address. + /// + public static string Menu_FastFlags_Presets_Debug_HttpProxyAddress_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.HttpProxyAddress.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enables logging of HTTP requests (DFLogHttpTraceLight=12).. + /// + public static string Menu_FastFlags_Presets_Debug_HttpRequestLogging_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.HttpRequestLogging.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to HTTP request logging. + /// + public static string Menu_FastFlags_Presets_Debug_HttpRequestLogging_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.HttpRequestLogging.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Debug. + /// + public static string Menu_FastFlags_Presets_Debug_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Debug.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which version of the escape menu to use.. + /// + public static string Menu_FastFlags_Presets_EscapeMenuVersion_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.EscapeMenuVersion.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preferred escape menu version. + /// + public static string Menu_FastFlags_Presets_EscapeMenuVersion_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.EscapeMenuVersion.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox reduces your rendering quality, depending on display scaling. This toggle disables that.. + /// + public static string Menu_FastFlags_Presets_FixDisplayScaling_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FixDisplayScaling.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preserve rendering quality with display scaling. + /// + public static string Menu_FastFlags_Presets_FixDisplayScaling_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FixDisplayScaling.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use a large number like 9999 for no limit. Set as 0 for defaults.. + /// + public static string Menu_FastFlags_Presets_FPSLimit_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FPSLimit.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Framerate limit. + /// + public static string Menu_FastFlags_Presets_FPSLimit_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.FPSLimit.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggled with [keyboard shortcuts]({0}). Only works if you're in the [Bloxstrap group]({1}).. + /// + public static string Menu_FastFlags_Presets_HideGuis_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.HideGuis.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enable ability to hide GUIs. + /// + public static string Menu_FastFlags_Presets_HideGuis_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.HideGuis.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which lighting technology should be forced enabled in all games.. + /// + public static string Menu_FastFlags_Presets_LightingTechnology_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.LightingTechnology.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preferred lighting technology. + /// + public static string Menu_FastFlags_Presets_LightingTechnology_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.LightingTechnology.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which material version should be forced in all games.. + /// + public static string Menu_FastFlags_Presets_Materials_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Materials.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preferred materials. + /// + public static string Menu_FastFlags_Presets_Materials_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.Materials.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to More information on this preset. + /// + public static string Menu_FastFlags_Presets_MoreInfo { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.MoreInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose what renderer Roblox should use. VR requires Direct3D/Automatic.. + /// + public static string Menu_FastFlags_Presets_RenderingMode_Description { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.RenderingMode.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Rendering mode. + /// + public static string Menu_FastFlags_Presets_RenderingMode_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Presets.RenderingMode.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fast Flags. + /// + public static string Menu_FastFlags_Title { + get { + return ResourceManager.GetString("Menu.FastFlags.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Font files. + /// + public static string Menu_FontFiles { + get { + return ResourceManager.GetString("Menu.FontFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Icon files. + /// + public static string Menu_IconFiles { + get { + return ResourceManager.GetString("Menu.IconFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Install. + /// + public static string Menu_Install { + get { + return ResourceManager.GetString("Menu.Install", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure how Bloxstrap/Roblox is installed.. + /// + public static string Menu_Installation_Description { + get { + return ResourceManager.GetString("Menu.Installation.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose where Bloxstrap should be installed to.. + /// + public static string Menu_Installation_InstallLocation_Description { + get { + return ResourceManager.GetString("Menu.Installation.InstallLocation.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Install Location. + /// + public static string Menu_Installation_InstallLocation_Title { + get { + return ResourceManager.GetString("Menu.Installation.InstallLocation.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Where Bloxstrap is currently installed to.. + /// + public static string Menu_Installation_OpenInstallFolder_Description { + get { + return ResourceManager.GetString("Menu.Installation.OpenInstallFolder.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open Installation Folder. + /// + public static string Menu_Installation_OpenInstallFolder_Title { + get { + return ResourceManager.GetString("Menu.Installation.OpenInstallFolder.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installation. + /// + public static string Menu_Installation_Title { + get { + return ResourceManager.GetString("Menu.Installation.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Here's a guide on how to uninstall Bloxstrap.. + /// + public static string Menu_Installation_UninstallGuide_Description { + get { + return ResourceManager.GetString("Menu.Installation.UninstallGuide.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking to uninstall?. + /// + public static string Menu_Installation_UninstallGuide_Title { + get { + return ResourceManager.GetString("Menu.Installation.UninstallGuide.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap cannot be installed here. Please choose a different location, or resort to using the default location by clicking the reset button.. + /// + public static string Menu_InstallLocation_CantInstall { + get { + return ResourceManager.GetString("Menu.InstallLocation.CantInstall", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The folder you've chosen to install Bloxstrap to already exists and is NOT empty. It is strongly recommended for Bloxstrap to be installed to its own independent folder. + /// + ///Changing to the following location is suggested: + ///{0} + /// + ///Would you like to change to the suggested location? + ///Selecting 'No' will ignore this warning and continue installation.. + /// + public static string Menu_InstallLocation_NotEmpty { + get { + return ResourceManager.GetString("Menu.InstallLocation.NotEmpty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must set an install location. + /// + public static string Menu_InstallLocation_NotSet { + get { + return ResourceManager.GetString("Menu.InstallLocation.NotSet", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap does not have write access to the install location you've selected. Please choose another location.. + /// + public static string Menu_InstallLocation_NoWritePerms { + get { + return ResourceManager.GetString("Menu.InstallLocation.NoWritePerms", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Activity tracking. + /// + public static string Menu_Integrations_ActivityTracking { + get { + return ResourceManager.GetString("Menu.Integrations.ActivityTracking", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allows for anybody to join the game you're currently in through your Discord profile.. + /// + public static string Menu_Integrations_AllowActivityJoining_Description { + get { + return ResourceManager.GetString("Menu.Integrations.AllowActivityJoining.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allow activity joining. + /// + public static string Menu_Integrations_AllowActivityJoining_Title { + get { + return ResourceManager.GetString("Menu.Integrations.AllowActivityJoining.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allows for having more than one Roblox game client instance open simultaneously.. + /// + public static string Menu_Integrations_AllowMultipleInstances_Description { + get { + return ResourceManager.GetString("Menu.Integrations.AllowMultipleInstances.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allow multi-instance launching. + /// + public static string Menu_Integrations_AllowMultipleInstances_Title { + get { + return ResourceManager.GetString("Menu.Integrations.AllowMultipleInstances.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Application Location. + /// + public static string Menu_Integrations_Custom_AppLocation { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.AppLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to e.g. C:\Windows\System32\cmd.exe. + /// + public static string Menu_Integrations_Custom_AppLocation_Placeholder { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.AppLocation.Placeholder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto close when Roblox closes. + /// + public static string Menu_Integrations_Custom_AutoClose { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.AutoClose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Here, you can have other programs launch with Roblox automatically.. + /// + public static string Menu_Integrations_Custom_Description { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Launch Arguments. + /// + public static string Menu_Integrations_Custom_LaunchArgs { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.LaunchArgs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to e.g. /k echo Roblox is running!. + /// + public static string Menu_Integrations_Custom_LaunchArgs_Placeholder { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.LaunchArgs.Placeholder", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New Integration. + /// + public static string Menu_Integrations_Custom_NewIntegration { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.NewIntegration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No integration selected, please select or add a new one. + /// + public static string Menu_Integrations_Custom_NoneSelected { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.NoneSelected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Custom Integrations. + /// + public static string Menu_Integrations_Custom_Title { + get { + return ResourceManager.GetString("Menu.Integrations.Custom.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configure quick and easy ways to improve the Roblox gameplay experience.. + /// + public static string Menu_Integrations_Description { + get { + return ResourceManager.GetString("Menu.Integrations.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Allows for Bloxstrap to detect what Roblox game you're playing. Certain features may require this.. + /// + public static string Menu_Integrations_EnableActivityTracking_Description { + get { + return ResourceManager.GetString("Menu.Integrations.EnableActivityTracking.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enable activity tracking. + /// + public static string Menu_Integrations_EnableActivityTracking_Title { + get { + return ResourceManager.GetString("Menu.Integrations.EnableActivityTracking.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to More information on this integration. + /// + public static string Menu_Integrations_MoreInfo { + get { + return ResourceManager.GetString("Menu.Integrations.MoreInfo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This feature requires activity tracking to be enabled.. + /// + public static string Menu_Integrations_RequiresActivityTracking { + get { + return ResourceManager.GetString("Menu.Integrations.RequiresActivityTracking", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When playing a Roblox game, the game you're playing will show on your Discord profile activity.. + /// + public static string Menu_Integrations_ShowGameActivity_Description { + get { + return ResourceManager.GetString("Menu.Integrations.ShowGameActivity.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show game activity. + /// + public static string Menu_Integrations_ShowGameActivity_Title { + get { + return ResourceManager.GetString("Menu.Integrations.ShowGameActivity.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to When you join a game, you'll be notified of where your server's located. Won't show in fullscreen.. + /// + public static string Menu_Integrations_ShowServerDetails_Description { + get { + return ResourceManager.GetString("Menu.Integrations.ShowServerDetails.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See server location when joining a game. + /// + public static string Menu_Integrations_ShowServerDetails_Title { + get { + return ResourceManager.GetString("Menu.Integrations.ShowServerDetails.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Integrations. + /// + public static string Menu_Integrations_Title { + get { + return ResourceManager.GetString("Menu.Integrations.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Manage and apply file mods to the Roblox game client.. + /// + public static string Menu_Mods_Description { + get { + return ResourceManager.GetString("Menu.Mods.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to See info about managing and creating mods.. + /// + public static string Menu_Mods_Help_Description { + get { + return ResourceManager.GetString("Menu.Mods.Help.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose font.... + /// + public static string Menu_Mods_Misc_CustomFont_Choose { + get { + return ResourceManager.GetString("Menu.Mods.Misc.CustomFont.Choose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Forces every in-game font to be a font that you choose.. + /// + public static string Menu_Mods_Misc_CustomFont_Description { + get { + return ResourceManager.GetString("Menu.Mods.Misc.CustomFont.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove applied font. + /// + public static string Menu_Mods_Misc_CustomFont_Remove { + get { + return ResourceManager.GetString("Menu.Mods.Misc.CustomFont.Remove", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Apply custom font. + /// + public static string Menu_Mods_Misc_CustomFont_Title { + get { + return ResourceManager.GetString("Menu.Mods.Misc.CustomFont.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A Windows feature that intends to improve fullscreen performance. [See here for more information]({0}).. + /// + public static string Menu_Mods_Misc_DisableFullscreenOptimisations_Description { + get { + return ResourceManager.GetString("Menu.Mods.Misc.DisableFullscreenOptimisations.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable fullscreen optimisations. + /// + public static string Menu_Mods_Misc_DisableFullscreenOptimisations_Title { + get { + return ResourceManager.GetString("Menu.Mods.Misc.DisableFullscreenOptimisations.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Manage custom Roblox mods here.. + /// + public static string Menu_Mods_OpenModsFolder_Description { + get { + return ResourceManager.GetString("Menu.Mods.OpenModsFolder.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap must first be installed.. + /// + public static string Menu_Mods_OpenModsFolder_MustBeInstalled { + get { + return ResourceManager.GetString("Menu.Mods.OpenModsFolder.MustBeInstalled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open Mods Folder. + /// + public static string Menu_Mods_OpenModsFolder_Title { + get { + return ResourceManager.GetString("Menu.Mods.OpenModsFolder.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stops the desktop app from showing, especially when you leave a game.. + /// + public static string Menu_Mods_Presets_DisableDesktopApp_Description { + get { + return ResourceManager.GetString("Menu.Mods.Presets.DisableDesktopApp.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disable desktop app. + /// + public static string Menu_Mods_Presets_DisableDesktopApp_Title { + get { + return ResourceManager.GetString("Menu.Mods.Presets.DisableDesktopApp.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which type of emoji should Roblox use.. + /// + public static string Menu_Mods_Presets_EmojiType_Description { + get { + return ResourceManager.GetString("Menu.Mods.Presets.EmojiType.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preferred emoji type. + /// + public static string Menu_Mods_Presets_EmojiType_Title { + get { + return ResourceManager.GetString("Menu.Mods.Presets.EmojiType.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose between using two classic Roblox cursor styles.. + /// + public static string Menu_Mods_Presets_MouseCursor_Description { + get { + return ResourceManager.GetString("Menu.Mods.Presets.MouseCursor.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mouse cursor. + /// + public static string Menu_Mods_Presets_MouseCursor_Title { + get { + return ResourceManager.GetString("Menu.Mods.Presets.MouseCursor.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bring back the old avatar editor background used in the Roblox app prior to 2020.. + /// + public static string Menu_Mods_Presets_OldAvatarEditor_Description { + get { + return ResourceManager.GetString("Menu.Mods.Presets.OldAvatarEditor.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use old avatar editor background. + /// + public static string Menu_Mods_Presets_OldAvatarEditor_Title { + get { + return ResourceManager.GetString("Menu.Mods.Presets.OldAvatarEditor.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to An attempt to roughly bring back the character sounds used prior to 2014.. + /// + public static string Menu_Mods_Presets_OldCharacterSounds_Description { + get { + return ResourceManager.GetString("Menu.Mods.Presets.OldCharacterSounds.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Emulate old character sounds. + /// + public static string Menu_Mods_Presets_OldCharacterSounds_Title { + get { + return ResourceManager.GetString("Menu.Mods.Presets.OldCharacterSounds.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bring back the classic 'oof' death sound.. + /// + public static string Menu_Mods_Presets_OldDeathSound_Description { + get { + return ResourceManager.GetString("Menu.Mods.Presets.OldDeathSound.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Use old death sound. + /// + public static string Menu_Mods_Presets_OldDeathSound_Title { + get { + return ResourceManager.GetString("Menu.Mods.Presets.OldDeathSound.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mods. + /// + public static string Menu_Mods_Title { + get { + return ResourceManager.GetString("Menu.Mods.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There's just a few things you first should know about.. + /// + public static string Menu_PreInstall_Description { + get { + return ResourceManager.GetString("Menu.PreInstall.Description", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to After installation has finished, the Bloxstrap Menu will be registered as an application in the Start menu. If you ever need to access it again to re-adjust your settings, or access resources such as FastFlag management, you can find it there.. + /// + public static string Menu_PreInstall_Info_1 { + get { + return ResourceManager.GetString("Menu.PreInstall.Info.1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If you ever need help or guidance with anything, be sure to check the [Wiki]({0}). If you still need something, open an [issue]({1}) on GitHub, or join our [Discord server]({2}).. + /// + public static string Menu_PreInstall_Info_2 { + get { + return ResourceManager.GetString("Menu.PreInstall.Info.2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Before you install.... + /// + public static string Menu_PreInstall_Title { + get { + return ResourceManager.GetString("Menu.PreInstall.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Save. + /// + public static string Menu_Save { + get { + return ResourceManager.GetString("Menu.Save", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Bloxstrap Menu. + /// + public static string Menu_Title { + get { + return ResourceManager.GetString("Menu.Title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Roblox is attempting to set your channel to {0}, however your current preferred channel is {1}. + /// + ///Would you like to switch your preferred channel to {0}?. + /// + public static string ProtocolHandler_RobloxSwitchedChannel { + get { + return ResourceManager.GetString("ProtocolHandler.RobloxSwitchedChannel", resourceCulture); + } + } + } +} diff --git a/Bloxstrap/Resources/Strings.en-US.resx b/Bloxstrap/Resources/Strings.en-US.resx new file mode 100644 index 0000000..d166d17 --- /dev/null +++ b/Bloxstrap/Resources/Strings.en-US.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Configure other customizable Bootstrapper options. + + + Bootstrapper customization + + + Behavior + + + Disable fullscreen optimizations + + \ No newline at end of file diff --git a/Bloxstrap/Resources/Strings.resx b/Bloxstrap/Resources/Strings.resx new file mode 100644 index 0000000..f638aa7 --- /dev/null +++ b/Bloxstrap/Resources/Strings.resx @@ -0,0 +1,982 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + left game + + + lookup failed + + + Bloxstrap was unable to auto-update to {0}. Please update it manually by downloading and running the latest release from the GitHub page. + + + The channel you're currently on ({0}) is out of date, and appears to no longer be receiving updates. +Would you like to switch to the default channel ({1})? + + + It's possible that something is preventing Bloxstrap from connecting to the internet. Please check and try again. + + + Roblox may be down right now. See status.roblox.com for more information. Please try again later. + + + Bloxstrap timed out when trying to connect to three different Roblox deployment mirrors, indicating a poor internet connection. Please try again later. + + + Roblox was launched via a deeplink, however the desktop app is required for deeplink launching to work. Because you've opted to disable the desktop app, it will temporarily be re-enabled for this launch only. + + + Roblox has now finished rolling out the new game client update, featuring 64-bit support and the Hyperion anticheat. ReShade does not work with this update, and so it has now been disabled and removed from Bloxstrap. + +Your ReShade configuration files will still be saved, and you can locate them by opening the folder where Bloxstrap is installed to, and navigating to the Integrations folder. You can choose to delete these if you want. + + + Bloxstrap does not have enough disk space to download and install Roblox. Please free up some disk space and try again. + + + Applying Roblox modifications... + + + Configuring {product}... + + + Connecting to Roblox... + + + Installing {product}... + + + Installing WebView2, please wait... + + + Starting {product}... + + + Uninstalling Bloxstrap... + + + Upgrading {product}... + + + Getting the latest Bloxstrap... + + + Waiting for other instances... + + + Bloxstrap has successfully installed + + + Bloxstrap has successfully uninstalled + + + Roblox is currently running, but must be closed before uninstalling Bloxstrap. Would you like close Roblox now? + + + Roblox requires the use of Windows Media Foundation components. You appear to be missing them, likely because you are using an N edition of Windows. Please install them first, and then launch Roblox. + + + Browse + + + Cancel + + + Close + + + Delete + + + Discord Rich Presence + + + Help + + + Import JSON + + + Locate log file + + + Miscellaneous + + + Name + + + New + + + No + + + OK + + + Presets + + + Reset + + + Value + + + Yes + + + Close Roblox + + + Are you sure you want to close Roblox? This will forcefully end the process. + + + Copy invite deeplink + + + Keep on top + + + Scroll to end + + + Text wrapping + + + Log tracer + + + Tracing {0} + + + Open log tracer + + + See server details + + + Copy Instance ID + + + Instance ID + + + Loading, please wait... + + + Location + + + Server information + + + Type + + + {0} server + + + UDMUX proxied + + + Add FastFlag + + + Paste in your JSON here... + + + More information: + + + Connectivity error + + + Bloxstrap is unable to connect to {0} + + + Copy log contents + + + An exception occurred while running Bloxstrap + + + Please report this exception through a GitHub issue or in our Discord chat, along with a copy of the log file that was created. + + + Submit report... + + + Submit report via Discord + + + Submit report via GitHub + + + Bloxstrap Exception + + + 2008 + + + 2011 + + + 2017 + + + 2019 + + + 2022 + + + Bloxstrap + + + Custom + + + Early 2015 + + + Late 2015 + + + Fake Byfron (2023) + + + Fluent + + + Legacy (2008 - 2011) + + + Legacy (2011 - 2014) + + + Progress (~2014) + + + Vista (2008 - 2011) + + + Change automatically + + + Never change + + + Always prompt + + + Default + + + Version 1 (2015) + + + Version 2 (2020) + + + Version 4 (2023) + + + Chosen by game + + + Future (Phase 3) + + + Shadow Map (Phase 2) + + + Voxel (Phase 1) + + + Chosen by game + + + New (2022) + + + Old (Pre-2022) + + + Automatic + + + 1x MSAA + + + 2x MSAA + + + 4x MSAA + + + 8x MSAA + + + D3D10 + + + D3D11 + + + Automatic + + + OpenGL + + + Vulkan + + + Private + + + Public + + + Reserved + + + Dark + + + System Default + + + Light + + + Bloxstrap has detected a drive letter change and has reconfigured its install location from the {0} drive to the {1} drive. + +While Bloxstrap will continue to work, it's recommended that you change the drive letter back to its original value as other installed applications can experience similar issues. + + + Bloxstrap was originally installed to the {0} drive, but it appears to no longer be present. Would you like to continue and carry out a fresh install? + + + It appears as if Bloxstrap hasn't been properly installed. Is it supposed to be installed at {0}? + + + See what's new in this version + + + Bloxstrap has been upgraded to v{0} + + + The version of Bloxstrap you've launched is different to the version you currently have installed. +Would you like to upgrade your currently installed version? + + + Commit Hash + + + Build Information + + + Machine + + + Commit Ref + + + Timestamp + + + Contributors + + + These are the people who have made notable contributions to Bloxstrap, helping make it what it is. + + + An open-source, feature-packed alternative bootstrapper for Roblox + + + Developed by pizzaboxer - if you like this, please consider leaving a star on GitHub! + + + Discord server + + + GitHub repository + + + Help and Information + + + Licenses + + + Report an issue + + + About + + + Using an unreleased version, I see? + + + Version {0} + + + All files + + + Bloxstrap is currently running, likely as a background Roblox process. Please note that not all your changes will immediately apply until you close all currently open Roblox instances." + + + Configure other customisable Bootstrapper options. + + + Bootstrapper customisation + + + Must be a multi-size .ico file with sizes 16px to 128px. Set Icon as 'Custom' to use it. + + + Custom Icon + + + The text that shows as the title of the bootstrapper. + + + Title + + + Configure how Bloxstrap should look. + + + Choose what icon the bootstrapper should use. + + + Icon + + + Preview + + + Choose how the bootstrapper should look. + + + Style + + + Dark theme does not apply to Legacy or Vista styles. + + + Theme + + + Appearance + + + Roblox or Bloxstrap may try to change your preferred channel. + + + Automatic channel change action + + + Bloxstrap will automatically check and update itself when launching Roblox. + + + Automatically update Bloxstrap + + + Deployed + + + Choose which deployment channel Roblox should be downloaded from. + + + The specified channel name does not exist. + + + Failed to fetch information! + + + Fetching latest deploy info, please wait... + + + This channel is out of date, and is likely no longer being updated. Please use another channel. + + + Channel + + + Version + + + Version GUID + + + Bloxstrap will place an icon on the desktop that launches Roblox the next time it launches. + + + Create desktop icon + + + Configure what Bloxstrap should do when launching. + + + Roblox will be installed fresh on next launch. + + + Force Roblox reinstallation + + + Behaviour + + + Add new + + + Back + + + Delete selected + + + Manage your own FastFlags. Double click a column to edit. + + + Search + + + Show preset flags + + + Fast Flag Editor + + + Control how specific Roblox engine parameters and features are configured. + + + Manage your own FastFlags. + Title is Menu.FastFlagEditor.Title + + + Learn more about FastFlags. + Title is Common.Help + + + Toggle between using the consolidated 1-10 / fine-grained 1-21 graphics quality slider. + + + Use alternate graphics quality selector + + + FastFlag preset for Direct3D [exclusive fullscreen]({0}) using Alt+Enter is already enabled by default. + + + Show values of specified flags during runtime. Each flag is comma separated. + + + Flag state overlay + + + Set blank if not using a proxy. Don't forget to add cacert.pem as a mod. + Do not translate "cacert.pem" + + + HTTP proxy address + + + Enables logging of HTTP requests (DFLogHttpTraceLight=12). + Do not translate "DFLogHttpTraceLight" + + + HTTP request logging + + + Debug + + + Choose which version of the escape menu to use. + + + Preferred escape menu version + + + Roblox reduces your rendering quality, depending on display scaling. This toggle disables that. + + + Preserve rendering quality with display scaling + + + Use a large number like 9999 for no limit. Set as 0 for defaults. + + + Framerate limit + + + Toggled with [keyboard shortcuts]({0}). Only works if you're in the [Bloxstrap group]({1}). + + + Enable ability to hide GUIs + + + Choose which lighting technology should be forced enabled in all games. + + + Preferred lighting technology + + + Choose which material version should be forced in all games. + + + Preferred materials + + + More information on this preset + + + Choose what renderer Roblox should use. VR requires Direct3D/Automatic. + + + Rendering mode + + + Fast Flags + + + Font files + + + Icon files + + + Install + + + Configure how Bloxstrap/Roblox is installed. + + + Choose where Bloxstrap should be installed to. + + + Install Location + + + Where Bloxstrap is currently installed to. + + + Open Installation Folder + + + Installation + + + Here's a guide on how to uninstall Bloxstrap. + + + Looking to uninstall? + + + Bloxstrap cannot be installed here. Please choose a different location, or resort to using the default location by clicking the reset button. + + + The folder you've chosen to install Bloxstrap to already exists and is NOT empty. It is strongly recommended for Bloxstrap to be installed to its own independent folder. + +Changing to the following location is suggested: +{0} + +Would you like to change to the suggested location? +Selecting 'No' will ignore this warning and continue installation. + + + You must set an install location + + + Bloxstrap does not have write access to the install location you've selected. Please choose another location. + + + Activity tracking + + + Allows for anybody to join the game you're currently in through your Discord profile. + + + Allow activity joining + + + Allows for having more than one Roblox game client instance open simultaneously. + + + Allow multi-instance launching + + + Application Location + + + e.g. C:\Windows\System32\cmd.exe + + + Auto close when Roblox closes + + + Here, you can have other programs launch with Roblox automatically. + + + Launch Arguments + + + e.g. /k echo Roblox is running! + + + New Integration + + + No integration selected, please select or add a new one + + + Custom Integrations + + + Configure quick and easy ways to improve the Roblox gameplay experience. + + + Allows for Bloxstrap to detect what Roblox game you're playing. Certain features may require this. + + + Enable activity tracking + + + More information on this integration + + + This feature requires activity tracking to be enabled. + + + When playing a Roblox game, the game you're playing will show on your Discord profile activity. + + + Show game activity + + + When you join a game, you'll be notified of where your server's located. Won't show in fullscreen. + + + See server location when joining a game + + + Integrations + + + Manage and apply file mods to the Roblox game client. + + + See info about managing and creating mods. + Title is Common.Help + + + Choose font... + + + Forces every in-game font to be a font that you choose. + + + Remove applied font + + + Apply custom font + + + A Windows feature that intends to improve fullscreen performance. [See here for more information]({0}). + + + Disable fullscreen optimisations + + + Manage custom Roblox mods here. + + + Bloxstrap must first be installed. + + + Open Mods Folder + + + Stops the desktop app from showing, especially when you leave a game. + + + Disable desktop app + + + Choose which type of emoji should Roblox use. + + + Preferred emoji type + + + Choose between using two classic Roblox cursor styles. + + + Mouse cursor + + + Bring back the old avatar editor background used in the Roblox app prior to 2020. + + + Use old avatar editor background + + + An attempt to roughly bring back the character sounds used prior to 2014. + + + Emulate old character sounds + + + Bring back the classic 'oof' death sound. + + + Use old death sound + + + Mods + + + There's just a few things you first should know about. + + + After installation has finished, the Bloxstrap Menu will be registered as an application in the Start menu. If you ever need to access it again to re-adjust your settings, or access resources such as FastFlag management, you can find it there. + + + If you ever need help or guidance with anything, be sure to check the [Wiki]({0}). If you still need something, open an [issue]({1}) on GitHub, or join our [Discord server]({2}). + + + Before you install... + + + Save + + + Bloxstrap Menu + + + Roblox is attempting to set your channel to {0}, however your current preferred channel is {1}. + +Would you like to switch your preferred channel to {0}? + + \ No newline at end of file diff --git a/Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml b/Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml index ce265a6..0d8c074 100644 --- a/Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml +++ b/Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml @@ -5,6 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" xmlns:base="clr-namespace:Bloxstrap.UI.Elements.Base" + xmlns:resources="clr-namespace:Bloxstrap.Resources" mc:Ignorable="d" Width="420" MinHeight="0" @@ -44,7 +45,7 @@ - - -