From b4c86927380b4127f7b26bd66c2801df6953973f Mon Sep 17 00:00:00 2001 From: claudi Date: Tue, 10 Mar 2026 15:01:37 +0100 Subject: [PATCH] feat: add Italian, Russian, and Chinese translations for UI elements and dialogs --- resources/translations/it.json | 172 +++++++++++++++++++++++++++++++++ resources/translations/ru.json | 172 +++++++++++++++++++++++++++++++++ resources/translations/zh.json | 172 +++++++++++++++++++++++++++++++++ 3 files changed, 516 insertions(+) create mode 100644 resources/translations/it.json create mode 100644 resources/translations/ru.json create mode 100644 resources/translations/zh.json diff --git a/resources/translations/it.json b/resources/translations/it.json new file mode 100644 index 0000000..cccde66 --- /dev/null +++ b/resources/translations/it.json @@ -0,0 +1,172 @@ +{ + "toolbar.tooltip.open_drop": "Trascina qui un file per aprirlo con l'app predefinita", + "toolbar.tooltip.open_with_drop": "Trascina qui un file per scegliere con quale app aprirlo", + "toolbar.tooltip.home": "Home", + "toolbar.tooltip.about": "Informazioni su WebDrop Bridge", + "toolbar.tooltip.settings": "Impostazioni", + "toolbar.tooltip.check_updates": "Controlla aggiornamenti", + "toolbar.tooltip.clear_cache": "Cancella cache e cookie", + "toolbar.tooltip.open_log": "Apri file di log", + "toolbar.tooltip.dev_tools": "Strumenti sviluppatore (F12)", + + "status.ready": "Pronto", + "status.opened": "Aperto: {name}", + "status.choose_app": "Scegli app per: {name}", + "status.download_started": "📥 Download: {filename}", + "status.download_completed": "Download completato: {name}", + "status.download_cancelled": "⚠️ Download annullato: {name}", + "status.download_failed": "❌ Download non riuscito: {name}", + "status.download_error": "Errore download: {error}", + + "update.status.checking": "Controllo aggiornamenti", + "update.status.ready": "Pronto", + "update.status.available": "Aggiornamento disponibile: v{version}", + "update.status.deferred": "Aggiornamento rimandato", + "update.status.downloading": "Download v{version}", + "update.status.verifying": "Verifica download", + "update.status.download_failed": "Download non riuscito", + "update.status.verification_failed": "Verifica non riuscita", + "update.status.timed_out": "Operazione scaduta", + "update.status.ready_to_install": "Pronto per l'installazione", + "update.status.installation_started": "Installazione avviata", + "update.status.installation_failed": "Installazione non riuscita", + "update.status.check_timed_out": "Controllo scaduto - nessuna risposta dal server", + "update.status.check_failed": "Controllo non riuscito: {error}", + "update.status.download_timed_out": "Download scaduto - nessuna risposta dal server", + + "dialog.error.title": "Errore", + "dialog.log_not_found.title": "File di log non trovato", + "dialog.log_not_found.msg": "Nessun file di log trovato in:\n{log_file}", + "dialog.cache_cleared.title": "Cache cancellata", + "dialog.cache_cleared.msg": "Cache del browser e cookie cancellati con successo.\n\nPotrebbe essere necessario ricaricare la pagina o riavviare l'applicazione.", + "dialog.cache_clear_failed.title": "Errore", + "dialog.cache_clear_failed.msg": "Impossibile cancellare cache e cookie: {error}", + "dialog.drag_error.title": "Errore drag-and-drop", + "dialog.drag_error.msg": "Impossibile completare l'operazione drag-and-drop.\n\nErrore: {error}", + "dialog.open_file_error.title": "Errore apertura file", + "dialog.open_file_error.msg": "Impossibile aprire il file con l'applicazione predefinita.\n\nFile: {file_path}\nErrore: {error}", + "dialog.open_with_error.title": "Errore Apri con", + "dialog.open_with_error.msg": "Impossibile aprire un selettore applicazioni su questa piattaforma.", + "dialog.dev_tools.window_title": "🔧 Strumenti sviluppatore", + "dialog.dev_tools.error_title": "Strumenti sviluppatore", + "dialog.dev_tools.error_msg": "Impossibile aprire gli Strumenti sviluppatore:\n{error}", + "dialog.domain_changed.title": "Dominio cambiato - riavvio consigliato", + "dialog.domain_changed.msg": "Il dominio dell'app web è cambiato\n\nHai cambiato dominio. Per massima stabilità e corretta autenticazione, è consigliato riavviare l'applicazione.\n\nProfilo e cache sono stati puliti, ma consigliamo il riavvio.", + "dialog.domain_changed.restart_now": "Riavvia ora", + "dialog.domain_changed.restart_later": "Riavvia più tardi", + "dialog.language_changed.title": "Lingua cambiata", + "dialog.language_changed.msg": "La lingua è stata aggiornata. Riavvia ora per applicarla ovunque.", + "dialog.language_changed.restart_now": "Riavvia ora", + "dialog.language_changed.restart_later": "Riavvia più tardi", + "dialog.restart_failed.title": "Riavvio non riuscito", + "dialog.restart_failed.msg": "Impossibile riavviare automaticamente l'applicazione:\n\n{error}\n\nRiavvia manualmente.", + "dialog.update_timeout.title": "Timeout controllo aggiornamenti", + "dialog.update_timeout.msg": "Il server non ha risposto entro 30 secondi.\n\nPotrebbe trattarsi di un problema di rete o indisponibilità del server.\n\nControlla la connessione e riprova.", + "dialog.update_failed.title": "Controllo aggiornamenti non riuscito", + "dialog.update_failed.msg": "Impossibile controllare gli aggiornamenti:\n\n{error}\n\nRiprova più tardi.", + "dialog.download_failed.title": "Download non riuscito", + "dialog.download_failed.msg": "Impossibile scaricare l'aggiornamento:\n\n{error}\n\nRiprova più tardi.", + "dialog.checkout.title": "Checkout asset", + "dialog.checkout.msg": "Vuoi eseguire il checkout di questo asset?\n\n{filename}", + + "about.title": "Informazioni su {app_name}", + "about.version": "Versione: {version}", + "about.description": "Collega i flussi drag-and-drop web alle operazioni file native per applicazioni desktop professionali.", + "about.drop_zones_title": "Zone di rilascio barra strumenti:", + "about.open_icon_desc": "Icona Apri: apre i file rilasciati con l'app predefinita.", + "about.open_with_icon_desc": "Icona Apri con: mostra un selettore app per i file rilasciati.", + "about.product_of": "Prodotto di:", + "about.rights": "© 2026 hörl Information Management GmbH. Tutti i diritti riservati.", + + "settings.title": "Impostazioni", + "settings.tab.web_source": "Sorgente web", + "settings.tab.paths": "Percorsi", + "settings.tab.urls": "URL", + "settings.tab.logging": "Log", + "settings.tab.window": "Finestra", + "settings.tab.profiles": "Profili", + "settings.tab.general": "Generale", + "settings.web_url.label": "URL applicazione web:", + "settings.web_url.placeholder": "es. http://localhost:8080 o file:///./webapp/index.html", + "settings.web_url.open_btn": "Apri", + "settings.url_mappings.label": "Mappature URL (Azure Blob Storage → Percorsi locali):", + "settings.url_mappings.col_prefix": "Prefisso URL", + "settings.url_mappings.col_path": "Percorso locale", + "settings.url_mappings.add_btn": "Aggiungi mappatura", + "settings.url_mappings.edit_btn": "Modifica selezionato", + "settings.url_mappings.remove_btn": "Rimuovi selezionato", + "settings.paths.label": "Directory radice consentite per accesso file:", + "settings.paths.add_btn": "Aggiungi percorso", + "settings.paths.remove_btn": "Rimuovi selezionato", + "settings.urls.label": "URL web consentiti (supporta wildcard come http://*.example.com):", + "settings.urls.add_btn": "Aggiungi URL", + "settings.urls.remove_btn": "Rimuovi selezionato", + "settings.log_level.label": "Livello log:", + "settings.log_file.label": "File log (opzionale):", + "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.general.language_label": "Lingua:", + "settings.general.language_auto": "Predefinita sistema (Auto)", + "settings.general.language_restart_note": "La modifica lingua si applica dopo il riavvio.", + "settings.add_mapping.url_title": "Aggiungi mappatura URL", + "settings.add_mapping.url_prompt": "Inserisci prefisso URL Azure Blob Storage:\n(es. https://myblob.blob.core.windows.net/container/)", + "settings.add_mapping.path_prompt": "Inserisci percorso file system locale:\n(es. C:\\Share o /mnt/share)", + "settings.edit_mapping.title": "Modifica mappatura URL", + "settings.edit_mapping.url_prompt": "Inserisci prefisso URL Azure Blob Storage:", + "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.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.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", + + "update.checking.title": "Controllo aggiornamenti", + "update.checking.label": "Controllo aggiornamenti...", + "update.checking.timeout_info": "Può richiedere fino a 10 secondi", + "update.available.title": "Aggiornamento disponibile", + "update.available.header": "È disponibile WebDrop Bridge v{version}", + "update.available.changelog_label": "Note di rilascio:", + "update.available.update_now_btn": "Aggiorna ora", + "update.available.later_btn": "Più tardi", + "update.downloading.title": "Download aggiornamento", + "update.downloading.header": "Download aggiornamento...", + "update.downloading.preparing": "Preparazione download", + "update.downloading.filename": "Download: {filename}", + "update.downloading.cancel_btn": "Annulla", + "update.install.title": "Installa aggiornamento", + "update.install.header": "Pronto per installare", + "update.install.message": "L'aggiornamento è pronto per l'installazione. L'applicazione verrà riavviata.", + "update.install.warning": "⚠️ Salva eventuale lavoro non salvato prima di continuare.\nL'applicazione verrà chiusa e riavviata.", + "update.install.now_btn": "Installa ora", + "update.install.cancel_btn": "Annulla", + "update.no_update.title": "Nessun aggiornamento disponibile", + "update.no_update.message": "✓ Stai usando l'ultima versione", + "update.no_update.info": "WebDrop Bridge è aggiornato.", + "update.no_update.ok_btn": "OK", + "update.error.title": "Aggiornamento non riuscito", + "update.error.header": "⚠️ Aggiornamento non riuscito", + "update.error.info": "Riprova o visita il sito per scaricare manualmente l'aggiornamento.", + "update.error.retry_btn": "Riprova", + "update.error.manual_btn": "Scarica manualmente", + "update.error.cancel_btn": "Annulla", + + "worker.server_not_responding": "Il server non risponde - riprova più tardi", + "worker.no_installer": "Nessun installer trovato nella release", + "worker.checksum_failed": "Verifica checksum non riuscita", + "worker.download_timed_out": "Download o verifica scaduti (nessuna risposta dal server)", + "worker.download_error": "Errore download: {error}", + "worker.check_failed": "Controllo non riuscito: {error}" +} diff --git a/resources/translations/ru.json b/resources/translations/ru.json new file mode 100644 index 0000000..b880d78 --- /dev/null +++ b/resources/translations/ru.json @@ -0,0 +1,172 @@ +{ + "toolbar.tooltip.open_drop": "Перетащите файл сюда, чтобы открыть его приложением по умолчанию", + "toolbar.tooltip.open_with_drop": "Перетащите файл сюда, чтобы выбрать приложение для открытия", + "toolbar.tooltip.home": "Главная", + "toolbar.tooltip.about": "О WebDrop Bridge", + "toolbar.tooltip.settings": "Настройки", + "toolbar.tooltip.check_updates": "Проверить обновления", + "toolbar.tooltip.clear_cache": "Очистить кэш и cookie", + "toolbar.tooltip.open_log": "Открыть файл журнала", + "toolbar.tooltip.dev_tools": "Инструменты разработчика (F12)", + + "status.ready": "Готово", + "status.opened": "Открыто: {name}", + "status.choose_app": "Выберите приложение для: {name}", + "status.download_started": "📥 Загрузка: {filename}", + "status.download_completed": "Загрузка завершена: {name}", + "status.download_cancelled": "⚠️ Загрузка отменена: {name}", + "status.download_failed": "❌ Ошибка загрузки: {name}", + "status.download_error": "Ошибка загрузки: {error}", + + "update.status.checking": "Проверка обновлений", + "update.status.ready": "Готово", + "update.status.available": "Доступно обновление: v{version}", + "update.status.deferred": "Обновление отложено", + "update.status.downloading": "Загрузка v{version}", + "update.status.verifying": "Проверка загрузки", + "update.status.download_failed": "Ошибка загрузки", + "update.status.verification_failed": "Ошибка проверки", + "update.status.timed_out": "Время ожидания истекло", + "update.status.ready_to_install": "Готово к установке", + "update.status.installation_started": "Установка начата", + "update.status.installation_failed": "Ошибка установки", + "update.status.check_timed_out": "Проверка прервана по таймауту - нет ответа сервера", + "update.status.check_failed": "Ошибка проверки: {error}", + "update.status.download_timed_out": "Загрузка прервана по таймауту - нет ответа сервера", + + "dialog.error.title": "Ошибка", + "dialog.log_not_found.title": "Файл журнала не найден", + "dialog.log_not_found.msg": "Файл журнала не найден по пути:\n{log_file}", + "dialog.cache_cleared.title": "Кэш очищен", + "dialog.cache_cleared.msg": "Кэш браузера и cookie успешно очищены.\n\nВозможно, потребуется перезагрузить страницу или перезапустить приложение.", + "dialog.cache_clear_failed.title": "Ошибка", + "dialog.cache_clear_failed.msg": "Не удалось очистить кэш и cookie: {error}", + "dialog.drag_error.title": "Ошибка drag-and-drop", + "dialog.drag_error.msg": "Не удалось завершить операцию drag-and-drop.\n\nОшибка: {error}", + "dialog.open_file_error.title": "Ошибка открытия файла", + "dialog.open_file_error.msg": "Не удалось открыть файл приложением по умолчанию.\n\nФайл: {file_path}\nОшибка: {error}", + "dialog.open_with_error.title": "Ошибка «Открыть с помощью»", + "dialog.open_with_error.msg": "Невозможно открыть выбор приложения на этой платформе.", + "dialog.dev_tools.window_title": "🔧 Инструменты разработчика", + "dialog.dev_tools.error_title": "Инструменты разработчика", + "dialog.dev_tools.error_msg": "Не удалось открыть инструменты разработчика:\n{error}", + "dialog.domain_changed.title": "Домен изменен - рекомендуется перезапуск", + "dialog.domain_changed.msg": "Домен веб-приложения изменился\n\nВы переключились на другой домен. Для максимальной стабильности и корректной аутентификации рекомендуется перезапустить приложение.\n\nПрофиль и кэш очищены, но рекомендуется перезапуск.", + "dialog.domain_changed.restart_now": "Перезапустить сейчас", + "dialog.domain_changed.restart_later": "Перезапустить позже", + "dialog.language_changed.title": "Язык изменен", + "dialog.language_changed.msg": "Настройка языка обновлена. Перезапустите сейчас, чтобы применить язык везде.", + "dialog.language_changed.restart_now": "Перезапустить сейчас", + "dialog.language_changed.restart_later": "Перезапустить позже", + "dialog.restart_failed.title": "Сбой перезапуска", + "dialog.restart_failed.msg": "Не удалось автоматически перезапустить приложение:\n\n{error}\n\nПерезапустите вручную.", + "dialog.update_timeout.title": "Таймаут проверки обновлений", + "dialog.update_timeout.msg": "Сервер не ответил в течение 30 секунд.\n\nВозможна проблема сети или недоступность сервера.\n\nПроверьте соединение и попробуйте снова.", + "dialog.update_failed.title": "Ошибка проверки обновлений", + "dialog.update_failed.msg": "Не удалось проверить обновления:\n\n{error}\n\nПовторите позже.", + "dialog.download_failed.title": "Ошибка загрузки", + "dialog.download_failed.msg": "Не удалось скачать обновление:\n\n{error}\n\nПовторите позже.", + "dialog.checkout.title": "Checkout ресурса", + "dialog.checkout.msg": "Выполнить checkout этого ресурса?\n\n{filename}", + + "about.title": "О программе {app_name}", + "about.version": "Версия: {version}", + "about.description": "Соединяет веб drag-and-drop сценарии с нативными файловыми операциями для профессиональных настольных приложений.", + "about.drop_zones_title": "Зоны перетаскивания на панели:", + "about.open_icon_desc": "Иконка «Открыть»: открывает перетащенные файлы приложением по умолчанию.", + "about.open_with_icon_desc": "Иконка «Открыть с помощью»: показывает выбор приложения для перетащенных файлов.", + "about.product_of": "Продукт компании:", + "about.rights": "© 2026 hörl Information Management GmbH. Все права защищены.", + + "settings.title": "Настройки", + "settings.tab.web_source": "Веб-источник", + "settings.tab.paths": "Пути", + "settings.tab.urls": "URL", + "settings.tab.logging": "Логирование", + "settings.tab.window": "Окно", + "settings.tab.profiles": "Профили", + "settings.tab.general": "Общие", + "settings.web_url.label": "URL веб-приложения:", + "settings.web_url.placeholder": "например, http://localhost:8080 или file:///./webapp/index.html", + "settings.web_url.open_btn": "Открыть", + "settings.url_mappings.label": "Сопоставления URL (Azure Blob Storage → Локальные пути):", + "settings.url_mappings.col_prefix": "Префикс URL", + "settings.url_mappings.col_path": "Локальный путь", + "settings.url_mappings.add_btn": "Добавить сопоставление", + "settings.url_mappings.edit_btn": "Изменить выбранное", + "settings.url_mappings.remove_btn": "Удалить выбранное", + "settings.paths.label": "Разрешенные корневые каталоги для доступа к файлам:", + "settings.paths.add_btn": "Добавить путь", + "settings.paths.remove_btn": "Удалить выбранное", + "settings.urls.label": "Разрешенные веб URL (поддержка масок, напр. http://*.example.com):", + "settings.urls.add_btn": "Добавить URL", + "settings.urls.remove_btn": "Удалить выбранное", + "settings.log_level.label": "Уровень логирования:", + "settings.log_file.label": "Файл журнала (необязательно):", + "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.general.language_label": "Язык:", + "settings.general.language_auto": "Системный по умолчанию (Auto)", + "settings.general.language_restart_note": "Изменение языка вступает в силу после перезапуска.", + "settings.add_mapping.url_title": "Добавить сопоставление URL", + "settings.add_mapping.url_prompt": "Введите префикс URL Azure Blob Storage:\n(например, https://myblob.blob.core.windows.net/container/)", + "settings.add_mapping.path_prompt": "Введите локальный путь файловой системы:\n(например, C:\\Share или /mnt/share)", + "settings.edit_mapping.title": "Изменить сопоставление URL", + "settings.edit_mapping.url_prompt": "Введите префикс URL Azure Blob Storage:", + "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": "Введите имя профиля (например, work, personal):", + "settings.select_directory.title": "Выберите разрешенную папку", + "settings.select_log_file.title": "Выберите файл журнала", + "settings.export_config.title": "Экспорт конфигурации", + "settings.import_config.title": "Импорт конфигурации", + "settings.error.select_mapping": "Выберите сопоставление для редактирования", + "settings.error.select_profile_load": "Выберите профиль для загрузки", + "settings.error.select_profile_delete": "Выберите профиль для удаления", + + "update.checking.title": "Проверка обновлений", + "update.checking.label": "Проверка обновлений...", + "update.checking.timeout_info": "Это может занять до 10 секунд", + "update.available.title": "Доступно обновление", + "update.available.header": "Доступна версия WebDrop Bridge v{version}", + "update.available.changelog_label": "Примечания к релизу:", + "update.available.update_now_btn": "Обновить сейчас", + "update.available.later_btn": "Позже", + "update.downloading.title": "Загрузка обновления", + "update.downloading.header": "Загрузка обновления...", + "update.downloading.preparing": "Подготовка загрузки", + "update.downloading.filename": "Загрузка: {filename}", + "update.downloading.cancel_btn": "Отмена", + "update.install.title": "Установить обновление", + "update.install.header": "Готово к установке", + "update.install.message": "Обновление готово к установке. Приложение будет перезапущено.", + "update.install.warning": "⚠️ Сохраните несохраненные данные перед продолжением.\nПриложение будет закрыто и перезапущено.", + "update.install.now_btn": "Установить сейчас", + "update.install.cancel_btn": "Отмена", + "update.no_update.title": "Обновлений нет", + "update.no_update.message": "✓ У вас установлена последняя версия", + "update.no_update.info": "WebDrop Bridge обновлен.", + "update.no_update.ok_btn": "OK", + "update.error.title": "Ошибка обновления", + "update.error.header": "⚠️ Ошибка обновления", + "update.error.info": "Повторите попытку или скачайте обновление вручную с сайта.", + "update.error.retry_btn": "Повторить", + "update.error.manual_btn": "Скачать вручную", + "update.error.cancel_btn": "Отмена", + + "worker.server_not_responding": "Сервер не отвечает - попробуйте позже", + "worker.no_installer": "В релизе не найден установщик", + "worker.checksum_failed": "Проверка контрольной суммы не пройдена", + "worker.download_timed_out": "Таймаут загрузки или проверки (нет ответа сервера)", + "worker.download_error": "Ошибка загрузки: {error}", + "worker.check_failed": "Ошибка проверки: {error}" +} diff --git a/resources/translations/zh.json b/resources/translations/zh.json new file mode 100644 index 0000000..ebf333f --- /dev/null +++ b/resources/translations/zh.json @@ -0,0 +1,172 @@ +{ + "toolbar.tooltip.open_drop": "将文件拖到此处以使用默认应用打开", + "toolbar.tooltip.open_with_drop": "将文件拖到此处以选择打开应用", + "toolbar.tooltip.home": "主页", + "toolbar.tooltip.about": "关于 WebDrop Bridge", + "toolbar.tooltip.settings": "设置", + "toolbar.tooltip.check_updates": "检查更新", + "toolbar.tooltip.clear_cache": "清除缓存和 Cookie", + "toolbar.tooltip.open_log": "打开日志文件", + "toolbar.tooltip.dev_tools": "开发者工具 (F12)", + + "status.ready": "就绪", + "status.opened": "已打开: {name}", + "status.choose_app": "为以下文件选择应用: {name}", + "status.download_started": "📥 下载: {filename}", + "status.download_completed": "下载完成: {name}", + "status.download_cancelled": "⚠️ 下载已取消: {name}", + "status.download_failed": "❌ 下载失败: {name}", + "status.download_error": "下载错误: {error}", + + "update.status.checking": "正在检查更新", + "update.status.ready": "就绪", + "update.status.available": "有可用更新: v{version}", + "update.status.deferred": "已稍后更新", + "update.status.downloading": "正在下载 v{version}", + "update.status.verifying": "正在验证下载", + "update.status.download_failed": "下载失败", + "update.status.verification_failed": "验证失败", + "update.status.timed_out": "操作超时", + "update.status.ready_to_install": "准备安装", + "update.status.installation_started": "已开始安装", + "update.status.installation_failed": "安装失败", + "update.status.check_timed_out": "检查超时 - 服务器无响应", + "update.status.check_failed": "检查失败: {error}", + "update.status.download_timed_out": "下载超时 - 服务器无响应", + + "dialog.error.title": "错误", + "dialog.log_not_found.title": "未找到日志文件", + "dialog.log_not_found.msg": "在以下位置未找到日志文件:\n{log_file}", + "dialog.cache_cleared.title": "缓存已清除", + "dialog.cache_cleared.msg": "浏览器缓存和 Cookie 已成功清除。\n\n你可能需要刷新页面或重启应用以使更改生效。", + "dialog.cache_clear_failed.title": "错误", + "dialog.cache_clear_failed.msg": "清除缓存和 Cookie 失败: {error}", + "dialog.drag_error.title": "拖放错误", + "dialog.drag_error.msg": "无法完成拖放操作。\n\n错误: {error}", + "dialog.open_file_error.title": "打开文件错误", + "dialog.open_file_error.msg": "无法使用默认应用打开该文件。\n\n文件: {file_path}\n错误: {error}", + "dialog.open_with_error.title": "“打开方式”错误", + "dialog.open_with_error.msg": "当前平台无法打开应用选择器。", + "dialog.dev_tools.window_title": "🔧 开发者工具", + "dialog.dev_tools.error_title": "开发者工具", + "dialog.dev_tools.error_msg": "无法打开开发者工具:\n{error}", + "dialog.domain_changed.title": "域名已更改 - 建议重启", + "dialog.domain_changed.msg": "Web 应用域名已更改\n\n你已切换到不同域名。为保证稳定性和认证正确性,建议重启应用。\n\n配置和缓存已清理,但仍建议重启。", + "dialog.domain_changed.restart_now": "立即重启", + "dialog.domain_changed.restart_later": "稍后重启", + "dialog.language_changed.title": "语言已更改", + "dialog.language_changed.msg": "语言设置已更新。立即重启可在所有界面生效。", + "dialog.language_changed.restart_now": "立即重启", + "dialog.language_changed.restart_later": "稍后重启", + "dialog.restart_failed.title": "重启失败", + "dialog.restart_failed.msg": "无法自动重启应用:\n\n{error}\n\n请手动重启。", + "dialog.update_timeout.title": "更新检查超时", + "dialog.update_timeout.msg": "服务器在 30 秒内未响应。\n\n可能是网络问题或服务器不可用。\n\n请检查连接后重试。", + "dialog.update_failed.title": "更新检查失败", + "dialog.update_failed.msg": "无法检查更新:\n\n{error}\n\n请稍后重试。", + "dialog.download_failed.title": "下载失败", + "dialog.download_failed.msg": "无法下载更新:\n\n{error}\n\n请稍后重试。", + "dialog.checkout.title": "签出资源", + "dialog.checkout.msg": "是否签出该资源?\n\n{filename}", + + "about.title": "关于 {app_name}", + "about.version": "版本: {version}", + "about.description": "将基于 Web 的拖放工作流与桌面原生文件操作连接起来。", + "about.drop_zones_title": "工具栏拖放区域:", + "about.open_icon_desc": "打开图标: 使用系统默认应用打开拖入文件。", + "about.open_with_icon_desc": "打开方式图标: 为拖入文件显示应用选择器。", + "about.product_of": "产品提供方:", + "about.rights": "© 2026 hörl Information Management GmbH. 保留所有权利。", + + "settings.title": "设置", + "settings.tab.web_source": "Web 来源", + "settings.tab.paths": "路径", + "settings.tab.urls": "URL", + "settings.tab.logging": "日志", + "settings.tab.window": "窗口", + "settings.tab.profiles": "配置档案", + "settings.tab.general": "通用", + "settings.web_url.label": "Web 应用 URL:", + "settings.web_url.placeholder": "例如: http://localhost:8080 或 file:///./webapp/index.html", + "settings.web_url.open_btn": "打开", + "settings.url_mappings.label": "URL 映射 (Azure Blob Storage → 本地路径):", + "settings.url_mappings.col_prefix": "URL 前缀", + "settings.url_mappings.col_path": "本地路径", + "settings.url_mappings.add_btn": "添加映射", + "settings.url_mappings.edit_btn": "编辑所选", + "settings.url_mappings.remove_btn": "删除所选", + "settings.paths.label": "允许访问文件的根目录:", + "settings.paths.add_btn": "添加路径", + "settings.paths.remove_btn": "删除所选", + "settings.urls.label": "允许的 Web URL(支持通配符,例如 http://*.example.com):", + "settings.urls.add_btn": "添加 URL", + "settings.urls.remove_btn": "删除所选", + "settings.log_level.label": "日志级别:", + "settings.log_file.label": "日志文件(可选):", + "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.general.language_label": "语言:", + "settings.general.language_auto": "系统默认 (自动)", + "settings.general.language_restart_note": "语言更改将在重启后生效。", + "settings.add_mapping.url_title": "添加 URL 映射", + "settings.add_mapping.url_prompt": "输入 Azure Blob Storage URL 前缀:\n(例如: https://myblob.blob.core.windows.net/container/)", + "settings.add_mapping.path_prompt": "输入本地文件系统路径:\n(例如: C:\\Share 或 /mnt/share)", + "settings.edit_mapping.title": "编辑 URL 映射", + "settings.edit_mapping.url_prompt": "输入 Azure Blob Storage URL 前缀:", + "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": "输入档案名称(例如: work, personal):", + "settings.select_directory.title": "选择允许目录", + "settings.select_log_file.title": "选择日志文件", + "settings.export_config.title": "导出配置", + "settings.import_config.title": "导入配置", + "settings.error.select_mapping": "请选择要编辑的映射", + "settings.error.select_profile_load": "请选择要加载的档案", + "settings.error.select_profile_delete": "请选择要删除的档案", + + "update.checking.title": "检查更新", + "update.checking.label": "正在检查更新...", + "update.checking.timeout_info": "这可能需要最多 10 秒", + "update.available.title": "有可用更新", + "update.available.header": "WebDrop Bridge v{version} 可用", + "update.available.changelog_label": "更新说明:", + "update.available.update_now_btn": "立即更新", + "update.available.later_btn": "稍后", + "update.downloading.title": "正在下载更新", + "update.downloading.header": "正在下载更新...", + "update.downloading.preparing": "准备下载", + "update.downloading.filename": "正在下载: {filename}", + "update.downloading.cancel_btn": "取消", + "update.install.title": "安装更新", + "update.install.header": "准备安装", + "update.install.message": "更新已准备好安装。应用将重启。", + "update.install.warning": "⚠️ 继续前请保存未保存的工作。\n应用将关闭并重启。", + "update.install.now_btn": "立即安装", + "update.install.cancel_btn": "取消", + "update.no_update.title": "无可用更新", + "update.no_update.message": "✓ 你正在使用最新版本", + "update.no_update.info": "WebDrop Bridge 已是最新版本。", + "update.no_update.ok_btn": "确定", + "update.error.title": "更新失败", + "update.error.header": "⚠️ 更新失败", + "update.error.info": "请重试,或访问网站手动下载更新。", + "update.error.retry_btn": "重试", + "update.error.manual_btn": "手动下载", + "update.error.cancel_btn": "取消", + + "worker.server_not_responding": "服务器无响应 - 请稍后再试", + "worker.no_installer": "发布包中未找到安装程序", + "worker.checksum_failed": "校验和验证失败", + "worker.download_timed_out": "下载或验证超时(服务器无响应)", + "worker.download_error": "下载错误: {error}", + "worker.check_failed": "检查失败: {error}" +}