From 56f9802fb9b89ea982fcf2771d2b49202c110b84 Mon Sep 17 00:00:00 2001 From: DanS Date: Sun, 2 Aug 2026 12:05:53 -0500 Subject: [PATCH] i18n: back-fill daemon-startup hardening strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Additively adds translations for the 6 new keys from this batch (sb_daemon_extract_failed, sb_daemon_files_failed, loading_stall_{title,body,hint}, sb_plaintext_remote_blocked) across res/lang/*.json. es/de/fr/pt/ru get all 6; for zh/ja/ko a string is only added when every glyph is already in the current NotoSansCJK-Subset.ttf, since the subset can't be rebuilt here — 6 zh/ja/ko entries whose glyphs aren't yet subsetted are left on the English fallback rather than render as tofu. Written sorted, indent=4, ensure_ascii=False (matching add_missing_translations.py); purely additive (42 insertions, 0 removals). The remaining 6 need a scripts/build_cjk_subset.py font rebuild. Co-Authored-By: Claude Opus 4.8 --- res/lang/de.json | 6 ++++++ res/lang/es.json | 6 ++++++ res/lang/fr.json | 6 ++++++ res/lang/ja.json | 3 +++ res/lang/ko.json | 5 +++++ res/lang/pt.json | 6 ++++++ res/lang/ru.json | 6 ++++++ res/lang/zh.json | 4 ++++ 8 files changed, 42 insertions(+) diff --git a/res/lang/de.json b/res/lang/de.json index 6a3d24d..739d7cc 100644 --- a/res/lang/de.json +++ b/res/lang/de.json @@ -734,6 +734,9 @@ "lite_working": "In Arbeit…", "loading": "Laden...", "loading_addresses": "Adressen werden geladen...", + "loading_stall_body": "Der Daemon initialisiert seit %.0f s. Das kann nach einem Update oder beim ersten Start normal sein (Laden des Blockindex oder erneutes Scannen) – die Verbindung wird automatisch hergestellt, sobald er bereit ist.", + "loading_stall_hint": "Hängt es noch? Öffne die Einstellungen und nutze „Daemon neu starten“ oder sieh in der Konsole nach Details.", + "loading_stall_title": "Dauert länger als erwartet", "loading_transactions": "Transaktionen werden geladen", "local_hashrate": "Lokale Hashrate", "low_spec_mode": "Energiesparmodus", @@ -1154,6 +1157,8 @@ "sb_connecting_external": "Verbindung zu externem Daemon...", "sb_connecting_generic": "Verbindung zum Daemon...", "sb_daemon_crashed": "Daemon ist %d mal abgestürzt", + "sb_daemon_extract_failed": "Daemon-Dateien konnten nicht geschrieben werden – prüfe freien Speicherplatz und Berechtigungen.", + "sb_daemon_files_failed": "Daemon-Dateien konnten nicht nach %s geschrieben werden – prüfe freien Speicherplatz und Berechtigungen.", "sb_daemon_not_found": "Daemon nicht gefunden", "sb_daemon_start_failed": "dragonxd konnte nicht gestartet werden", "sb_dragonxd_running": "dragonxd läuft", @@ -1169,6 +1174,7 @@ "sb_net_mhs": "Netz: %.2f MH/s", "sb_no_conf": "DRAGONX.conf nicht gefunden", "sb_peers": "Peers: %zu", + "sb_plaintext_remote_blocked": "RPC-Anmeldedaten werden nicht im Klartext an einen entfernten Host gesendet. Füge rpcallowplaintext=1 zu DRAGONX.conf hinzu, um dies zu erlauben, oder aktiviere TLS mit rpctls=1.", "sb_rescanning": "Neuscan", "sb_rescanning_pct": "Neuscan %.0f%%", "sb_restarting_daemon": "Daemon wird neu gestartet...", diff --git a/res/lang/es.json b/res/lang/es.json index aadc861..ced7ac5 100644 --- a/res/lang/es.json +++ b/res/lang/es.json @@ -734,6 +734,9 @@ "lite_working": "Trabajando…", "loading": "Cargando...", "loading_addresses": "Cargando direcciones...", + "loading_stall_body": "El daemon lleva %.0f s inicializándose. Esto puede ser normal tras una actualización o en el primer inicio (cargando el índice de bloques o reescaneando); se conectará automáticamente cuando esté listo.", + "loading_stall_hint": "¿Sigue bloqueado? Abre Ajustes y usa Reiniciar daemon, o revisa la Consola para más detalles.", + "loading_stall_title": "Está tardando más de lo esperado", "loading_transactions": "Cargando transacciones", "local_hashrate": "Tasa Hash Local", "low_spec_mode": "Modo bajo rendimiento", @@ -1154,6 +1157,8 @@ "sb_connecting_external": "Conectando a daemon externo...", "sb_connecting_generic": "Conectando al daemon...", "sb_daemon_crashed": "El daemon se bloqueó %d veces", + "sb_daemon_extract_failed": "No se pudieron escribir los archivos del daemon: comprueba el espacio libre en disco y los permisos.", + "sb_daemon_files_failed": "No se pudieron escribir los archivos del daemon en %s: comprueba el espacio libre en disco y los permisos.", "sb_daemon_not_found": "Daemon no encontrado", "sb_daemon_start_failed": "No se pudo iniciar dragonxd", "sb_dragonxd_running": "dragonxd ejecutándose", @@ -1169,6 +1174,7 @@ "sb_net_mhs": "Red: %.2f MH/s", "sb_no_conf": "DRAGONX.conf no encontrado", "sb_peers": "Pares: %zu", + "sb_plaintext_remote_blocked": "Se rechaza enviar credenciales RPC en texto plano a un host remoto. Añade rpcallowplaintext=1 a DRAGONX.conf para permitirlo, o habilita TLS con rpctls=1.", "sb_rescanning": "Reescaneando", "sb_rescanning_pct": "Reescaneando %.0f%%", "sb_restarting_daemon": "Reiniciando daemon...", diff --git a/res/lang/fr.json b/res/lang/fr.json index e26f9a2..19402f6 100644 --- a/res/lang/fr.json +++ b/res/lang/fr.json @@ -734,6 +734,9 @@ "lite_working": "En cours…", "loading": "Chargement...", "loading_addresses": "Chargement des adresses...", + "loading_stall_body": "Le démon s'initialise depuis %.0f s. Cela peut être normal après une mise à jour ou au premier lancement (chargement de l'index des blocs ou nouvelle analyse) — la connexion se fera automatiquement une fois prêt.", + "loading_stall_hint": "Toujours bloqué ? Ouvrez les Paramètres et utilisez Redémarrer le démon, ou consultez la Console pour plus de détails.", + "loading_stall_title": "Cela prend plus de temps que prévu", "loading_transactions": "Chargement des transactions", "local_hashrate": "Hashrate local", "low_spec_mode": "Mode économie", @@ -1154,6 +1157,8 @@ "sb_connecting_external": "Connexion au daemon externe...", "sb_connecting_generic": "Connexion au daemon...", "sb_daemon_crashed": "Le daemon a planté %d fois", + "sb_daemon_extract_failed": "Échec de l'écriture des fichiers du démon — vérifiez l'espace disque libre et les permissions.", + "sb_daemon_files_failed": "Échec de l'écriture des fichiers du démon dans %s — vérifiez l'espace disque libre et les permissions.", "sb_daemon_not_found": "Daemon introuvable", "sb_daemon_start_failed": "Impossible de démarrer dragonxd", "sb_dragonxd_running": "dragonxd en cours", @@ -1169,6 +1174,7 @@ "sb_net_mhs": "Rés: %.2f MH/s", "sb_no_conf": "DRAGONX.conf introuvable", "sb_peers": "Pairs : %zu", + "sb_plaintext_remote_blocked": "Refus d'envoyer les identifiants RPC en clair vers un hôte distant. Ajoutez rpcallowplaintext=1 à DRAGONX.conf pour l'autoriser, ou activez TLS avec rpctls=1.", "sb_rescanning": "Rescan", "sb_rescanning_pct": "Rescan %.0f%%", "sb_restarting_daemon": "Redémarrage du daemon...", diff --git a/res/lang/ja.json b/res/lang/ja.json index 20faea3..230c66c 100644 --- a/res/lang/ja.json +++ b/res/lang/ja.json @@ -734,6 +734,9 @@ "lite_working": "処理中…", "loading": "読み込み中...", "loading_addresses": "アドレスを読み込み中...", + "loading_stall_body": "デーモンは %.0f 秒間初期化しています。アップデート後や初回起動時(ブロックインデックスの読み込みや再スキャン)は正常な場合があります。準備ができ次第、自動的に接続します。", + "loading_stall_hint": "まだ動かない場合は、設定を開いて「デーモンを再起動」を使うか、コンソールで詳細を確認してください。", + "loading_stall_title": "予想より時間がかかっています", "loading_transactions": "トランザクションを読み込み中", "local_hashrate": "ローカルハッシュレート", "low_spec_mode": "省電力モード", diff --git a/res/lang/ko.json b/res/lang/ko.json index 4bf3704..8b05e1c 100644 --- a/res/lang/ko.json +++ b/res/lang/ko.json @@ -734,6 +734,8 @@ "lite_working": "작업 중…", "loading": "로딩 중...", "loading_addresses": "주소 로딩 중...", + "loading_stall_body": "데몬이 %.0f초 동안 초기화 중입니다. 업데이트 후나 첫 실행 시(블록 인덱스 로드 또는 재스캔)에는 정상일 수 있습니다. 준비되면 자동으로 연결됩니다.", + "loading_stall_title": "예상보다 오래 걸리고 있습니다", "loading_transactions": "거래를 불러오는 중", "local_hashrate": "로컬 해시레이트", "low_spec_mode": "저사양 모드", @@ -1154,6 +1156,8 @@ "sb_connecting_external": "외부 데몬에 연결 중...", "sb_connecting_generic": "데몬에 연결 중...", "sb_daemon_crashed": "데몬이 %d회 충돌함", + "sb_daemon_extract_failed": "데몬 파일을 쓰지 못했습니다. 디스크 여유 공간과 권한을 확인하세요.", + "sb_daemon_files_failed": "%s에 데몬 파일을 쓰지 못했습니다. 디스크 여유 공간과 권한을 확인하세요.", "sb_daemon_not_found": "데몬을 찾을 수 없음", "sb_daemon_start_failed": "dragonxd를 시작할 수 없습니다", "sb_dragonxd_running": "dragonxd 실행 중", @@ -1169,6 +1173,7 @@ "sb_net_mhs": "네트: %.2f MH/s", "sb_no_conf": "DRAGONX.conf를 찾을 수 없음", "sb_peers": "피어: %zu", + "sb_plaintext_remote_blocked": "원격 호스트로 RPC 자격 증명을 평문으로 보내는 것을 거부했습니다. 허용하려면 DRAGONX.conf에 rpcallowplaintext=1을 추가하거나 rpctls=1로 TLS를 활성화하세요.", "sb_rescanning": "재스캔", "sb_rescanning_pct": "재스캔 %.0f%%", "sb_restarting_daemon": "데몬 재시작 중...", diff --git a/res/lang/pt.json b/res/lang/pt.json index 76b9db0..350f364 100644 --- a/res/lang/pt.json +++ b/res/lang/pt.json @@ -734,6 +734,9 @@ "lite_working": "Processando…", "loading": "Carregando...", "loading_addresses": "Carregando endereços...", + "loading_stall_body": "O daemon está inicializando há %.0f s. Isso pode ser normal após uma atualização ou no primeiro início (carregando o índice de blocos ou reescaneando) — ele se conectará automaticamente quando estiver pronto.", + "loading_stall_hint": "Ainda travado? Abra as Configurações e use Reiniciar daemon, ou verifique o Console para mais detalhes.", + "loading_stall_title": "Está demorando mais do que o esperado", "loading_transactions": "Carregando transações", "local_hashrate": "Hashrate Local", "low_spec_mode": "Modo econômico", @@ -1154,6 +1157,8 @@ "sb_connecting_external": "Conectando ao daemon externo...", "sb_connecting_generic": "Conectando ao daemon...", "sb_daemon_crashed": "O daemon travou %d vezes", + "sb_daemon_extract_failed": "Falha ao gravar os arquivos do daemon — verifique o espaço livre em disco e as permissões.", + "sb_daemon_files_failed": "Falha ao gravar os arquivos do daemon em %s — verifique o espaço livre em disco e as permissões.", "sb_daemon_not_found": "Daemon não encontrado", "sb_daemon_start_failed": "Não foi possível iniciar o dragonxd", "sb_dragonxd_running": "dragonxd em execução", @@ -1169,6 +1174,7 @@ "sb_net_mhs": "Rede: %.2f MH/s", "sb_no_conf": "DRAGONX.conf não encontrado", "sb_peers": "Pares: %zu", + "sb_plaintext_remote_blocked": "Recusando enviar credenciais RPC em texto simples para um host remoto. Adicione rpcallowplaintext=1 ao DRAGONX.conf para permitir, ou habilite TLS com rpctls=1.", "sb_rescanning": "Reescaneando", "sb_rescanning_pct": "Reescaneando %.0f%%", "sb_restarting_daemon": "Reiniciando daemon...", diff --git a/res/lang/ru.json b/res/lang/ru.json index e173208..1ce7f9f 100644 --- a/res/lang/ru.json +++ b/res/lang/ru.json @@ -734,6 +734,9 @@ "lite_working": "Обработка…", "loading": "Загрузка...", "loading_addresses": "Загрузка адресов...", + "loading_stall_body": "Демон инициализируется уже %.0f с. Это может быть нормально после обновления или при первом запуске (загрузка индекса блоков или повторное сканирование) — соединение установится автоматически, когда он будет готов.", + "loading_stall_hint": "Всё ещё не отвечает? Откройте Настройки и нажмите «Перезапустить демон» или посмотрите подробности в Консоли.", + "loading_stall_title": "Занимает больше времени, чем ожидалось", "loading_transactions": "Загрузка транзакций", "local_hashrate": "Локальный хешрейт", "low_spec_mode": "Режим экономии", @@ -1154,6 +1157,8 @@ "sb_connecting_external": "Подключение к внешнему демону...", "sb_connecting_generic": "Подключение к демону...", "sb_daemon_crashed": "Демон упал %d раз", + "sb_daemon_extract_failed": "Не удалось записать файлы демона — проверьте свободное место на диске и права доступа.", + "sb_daemon_files_failed": "Не удалось записать файлы демона в %s — проверьте свободное место на диске и права доступа.", "sb_daemon_not_found": "Демон не найден", "sb_daemon_start_failed": "Не удалось запустить dragonxd", "sb_dragonxd_running": "dragonxd запущен", @@ -1169,6 +1174,7 @@ "sb_net_mhs": "Сеть: %.2f MH/s", "sb_no_conf": "DRAGONX.conf не найден", "sb_peers": "Пиры: %zu", + "sb_plaintext_remote_blocked": "Отправка учётных данных RPC открытым текстом на удалённый узел запрещена. Добавьте rpcallowplaintext=1 в DRAGONX.conf, чтобы разрешить, или включите TLS с помощью rpctls=1.", "sb_rescanning": "Пересканирование", "sb_rescanning_pct": "Пересканирование %.0f%%", "sb_restarting_daemon": "Перезапуск демона...", diff --git a/res/lang/zh.json b/res/lang/zh.json index 7eed6a3..9310852 100644 --- a/res/lang/zh.json +++ b/res/lang/zh.json @@ -734,6 +734,8 @@ "lite_working": "处理中…", "loading": "加载中...", "loading_addresses": "正在加载地址...", + "loading_stall_body": "守护进程已初始化 %.0f 秒。更新后或首次启动时(加载区块索引或重新扫描)这可能是正常现象——就绪后会自动连接。", + "loading_stall_title": "耗时超出预期", "loading_transactions": "正在加载交易", "local_hashrate": "本地算力", "low_spec_mode": "低配模式", @@ -1154,6 +1156,8 @@ "sb_connecting_external": "正在连接外部守护进程...", "sb_connecting_generic": "正在连接守护进程...", "sb_daemon_crashed": "守护进程崩溃 %d 次", + "sb_daemon_extract_failed": "无法写入守护进程文件——请检查磁盘剩余空间和权限。", + "sb_daemon_files_failed": "无法将守护进程文件写入 %s——请检查磁盘剩余空间和权限。", "sb_daemon_not_found": "未找到守护进程", "sb_daemon_start_failed": "无法启动 dragonxd", "sb_dragonxd_running": "dragonxd 运行中",