From 17212081aebd16769314526c494a327792eba13e Mon Sep 17 00:00:00 2001 From: yeongpin Date: Mon, 17 Mar 2025 17:00:23 +0800 Subject: [PATCH] Update version to 1.7.11, adding multi-language support for German, Dutch, and French. Update CHANGELOG.md to reflect new language additions and enhancements in the translation files. --- CHANGELOG.md | 10 +++- locales/de.json | 118 ++++++++++++++++++++++++++++++++++++++++++++- locales/en.json | 5 +- locales/fr.json | 118 ++++++++++++++++++++++++++++++++++++++++++++- locales/nl.json | 118 ++++++++++++++++++++++++++++++++++++++++++++- locales/vi.json | 5 +- locales/zh_cn.json | 5 +- locales/zh_tw.json | 5 +- main.py | 14 +++++- 9 files changed, 389 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84a704e..8d15581 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ # Change Log -## v1.7.10 ( Pre - Release 版本 ) +## v1.7.11 ( Pre - Release 版本 ) +1. Add: Multi-language Support | 增加多語言支持 +2. Add: German Language | 增加德語 +3. Add: Dutch Language | 增加荷蘭語 +4. Add: French Language | 增加法語 + + + +## v1.7.10 1. Add: Totally Reset Cursor | 增加完全重置 Cursor 2. Add: Multi-language Support for Totally Reset | 增加完全重置多語言支持 diff --git a/locales/de.json b/locales/de.json index 65cd68a..350016c 100644 --- a/locales/de.json +++ b/locales/de.json @@ -250,5 +250,121 @@ "domains_excluded": "Ausgeschlossene Domains: {domains}", "failed_to_create_account": "Konto Erstellen Fehlgeschlagen", "account_creation_error": "Konto-Erstellungsfehler: {error}" + }, + "update": { + "title": "Cursor Auto-Update Deaktivieren", + "disable_success": "Auto-Update Deaktiviert Erfolgreich", + "disable_failed": "Auto-Update Deaktivieren Fehlgeschlagen: {error}", + "press_enter": "Drücken Sie Enter zum Fortfahren", + "start_disable": "Auto-Update Deaktivieren Starten", + "killing_processes": "Prozesse Töten", + "processes_killed": "Prozesse Getötet", + "removing_directory": "Verzeichnis Entfernen", + "directory_removed": "Verzeichnis Entfernt", + "creating_block_file": "Block-Datei Erstellen", + "block_file_created": "Block-Datei Erstellt" + }, + "updater": { + "checking": "Updates prüfen...", + "new_version_available": "Neue Version verfügbar! (Aktuell: {current}, Neueste: {latest})", + "updating": "Zur neuesten Version aktualisieren. Das Programm wird automatisch neu starten.", + "up_to_date": "Sie verwenden die neueste Version.", + "check_failed": "Überprüfung auf Updates fehlgeschlagen: {error}", + "continue_anyway": "Mit der aktuellen Version fortfahren...", + "update_confirm": "Möchten Sie die neueste Version aktualisieren? (Y/n)", + "update_skipped": "Update überspringen.", + "invalid_choice": "Ungültige Auswahl. Bitte geben Sie 'Y' oder 'n' ein.", + "development_version": "Entwickler-Version {current} > {latest}" + }, + "totally_reset": { + "title": "Cursor Vollständig Zurücksetzen", + "checking_config": "Konfigurationsdatei Überprüfen", + "config_not_found": "Konfigurationsdatei Nicht Gefunden", + "no_permission": "Kann Konfigurationsdatei Nicht Lesen oder Schreiben, Bitte Berechtigungen Überprüfen", + "reading_config": "Aktuelle Konfiguration Lesen", + "creating_backup": "Konfigurationsdatei Sichern", + "backup_exists": "Backup-Datei bereits vorhanden, Sicherungsschritt überspringen", + "generating_new_machine_id": "Neue Maschinen-ID Generieren", + "saving_new_config": "Neue Konfiguration in JSON Speichern", + "success": "Cursor Erfolgreich Zurückgesetzt", + "error": "Cursor Zurücksetzen Fehlgeschlagen: {error}", + "press_enter": "Drücken Sie Enter zum Beenden", + "reset_machine_id": "Maschinen-ID Zurücksetzen", + "database_connection_closed": "Datenbankverbindung Geschlossen", + "database_updated_successfully": "Datenbank Erfolgreich Aktualisiert", + "connected_to_database": "Mit Datenbank Verbunden", + "updating_pair": "Schlüssel-Wert-Paar Aktualisieren", + "db_not_found": "Datenbankdatei Nicht Gefunden bei: {path}", + "db_permission_error": "Kann Nicht auf Datenbankdatei Zugreifen. Bitte Berechtigungen Überprüfen", + "db_connection_error": "Verbindung zur Datenbank Fehlgeschlagen: {error}", + "feature_title": "FEATURES", + "feature_1": "Vollständige Entfernung von Cursor AI Einstellungen und Konfigurationen", + "feature_2": "Entfernt alle zwischengespeicherten Daten, einschließlich AI-Verlauf und Prompts", + "feature_3": "Maschinen-ID Zurücksetzen, um Trial-Erkennung zu umgehen", + "feature_4": "Erstellt neue zufällige Maschinen-IDs", + "feature_5": "Entfernt benutzerdefinierte Erweiterungen und Einstellungen", + "feature_6": "Zurücksetzt Trial-Informationen und Aktivierungsdaten", + "feature_7": "Tiefes Scannen für versteckte Lizenz- und Trial-bezogene Dateien", + "feature_8": "Sichert nicht-Cursor-Dateien und Anwendungen", + "feature_9": "Kompatibel mit Windows, macOS und Linux", + "disclaimer_title": "Disclaimer", + "disclaimer_1": "Dieses Tool wird alle Cursor AI Einstellungen,", + "disclaimer_2": "Konfigurationen und zwischengespeicherte Daten löschen. Diese Aktion kann nicht rückgängig gemacht werden.", + "disclaimer_3": "Ihre Code-Dateien werden NICHT beeinflusst, und das Tool ist so konzipiert,", + "disclaimer_4": "nur Cursor AI Editor-Dateien und Trial-Erkennungsmechanismen zu zielen.", + "disclaimer_5": "Andere Anwendungen auf Ihrem System werden NICHT beeinflusst.", + "disclaimer_6": "Sie müssen Cursor AI erneut einrichten, nachdem Sie dieses Tool ausgeführt haben.", + "disclaimer_7": "Verwenden Sie auf eigene Gefahr", + "confirm_title": "Sind Sie sicher, dass Sie fortfahren möchten?", + "confirm_1": "Diese Aktion wird alle Cursor AI Einstellungen,", + "confirm_2": "Konfigurationen und zwischengespeicherte Daten löschen. Diese Aktion kann nicht rückgängig gemacht werden.", + "confirm_3": "Ihre Code-Dateien werden NICHT beeinflusst, und das Tool ist so konzipiert,", + "confirm_4": "nur Cursor AI Editor-Dateien und Trial-Erkennungsmechanismen zu zielen.", + "confirm_5": "Andere Anwendungen auf Ihrem System werden NICHT beeinflusst.", + "confirm_6": "Sie müssen Cursor AI erneut einrichten, nachdem Sie dieses Tool ausgeführt haben.", + "confirm_7": "Verwenden Sie auf eigene Gefahr", + "invalid_choice": "Bitte geben Sie 'Y' oder 'n' ein", + "skipped_for_safety": "Übersprungen für Sicherheit (nicht Cursor-bezogen): {path}", + "deleted": "Gelöscht: {path}", + "error_deleting": "Fehler beim Löschen von {path}: {error}", + "not_found": "Datei nicht gefunden: {path}", + "resetting_machine_id": "Maschinen-IDs zurücksetzen, um Trial-Erkennung zu umgehen...", + "created_machine_id": "Neue Maschinen-ID erstellt: {path}", + "error_creating_machine_id": "Fehler beim Erstellen der Maschinen-ID-Datei {path}: {error}", + "error_searching": "Fehler beim Suchen nach Dateien in {path}: {error}", + "created_extended_trial_info": "Neue erweiterte Trial-Informationen erstellt: {path}", + "error_creating_trial_info": "Fehler beim Erstellen der Trial-Informationen-Datei {path}: {error}", + "resetting_cursor_ai_editor": "Cursor AI Editor zurücksetzen... Bitte warten.", + "reset_cancelled": "Reset abgebrochen. Ohne Änderungen verlassen.", + "windows_machine_id_modification_skipped": "Windows Maschinen-ID-Änderung übersprungen: {error}", + "linux_machine_id_modification_skipped": "Linux machine-id-Änderung übersprungen: {error}", + "note_complete_machine_id_reset_may_require_running_as_administrator": "Hinweis: Vollständiges Zurücksetzen der Maschinen-ID kann erfordern, dass Sie als Administrator ausführen", + "note_complete_system_machine_id_reset_may_require_sudo_privileges": "Hinweis: Vollständiges System-Maschinen-ID-Zurücksetzen kann sudo-Berechtigungen erfordern", + "windows_registry_instructions": "📝 HINWEIS: Für vollständiges Zurücksetzen auf Windows müssen Sie möglicherweise auch die Registrierungseinträge bereinigen.", + "windows_registry_instructions_2": " Führen Sie 'regedit' aus und suchen Sie nach Schlüsseln, die 'Cursor' oder 'CursorAI' enthalten, unter HKEY_CURRENT_USER\\Software\\ und löschen Sie sie.\n", + "reset_log_1": "Cursor AI wurde vollständig zurückgesetzt und Trial-Erkennung umgangen!", + "reset_log_2": "Bitte starten Sie Ihr System neu, um die Änderungen zu übernehmen.", + "reset_log_3": "Sie müssen Cursor AI erneut installieren und sollten jetzt einen neuen Trial-Zeitraum haben.", + "reset_log_4": "Für die besten Ergebnisse betrachten Sie auch:", + "reset_log_5": "Verwenden Sie eine andere E-Mail-Adresse beim Registrieren für einen neuen Trial", + "reset_log_6": "Wenn verfügbar, verwenden Sie einen VPN, um Ihre IP-Adresse zu ändern", + "reset_log_7": "Löschen Sie Ihre Browser-Cookies und Cache vor dem Besuch der Cursor AI-Website", + "reset_log_8": "Wenn Probleme bestehen, versuchen Sie, Cursor AI in einem anderen Speicherort zu installieren", + "reset_log_9": "Wenn Sie irgendwelche Probleme haben, gehen Sie zu Github Issue Tracker und erstellen Sie ein Problem unter https://github.com/yeongpin/cursor-free-vip/issues", + "unexpected_error": "Ein unerwarteter Fehler ist aufgetreten: {error}", + "report_issue": "Bitte melden Sie dieses Problem bei Github Issue Tracker unter https://github.com/yeongpin/cursor-free-vip/issues", + "keyboard_interrupt": "Prozess von Benutzer unterbrochen. Beenden...", + "return_to_main_menu": "Zurück zur Hauptseite...", + "process_interrupted": "Prozess unterbrochen. Beenden...", + "press_enter_to_return_to_main_menu": "Drücken Sie Enter, um zur Hauptseite zurückzukehren...", + "removing_known": "Bekannte Trial/Lizenz-Dateien entfernen", + "performing_deep_scan": "Tiefes Scannen nach zusätzlichen Trial/Lizenz-Dateien", + "found_additional_potential_license_trial_files": "Gefundene {count} zusätzliche potentielle Lizenz/Trial-Dateien", + "checking_for_electron_localstorage_files": "Überprüfen auf Electron localStorage-Dateien", + "no_additional_license_trial_files_found_in_deep_scan": "Keine zusätzlichen Lizenz/Trial-Dateien in tiefem Scan gefunden", + "removing_electron_localstorage_files": "Electron localStorage-Dateien entfernen", + "electron_localstorage_files_removed": "Electron localStorage-Dateien entfernt", + "electron_localstorage_files_removal_error": "Fehler beim Entfernen von Electron localStorage-Dateien: {error}", + "removing_electron_localstorage_files_completed": "Entfernen von Electron localStorage-Dateien abgeschlossen" } -} \ No newline at end of file +} \ No newline at end of file diff --git a/locales/en.json b/locales/en.json index d70d636..9cc3ccc 100644 --- a/locales/en.json +++ b/locales/en.json @@ -22,7 +22,10 @@ "en": "English", "zh_cn": "简体中文", "zh_tw": "繁體中文", - "vi": "Vietnamese" + "vi": "Vietnamese", + "nl": "Dutch", + "de": "German", + "fr": "French" }, "quit_cursor": { "start": "Start Quitting Cursor", diff --git a/locales/fr.json b/locales/fr.json index b25eff7..a795fb9 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -250,5 +250,121 @@ "domains_excluded": "Domaines Exclus : {domains}", "failed_to_create_account": "Échec de la Création du Compte", "account_creation_error": "Erreur de Création du Compte : {error}" + }, + "update": { + "title": "Désactivation de la Mise à Jour Automatique de Cursor", + "disable_success": "Mise à Jour Automatique Désactivée avec Succès", + "disable_failed": "Échec de la Désactivation de la Mise à Jour Automatique : {error}", + "press_enter": "Appuyez sur Entrée pour Continuer", + "start_disable": "Démarrage de la Désactivation de la Mise à Jour Automatique", + "killing_processes": "Tuer les Processus", + "processes_killed": "Processus Tuer", + "removing_directory": "Suppression du Dossier", + "directory_removed": "Dossier Supprimé", + "creating_block_file": "Création du Fichier de Blocage", + "block_file_created": "Fichier de Blocage Créé" + }, + "updater": { + "checking": "Vérification des mises à jour...", + "new_version_available": "Nouvelle version disponible! (Version actuelle: {current}, Version la plus récente: {latest})", + "updating": "Mise à jour vers la version la plus récente. Le programme redémarrera automatiquement.", + "up_to_date": "Vous utilisez la version la plus récente.", + "check_failed": "Échec de la vérification des mises à jour: {error}", + "continue_anyway": "Continuer avec la version actuelle...", + "update_confirm": "Voulez-vous mettre à jour vers la version la plus récente? (O/n)", + "update_skipped": "Mise à jour ignorée.", + "invalid_choice": "Choix invalide. Veuillez entrer 'O' ou 'n'.", + "development_version": "Version de Développement {current} > {latest}" + }, + "totally_reset": { + "title": "Réinitialiser Complètement Cursor", + "checking_config": "Vérification du Fichier de Configuration", + "config_not_found": "Fichier de Configuration Non Trouvé", + "no_permission": "Impossible de Lire ou d'Écrire le Fichier de Configuration, Veuillez Vérifier les Permissions du Fichier", + "reading_config": "Lecture de la Configuration Actuelle", + "creating_backup": "Création de la Sauvegarde de la Configuration", + "backup_exists": "Fichier de Sauvegarde Déjà Existant, Passer à la Sauvegarde", + "generating_new_machine_id": "Génération d'un Nouvel ID Machine", + "saving_new_config": "Enregistrement de la Nouvelle Configuration dans JSON", + "success": "Réinitialisation de Cursor Réussie", + "error": "Réinitialisation de Cursor Échouée: {error}", + "press_enter": "Appuyez sur Entrée pour Continuer", + "reset_machine_id": "Réinitialiser l'ID Machine", + "database_connection_closed": "Connexion à la Base de Données Fermée", + "database_updated_successfully": "Base de Données Mise à Jour avec Succès", + "connected_to_database": "Connecté à la Base de Données", + "updating_pair": "Updating Key-Value Pair", + "db_not_found": "Database file not found at: {path}", + "db_permission_error": "Impossible d'Accéder au Fichier de Base de Données. Veuillez Vérifier les Permissions", + "db_connection_error": "Échec de la Connexion à la Base de Données : {error}", + "feature_title": "Fonctionnalités", + "feature_1": "Suppression complète des paramètres et configurations de Cursor AI", + "feature_2": "Efface tous les données mises en cache, y compris l'historique et les prompts", + "feature_3": "Réinitialise l'ID Machine pour contourner la détection de la période d'essai", + "feature_4": "Crée de nouveaux identifiants de machine aléatoires", + "feature_5": "Supprime les extensions personnalisées et les préférences", + "feature_6": "Réinitialise les informations de la période d'essai et les données d'activation", + "feature_7": "Analyse approfondie pour les fichiers cachés liés à la licence et à la période d'essai", + "feature_8": "Sauvegarde sécurisée des fichiers non liés à Cursor et applications", + "feature_9": "Compatible avec Windows, macOS et Linux", + "disclaimer_title": "DISCLAIMER", + "disclaimer_1": "Cet outil supprimera définitivement tous les paramètres et configurations de Cursor AI,", + "disclaimer_2": "configurations, et les données mises en cache. Cette action ne peut pas être annulée.", + "disclaimer_3": "Vos fichiers de code ne seront PAS affectés, et l'outil est conçu", + "disclaimer_4": "pour ne cibler que les fichiers de l'éditeur Cursor AI et les mécanismes de détection de la période d'essai.", + "disclaimer_5": "Les autres applications sur votre système ne seront PAS affectées.", + "disclaimer_6": "Vous devrez régler Cursor AI à nouveau après avoir exécuté cet outil.", + "disclaimer_7": "Utilisez à vos risques et périls", + "confirm_title": "Êtes-vous sûr de vouloir continuer?", + "confirm_1": "Cette action supprimera tous les paramètres et configurations de Cursor AI,", + "confirm_2": "configurations, et les données mises en cache. Cette action ne peut pas être annulée.", + "confirm_3": "Vos fichiers de code ne seront PAS affectés, et l'outil est conçu", + "confirm_4": "pour ne cibler que les fichiers de l'éditeur Cursor AI et les mécanismes de détection de la période d'essai.", + "confirm_5": "Les autres applications sur votre système ne seront PAS affectées.", + "confirm_6": "Vous devrez régler Cursor AI à nouveau après avoir exécuté cet outil.", + "confirm_7": "Utilisez à vos risques et périls", + "invalid_choice": "Veuillez entrer 'O' ou 'n'", + "skipped_for_safety": "Passé pour la sécurité (non lié à Cursor): {path}", + "deleted": "Supprimé: {path}", + "error_deleting": "Erreur de suppression de {path}: {error}", + "not_found": "Fichier non trouvé: {path}", + "resetting_machine_id": "Réinitialisation des identifiants de machine pour contourner la détection de la période d'essai...", + "created_machine_id": "Créé un nouvel ID machine: {path}", + "error_creating_machine_id": "Erreur de création du fichier ID machine {path}: {error}", + "error_searching": "Erreur de recherche dans {path}: {error}", + "created_extended_trial_info": "Créé un nouveau fichier d'informations de période d'essai étendue: {path}", + "error_creating_trial_info": "Erreur de création du fichier d'informations de période d'essai: {path}: {error}", + "resetting_cursor_ai_editor": "Réinitialisation de l'éditeur Cursor AI... Veuillez patienter.", + "reset_cancelled": "Réinitialisation annulée. Exiting sans faire de modifications.", + "windows_machine_id_modification_skipped": "Modification de l'ID machine Windows ignorée: {error}", + "linux_machine_id_modification_skipped": "Modification de l'ID machine Linux ignorée: {error}", + "note_complete_machine_id_reset_may_require_running_as_administrator": "Note: Réinitialisation complète de l'ID machine peut nécessiter d'exécuter en tant qu'administrateur", + "note_complete_system_machine_id_reset_may_require_sudo_privileges": "Note: Réinitialisation complète de l'ID machine peut nécessiter des privilèges sudo", + "windows_registry_instructions": "📝 NOTE: Pour la réinitialisation complète sur Windows, vous devrez peut-être également nettoyer les entrées du registre.", + "windows_registry_instructions_2": " Exécutez 'regedit' et recherchez les clés contenant 'Cursor' ou 'CursorAI' sous HKEY_CURRENT_USER\\Software\\ et supprimez-les.\n", + "reset_log_1": "Cursor AI a été complètement réinitialisé et la détection de la période d'essai a été contournée!", + "reset_log_2": "Veuillez redémarrer votre système pour que les modifications prennent effet.", + "reset_log_3": "Vous devrez réinstaller Cursor AI et devriez maintenant avoir une période d'essai fraîche.", + "reset_log_4": "Pour les meilleurs résultats, considérez également:", + "reset_log_5": "Utilisez une autre adresse e-mail lors de l'inscription pour une nouvelle période d'essai", + "reset_log_6": "Si disponible, utilisez un VPN pour changer votre adresse IP", + "reset_log_7": "Nettoyez les cookies et le cache de votre navigateur avant de visiter le site web de Cursor AI", + "reset_log_8": "Si les problèmes persistent, essayez d'installer Cursor AI dans un autre emplacement", + "reset_log_9": "Si vous rencontrez des problèmes, allez au suivi des problèmes Github et créez un problème à https://github.com/yeongpin/cursor-free-vip/issues", + "unexpected_error": "Une erreur inattendue est survenue: {error}", + "report_issue": "Veuillez signaler ce problème au suivi des problèmes Github à https://github.com/yeongpin/cursor-free-vip/issues", + "keyboard_interrupt": "Processus interrompu par l'utilisateur. Exiting...", + "return_to_main_menu": "Retour au menu principal...", + "process_interrupted": "Processus interrompu. Exiting...", + "press_enter_to_return_to_main_menu": "Appuyez sur Entrée pour retourner au menu principal...", + "removing_known": "Suppression des fichiers de période d'essai/licence connus", + "performing_deep_scan": "Exécution d'une analyse approfondie pour les fichiers de période d'essai/licence supplémentaires", + "found_additional_potential_license_trial_files": "Trouvé {count} fichiers de période d'essai/licence supplémentaires potentiels", + "checking_for_electron_localstorage_files": "Vérification des fichiers localStorage Electron", + "no_additional_license_trial_files_found_in_deep_scan": "Aucun fichier de licence/période d'essai supplémentaire trouvé dans l'analyse approfondie", + "removing_electron_localstorage_files": "Suppression des fichiers localStorage Electron", + "electron_localstorage_files_removed": "Fichiers localStorage Electron supprimés", + "electron_localstorage_files_removal_error": "Erreur de suppression des fichiers localStorage Electron: {error}", + "removing_electron_localstorage_files_completed": "Suppression des fichiers localStorage Electron terminée" } -} \ No newline at end of file +} \ No newline at end of file diff --git a/locales/nl.json b/locales/nl.json index 95f8821..ee47591 100644 --- a/locales/nl.json +++ b/locales/nl.json @@ -250,5 +250,121 @@ "domains_excluded": "Uitgesloten domeinen: {domains}", "failed_to_create_account": "Account aanmaken mislukt", "account_creation_error": "Account aanmaakfout: {error}" + }, + "update": { + "title": "Cursor automatische update uitschakelen", + "disable_success": "Automatische update is uitgeschakeld", + "disable_failed": "Automatische update uitschakelen mislukt: {error}", + "press_enter": "Druk op Enter om door te gaan", + "start_disable": "Automatische update uitschakelen starten", + "killing_processes": "Processen verwijderen", + "processes_killed": "Processen verwijderd", + "removing_directory": "Map verwijderen", + "directory_removed": "Map verwijderd", + "creating_block_file": "Blokkeerbestand aanmaken", + "block_file_created": "Blokkeerbestand aangemaakt" + }, + "updater": { + "checking": "Controleren op updates...", + "new_version_available": "Er is een nieuwe versie beschikbaar! (Huidige versie: {current}, Laatste versie: {latest})", + "updating": "Aan het bijwerken naar de nieuwste versie. Het programma zal automatisch herstart worden.", + "up_to_date": "U gebruikt de nieuwste versie.", + "check_failed": "Controle op updates mislukt: {error}", + "continue_anyway": "Doorgaan met de huidige versie...", + "update_confirm": "Wil je de nieuwste versie gebruiken? (Y/n)", + "update_skipped": "Update overgeslagen.", + "invalid_choice": "Ongeldige keuze. Voer 'Y' of 'n' in.", + "development_version": "Ontwikkelversie {current} > {latest}" + }, + "totally_reset": { + "title": "Cursor volledig herstellen", + "checking_config": "Configuratiebestand controleren", + "config_not_found": "Configuratiebestand niet gevonden", + "no_permission": "Kan geen toegang krijgen tot configuratiebestand. Controleer de rechten", + "reading_config": "Huidige configuratie lezen", + "creating_backup": "Configuratie-back-up aanmaken", + "backup_exists": "Back-up bestand bestaat, back-up stap overgeslagen", + "generating_new_machine_id": "Nieuwe machine-ID genereren", + "saving_new_config": "Nieuwe configuratie opslaan als JSON", + "success": "Cursor succesvol hersteld", + "error": "Cursor herstellen mislukt: {error}", + "press_enter": "Druk op Enter om door te gaan", + "reset_machine_id": "Machine-ID resetten", + "database_connection_closed": "Databaseverbinding gesloten", + "database_updated_successfully": "Database succesvol bijgewerkt", + "connected_to_database": "Verbonden met database", + "updating_pair": "Sleutel-waarde paar bijwerken", + "db_not_found": "Databasebestand niet gevonden op: {path}", + "db_permission_error": "Kan geen toegang krijgen tot databasebestand. Controleer de rechten", + "db_connection_error": "Verbinding met database mislukt: {error}", + "feature_title": "Functiebeschrijving", + "feature_1": "Compleet verwijderen van Cursor AI-instellingen en configuratie", + "feature_2": "Alle cachegegevens, inclusief AI-geschiedenis en prompts", + "feature_3": "Machine-ID resetten om de proefperiode te omzeilen", + "feature_4": "Nieuwe willekeurige machine-ID maken", + "feature_5": "Aangepaste extensies en voorkeuren verwijderen", + "feature_6": "Proefperiode- en activatiegegevens resetten", + "feature_7": "Diepe scan voor verborgen licentie- en proefperiodebestanden", + "feature_8": "Beveiligde niet-Cursor-bestanden en -toepassingen behouden", + "feature_9": "Compatibel met Windows, macOS en Linux", + "disclaimer_title": "Disclaimer", + "disclaimer_1": "Deze tool verwijdert alle Cursor AI-instellingen,", + "disclaimer_2": "configuratie en cachegegevens. Deze actie is niet ongedaan te maken.", + "disclaimer_3": "Uw codebestanden **worden niet** beïnvloed, de tool is bedoeld om", + "disclaimer_4": "Alleen gericht op Cursor AI-editorbestanden en proefperiodecontrolemechanisme.", + "disclaimer_5": "Andere systemtoepassingen worden niet beïnvloed.", + "disclaimer_6": "Na het uitvoeren van deze tool moet u Cursor AI opnieuw instellen.", + "disclaimer_7": "U accepteert de risico's zelf.", + "confirm_title": "Weet u zeker dat u wilt doorgaan?", + "confirm_1": "Deze actie verwijdert alle Cursor AI-instellingen,", + "confirm_2": "configuratie en cachegegevens. Deze actie is niet ongedaan te maken.", + "confirm_3": "Uw codebestanden **worden niet** beïnvloed, de tool is bedoeld om", + "confirm_4": "Alleen gericht op Cursor AI-editorbestanden en proefperiodecontrolemechanisme.", + "confirm_5": "Andere systemtoepassingen worden niet beïnvloed.", + "confirm_6": "Na het uitvoeren van deze tool moet u Cursor AI opnieuw instellen.", + "confirm_7": "U accepteert de risico's zelf.", + "invalid_choice": "Ongeldige keuze. Voer 'Y' of 'n' in.", + "skipped_for_safety": "Uit veiligheidsoverwegingen overgeslagen (niet Cursor-gerelateerd): {path}", + "deleted": "Verwijderd: {path}", + "error_deleting": "Verwijdering van {path} mislukt: {error}", + "not_found": "Bestand niet gevonden: {path}", + "resetting_machine_id": "Machine-ID resetten om proefperiode te omzeilen...", + "created_machine_id": "Nieuwe machine-ID gemaakt: {path}", + "error_creating_machine_id": "Machine-ID-bestand {path} aanmaken mislukt: {error}", + "error_searching": "Fout bij het zoeken naar bestand {path}: {error}", + "created_extended_trial_info": "Nieuwe uitgebreide proefperiode-informatie gemaakt: {path}", + "error_creating_trial_info": "Fout bij het aanmaken van proefperiode-informatiebestand {path}: {error}", + "resetting_cursor_ai_editor": "Cursor AI-editor resetten... Wacht even.", + "reset_cancelled": "Reset geannuleerd, geen wijzigingen aangebracht.", + "windows_machine_id_modification_skipped": "Windows machine-ID-aanpassing overgeslagen: {error}", + "linux_machine_id_modification_skipped": "Linux machine-id-aanpassing overgeslagen: {error}", + "note_complete_machine_id_reset_may_require_running_as_administrator": "Opmerking: Compleet machine-ID-reset kan vereisen dat u als beheerder uitvoert", + "note_complete_system_machine_id_reset_may_require_sudo_privileges": "Opmerking: Compleet systeem machine-ID-reset kan vereisen dat u sudo-rechten hebt", + "windows_registry_instructions": "📝 Opmerking: Compleet machine-ID-reset kan vereisen dat u als beheerder uitvoert", + "windows_registry_instructions_2": " Run 'regedit' en zoek naar de sleutels 'Cursor' of 'CursorAI' in HKEY_CURRENT_USER\\Software\\ en verwijder ze.\n", + "reset_log_1": "Cursor AI is volledig hersteld en heeft de proefperiode omzeild!", + "reset_log_2": "Start het systeem opnieuw om de wijzigingen te activeren.", + "reset_log_3": "U moet Cursor AI opnieuw installeren, er zou nu een nieuwe proefperiode moeten zijn.", + "reset_log_4": "Voor de beste resultaten raden we aan ook:", + "reset_log_5": "Nieuwe proefperiode registreren met een ander e-mailadres", + "reset_log_6": "Als mogelijk, VPN gebruiken om IP-adres te wijzigen", + "reset_log_7": "Voordat u naar de Cursor AI-website gaat, verwijdert u de cookies en cache van uw browser", + "reset_log_8": "Als het nog steeds niet werkt, probeert u Cursor AI op een andere locatie te installeren", + "reset_log_9": "Als u eventuele problemen ondervindt, stuurt u een probleem naar de Github Issue Tracker: https://github.com/yeongpin/cursor-free-vip/issues", + "unexpected_error": "Onverwachte fout: {error}", + "report_issue": "Rapporteer dit probleem op de Github Issue Tracker: https://github.com/yeongpin/cursor-free-vip/issues", + "keyboard_interrupt": "Gebruiker heeft proces afgebroken, afsluiten...", + "return_to_main_menu": "Terug naar hoofdmenu...", + "process_interrupted": "Proces afgebroken, afsluiten...", + "press_enter_to_return_to_main_menu": "Druk op Enter om terug te gaan naar het hoofdmenu...", + "removing_known": "Het verwijderen van bekende proefperiode- en licentiebestanden...", + "performing_deep_scan": "Een diepe scan wordt uitgevoerd om andere proefperiode- en licentiebestanden te vinden...", + "found_additional_potential_license_trial_files": "Er zijn {count} andere potentiële proefperiode- en licentiebestanden gevonden", + "checking_for_electron_localstorage_files": "Controleren op Electron localStorage-bestanden...", + "no_additional_license_trial_files_found_in_deep_scan": "Geen andere proefperiode- of licentiebestanden gevonden in diepe scan", + "removing_electron_localstorage_files": "Het verwijderen van Electron localStorage-bestanden...", + "electron_localstorage_files_removed": "Electron localStorage-bestanden verwijderd", + "electron_localstorage_files_removal_error": "Fout bij het verwijderen van Electron localStorage-bestanden: {error}", + "removing_electron_localstorage_files_completed": "Electron localStorage-bestanden verwijderd" } -} +} diff --git a/locales/vi.json b/locales/vi.json index f4752b4..efc3226 100644 --- a/locales/vi.json +++ b/locales/vi.json @@ -20,7 +20,10 @@ "en": "English", "zh_cn": "简体中文", "zh_tw": "繁體中文", - "vi": "Tiếng Việt" + "vi": "Tiếng Việt", + "nl": "Dutch", + "de": "Germa", + "fr": "French" }, "quit_cursor": { "start": "Bắt Đầu Thoát Cursor", diff --git a/locales/zh_cn.json b/locales/zh_cn.json index b1ad1bd..0fcee3e 100644 --- a/locales/zh_cn.json +++ b/locales/zh_cn.json @@ -22,7 +22,10 @@ "en": "English", "zh_cn": "简体中文", "zh_tw": "繁體中文", - "vi": "Vietnamese" + "vi": "Vietnamese", + "nl": "Dutch", + "de": "German", + "fr": "French" }, "quit_cursor": { "start": "开始退出 Cursor", diff --git a/locales/zh_tw.json b/locales/zh_tw.json index 65b8189..9dc62b9 100644 --- a/locales/zh_tw.json +++ b/locales/zh_tw.json @@ -20,7 +20,10 @@ "en": "English", "zh_cn": "简体中文", "zh_tw": "繁體中文", - "vi": "Vietnamese" + "vi": "Vietnamese", + "nl": "Dutch", + "de": "German", + "fr": "French" }, "quit_cursor": { "start": "開始退出 Cursor", diff --git a/main.py b/main.py index b7568ec..db6fe5d 100644 --- a/main.py +++ b/main.py @@ -133,6 +133,13 @@ class Translator: return 'en' elif system_locale.startswith('vi'): return 'vi' + elif system_locale.startswith('nl'): + return 'nl' + elif system_locale.startswith('de'): + return 'de' + elif system_locale.startswith('fr'): + return 'fr' + # Try to get language from LANG environment variable as fallback @@ -143,7 +150,12 @@ class Translator: return 'zh_cn' elif 'vi' in env_lang: return 'vi' - + elif 'nl' in env_lang: + return 'nl' + elif 'de' in env_lang: + return 'de' + elif 'fr' in env_lang: + return 'fr' return 'en' except: