using System.Collections.Generic; namespace DiscordChatExporter.Gui.Localization; public partial class LocalizationManager { private static readonly IReadOnlyDictionary EnglishLocalization = new Dictionary { // Dashboard [nameof(PullGuildsTooltip)] = "Pull available servers and channels (Enter)", [nameof(SettingsTooltip)] = "Settings", [nameof(LastMessageSentTooltip)] = "Last message sent:", [nameof(TokenWatermark)] = "Token", // Token instructions (personal account) [nameof(TokenPersonalHeader)] = "To get the token for your personal account:", [nameof(TokenPersonalTosWarning)] = "* Automating user accounts is technically against TOS —", [nameof(TokenPersonalTosRisk)] = "use at your own risk", [nameof(TokenPersonalStep1Before)] = "1. Open Discord in your", [nameof(TokenPersonalStep1After)] = "and login", [nameof(TokenPersonalStep2)] = "2. Open any server or direct message channel", [nameof(TokenPersonalStep3)] = "3. Press Ctrl+Shift+I to show developer tools", [nameof(TokenPersonalStep4)] = "4. Navigate to the Network tab", [nameof(TokenPersonalStep5)] = "5. Press Ctrl+R to reload", [nameof(TokenPersonalStep6)] = "6. Switch between random channels to trigger network requests", [nameof(TokenPersonalStep7)] = "7. Search for a request that starts with messages", [nameof(TokenPersonalStep8)] = "8. Select the Headers tab on the right", [nameof(TokenPersonalStep9)] = "9. Scroll down to the Request Headers section", [nameof(TokenPersonalStep10)] = "10. Copy the value of the authorization header", [nameof(TokenWebBrowserLinkText)] = "web browser", // Token instructions (bot) [nameof(TokenBotHeader)] = "To get the token for your bot:", [nameof(TokenBotIntro)] = "The token is generated during bot creation. If you lost it, generate a new one:", [nameof(TokenBotStep1)] = "1. Open Discord", [nameof(TokenBotStep2)] = "2. Open your application's settings", [nameof(TokenBotStep3)] = "3. Navigate to the Bot section on the left", [nameof(TokenBotStep4)] = "4. Under Token click Reset Token", [nameof(TokenBotStep5)] = "5. Click Yes, do it! and authenticate to confirm", [nameof(TokenBotStep6)] = "* Integrations using the previous token will stop working until updated", [nameof(TokenBotStep7Before)] = "* Your bot needs to have the", [nameof(TokenBotStep7After)] = "enabled to read messages", [nameof(TokenDeveloperPortalLinkText)] = "developer portal", [nameof(TokenDocumentationLinkText)] = "documentation", [nameof(TokenHelpText)] = "If you have questions or issues, please refer to the", // Settings [nameof(SettingsTitle)] = "Settings", [nameof(ThemeLabel)] = "Theme", [nameof(ThemeTooltip)] = "Preferred user interface theme", [nameof(LanguageLabel)] = "Language", [nameof(LanguageTooltip)] = "Preferred user interface language", [nameof(AutoUpdateLabel)] = "Auto-update", [nameof(AutoUpdateTooltip)] = "Perform automatic updates on every launch", [nameof(PersistTokenLabel)] = "Persist token", [nameof(PersistTokenTooltip)] = "Save the last used token to a file so that it can be persisted between sessions", [nameof(RateLimitPreferenceLabel)] = "Rate limit preference", [nameof(RateLimitPreferenceTooltip)] = "Whether to respect advisory rate limits. If disabled, only hard rate limits (i.e. 429 responses) will be respected.", [nameof(ShowThreadsLabel)] = "Show threads", [nameof(ShowThreadsTooltip)] = "Which types of threads to show in the channel list", [nameof(LocaleLabel)] = "Locale", [nameof(LocaleTooltip)] = "Locale to use when formatting dates and numbers", [nameof(NormalizeToUtcLabel)] = "Normalize to UTC", [nameof(NormalizeToUtcTooltip)] = "Normalize all timestamps to UTC+0", [nameof(ParallelLimitLabel)] = "Parallel limit", [nameof(ParallelLimitTooltip)] = "How many channels can be exported at the same time", // Export Setup [nameof(ChannelsSelectedText)] = "channels selected", [nameof(OutputPathLabel)] = "Output path", [nameof(FormatLabel)] = "Format", [nameof(FormatTooltip)] = "Export format", [nameof(AfterDateLabel)] = "After (date)", [nameof(AfterDateTooltip)] = "Only include messages sent after this date", [nameof(BeforeDateLabel)] = "Before (date)", [nameof(BeforeDateTooltip)] = "Only include messages sent before this date", [nameof(AfterTimeLabel)] = "After (time)", [nameof(AfterTimeTooltip)] = "Only include messages sent after this time", [nameof(BeforeTimeLabel)] = "Before (time)", [nameof(BeforeTimeTooltip)] = "Only include messages sent before this time", [nameof(PartitionLimitLabel)] = "Partition limit", [nameof(PartitionLimitTooltip)] = "Split the output into partitions, each limited to the specified number of messages (e.g. '100') or file size (e.g. '10mb')", [nameof(MessageFilterLabel)] = "Message filter", [nameof(MessageFilterTooltip)] = "Only include messages that satisfy this filter (e.g. 'from:foo#1234' or 'has:image'). See the documentation for more info.", [nameof(FormatMarkdownLabel)] = "Format markdown", [nameof(FormatMarkdownTooltip)] = "Process markdown, mentions, and other special tokens", [nameof(DownloadAssetsLabel)] = "Download assets", [nameof(DownloadAssetsTooltip)] = "Download assets referenced by the export (user avatars, attached files, embedded images, etc.)", [nameof(ReuseAssetsLabel)] = "Reuse assets", [nameof(ReuseAssetsTooltip)] = "Reuse previously downloaded assets to avoid redundant requests", [nameof(AssetsDirPathLabel)] = "Assets directory path", [nameof(AssetsDirPathTooltip)] = "Download assets to this directory. If not specified, the asset directory path will be derived from the output path.", [nameof(AdvancedOptionsTooltip)] = "Toggle advanced options", [nameof(ExportButton)] = "EXPORT", // Common buttons [nameof(CloseButton)] = "CLOSE", [nameof(CancelButton)] = "CANCEL", // Dialog messages [nameof(UkraineSupportTitle)] = "Thank you for supporting Ukraine!", [nameof(UkraineSupportMessage)] = """ As Russia wages a genocidal war against my country, I'm grateful to everyone who continues to stand with Ukraine in our fight for freedom. Click LEARN MORE to find ways that you can help. """, [nameof(LearnMoreButton)] = "LEARN MORE", [nameof(UnstableBuildTitle)] = "Unstable build warning", [nameof(UnstableBuildMessage)] = """ You're using a development build of {0}. These builds are not thoroughly tested and may contain bugs. Auto-updates are disabled for development builds. Click SEE RELEASES if you want to download a stable release instead. """, [nameof(SeeReleasesButton)] = "SEE RELEASES", [nameof(UpdateDownloadingMessage)] = "Downloading update to {0} v{1}...", [nameof(UpdateReadyMessage)] = "Update has been downloaded and will be installed when you exit", [nameof(UpdateInstallNowButton)] = "INSTALL NOW", [nameof(UpdateFailedMessage)] = "Failed to perform application update", [nameof(ErrorPullingServersTitle)] = "Error pulling servers", [nameof(ErrorPullingChannelsTitle)] = "Error pulling channels", [nameof(ErrorExportingTitle)] = "Error exporting channel(s)", [nameof(SuccessfulExportMessage)] = "Successfully exported {0} channel(s)", }; }