diff --git a/DiscordChatExporter.Gui/Localization/LocalizationManager.English.cs b/DiscordChatExporter.Gui/Localization/LocalizationManager.English.cs index a4cec7d1..e6f66aef 100644 --- a/DiscordChatExporter.Gui/Localization/LocalizationManager.English.cs +++ b/DiscordChatExporter.Gui/Localization/LocalizationManager.English.cs @@ -11,6 +11,41 @@ public partial class LocalizationManager [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", diff --git a/DiscordChatExporter.Gui/Localization/LocalizationManager.French.cs b/DiscordChatExporter.Gui/Localization/LocalizationManager.French.cs index 48ad4827..2a559885 100644 --- a/DiscordChatExporter.Gui/Localization/LocalizationManager.French.cs +++ b/DiscordChatExporter.Gui/Localization/LocalizationManager.French.cs @@ -13,6 +13,42 @@ public partial class LocalizationManager [nameof(PullGuildsTooltip)] = "Charger les serveurs et canaux disponibles (Entrée)", [nameof(SettingsTooltip)] = "Paramètres", [nameof(LastMessageSentTooltip)] = "Dernier message envoyé :", + [nameof(TokenWatermark)] = "Token", + // Token instructions (personal account) + [nameof(TokenPersonalHeader)] = "Obtenir le token pour votre compte personnel :", + [nameof(TokenPersonalTosWarning)] = + "* L'automatisation des comptes est techniquement contraire aux CGU —", + [nameof(TokenPersonalTosRisk)] = "à vos risques et périls", + [nameof(TokenPersonalStep1Before)] = "1. Ouvrez Discord dans votre", + [nameof(TokenPersonalStep1After)] = "et connectez-vous", + [nameof(TokenPersonalStep2)] = + "2. Ouvrez n'importe quel serveur ou canal de message direct", + [nameof(TokenPersonalStep3)] = + "3. Appuyez sur Ctrl+Shift+I pour afficher les outils de développement", + [nameof(TokenPersonalStep4)] = "4. Naviguez vers l'onglet Network", + [nameof(TokenPersonalStep5)] = "5. Appuyez sur Ctrl+R pour recharger", + [nameof(TokenPersonalStep6)] = "6. Changez de canal pour déclencher des requêtes réseau", + [nameof(TokenPersonalStep7)] = "7. Cherchez une requête commençant par messages", + [nameof(TokenPersonalStep8)] = "8. Sélectionnez l'onglet Headers à droite", + [nameof(TokenPersonalStep9)] = "9. Faites défiler jusqu'à la section Request Headers", + [nameof(TokenPersonalStep10)] = "10. Copiez la valeur de l'en-tête authorization", + [nameof(TokenWebBrowserLinkText)] = "navigateur web", + // Token instructions (bot) + [nameof(TokenBotHeader)] = "Obtenir le token pour votre bot :", + [nameof(TokenBotIntro)] = + "Le token est généré lors de la création du bot. Si vous l'avez perdu, générez-en un nouveau :", + [nameof(TokenBotStep1)] = "1. Ouvrez Discord", + [nameof(TokenBotStep2)] = "2. Ouvrez les paramètres de votre application", + [nameof(TokenBotStep3)] = "3. Naviguez vers la section Bot à gauche", + [nameof(TokenBotStep4)] = "4. Sous Token, cliquez sur Reset Token", + [nameof(TokenBotStep5)] = "5. Cliquez sur Yes, do it! et confirmez", + [nameof(TokenBotStep6)] = + "* Les intégrations utilisant l'ancien token cesseront de fonctionner jusqu'à leur mise à jour", + [nameof(TokenBotStep7Before)] = "* Votre bot doit avoir l'option", + [nameof(TokenBotStep7After)] = "activée pour lire les messages", + [nameof(TokenDeveloperPortalLinkText)] = "portail développeur", + [nameof(TokenDocumentationLinkText)] = "documentation", + [nameof(TokenHelpText)] = "Pour les questions ou problèmes, veuillez consulter la", // Settings [nameof(SettingsTitle)] = "Paramètres", [nameof(ThemeLabel)] = "Thème", diff --git a/DiscordChatExporter.Gui/Localization/LocalizationManager.German.cs b/DiscordChatExporter.Gui/Localization/LocalizationManager.German.cs index b88b4281..5cb3e3b8 100644 --- a/DiscordChatExporter.Gui/Localization/LocalizationManager.German.cs +++ b/DiscordChatExporter.Gui/Localization/LocalizationManager.German.cs @@ -13,6 +13,43 @@ public partial class LocalizationManager [nameof(PullGuildsTooltip)] = "Verfügbare Server und Kanäle laden (Enter)", [nameof(SettingsTooltip)] = "Einstellungen", [nameof(LastMessageSentTooltip)] = "Letzte Nachricht gesendet:", + [nameof(TokenWatermark)] = "Token", + // Token instructions (personal account) + [nameof(TokenPersonalHeader)] = "Token für Ihr persönliches Konto abrufen:", + [nameof(TokenPersonalTosWarning)] = + "* Das Automatisieren von Benutzerkonten verstößt technisch gegen die AGB —", + [nameof(TokenPersonalTosRisk)] = "auf eigene Gefahr", + [nameof(TokenPersonalStep1Before)] = "1. Öffnen Sie Discord in Ihrem", + [nameof(TokenPersonalStep1After)] = "und melden Sie sich an", + [nameof(TokenPersonalStep2)] = + "2. Öffnen Sie einen Server oder einen direkten Nachrichtenkanal", + [nameof(TokenPersonalStep3)] = + "3. Drücken Sie Ctrl+Shift+I, um die Entwicklertools anzuzeigen", + [nameof(TokenPersonalStep4)] = "4. Navigieren Sie zum Reiter Network", + [nameof(TokenPersonalStep5)] = "5. Drücken Sie Ctrl+R zum Neuladen", + [nameof(TokenPersonalStep6)] = + "6. Wechseln Sie zwischen Kanälen, um Netzwerkanfragen auszulösen", + [nameof(TokenPersonalStep7)] = "7. Suchen Sie nach einer Anfrage, die mit messages beginnt", + [nameof(TokenPersonalStep8)] = "8. Wählen Sie den Reiter Headers auf der rechten Seite", + [nameof(TokenPersonalStep9)] = "9. Scrollen Sie nach unten zum Abschnitt Request Headers", + [nameof(TokenPersonalStep10)] = "10. Kopieren Sie den Wert des Headers authorization", + [nameof(TokenWebBrowserLinkText)] = "Webbrowser", + // Token instructions (bot) + [nameof(TokenBotHeader)] = "Token für Ihren Bot abrufen:", + [nameof(TokenBotIntro)] = + "Der Token wird bei der Bot-Erstellung generiert. Falls er verloren gegangen ist, generieren Sie einen neuen:", + [nameof(TokenBotStep1)] = "1. Öffnen Sie Discord", + [nameof(TokenBotStep2)] = "2. Öffnen Sie die Einstellungen Ihrer Anwendung", + [nameof(TokenBotStep3)] = "3. Navigieren Sie zum Abschnitt Bot auf der linken Seite", + [nameof(TokenBotStep4)] = "4. Klicken Sie unter Token auf Reset Token", + [nameof(TokenBotStep5)] = "5. Klicken Sie auf Yes, do it! und bestätigen Sie", + [nameof(TokenBotStep6)] = + "* Integrationen, die den alten Token verwenden, hören auf zu funktionieren, bis sie aktualisiert werden", + [nameof(TokenBotStep7Before)] = "* Ihr Bot benötigt die aktivierte", + [nameof(TokenBotStep7After)] = "um Nachrichten zu lesen", + [nameof(TokenDeveloperPortalLinkText)] = "Entwicklerportal", + [nameof(TokenDocumentationLinkText)] = "Dokumentation", + [nameof(TokenHelpText)] = "Bei Fragen oder Problemen lesen Sie die", // Settings [nameof(SettingsTitle)] = "Einstellungen", [nameof(ThemeLabel)] = "Design", diff --git a/DiscordChatExporter.Gui/Localization/LocalizationManager.Spanish.cs b/DiscordChatExporter.Gui/Localization/LocalizationManager.Spanish.cs index faebfed4..96ec3c23 100644 --- a/DiscordChatExporter.Gui/Localization/LocalizationManager.Spanish.cs +++ b/DiscordChatExporter.Gui/Localization/LocalizationManager.Spanish.cs @@ -11,6 +11,42 @@ public partial class LocalizationManager [nameof(PullGuildsTooltip)] = "Cargar servidores y canales disponibles (Enter)", [nameof(SettingsTooltip)] = "Ajustes", [nameof(LastMessageSentTooltip)] = "Último mensaje enviado:", + [nameof(TokenWatermark)] = "Token", + // Token instructions (personal account) + [nameof(TokenPersonalHeader)] = "Cómo obtener el token para tu cuenta personal:", + [nameof(TokenPersonalTosWarning)] = + "* Automatizar cuentas de usuario técnicamente va en contra de los ToS —", + [nameof(TokenPersonalTosRisk)] = "bajo tu propio riesgo", + [nameof(TokenPersonalStep1Before)] = "1. Abre Discord en tu", + [nameof(TokenPersonalStep1After)] = "e inicia sesión", + [nameof(TokenPersonalStep2)] = "2. Abre cualquier servidor o canal de mensaje directo", + [nameof(TokenPersonalStep3)] = + "3. Presiona Ctrl+Shift+I para mostrar las herramientas de desarrollo", + [nameof(TokenPersonalStep4)] = "4. Navega a la pestaña Network", + [nameof(TokenPersonalStep5)] = "5. Presiona Ctrl+R para recargar", + [nameof(TokenPersonalStep6)] = + "6. Cambia entre canales para activar solicitudes de red", + [nameof(TokenPersonalStep7)] = "7. Busca una solicitud que comience con messages", + [nameof(TokenPersonalStep8)] = "8. Selecciona la pestaña Headers a la derecha", + [nameof(TokenPersonalStep9)] = "9. Desplázate hasta la sección Request Headers", + [nameof(TokenPersonalStep10)] = "10. Copia el valor del encabezado authorization", + [nameof(TokenWebBrowserLinkText)] = "navegador web", + // Token instructions (bot) + [nameof(TokenBotHeader)] = "Cómo obtener el token para tu bot:", + [nameof(TokenBotIntro)] = + "El token se genera al crear el bot. Si lo perdiste, genera uno nuevo:", + [nameof(TokenBotStep1)] = "1. Abre Discord", + [nameof(TokenBotStep2)] = "2. Abre la configuración de tu aplicación", + [nameof(TokenBotStep3)] = "3. Navega a la sección Bot en el lado izquierdo", + [nameof(TokenBotStep4)] = "4. En Token, haz clic en Reset Token", + [nameof(TokenBotStep5)] = "5. Haz clic en Yes, do it! y autentica para confirmar", + [nameof(TokenBotStep6)] = + "* Las integraciones que usen el token anterior dejarán de funcionar hasta que se actualicen", + [nameof(TokenBotStep7Before)] = "* Tu bot necesita tener habilitado", + [nameof(TokenBotStep7After)] = "para leer mensajes", + [nameof(TokenDeveloperPortalLinkText)] = "portal de desarrolladores", + [nameof(TokenDocumentationLinkText)] = "documentación", + [nameof(TokenHelpText)] = "Si tienes preguntas o problemas, consulta la", // Settings [nameof(SettingsTitle)] = "Ajustes", [nameof(ThemeLabel)] = "Tema", diff --git a/DiscordChatExporter.Gui/Localization/LocalizationManager.Ukrainian.cs b/DiscordChatExporter.Gui/Localization/LocalizationManager.Ukrainian.cs index 01890daf..7241a26d 100644 --- a/DiscordChatExporter.Gui/Localization/LocalizationManager.Ukrainian.cs +++ b/DiscordChatExporter.Gui/Localization/LocalizationManager.Ukrainian.cs @@ -11,6 +11,43 @@ public partial class LocalizationManager [nameof(PullGuildsTooltip)] = "Завантажити доступні сервери та канали (Enter)", [nameof(SettingsTooltip)] = "Налаштування", [nameof(LastMessageSentTooltip)] = "Останнє повідомлення:", + [nameof(TokenWatermark)] = "Токен", + // Token instructions (personal account) + [nameof(TokenPersonalHeader)] = "Як отримати токен для персонального акаунту:", + [nameof(TokenPersonalTosWarning)] = + "* Автоматизація облікових записів технічно порушує Умови обслуговування —", + [nameof(TokenPersonalTosRisk)] = "на власний ризик", + [nameof(TokenPersonalStep1Before)] = "1. Відкрийте Discord у вашому", + [nameof(TokenPersonalStep1After)] = "та увійдіть", + [nameof(TokenPersonalStep2)] = + "2. Відкрийте будь-який сервер або канал особистих повідомлень", + [nameof(TokenPersonalStep3)] = + "3. Натисніть Ctrl+Shift+I, щоб відкрити інструменти розробника", + [nameof(TokenPersonalStep4)] = "4. Перейдіть на вкладку Network", + [nameof(TokenPersonalStep5)] = "5. Натисніть Ctrl+R для перезавантаження", + [nameof(TokenPersonalStep6)] = + "6. Перемикайтеся між каналами, щоб викликати мережеві запити", + [nameof(TokenPersonalStep7)] = "7. Знайдіть запит, що починається з messages", + [nameof(TokenPersonalStep8)] = "8. Виберіть вкладку Headers праворуч", + [nameof(TokenPersonalStep9)] = "9. Прокрутіть до розділу Request Headers", + [nameof(TokenPersonalStep10)] = "10. Скопіюйте значення заголовка authorization", + [nameof(TokenWebBrowserLinkText)] = "веб-браузер", + // Token instructions (bot) + [nameof(TokenBotHeader)] = "Як отримати токен для бота:", + [nameof(TokenBotIntro)] = + "Токен генерується під час створення бота. Якщо ви його втратили, згенеруйте новий:", + [nameof(TokenBotStep1)] = "1. Відкрийте Discord", + [nameof(TokenBotStep2)] = "2. Відкрийте налаштування вашого застосунку", + [nameof(TokenBotStep3)] = "3. Перейдіть до розділу Bot ліворуч", + [nameof(TokenBotStep4)] = "4. В розділі Token натисніть Reset Token", + [nameof(TokenBotStep5)] = "5. Натисніть Yes, do it! та підтвердьте", + [nameof(TokenBotStep6)] = + "* Інтеграції, що використовують попередній токен, перестануть працювати", + [nameof(TokenBotStep7Before)] = "* Ваш бот повинен мати включений", + [nameof(TokenBotStep7After)] = "для читання повідомлень", + [nameof(TokenDeveloperPortalLinkText)] = "портал розробника", + [nameof(TokenDocumentationLinkText)] = "документацію", + [nameof(TokenHelpText)] = "Якщо у вас є запитання або проблеми, зверніться до", // Settings [nameof(SettingsTitle)] = "Налаштування", [nameof(ThemeLabel)] = "Тема", diff --git a/DiscordChatExporter.Gui/Localization/LocalizationManager.cs b/DiscordChatExporter.Gui/Localization/LocalizationManager.cs index ac38664d..16697715 100644 --- a/DiscordChatExporter.Gui/Localization/LocalizationManager.cs +++ b/DiscordChatExporter.Gui/Localization/LocalizationManager.cs @@ -82,6 +82,39 @@ public partial class LocalizationManager public string PullGuildsTooltip => Get(); public string SettingsTooltip => Get(); public string LastMessageSentTooltip => Get(); + public string TokenWatermark => Get(); + + // Token instructions (personal account) + public string TokenPersonalHeader => Get(); + public string TokenPersonalTosWarning => Get(); + public string TokenPersonalTosRisk => Get(); + public string TokenPersonalStep1Before => Get(); + public string TokenPersonalStep1After => Get(); + public string TokenPersonalStep2 => Get(); + public string TokenPersonalStep3 => Get(); + public string TokenPersonalStep4 => Get(); + public string TokenPersonalStep5 => Get(); + public string TokenPersonalStep6 => Get(); + public string TokenPersonalStep7 => Get(); + public string TokenPersonalStep8 => Get(); + public string TokenPersonalStep9 => Get(); + public string TokenPersonalStep10 => Get(); + public string TokenWebBrowserLinkText => Get(); + + // Token instructions (bot) + public string TokenBotHeader => Get(); + public string TokenBotIntro => Get(); + public string TokenBotStep1 => Get(); + public string TokenBotStep2 => Get(); + public string TokenBotStep3 => Get(); + public string TokenBotStep4 => Get(); + public string TokenBotStep5 => Get(); + public string TokenBotStep6 => Get(); + public string TokenBotStep7Before => Get(); + public string TokenBotStep7After => Get(); + public string TokenDeveloperPortalLinkText => Get(); + public string TokenDocumentationLinkText => Get(); + public string TokenHelpText => Get(); // ---- Settings ---- diff --git a/DiscordChatExporter.Gui/Views/Components/DashboardView.axaml b/DiscordChatExporter.Gui/Views/Components/DashboardView.axaml index 2159d8d7..e5162259 100644 --- a/DiscordChatExporter.Gui/Views/Components/DashboardView.axaml +++ b/DiscordChatExporter.Gui/Views/Components/DashboardView.axaml @@ -27,7 +27,7 @@ RevealPassword="{Binding $self.IsFocused}" Text="{Binding Token}" Theme="{DynamicResource SoloTextBox}" - Watermark="Token"> + Watermark="{Binding LocalizationManager.TokenWatermark}"> @@ -238,80 +238,46 @@ BaselineAlignment="Center" FontSize="16" FontWeight="SemiBold" - Text="To get the token for your personal account:" /> + Text="{Binding LocalizationManager.TokenPersonalHeader}" /> - + + Text="{Binding LocalizationManager.TokenPersonalTosRisk}" /> - - - + + + - + - - - + - - - + - - - + - + - - + - - - + - - - + - - - + @@ -329,61 +295,42 @@ BaselineAlignment="Center" FontSize="16" FontWeight="SemiBold" - Text="To get the token for your bot:" /> + Text="{Binding LocalizationManager.TokenBotHeader}" /> - + - - + + - + - - - + - - - - + - - - + - + - + - + - - + +