From f022d984b62bbf9e85f10fe61bb657c179e746bd Mon Sep 17 00:00:00 2001 From: claudi Date: Wed, 15 Apr 2026 09:52:40 +0200 Subject: [PATCH] feat: Update terminology from "Profiles" to "Setups" across translations and UI for clarity --- resources/translations/de.json | 48 +++++++++++++--------- resources/translations/en.json | 48 +++++++++++++--------- resources/translations/fr.json | 48 +++++++++++++--------- resources/translations/it.json | 48 +++++++++++++--------- resources/translations/ru.json | 48 +++++++++++++--------- resources/translations/zh.json | 48 +++++++++++++--------- src/webdrop_bridge/ui/settings_dialog.py | 51 ++++++++++++++++-------- tests/unit/test_settings_dialog.py | 16 ++++++-- 8 files changed, 221 insertions(+), 134 deletions(-) diff --git a/resources/translations/de.json b/resources/translations/de.json index 3940c17..7be1ed0 100644 --- a/resources/translations/de.json +++ b/resources/translations/de.json @@ -84,7 +84,7 @@ "settings.tab.urls": "URLs", "settings.tab.logging": "Protokollierung", "settings.tab.window": "Fenster", - "settings.tab.profiles": "Profile", + "settings.tab.profiles": "Setups", "settings.tab.general": "Allgemein", "settings.web_url.label": "Web-Anwendungs-URL:", "settings.web_url.placeholder": "z.B. http://localhost:8080 oder file:///./webapp/index.html", @@ -106,12 +106,22 @@ "settings.log_file.browse_btn": "Durchsuchen...", "settings.window.width_label": "Fensterbreite:", "settings.window.height_label": "Fensterh\u00f6he:", - "settings.profiles.label": "Gespeicherte Konfigurationsprofile:", - "settings.profiles.save_btn": "Als Profil speichern", - "settings.profiles.load_btn": "Profil laden", - "settings.profiles.delete_btn": "Profil l\u00f6schen", - "settings.profiles.export_btn": "Konfiguration exportieren", - "settings.profiles.import_btn": "Konfiguration importieren", + "settings.profiles.label": "Gespeicherte Setups auf diesem Ger\u00e4t:", + "settings.profiles.label_tooltip": "Gespeicherte Setups sind benannte Schnappsch\u00fcsse Ihrer aktuellen Einstellungen f\u00fcr den schnellen Wechsel auf diesem Ger\u00e4t.", + "settings.profiles.help_text": "Speichern Sie den aktuellen Stand als benanntes Setup f\u00fcr den schnellen Wechsel auf diesem Ger\u00e4t. Nutzen Sie Export/Import, wenn Sie eine Konfigurationsdatei sichern oder teilen m\u00f6chten.", + "settings.profiles.list_tooltip": "Zeigt die auf diesem Ger\u00e4t verf\u00fcgbaren gespeicherten Setups.", + "settings.profiles.save_btn": "Setup speichern", + "settings.profiles.save_tooltip": "Speichert die aktuellen Einstellungen als benanntes Setup auf diesem Ger\u00e4t.", + "settings.profiles.load_btn": "Setup laden", + "settings.profiles.load_tooltip": "L\u00e4dt das ausgew\u00e4hlte gespeicherte Setup in diesen Dialog.", + "settings.profiles.delete_btn": "Setup l\u00f6schen", + "settings.profiles.delete_tooltip": "L\u00f6scht das ausgew\u00e4hlte gespeicherte Setup von diesem Ger\u00e4t.", + "settings.profiles.transfer_label": "Aktuelle Einstellungen sichern oder teilen:", + "settings.profiles.transfer_tooltip": "Export erstellt eine JSON-Datei zum Sichern oder Teilen. Import liest eine solche Datei ein und wendet sie hier an.", + "settings.profiles.export_btn": "In Datei exportieren", + "settings.profiles.export_tooltip": "Exportiert die aktuellen Einstellungen als JSON-Datei zum Sichern oder Teilen.", + "settings.profiles.import_btn": "Aus Datei importieren", + "settings.profiles.import_tooltip": "Importiert Einstellungen aus einer JSON-Datei und wendet sie hier an.", "settings.general.language_label": "Sprache:", "settings.general.language_auto": "Systemstandard (Auto)", "settings.general.language_restart_note": "Sprach\u00e4nderung wirksam nach Neustart.", @@ -123,15 +133,15 @@ "settings.edit_mapping.path_prompt": "Lokalen Dateisystempfad eingeben:", "settings.add_url.title": "URL hinzuf\u00fcgen", "settings.add_url.prompt": "URL-Muster eingeben (z.B. http://example.com oder http://*.example.com):", - "settings.profile.save.title": "Profil speichern", - "settings.profile.save.prompt": "Profilnamen eingeben (z.B. Arbeit, Privat):", + "settings.profile.save.title": "Setup speichern", + "settings.profile.save.prompt": "Namen für das Setup eingeben (z.B. Arbeit, Kunde A):", "settings.select_directory.title": "Verzeichnis ausw\u00e4hlen", "settings.select_log_file.title": "Protokolldatei ausw\u00e4hlen", - "settings.export_config.title": "Konfiguration exportieren", - "settings.import_config.title": "Konfiguration importieren", + "settings.export_config.title": "Einstellungen exportieren", + "settings.import_config.title": "Einstellungen importieren", "settings.error.select_mapping": "Bitte w\u00e4hlen Sie eine Zuordnung zur Bearbeitung aus", - "settings.error.select_profile_load": "Bitte w\u00e4hlen Sie ein Profil zum Laden aus", - "settings.error.select_profile_delete": "Bitte w\u00e4hlen Sie ein Profil zum L\u00f6schen aus", + "settings.error.select_profile_load": "Bitte w\u00e4hlen Sie ein Setup zum Laden aus", + "settings.error.select_profile_delete": "Bitte w\u00e4hlen Sie ein Setup zum L\u00f6schen aus", "settings.web_source.url_label": "Webanwendungs-URL:", "settings.web_source.open_btn": "\u00d6ffnen", "settings.web_source.url_mappings_label": "URL-Zuordnungen (Azure Blob Storage \u2192 Lokale Pfade):", @@ -154,12 +164,12 @@ "settings.paths.select_dir_title": "Verzeichnis ausw\u00e4hlen", "settings.urls.add_title": "URL hinzuf\u00fcgen", "settings.urls.add_prompt": "URL-Muster eingeben (z.B. http://example.com oder http://*.example.com):", - "settings.profiles.save_title": "Profil speichern", - "settings.profiles.save_prompt": "Profilnamen eingeben (z.B. Arbeit, Privat):", - "settings.profiles.select_to_load": "Bitte w\u00e4hlen Sie ein Profil zum Laden aus", - "settings.profiles.select_to_delete": "Bitte w\u00e4hlen Sie ein Profil zum L\u00f6schen aus", - "settings.profiles.export_title": "Konfiguration exportieren", - "settings.profiles.import_title": "Konfiguration importieren", + "settings.profiles.save_title": "Setup speichern", + "settings.profiles.save_prompt": "Namen für das Setup eingeben (z.B. Arbeit, Kunde A):", + "settings.profiles.select_to_load": "Bitte wählen Sie ein Setup zum Laden aus", + "settings.profiles.select_to_delete": "Bitte wählen Sie ein Setup zum Löschen aus", + "settings.profiles.export_title": "Einstellungen exportieren", + "settings.profiles.import_title": "Einstellungen importieren", "update.checking.title": "Update-Pr\u00fcfung", "update.checking.label": "Suche nach Updates...", diff --git a/resources/translations/en.json b/resources/translations/en.json index 3bbfb25..57798d5 100644 --- a/resources/translations/en.json +++ b/resources/translations/en.json @@ -84,7 +84,7 @@ "settings.tab.urls": "URLs", "settings.tab.logging": "Logging", "settings.tab.window": "Window", - "settings.tab.profiles": "Profiles", + "settings.tab.profiles": "Setups", "settings.tab.general": "General", "settings.web_url.label": "Web Application URL:", "settings.web_url.placeholder": "e.g., http://localhost:8080 or file:///./webapp/index.html", @@ -106,12 +106,22 @@ "settings.log_file.browse_btn": "Browse...", "settings.window.width_label": "Window Width:", "settings.window.height_label": "Window Height:", - "settings.profiles.label": "Saved Configuration Profiles:", - "settings.profiles.save_btn": "Save as Profile", - "settings.profiles.load_btn": "Load Profile", - "settings.profiles.delete_btn": "Delete Profile", - "settings.profiles.export_btn": "Export Configuration", - "settings.profiles.import_btn": "Import Configuration", + "settings.profiles.label": "Saved setups on this device:", + "settings.profiles.label_tooltip": "Saved setups are named snapshots of your current settings kept on this device for quick switching.", + "settings.profiles.help_text": "Save the current settings as a named setup for quick switching on this device. Use export/import when you want to back up or share a configuration file.", + "settings.profiles.list_tooltip": "Shows the saved setups available on this device.", + "settings.profiles.save_btn": "Save Setup", + "settings.profiles.save_tooltip": "Save the current settings as a named setup on this device.", + "settings.profiles.load_btn": "Load Setup", + "settings.profiles.load_tooltip": "Load the selected saved setup into the dialog.", + "settings.profiles.delete_btn": "Delete Setup", + "settings.profiles.delete_tooltip": "Delete the selected saved setup from this device.", + "settings.profiles.transfer_label": "Backup or share the current settings:", + "settings.profiles.transfer_tooltip": "Export creates a JSON file for backup or sharing. Import reads such a file and applies it here.", + "settings.profiles.export_btn": "Export to File", + "settings.profiles.export_tooltip": "Export the current settings to a JSON file for backup or sharing.", + "settings.profiles.import_btn": "Import from File", + "settings.profiles.import_tooltip": "Import settings from a JSON file and apply them here.", "settings.general.language_label": "Language:", "settings.general.language_auto": "System Default (Auto)", "settings.general.language_restart_note": "Language change takes effect after restart.", @@ -123,15 +133,15 @@ "settings.edit_mapping.path_prompt": "Enter local file system path:", "settings.add_url.title": "Add URL", "settings.add_url.prompt": "Enter URL pattern (e.g., http://example.com or http://*.example.com):", - "settings.profile.save.title": "Save Profile", - "settings.profile.save.prompt": "Enter profile name (e.g., work, personal):", + "settings.profile.save.title": "Save Setup", + "settings.profile.save.prompt": "Enter a setup name (e.g., Work, Customer A):", "settings.select_directory.title": "Select Directory to Allow", "settings.select_log_file.title": "Select Log File", - "settings.export_config.title": "Export Configuration", - "settings.import_config.title": "Import Configuration", + "settings.export_config.title": "Export Settings", + "settings.import_config.title": "Import Settings", "settings.error.select_mapping": "Please select a mapping to edit", - "settings.error.select_profile_load": "Please select a profile to load", - "settings.error.select_profile_delete": "Please select a profile to delete", + "settings.error.select_profile_load": "Please select a setup to load", + "settings.error.select_profile_delete": "Please select a setup to delete", "settings.web_source.url_label": "Web Application URL:", "settings.web_source.open_btn": "Open", "settings.web_source.url_mappings_label": "URL Mappings (Azure Blob Storage \u2192 Local Paths):", @@ -154,12 +164,12 @@ "settings.paths.select_dir_title": "Select Directory to Allow", "settings.urls.add_title": "Add URL", "settings.urls.add_prompt": "Enter URL pattern (e.g., http://example.com or http://*.example.com):", - "settings.profiles.save_title": "Save Profile", - "settings.profiles.save_prompt": "Enter profile name (e.g., work, personal):", - "settings.profiles.select_to_load": "Please select a profile to load", - "settings.profiles.select_to_delete": "Please select a profile to delete", - "settings.profiles.export_title": "Export Configuration", - "settings.profiles.import_title": "Import Configuration", + "settings.profiles.save_title": "Save Setup", + "settings.profiles.save_prompt": "Enter a setup name (e.g., Work, Customer A):", + "settings.profiles.select_to_load": "Please select a setup to load", + "settings.profiles.select_to_delete": "Please select a setup to delete", + "settings.profiles.export_title": "Export Settings", + "settings.profiles.import_title": "Import Settings", "update.checking.title": "Checking for Updates", "update.checking.label": "Checking for updates...", diff --git a/resources/translations/fr.json b/resources/translations/fr.json index 3e76e2d..d024e21 100644 --- a/resources/translations/fr.json +++ b/resources/translations/fr.json @@ -84,7 +84,7 @@ "settings.tab.urls": "URLs", "settings.tab.logging": "Journalisation", "settings.tab.window": "Fen\u00eatre", - "settings.tab.profiles": "Profils", + "settings.tab.profiles": "Configs", "settings.tab.general": "G\u00e9n\u00e9ral", "settings.web_url.label": "URL de l'application web\u00a0:", "settings.web_url.placeholder": "p.ex. http://localhost:8080 ou file:///./webapp/index.html", @@ -106,12 +106,22 @@ "settings.log_file.browse_btn": "Parcourir...", "settings.window.width_label": "Largeur de la fen\u00eatre\u00a0:", "settings.window.height_label": "Hauteur de la fen\u00eatre\u00a0:", - "settings.profiles.label": "Profils de configuration enregistr\u00e9s\u00a0:", - "settings.profiles.save_btn": "Enregistrer comme profil", - "settings.profiles.load_btn": "Charger le profil", - "settings.profiles.delete_btn": "Supprimer le profil", - "settings.profiles.export_btn": "Exporter la configuration", - "settings.profiles.import_btn": "Importer la configuration", + "settings.profiles.label": "Configurations enregistr\u00e9es sur cet appareil\u00a0:", + "settings.profiles.label_tooltip": "Les configurations enregistr\u00e9es sont des instantan\u00e9s nomm\u00e9s de vos r\u00e9glages actuels pour basculer rapidement sur cet appareil.", + "settings.profiles.help_text": "Enregistrez l’\u00e9tat actuel comme configuration nomm\u00e9e pour basculer rapidement sur cet appareil. Utilisez l’export/import pour sauvegarder ou partager un fichier de configuration.", + "settings.profiles.list_tooltip": "Affiche les configurations enregistr\u00e9es disponibles sur cet appareil.", + "settings.profiles.save_btn": "Enregistrer la configuration", + "settings.profiles.save_tooltip": "Enregistre les r\u00e9glages actuels comme configuration nomm\u00e9e sur cet appareil.", + "settings.profiles.load_btn": "Charger la configuration", + "settings.profiles.load_tooltip": "Charge la configuration enregistr\u00e9e s\u00e9lectionn\u00e9e dans cette bo\u00eete de dialogue.", + "settings.profiles.delete_btn": "Supprimer la configuration", + "settings.profiles.delete_tooltip": "Supprime la configuration enregistr\u00e9e s\u00e9lectionn\u00e9e de cet appareil.", + "settings.profiles.transfer_label": "Sauvegarder ou partager les r\u00e9glages actuels\u00a0:", + "settings.profiles.transfer_tooltip": "Exporter cr\u00e9e un fichier JSON pour la sauvegarde ou le partage. Importer lit un tel fichier et l’applique ici.", + "settings.profiles.export_btn": "Exporter vers un fichier", + "settings.profiles.export_tooltip": "Exporte les r\u00e9glages actuels vers un fichier JSON pour sauvegarde ou partage.", + "settings.profiles.import_btn": "Importer depuis un fichier", + "settings.profiles.import_tooltip": "Importe des r\u00e9glages depuis un fichier JSON et les applique ici.", "settings.general.language_label": "Langue\u00a0:", "settings.general.language_auto": "Par d\u00e9faut du syst\u00e8me (Auto)", "settings.general.language_restart_note": "Le changement de langue prend effet apr\u00e8s red\u00e9marrage.", @@ -123,15 +133,15 @@ "settings.edit_mapping.path_prompt": "Entrez le chemin du syst\u00e8me de fichiers local\u00a0:", "settings.add_url.title": "Ajouter une URL", "settings.add_url.prompt": "Entrez le mod\u00e8le d'URL (p.ex. http://example.com ou http://*.example.com)\u00a0:", - "settings.profile.save.title": "Enregistrer le profil", - "settings.profile.save.prompt": "Entrez le nom du profil (p.ex. travail, personnel)\u00a0:", + "settings.profile.save.title": "Enregistrer la configuration", + "settings.profile.save.prompt": "Entrez un nom de configuration (p.ex. travail, client A)\u00a0:", "settings.select_directory.title": "S\u00e9lectionner un r\u00e9pertoire autoris\u00e9", "settings.select_log_file.title": "S\u00e9lectionner le fichier journal", - "settings.export_config.title": "Exporter la configuration", - "settings.import_config.title": "Importer la configuration", + "settings.export_config.title": "Exporter les réglages", + "settings.import_config.title": "Importer les réglages", "settings.error.select_mapping": "Veuillez s\u00e9lectionner un mappage \u00e0 modifier", - "settings.error.select_profile_load": "Veuillez s\u00e9lectionner un profil \u00e0 charger", - "settings.error.select_profile_delete": "Veuillez s\u00e9lectionner un profil \u00e0 supprimer", + "settings.error.select_profile_load": "Veuillez sélectionner une configuration à charger", + "settings.error.select_profile_delete": "Veuillez sélectionner une configuration à supprimer", "settings.web_source.url_label": "URL de l'application web\u00a0:", "settings.web_source.open_btn": "Ouvrir", "settings.web_source.url_mappings_label": "Mappages d'URL (Azure Blob Storage \u2192 Chemins locaux)\u00a0:", @@ -154,12 +164,12 @@ "settings.paths.select_dir_title": "S\u00e9lectionner un r\u00e9pertoire autoris\u00e9", "settings.urls.add_title": "Ajouter une URL", "settings.urls.add_prompt": "Entrez le mod\u00e8le d'URL (p.ex. http://example.com ou http://*.example.com)\u00a0:", - "settings.profiles.save_title": "Enregistrer le profil", - "settings.profiles.save_prompt": "Entrez le nom du profil (p.ex. travail, personnel)\u00a0:", - "settings.profiles.select_to_load": "Veuillez s\u00e9lectionner un profil \u00e0 charger", - "settings.profiles.select_to_delete": "Veuillez s\u00e9lectionner un profil \u00e0 supprimer", - "settings.profiles.export_title": "Exporter la configuration", - "settings.profiles.import_title": "Importer la configuration", + "settings.profiles.save_title": "Enregistrer la configuration", + "settings.profiles.save_prompt": "Entrez un nom de configuration (p.ex. travail, client A) :", + "settings.profiles.select_to_load": "Veuillez sélectionner une configuration à charger", + "settings.profiles.select_to_delete": "Veuillez sélectionner une configuration à supprimer", + "settings.profiles.export_title": "Exporter les réglages", + "settings.profiles.import_title": "Importer les réglages", "update.checking.title": "V\u00e9rification des mises \u00e0 jour", "update.checking.label": "Recherche de mises \u00e0 jour...", diff --git a/resources/translations/it.json b/resources/translations/it.json index 8695a68..25e026b 100644 --- a/resources/translations/it.json +++ b/resources/translations/it.json @@ -84,7 +84,7 @@ "settings.tab.urls": "URL", "settings.tab.logging": "Log", "settings.tab.window": "Finestra", - "settings.tab.profiles": "Profili", + "settings.tab.profiles": "Config", "settings.tab.general": "Generale", "settings.web_url.label": "URL applicazione web:", "settings.web_url.placeholder": "es. http://localhost:8080 o file:///./webapp/index.html", @@ -106,12 +106,22 @@ "settings.log_file.browse_btn": "Sfoglia...", "settings.window.width_label": "Larghezza finestra:", "settings.window.height_label": "Altezza finestra:", - "settings.profiles.label": "Profili configurazione salvati:", - "settings.profiles.save_btn": "Salva come profilo", - "settings.profiles.load_btn": "Carica profilo", - "settings.profiles.delete_btn": "Elimina profilo", - "settings.profiles.export_btn": "Esporta configurazione", - "settings.profiles.import_btn": "Importa configurazione", + "settings.profiles.label": "Configurazioni salvate su questo dispositivo:", + "settings.profiles.label_tooltip": "Le configurazioni salvate sono istantanee con nome delle impostazioni correnti per passare rapidamente da un assetto all’altro su questo dispositivo.", + "settings.profiles.help_text": "Salva lo stato corrente come configurazione con nome per cambiare rapidamente su questo dispositivo. Usa esporta/importa per eseguire un backup o condividere un file di configurazione.", + "settings.profiles.list_tooltip": "Mostra le configurazioni salvate disponibili su questo dispositivo.", + "settings.profiles.save_btn": "Salva configurazione", + "settings.profiles.save_tooltip": "Salva le impostazioni correnti come configurazione con nome su questo dispositivo.", + "settings.profiles.load_btn": "Carica configurazione", + "settings.profiles.load_tooltip": "Carica in questa finestra di dialogo la configurazione salvata selezionata.", + "settings.profiles.delete_btn": "Elimina configurazione", + "settings.profiles.delete_tooltip": "Elimina da questo dispositivo la configurazione salvata selezionata.", + "settings.profiles.transfer_label": "Backup o condivisione delle impostazioni correnti:", + "settings.profiles.transfer_tooltip": "Esporta crea un file JSON per backup o condivisione. Importa legge tale file e lo applica qui.", + "settings.profiles.export_btn": "Esporta in file", + "settings.profiles.export_tooltip": "Esporta le impostazioni correnti in un file JSON per backup o condivisione.", + "settings.profiles.import_btn": "Importa da file", + "settings.profiles.import_tooltip": "Importa impostazioni da un file JSON e le applica qui.", "settings.general.language_label": "Lingua:", "settings.general.language_auto": "Predefinita sistema (Auto)", "settings.general.language_restart_note": "La modifica lingua si applica dopo il riavvio.", @@ -123,15 +133,15 @@ "settings.edit_mapping.path_prompt": "Inserisci percorso file system locale:", "settings.add_url.title": "Aggiungi URL", "settings.add_url.prompt": "Inserisci pattern URL (es. http://example.com o http://*.example.com):", - "settings.profile.save.title": "Salva profilo", - "settings.profile.save.prompt": "Inserisci nome profilo (es. lavoro, personale):", + "settings.profile.save.title": "Salva configurazione", + "settings.profile.save.prompt": "Inserisci un nome per la configurazione (es. Lavoro, Cliente A):", "settings.select_directory.title": "Seleziona directory da consentire", "settings.select_log_file.title": "Seleziona file di log", - "settings.export_config.title": "Esporta configurazione", - "settings.import_config.title": "Importa configurazione", + "settings.export_config.title": "Esporta impostazioni", + "settings.import_config.title": "Importa impostazioni", "settings.error.select_mapping": "Seleziona una mappatura da modificare", - "settings.error.select_profile_load": "Seleziona un profilo da caricare", - "settings.error.select_profile_delete": "Seleziona un profilo da eliminare", + "settings.error.select_profile_load": "Seleziona una configurazione da caricare", + "settings.error.select_profile_delete": "Seleziona una configurazione da eliminare", "settings.web_source.url_label": "URL applicazione web:", "settings.web_source.open_btn": "Apri", "settings.web_source.url_mappings_label": "Mappature URL (Azure Blob Storage \u2192 Percorsi locali):", @@ -154,12 +164,12 @@ "settings.paths.select_dir_title": "Seleziona directory da consentire", "settings.urls.add_title": "Aggiungi URL", "settings.urls.add_prompt": "Inserisci pattern URL (es. http://example.com o http://*.example.com):", - "settings.profiles.save_title": "Salva profilo", - "settings.profiles.save_prompt": "Inserisci nome profilo (es. lavoro, personale):", - "settings.profiles.select_to_load": "Seleziona un profilo da caricare", - "settings.profiles.select_to_delete": "Seleziona un profilo da eliminare", - "settings.profiles.export_title": "Esporta configurazione", - "settings.profiles.import_title": "Importa configurazione", + "settings.profiles.save_title": "Salva configurazione", + "settings.profiles.save_prompt": "Inserisci un nome per la configurazione (es. Lavoro, Cliente A):", + "settings.profiles.select_to_load": "Seleziona una configurazione da caricare", + "settings.profiles.select_to_delete": "Seleziona una configurazione da eliminare", + "settings.profiles.export_title": "Esporta impostazioni", + "settings.profiles.import_title": "Importa impostazioni", "update.checking.title": "Controllo aggiornamenti", "update.checking.label": "Controllo aggiornamenti...", diff --git a/resources/translations/ru.json b/resources/translations/ru.json index 9d36a37..a7abdec 100644 --- a/resources/translations/ru.json +++ b/resources/translations/ru.json @@ -84,7 +84,7 @@ "settings.tab.urls": "URL", "settings.tab.logging": "Логирование", "settings.tab.window": "Окно", - "settings.tab.profiles": "Профили", + "settings.tab.profiles": "Наборы", "settings.tab.general": "Общие настройки", "settings.web_url.label": "URL веб-приложения:", "settings.web_url.placeholder": "например, http://localhost:8080 или file:///./webapp/index.html", @@ -106,12 +106,22 @@ "settings.log_file.browse_btn": "Обзор...", "settings.window.width_label": "Ширина окна:", "settings.window.height_label": "Высота окна:", - "settings.profiles.label": "Сохраненные профили конфигурации:", - "settings.profiles.save_btn": "Сохранить как профиль", - "settings.profiles.load_btn": "Загрузить профиль", - "settings.profiles.delete_btn": "Удалить профиль", - "settings.profiles.export_btn": "Экспорт конфигурации", - "settings.profiles.import_btn": "Импорт конфигурации", + "settings.profiles.label": "Сохраненные наборы настроек на этом устройстве:", + "settings.profiles.label_tooltip": "Сохраненные наборы — это именованные снимки текущих настроек для быстрого переключения на этом устройстве.", + "settings.profiles.help_text": "Сохраните текущее состояние как именованный набор для быстрого переключения на этом устройстве. Используйте экспорт/импорт для резервного копирования или обмена файлом конфигурации.", + "settings.profiles.list_tooltip": "Показывает сохраненные наборы, доступные на этом устройстве.", + "settings.profiles.save_btn": "Сохранить набор", + "settings.profiles.save_tooltip": "Сохраняет текущие настройки как именованный набор на этом устройстве.", + "settings.profiles.load_btn": "Загрузить набор", + "settings.profiles.load_tooltip": "Загружает выбранный сохраненный набор в это окно.", + "settings.profiles.delete_btn": "Удалить набор", + "settings.profiles.delete_tooltip": "Удаляет выбранный сохраненный набор с этого устройства.", + "settings.profiles.transfer_label": "Сохранить резервную копию или поделиться текущими настройками:", + "settings.profiles.transfer_tooltip": "Экспорт создает JSON-файл для резервного копирования или обмена. Импорт читает такой файл и применяет его здесь.", + "settings.profiles.export_btn": "Экспорт в файл", + "settings.profiles.export_tooltip": "Экспортирует текущие настройки в JSON-файл для резервного копирования или обмена.", + "settings.profiles.import_btn": "Импорт из файла", + "settings.profiles.import_tooltip": "Импортирует настройки из JSON-файла и применяет их здесь.", "settings.general.language_label": "Язык:", "settings.general.language_auto": "Системный язык (авто)", "settings.general.language_restart_note": "Изменение языка вступает в силу после перезапуска.", @@ -123,15 +133,15 @@ "settings.edit_mapping.path_prompt": "Введите локальный путь файловой системы:", "settings.add_url.title": "Добавить URL", "settings.add_url.prompt": "Введите шаблон URL (например, http://example.com или http://*.example.com):", - "settings.profile.save.title": "Сохранить профиль", - "settings.profile.save.prompt": "Введите имя профиля (например, работа, личный):", + "settings.profile.save.title": "Сохранить набор", + "settings.profile.save.prompt": "Введите имя набора (например, Работа, Клиент A):", "settings.select_directory.title": "Выберите разрешенную папку", "settings.select_log_file.title": "Выберите файл журнала", - "settings.export_config.title": "Экспорт конфигурации", - "settings.import_config.title": "Импорт конфигурации", + "settings.export_config.title": "Экспорт настроек", + "settings.import_config.title": "Импорт настроек", "settings.error.select_mapping": "Выберите сопоставление для редактирования", - "settings.error.select_profile_load": "Выберите профиль для загрузки", - "settings.error.select_profile_delete": "Выберите профиль для удаления", + "settings.error.select_profile_load": "Выберите набор для загрузки", + "settings.error.select_profile_delete": "Выберите набор для удаления", "settings.web_source.url_label": "URL веб-приложения:", "settings.web_source.open_btn": "Открыть", "settings.web_source.url_mappings_label": "Сопоставления URL (Azure Blob Storage → локальные пути):", @@ -154,12 +164,12 @@ "settings.paths.select_dir_title": "Выберите разрешенную папку", "settings.urls.add_title": "Добавить URL", "settings.urls.add_prompt": "Введите шаблон URL (например, http://example.com или http://*.example.com):", - "settings.profiles.save_title": "Сохранить профиль", - "settings.profiles.save_prompt": "Введите имя профиля (например, работа, личный):", - "settings.profiles.select_to_load": "Выберите профиль для загрузки", - "settings.profiles.select_to_delete": "Выберите профиль для удаления", - "settings.profiles.export_title": "Экспорт конфигурации", - "settings.profiles.import_title": "Импорт конфигурации", + "settings.profiles.save_title": "Сохранить набор", + "settings.profiles.save_prompt": "Введите имя набора (например, Работа, Клиент A):", + "settings.profiles.select_to_load": "Выберите набор для загрузки", + "settings.profiles.select_to_delete": "Выберите набор для удаления", + "settings.profiles.export_title": "Экспорт настроек", + "settings.profiles.import_title": "Импорт настроек", "update.checking.title": "Проверка обновлений", "update.checking.label": "Проверка обновлений...", diff --git a/resources/translations/zh.json b/resources/translations/zh.json index 62a049d..ea2686b 100644 --- a/resources/translations/zh.json +++ b/resources/translations/zh.json @@ -84,7 +84,7 @@ "settings.tab.urls": "URL", "settings.tab.logging": "日志", "settings.tab.window": "窗口", - "settings.tab.profiles": "配置档案", + "settings.tab.profiles": "设置", "settings.tab.general": "通用", "settings.web_url.label": "Web 应用 URL:", "settings.web_url.placeholder": "例如: http://localhost:8080 或 file:///./webapp/index.html", @@ -106,12 +106,22 @@ "settings.log_file.browse_btn": "浏览...", "settings.window.width_label": "窗口宽度:", "settings.window.height_label": "窗口高度:", - "settings.profiles.label": "已保存配置档案:", - "settings.profiles.save_btn": "保存为档案", - "settings.profiles.load_btn": "加载档案", - "settings.profiles.delete_btn": "删除档案", - "settings.profiles.export_btn": "导出配置", - "settings.profiles.import_btn": "导入配置", + "settings.profiles.label": "此设备上已保存的设置:", + "settings.profiles.label_tooltip": "已保存设置是当前配置的命名快照,可用于在此设备上快速切换。", + "settings.profiles.help_text": "将当前状态保存为命名设置,便于在此设备上快速切换。需要备份或共享配置文件时,请使用导出/导入。", + "settings.profiles.list_tooltip": "显示此设备上可用的已保存设置。", + "settings.profiles.save_btn": "保存设置", + "settings.profiles.save_tooltip": "将当前设置保存为此设备上的命名设置。", + "settings.profiles.load_btn": "加载设置", + "settings.profiles.load_tooltip": "将选中的已保存设置加载到此对话框中。", + "settings.profiles.delete_btn": "删除设置", + "settings.profiles.delete_tooltip": "从此设备删除选中的已保存设置。", + "settings.profiles.transfer_label": "备份或共享当前设置:", + "settings.profiles.transfer_tooltip": "导出会创建一个 JSON 文件用于备份或共享。导入会读取此类文件并在此处应用。", + "settings.profiles.export_btn": "导出到文件", + "settings.profiles.export_tooltip": "将当前设置导出为 JSON 文件,用于备份或共享。", + "settings.profiles.import_btn": "从文件导入", + "settings.profiles.import_tooltip": "从 JSON 文件导入设置并在此处应用。", "settings.general.language_label": "语言:", "settings.general.language_auto": "跟随系统(自动)", "settings.general.language_restart_note": "语言更改将在重启后生效。", @@ -123,15 +133,15 @@ "settings.edit_mapping.path_prompt": "输入本地文件系统路径:", "settings.add_url.title": "添加 URL", "settings.add_url.prompt": "输入 URL 模式(例如: http://example.com 或 http://*.example.com):", - "settings.profile.save.title": "保存档案", - "settings.profile.save.prompt": "输入配置档案名称(例如: 工作, 个人):", + "settings.profile.save.title": "保存设置", + "settings.profile.save.prompt": "输入设置名称(例如:工作、客户A):", "settings.select_directory.title": "选择允许目录", "settings.select_log_file.title": "选择日志文件", - "settings.export_config.title": "导出配置", - "settings.import_config.title": "导入配置", + "settings.export_config.title": "导出设置", + "settings.import_config.title": "导入设置", "settings.error.select_mapping": "请选择要编辑的映射", - "settings.error.select_profile_load": "请选择要加载的档案", - "settings.error.select_profile_delete": "请选择要删除的档案", + "settings.error.select_profile_load": "请选择要加载的设置", + "settings.error.select_profile_delete": "请选择要删除的设置", "settings.web_source.url_label": "Web 应用 URL:", "settings.web_source.open_btn": "打开", "settings.web_source.url_mappings_label": "URL 映射(Azure Blob Storage → 本地路径):", @@ -154,12 +164,12 @@ "settings.paths.select_dir_title": "选择允许目录", "settings.urls.add_title": "添加 URL", "settings.urls.add_prompt": "输入 URL 模式(例如: http://example.com 或 http://*.example.com):", - "settings.profiles.save_title": "保存档案", - "settings.profiles.save_prompt": "输入配置档案名称(例如: 工作, 个人):", - "settings.profiles.select_to_load": "请选择要加载的档案", - "settings.profiles.select_to_delete": "请选择要删除的档案", - "settings.profiles.export_title": "导出配置", - "settings.profiles.import_title": "导入配置", + "settings.profiles.save_title": "保存设置", + "settings.profiles.save_prompt": "输入设置名称(例如:工作、客户A):", + "settings.profiles.select_to_load": "请选择要加载的设置", + "settings.profiles.select_to_delete": "请选择要删除的设置", + "settings.profiles.export_title": "导出设置", + "settings.profiles.import_title": "导入设置", "update.checking.title": "检查更新", "update.checking.label": "正在检查更新...", diff --git a/src/webdrop_bridge/ui/settings_dialog.py b/src/webdrop_bridge/ui/settings_dialog.py index 99f5241..1da3eaa 100644 --- a/src/webdrop_bridge/ui/settings_dialog.py +++ b/src/webdrop_bridge/ui/settings_dialog.py @@ -396,41 +396,58 @@ class SettingsDialog(QDialog): return widget def _create_profiles_tab(self) -> QWidget: - """Create profiles management tab.""" + """Create setups/import-export tab with clearer guidance.""" widget = QWidget() layout = QVBoxLayout() - layout.addWidget(QLabel(tr("settings.profiles.label"))) + saved_setups_label = QLabel(tr("settings.profiles.label")) + saved_setups_label.setToolTip(tr("settings.profiles.label_tooltip")) + layout.addWidget(saved_setups_label) + + self.profiles_help_label = QLabel(tr("settings.profiles.help_text")) + self.profiles_help_label.setWordWrap(True) + self.profiles_help_label.setStyleSheet("color: gray; font-size: 11px;") + layout.addWidget(self.profiles_help_label) self.profiles_list = QListWidget() + self.profiles_list.setToolTip(tr("settings.profiles.list_tooltip")) self._refresh_profiles_list() layout.addWidget(self.profiles_list) button_layout = QHBoxLayout() - save_profile_btn = QPushButton(tr("settings.profiles.save_btn")) - save_profile_btn.clicked.connect(self._save_profile) - button_layout.addWidget(save_profile_btn) + self.save_profile_btn = QPushButton(tr("settings.profiles.save_btn")) + self.save_profile_btn.setToolTip(tr("settings.profiles.save_tooltip")) + self.save_profile_btn.clicked.connect(self._save_profile) + button_layout.addWidget(self.save_profile_btn) - load_profile_btn = QPushButton(tr("settings.profiles.load_btn")) - load_profile_btn.clicked.connect(self._load_profile) - button_layout.addWidget(load_profile_btn) + self.load_profile_btn = QPushButton(tr("settings.profiles.load_btn")) + self.load_profile_btn.setToolTip(tr("settings.profiles.load_tooltip")) + self.load_profile_btn.clicked.connect(self._load_profile) + button_layout.addWidget(self.load_profile_btn) - delete_profile_btn = QPushButton(tr("settings.profiles.delete_btn")) - delete_profile_btn.clicked.connect(self._delete_profile) - button_layout.addWidget(delete_profile_btn) + self.delete_profile_btn = QPushButton(tr("settings.profiles.delete_btn")) + self.delete_profile_btn.setToolTip(tr("settings.profiles.delete_tooltip")) + self.delete_profile_btn.clicked.connect(self._delete_profile) + button_layout.addWidget(self.delete_profile_btn) layout.addLayout(button_layout) + export_label = QLabel(tr("settings.profiles.transfer_label")) + export_label.setToolTip(tr("settings.profiles.transfer_tooltip")) + layout.addWidget(export_label) + export_layout = QHBoxLayout() - export_btn = QPushButton(tr("settings.profiles.export_btn")) - export_btn.clicked.connect(self._export_config) - export_layout.addWidget(export_btn) + self.export_btn = QPushButton(tr("settings.profiles.export_btn")) + self.export_btn.setToolTip(tr("settings.profiles.export_tooltip")) + self.export_btn.clicked.connect(self._export_config) + export_layout.addWidget(self.export_btn) - import_btn = QPushButton(tr("settings.profiles.import_btn")) - import_btn.clicked.connect(self._import_config) - export_layout.addWidget(import_btn) + self.import_btn = QPushButton(tr("settings.profiles.import_btn")) + self.import_btn.setToolTip(tr("settings.profiles.import_tooltip")) + self.import_btn.clicked.connect(self._import_config) + export_layout.addWidget(self.import_btn) layout.addLayout(export_layout) layout.addStretch() diff --git a/tests/unit/test_settings_dialog.py b/tests/unit/test_settings_dialog.py index 06d78d0..1ff1773 100644 --- a/tests/unit/test_settings_dialog.py +++ b/tests/unit/test_settings_dialog.py @@ -89,11 +89,20 @@ class TestSettingsDialogInitialization: assert dialog.tabs.tabText(5) == "Window" def test_dialog_has_profiles_tab(self, qtbot, sample_config): - """Test Profiles tab exists.""" + """Test Setups tab exists with clearer wording.""" dialog = SettingsDialog(sample_config) qtbot.addWidget(dialog) - assert dialog.tabs.tabText(6) == "Profiles" + assert dialog.tabs.tabText(6) == "Setups" + + def test_profiles_actions_have_explanatory_tooltips(self, qtbot, sample_config): + """Test profile/config actions expose helpful explanations.""" + dialog = SettingsDialog(sample_config) + qtbot.addWidget(dialog) + + assert "this device" in dialog.save_profile_btn.toolTip().lower() + assert "backup" in dialog.export_btn.toolTip().lower() + assert "json" in dialog.import_btn.toolTip().lower() class TestPathsTab: @@ -190,7 +199,7 @@ class TestWindowTab: class TestProfilesTab: - """Test Profiles management tab.""" + """Test profiles management tab.""" def test_profiles_list_initialized(self, qtbot, sample_config): """Test profiles list is initialized.""" @@ -198,6 +207,7 @@ class TestProfilesTab: qtbot.addWidget(dialog) assert dialog.profiles_list is not None + assert dialog.profiles_help_label.wordWrap() is True class TestConfigDataRetrieval: