feat(i18n): add English source + 8-language translations for 193 UI strings

Adds the i18n source for 193 previously-hardcoded UI strings (the
security / PIN / lock flow, first-run seed-backup wizard, witness-rebuild
shutdown dialog, and balance / mining / explorer labels) so they can be
localized. The TR() call-site wrapping rides in the accompanying UI commit.

- 193 keys added to loadBuiltinEnglish() (the English source of truth),
  including one pre-existing missing key (copied_to_clipboard).
- Additive res/lang/{de,es,fr,ja,ko,pt,ru,zh}.json (+193 each); every
  translation's printf format-signature was validated against English
  (0 mismatches) so the runtime validator accepts them.
- Rebuilt res/fonts/NotoSansCJK-Subset.ttf to cover ~30 new Han/Hangul
  glyphs introduced by the zh/ja/ko translations (tofu-free).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-01 19:36:50 -05:00
parent 4492aa3425
commit ed675f90d8
10 changed files with 1925 additions and 0 deletions

View File

@@ -60,6 +60,80 @@
"amount_label": "Betrag:",
"animate_avatars": "Avatare animieren",
"appearance": "ERSCHEINUNGSBILD",
"appx_back": "Zurück",
"appx_back_up_seed_phrase_title": "Sichern Sie Ihre Seed-Phrase",
"appx_birthday_block_height": "Geburtstag (Blockhöhe): %llu — sichern Sie auch dies.",
"appx_blockchain_data_deleted": "Blockchain-Daten gelöscht (%d Elemente). Der Daemon wird neu gestartet, um sich erneut mit dem Netzwerk zu synchronisieren.",
"appx_blockchain_maintenance_in_progress": "Eine Blockchain-Wartung läuft bereits.",
"appx_blockchain_rescan_complete": "Blockchain-Neuscan abgeschlossen",
"appx_bootstrap_complete_reconciling": "Bootstrap abgeschlossen — Ihr Wallet wird mit den neuen Chain-Daten abgeglichen.",
"appx_cancel": "Abbrechen",
"appx_cleaning_up": "Aufräumen...",
"appx_confirm_your_backup": "Backup bestätigen",
"appx_copied_clipboard_autoclears": "Kopiert — Zwischenablage wird in 45s automatisch geleert",
"appx_copy": "Kopieren",
"appx_could_not_start_restore": "Wiederherstellung konnte nicht gestartet werden",
"appx_create_failed_prefix": "Erstellen fehlgeschlagen: ",
"appx_creating_your_wallet": "Ihr Wallet wird erstellt…",
"appx_daemon_error": "Daemon-Fehler",
"appx_daemon_reinstall_in_progress": "Die Daemon-Neuinstallation läuft bereits.",
"appx_disconnecting": "Verbindung wird getrennt...",
"appx_done": "Fertig",
"appx_dragonxd_output": "dragonxd-Ausgabe",
"appx_encrypting_wallet": "Wallet wird verschlüsselt...",
"appx_fullnode_lifecycle_unavailable_lite": "Full-Node-Lebenszyklusaktionen sind im Lite-Build nicht verfügbar",
"appx_installing_bundled_daemon": "Mitgelieferter Daemon wird installiert — der Node stoppt, aktualisiert und startet neu...",
"appx_invalid_payment_uri_prefix": "Ungültige Zahlungs-URI: ",
"appx_ive_written_it_down": "Ich habe sie notiert",
"appx_keep_node_running_and_quit": "Node weiterlaufen lassen & beenden",
"appx_last_block_n": "Letzter Block: %d",
"appx_last_used_wallet_not_found_prefix": "Ihre zuletzt verwendete Wallet-Datei (",
"appx_last_used_wallet_not_found_suffix": ") wurde nicht gefunden — stattdessen wurde das Standard-Wallet geöffnet. Wenn Sie sie verschoben haben, stellen Sie sie wieder her und wechseln Sie über die Wallet-Liste zurück.",
"appx_low_spec_mode_disabled": "Low-Spec-Modus deaktiviert",
"appx_low_spec_mode_enabled": "Low-Spec-Modus aktiviert",
"appx_miner_stopped_prefix": "Miner gestoppt: ",
"appx_miner_stopped_unexpectedly": "Miner wurde unerwartet gestoppt.",
"appx_n_min_n_sec": "%d Min %d Sek",
"appx_n_seconds": "%d Sekunden",
"appx_no_bundled_daemon_to_install": "Dieser Build enthält keinen mitgelieferten Daemon zur Installation",
"appx_no_embedded_daemon_to_install": "Dieser Build enthält keinen eingebetteten Daemon zur Installation",
"appx_node_busy_restarting": "Der Node ist mit dem Neustart beschäftigt — versuchen Sie es gleich erneut.",
"appx_node_rebuilding_witness_cache": "Node baut seinen Witness-Cache neu auf",
"appx_not_next_word": " — das ist nicht das nächste Wort",
"appx_payment_request_loaded": "Zahlungsanforderung geladen",
"appx_pool_miner_connected_and_hashing": "Pool-Miner verbunden und aktiv.",
"appx_progress_n_of_n": "Fortschritt: %d / %d",
"appx_rebuilding_sapling_note_witnesses": "Sapling-Note-Witnesses werden neu aufgebaut…",
"appx_rebuilding_witness_cache_blocks_left": "Witness-Cache wird neu aufgebaut %.0f%% — %d Blöcke verbleiben",
"appx_rebuilding_witness_cache_pct": "Witness-Cache wird neu aufgebaut %.0f%%",
"appx_recovery_phrase_word_count": "Die Wiederherstellungsphrase sollte 24 Wörter haben — Sie haben %d.",
"appx_restarting_daemon_rescan_flag": "Daemon wird mit -rescan-Flag neu gestartet...",
"appx_restarting_daemon_zapwallettxes": "Daemon wird mit -zapwallettxes=2 neu gestartet (Wallet-Reparatur)...",
"appx_restoring_your_wallet": "Ihr Wallet wird wiederhergestellt…",
"appx_seed_backup_warning": "Diese 24 Wörter sind die EINZIGE Möglichkeit, Ihr Wallet wiederherzustellen. Notieren Sie sie in der richtigen Reihenfolge, bewahren Sie sie offline auf und geben Sie sie niemals weiter. Wenn Sie sie verlieren, sind Ihre Guthaben für immer verloren.",
"appx_seed_not_backed_up_warning": "Sie haben Ihren Seed nicht gesichert — Guthaben könnten verloren gehen. Trotzdem überspringen?",
"appx_sending_stop_command_to_daemon": "Stopp-Befehl wird an Daemon gesendet...",
"appx_setting_initial_sapling_witnesses": "Initiale Sapling-Witnesses werden gesetzt %.0f%%",
"appx_shutdown_complete": "Herunterfahren abgeschlossen",
"appx_simple_background_disabled": "Einfacher Hintergrund deaktiviert",
"appx_simple_background_enabled": "Einfacher Hintergrund aktiviert",
"appx_skip": "Überspringen",
"appx_skip_anyway": "Trotzdem überspringen",
"appx_still_status_prefix": "Weiterhin \"",
"appx_still_status_suffix": "\" — ein erzwungenes Beenden jetzt kann die Chain-Daten beschädigen.",
"appx_stop_anyway_and_quit": "Trotzdem stoppen & beenden",
"appx_stopping_daemon_deleting_blockchain": "Daemon wird gestoppt und Blockchain-Daten werden gelöscht...",
"appx_stopping_node_discards_rebuild": "Wenn Sie den Node jetzt stoppen, wird der laufende Neuaufbau verworfen und beim nächsten Öffnen des Wallets neu gestartet (mehrere Minuten). Sie können den Node stattdessen weiterlaufen lassen.",
"appx_stopping_pool_miner": "Pool-Miner wird gestoppt...",
"appx_syncing_pct_block_n_of_n": "Synchronisierung %.1f%% — Block %d / %d",
"appx_tap_words_in_order": "Tippen Sie die Wörter in der richtigen Reihenfolge an, um zu bestätigen, dass Sie sie gespeichert haben.",
"appx_theme_effects_disabled": "Design-Effekte deaktiviert",
"appx_theme_effects_enabled": "Design-Effekte aktiviert",
"appx_theme_prefix": "Design: ",
"appx_use_settings_restart_daemon_hint": "Verwenden Sie Einstellungen > Daemon neu starten, um es erneut zu versuchen",
"appx_waiting_for_daemon_to_encrypt_wallet": "Warten, bis der Daemon das Wallet verschlüsselt...",
"appx_wallet_created_and_backed_up": "Wallet erstellt und gesichert.",
"appx_wallet_open_failed_prefix": "Öffnen des Wallets fehlgeschlagen: ",
"auto_shield": "Mining automatisch abschirmen",
"av_intro": "Mining-Software wird oft als potenziell unerwünscht eingestuft. Führen Sie diese Schritte aus, um das Pool-Mining zu aktivieren:",
"av_open_security": "Windows-Sicherheit öffnen",
@@ -100,6 +174,17 @@
"balance_shielded_fmt": "Abgeschirmt: %.8f",
"balance_syncing_pct": "Synchronisiere %.1f%%",
"balance_transparent_fmt": "Transparent: %.8f",
"baltab_market": "Markt",
"baltab_market_price_4dp": "Markt: $%.4f",
"baltab_market_price_8dp": "Markt: $%.8f",
"baltab_pct_change_24h": "%s%.1f%% 24h",
"baltab_pct_of_total_zaddr": "%.0f%% des Gesamtbetrags · %d Z-addr",
"baltab_shielded": "Geschützt",
"baltab_shielded_amount": "Geschützt %.8f",
"baltab_t_addresses_count": "%d T-Adressen",
"baltab_total_balance": "Gesamtguthaben",
"baltab_transparent": "Transparent",
"baltab_transparent_amount": "Transparent %.8f",
"ban": "Sperren",
"banned_peers": "Gesperrte Peers",
"block": "Block",
@@ -414,6 +499,7 @@
"contacts_shape_square": "Quadrat",
"contacts_shape_tab": "Reiter",
"copied": "Kopiert!",
"copied_to_clipboard": "In die Zwischenablage kopiert",
"copy": "Kopieren",
"copy_address": "Vollständige Adresse kopieren",
"copy_error": "Fehler kopieren",
@@ -593,6 +679,63 @@
"general": "Allgemein",
"generating": "Wird generiert",
"go_to_receive": "Zum Empfangen",
"grpa_current_block_paren": "(Aktuell: %d)",
"grpa_days_ago": "vor %lld Tagen",
"grpa_dbg_addrman": "Verfolgung und Verwaltung von Peer-Adressen",
"grpa_dbg_alert": "Meldungen des Alarmsystems",
"grpa_dbg_bench": "Benchmark-Zeiten für Operationen",
"grpa_dbg_coindb": "Lese-/Schreiboperationen der Coin-Datenbank",
"grpa_dbg_db": "Berkeley-DB-Operationen",
"grpa_dbg_estimatefee": "Algorithmus zur Gebührenschätzung",
"grpa_dbg_http": "Aktivität des HTTP-RPC-Servers",
"grpa_dbg_libevent": "Libevent-Netzwerkbibliothek",
"grpa_dbg_lock": "Debugging von Lock-Konflikten",
"grpa_dbg_mempool": "Aktivität des Transaktions-Mempools",
"grpa_dbg_net": "Netzwerkverbindungen und -nachrichten",
"grpa_dbg_paymentdisclosure": "Zahlungsoffenlegungsprotokoll",
"grpa_dbg_pow": "Proof-of-Work-Mining-Aktivität",
"grpa_dbg_proxy": "SOCKS5-Proxy-Verbindungen",
"grpa_dbg_prune": "Block-Pruning-Operationen",
"grpa_dbg_rand": "Zufallszahlengenerierung",
"grpa_dbg_reindex": "Fortschritt der Blockchain-Neuindizierung",
"grpa_dbg_rpc": "Verarbeitung von RPC-Befehlen",
"grpa_dbg_selectcoins": "Coin-Auswahl für Transaktionen",
"grpa_dbg_tor": "Tor-Integration und Circuit-Informationen",
"grpa_dbg_zmq": "ZeroMQ-Benachrichtigungssystem",
"grpa_dbg_zrpc": "Geschützte (z-addr) RPC-Operationen",
"grpa_enter_private_key_to_import": "Geben Sie einen privaten Schlüssel zum Importieren ein.",
"grpa_error_prefix": "Fehler: ",
"grpa_hr_ago": "vor %lld Std",
"grpa_invalid_response_from_daemon": "Ungültige Antwort vom Daemon",
"grpa_invalid_suffix": " (ungültig)",
"grpa_min_ago": "vor %lld Min",
"grpa_sec_ago": "vor %lld Sek",
"grpa_seed_demo_chat": "Seed-Demo-Chat",
"grpa_showing_first_100_of": "... die ersten 100 von %d werden angezeigt",
"grpa_tab_about": "Über",
"grpa_tab_appearance": "Darstellung",
"grpa_tab_backup_data": "Backup & Daten",
"grpa_tab_chat": "Chat",
"grpa_tab_explorer": "Explorer",
"grpa_tab_node_security": "Node & Sicherheit",
"grpa_tab_wallet": "Wallet",
"grpa_unexpected_getblockhash_result": "unerwartetes getblockhash-Ergebnis",
"grpb_copy": "Kopieren",
"grpb_max": "Max",
"grpb_new_badge_suffix": " [NEU]",
"grpb_preview_msg_payment_through": "Ist die Zahlung durchgegangen? 🙂",
"grpb_preview_msg_sending_rest": "Sende jetzt den Rest 👍",
"grpb_preview_msg_yep_confirmed": "Ja — gerade bestätigt ✅",
"grpb_selected_suffix": "\n(ausgewählt)",
"grpb_tooltip_address_balance": "%s\nGuthaben: %.8f %s%s",
"grpb_undo_clear": "Löschen rückgängig",
"grpc_benchmark_inconclusive": "Benchmark nicht aussagekräftig: es wurden keine Hashrate-Werte aufgezeichnet. Prüfen Sie die Pool-Verbindung und versuchen Sie es erneut.",
"grpc_benchmark_takes_secs": "Der Benchmark dauert ~%ds und unterbricht das Mining. Erneut klicken zum Starten.",
"grpc_bootstrap_failed": "Bootstrap fehlgeschlagen",
"grpc_bootstrap_not_initialized": "Bootstrap nicht initialisiert",
"grpc_hashrate_fee": "%s %s%% Gebühr",
"grpc_key_not_available": "Schlüssel für diese Adresse nicht verfügbar",
"grpc_na": "N/V",
"height": "Höhe",
"help": "Hilfe",
"hidden_tag": " (versteckt)",
@@ -1240,6 +1383,45 @@
"screenshot_sweep_full": "Vollständiger UI-Durchlauf",
"search_icons": "Symbole suchen...",
"search_placeholder": "Suchen...",
"sec_changing_passphrase": "Passphrase wird geändert...",
"sec_changing_pin": "PIN wird geändert...",
"sec_couldnt_lock_wallet": "Wallet konnte nicht gesperrt werden — es ist weiterhin entsperrt. Prüfen Sie die Daemon-Verbindung.",
"sec_encrypted_backup_suffix": "\nVerschlüsseltes Backup: wallet.dat.encrypted.bak",
"sec_encrypting_wallet": "Wallet wird verschlüsselt...",
"sec_encryption_did_not_complete": "Die Wallet-Verschlüsselung wurde nicht abgeschlossen — Ihr Wallet ist NICHT verschlüsselt. Öffnen Sie die Einstellungen, um die Verschlüsselung abzuschließen.",
"sec_encryption_failed_prefix": "Verschlüsselung fehlgeschlagen: ",
"sec_failed_prefix": "Fehlgeschlagen: ",
"sec_failed_to_create_vault": "Tresor konnte nicht erstellt werden",
"sec_importing_keys_rescanning": "Schlüssel werden importiert & Blockchain neu gescannt — Wallet ist währenddessen nutzbar",
"sec_incorrect_current_pin": "Aktuelle PIN falsch",
"sec_incorrect_passphrase_decrypt": "Falsche Passphrase",
"sec_incorrect_passphrase_pin_setup": "Falsche Passphrase",
"sec_incorrect_pin_remove": "Falsche PIN",
"sec_internal_error_change_pin": "Interner Fehler",
"sec_internal_error_remove_pin": "Interner Fehler",
"sec_mode_passphrase": " Passphrase",
"sec_not_connected_to_daemon": "Nicht mit Daemon verbunden",
"sec_not_connected_to_daemon_pin": "Nicht mit Daemon verbunden",
"sec_passphrase_changed_successfully": "Passphrase erfolgreich geändert",
"sec_pin_changed_successfully": "PIN erfolgreich geändert",
"sec_pin_removed": "PIN entfernt",
"sec_pin_set_successfully": "PIN erfolgreich festgelegt",
"sec_restart_daemon_for_encryption": "Bitte starten Sie Ihren Daemon neu, damit die Verschlüsselung wirksam wird.",
"sec_too_many_attempts_wait": "Zu viele Versuche. Warten Sie %.0f Sekunden...",
"sec_total_elapsed_fmt": "Gesamtdauer: %dm %02ds",
"sec_unlock_button": "Entsperren",
"sec_unlock_failed_prefix": "Entsperren fehlgeschlagen: ",
"sec_unlocking_fmt": "Entsperren%s",
"sec_use_passphrase_instead": "Stattdessen Passphrase verwenden",
"sec_use_pin_instead": "Stattdessen PIN verwenden",
"sec_verifying_passphrase": "Passphrase wird überprüft...",
"sec_verifying_pin": "PIN wird überprüft...",
"sec_wallet_decrypted_all_keys_imported": "Wallet erfolgreich entschlüsselt! Alle Schlüssel importiert.",
"sec_wallet_encrypted_and_pin_set": "Wallet verschlüsselt & PIN festgelegt",
"sec_wallet_encrypted_but_pin_vault_failed": "Wallet verschlüsselt, aber PIN-Tresor fehlgeschlagen",
"sec_wallet_encrypted_restarting_daemon": "Wallet verschlüsselt. Daemon wird neu gestartet...",
"sec_wallet_encrypted_successfully": "Wallet erfolgreich verschlüsselt",
"sec_wallet_locked_title": "Wallet gesperrt",
"security": "SICHERHEIT",
"seed_backup_button": "Wiederherstellungsphrase",
"seed_backup_close": "Schließen",
@@ -1461,6 +1643,17 @@
"sweep_to": "Gefegt an:",
"sweep_toggle": "In meine Wallet fegen (Schlüssel nicht behalten)",
"sweep_tx": "Transaktion:",
"swin_connection_failed": "Verbindung fehlgeschlagen: ",
"swin_connection_successful": "Verbindung erfolgreich!\ndragonxd-Version: ",
"swin_invalid_suffix": " (ungültig)",
"swin_no_history_file_found": "Keine Verlaufsdatei gefunden",
"swin_rescan_failed": "Neuscan fehlgeschlagen: ",
"swin_rescan_started_from_block": "Neuscan gestartet ab Block ",
"swin_rescan_to": " bis ",
"swin_rpc_client_not_initialized": "RPC-Client nicht initialisiert",
"swin_settings_saved": "Einstellungen gespeichert",
"swin_theme_list_refreshed": "Design-Liste aktualisiert",
"swin_ztx_history_cleared": "Z-Transaktionsverlauf gelöscht",
"switch_corrupt_body": "Diese Wallet scheint beschädigt zu sein der Knoten konnte sie nicht öffnen. Aus einem Backup wiederherstellen, neu erstellen oder eine Reparatur versuchen.",
"switch_corrupt_repair": "Reparatur versuchen (Salvage)",
"switch_progress_background": "Im Hintergrund fortsetzen",