i18n(wizard): translate the first-run wizard (was all hardcoded English)

The first-run wizard predated the i18n system — every label, button, and help
line was hardcoded English. Route them all through TR():

- 62 literals in app_wizard.cpp replaced with TR(). Where a wizard string is a
  parallel of existing content, it reuses the existing key (the whole bootstrap_*
  family, plus theme / language / balance_layout / low_spec_mode / ui_opacity /
  console_scanline / download / retry / cancel) so it inherits their translations
  and stays consistent with Settings. Button labels drop their ##id suffix and use
  TR(key) directly (the app's established TactileButton(TR(...)) pattern; the
  wizard's phase buttons never share a frame, so no id collision).
- 55 new wiz_* English keys in i18n.cpp for the wizard-specific strings, and their
  translations back-filled across all 8 languages (es/de/fr/pt/ru/zh/ja/ko);
  format specifiers (%s, %zu) and newlines preserved. CJK subset rebuilt.

Verified on the sweep: English renders with correct labels in place (all keys
resolve), and a German run shows the reused + new keys translated end-to-end
(Darstellung / Acryl-Glaseffekte / Verschlüsseln & Weiter …).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-12 01:41:18 -05:00
parent 758ea06ab7
commit 09e0b962c3
11 changed files with 581 additions and 84 deletions

View File

@@ -1369,6 +1369,61 @@
"warning_upper": "¡ADVERTENCIA!",
"website": "Sitio Web",
"window_opacity": "Opacidad de ventana",
"wiz_acrylic": "Efectos de vidrio acrílico",
"wiz_acrylic_desc": "Desenfoque translúcido en paneles (Desactivado lo apaga)",
"wiz_already_encrypted": "La cartera ya está cifrada",
"wiz_already_encrypted_desc": "Tu cartera está protegida con una frase de contraseña. No es necesaria ninguna acción adicional.",
"wiz_appearance": "Apariencia",
"wiz_bootstrap": "Bootstrap",
"wiz_bootstrap_desc": "Descarga un bootstrap de la cadena de bloques para acelerar drásticamente la sincronización inicial.\\n\\nTu wallet.dat existente NO se modificará ni se reemplazará.",
"wiz_bootstrap_failed": "Error en el bootstrap",
"wiz_confirm": "Confirmar:",
"wiz_continue": "Continuar",
"wiz_daemon_sending_stop": "Enviando comando de detención...",
"wiz_daemon_stop_failed": "El daemon no se detuvo — inténtalo manualmente.",
"wiz_daemon_stopped_ok": "Daemon detenido.",
"wiz_daemon_waiting_stop": "Esperando a que el daemon se cierre...",
"wiz_download_failed": "Error de descarga",
"wiz_encrypt_bg": "El cifrado se completará en segundo plano",
"wiz_encrypt_continue": "Cifrar y continuar",
"wiz_encrypt_desc": "Cifra tu cartera para proteger las claves privadas con una frase de contraseña.",
"wiz_encrypt_warning": "Si pierdes tu frase de contraseña, pierdes el acceso a tus fondos.",
"wiz_encryption": "Cifrado",
"wiz_ext_daemon_running": "Daemon externo en ejecución",
"wiz_ext_daemon_warning": "Debe detenerse antes de descargar un bootstrap; de lo contrario, los datos de la cadena podrían corromperse.",
"wiz_level": "Nivel:",
"wiz_lowspec_desc": "Desactivar todos los efectos visuales pesados",
"wiz_off": "Desactivado",
"wiz_pass_mismatch": "Las frases de contraseña no coinciden",
"wiz_pass_spaces": "La frase de contraseña tiene espacios al inicio o al final — elimínalos",
"wiz_pass_too_short": "La frase de contraseña debe tener al menos 8 caracteres (%zu/8)",
"wiz_passphrase": "Frase de contraseña:",
"wiz_pin_confirm": "Confirmar PIN:",
"wiz_pin_invalid": "El PIN debe tener entre 4 y 8 dígitos",
"wiz_pin_label": "PIN (4-8 dígitos):",
"wiz_pin_mismatch": "Los PIN no coinciden",
"wiz_pin_optional": "PIN de desbloqueo rápido (opcional)",
"wiz_pin_title": "PIN de desbloqueo rápido",
"wiz_scanline_desc": "Efecto de líneas de barrido CRT en la consola",
"wiz_skip": "Omitir",
"wiz_skip_confirm": "¿Continuar SIN cifrado? Las claves se almacenarán sin cifrar — haz clic en Omitir de nuevo para confirmar.",
"wiz_step1": "Paso 1",
"wiz_step2": "Paso 2",
"wiz_step3": "Paso 3",
"wiz_stop_daemon": "Detener daemon",
"wiz_strength": "Seguridad: %s",
"wiz_strength_fair": "Aceptable",
"wiz_strength_good": "Buena",
"wiz_strength_strong": "Fuerte",
"wiz_strength_weak": "Débil",
"wiz_theme_builtin": "Integrado",
"wiz_theme_custom": "Personalizado",
"wiz_theme_effects": "Efectos visuales del tema",
"wiz_theme_effects_desc": "Bordes animados, capa de color",
"wiz_theme_invalid": " (no válido)",
"wiz_ui_opacity_desc": "Transparencia de tarjetas y barra lateral (1.0 = sólido)",
"wiz_welcome_sub": "Unas cuantas opciones rápidas y tu nodo completo estará listo.",
"wiz_welcome_title": "¡Bienvenido a ObsidianDragon!",
"wizard_daemon_start_failed": "Error al iniciar el daemon — se reintentará automáticamente",
"xmrig_browse_releases": "Ver todos los lanzamientos…",
"xmrig_checking": "Buscando el minero más reciente…",