Files
keydr/locales/es.yml
Tyler Hallada 84f4aabdff Add full set of locale translations
Generated using Claude Code / Codex so there may be errors
2026-03-17 05:05:32 +00:00

458 lines
19 KiB
YAML

# Menú principal
menu:
subtitle: 'Tutor de Mecanografía en Terminal'
adaptive_drill: 'Ejercicio Adaptativo'
adaptive_drill_desc: 'Palabras fonéticas con desbloqueo adaptativo de teclas'
code_drill: 'Ejercicio de Código'
code_drill_desc: 'Practica escribiendo sintaxis de código'
passage_drill: 'Ejercicio de Pasaje'
passage_drill_desc: 'Escribe pasajes de libros'
skill_tree: 'Árbol de Habilidades'
skill_tree_desc: 'Ver ramas de progresión e iniciar ejercicios'
keyboard: 'Teclado'
keyboard_desc: 'Explora la distribución del teclado y estadísticas'
statistics: 'Estadísticas'
statistics_desc: 'Ver tus estadísticas de escritura'
settings: 'Configuración'
settings_desc: 'Configurar keydr'
day_streak: ' | %{days} días seguidos'
key_progress: ' Progreso de Teclas %{unlocked}/%{total} (%{mastered} dominadas) | Objetivo %{target} WPM%{streak}'
hint_start: '[1-3] Iniciar'
hint_skill_tree: '[t] Árbol de Habilidades'
hint_keyboard: '[b] Teclado'
hint_stats: '[s] Estadísticas'
hint_settings: '[c] Configuración'
hint_quit: '[q] Salir'
# Pantalla de ejercicio
drill:
title: ' Ejercicio '
mode_adaptive: 'Adaptativo'
mode_code: 'Código (Sin rango)'
mode_passage: 'Pasaje (Sin rango)'
focus_char: 'Foco: ''%{ch}'''
focus_bigram: 'Foco: "%{bigram}"'
focus_both: 'Foco: ''%{ch}'' + "%{bigram}"'
header_wpm: 'WPM'
header_acc: 'Pre'
header_err: 'Err'
code_source: ' Fuente de código '
passage_source: ' Fuente del pasaje '
footer: '[ESC] Fin [Backspace] Borrar'
keys_reenabled: 'Teclas reactivadas en %{ms}ms'
hint_end: '[ESC] Fin del ejercicio'
hint_backspace: '[Backspace] Borrar'
# Panel / resultado del ejercicio
dashboard:
title: ' Ejercicio Completo '
results: 'Resultados'
unranked_note_prefix: ' (Sin rango'
unranked_note_suffix: ' no cuenta para el árbol de habilidades)'
speed: ' Velocidad: '
accuracy_label: ' Precisión: '
time_label: ' Tiempo: '
errors_label: ' Errores: '
correct_detail: ' (%{correct}/%{total} correctos)'
input_blocked: ' Entrada bloqueada temporalmente '
input_blocked_ms: '(%{ms}ms restantes)'
hint_continue: '[c/Enter/Space] Continuar'
hint_retry: '[r] Reintentar'
hint_menu: '[q] Menú'
hint_stats: '[s] Estadísticas'
hint_delete: '[x] Eliminar'
# Barra lateral de estadísticas (durante el ejercicio)
sidebar:
title: ' Estadísticas '
wpm: 'WPM: '
target: 'Objetivo: '
target_wpm: '%{wpm} WPM'
accuracy: 'Precisión: '
progress: 'Progreso: '
correct: 'Correcto: '
errors: 'Errores: '
time: 'Tiempo: '
last_drill: ' Último Ejercicio '
vs_avg: ' vs prom: '
# Panel de estadísticas
stats:
title: ' Estadísticas '
empty: 'Aún no hay ejercicios completados. ¡Empieza a escribir!'
tab_dashboard: '[1] Panel'
tab_history: '[2] Historial'
tab_activity: '[3] Actividad'
tab_accuracy: '[4] Precisión'
tab_timing: '[5] Tiempos'
tab_ngrams: '[6] N-gramas'
hint_back: '[ESC] Volver'
hint_next_tab: '[Tab] Siguiente pestaña'
hint_switch_tab: '[1-6] Cambiar pestaña'
hint_navigate: '[j/k] Navegar'
hint_page: '[PgUp/PgDn] Página'
hint_delete: '[x] Eliminar'
summary_title: ' Resumen '
drills: ' Ejercicios: '
avg_wpm: ' WPM Prom: '
best_wpm: ' Mejor WPM: '
accuracy_label: ' Precisión: '
total_time: ' Tiempo total: '
wpm_chart_title: ' WPM por Ejercicio (Últimos 20, Objetivo: %{target}) '
accuracy_chart_title: ' Precisión %% (Últimos 50 Ejercicios) '
chart_drill: 'Ejercicio #'
chart_accuracy_pct: 'Precisión %%'
sessions_title: ' Sesiones Recientes '
session_header: ' # WPM Raw Pre%% Tiempo Fecha/Hora Modo Rango Parcial'
session_separator: ' ─────────────────────────────────────────────────────────────────────'
delete_confirm: '¿Eliminar sesión #%{idx}? (y/n)'
confirm_title: ' Confirmar '
yes: 'sí'
no: 'no'
keyboard_accuracy_title: ' Precisión del Teclado %% '
keyboard_timing_title: ' Tiempos del Teclado (ms) '
slowest_keys_title: ' Teclas más Lentas (ms) '
fastest_keys_title: ' Teclas más Rápidas (ms) '
worst_accuracy_title: ' Peor Precisión (%%) '
best_accuracy_title: ' Mejor Precisión (%%) '
not_enough_data: ' Datos insuficientes'
streaks_title: ' Rachas '
current_streak: ' Actual: '
best_streak: ' Mejor: '
active_days: ' Días activos: '
top_days_none: ' Mejores días: ninguno'
top_days: ' Mejores días: %{days}'
wpm_label: ' WPM: %{avg}/%{target} (%{pct}%%)'
acc_label: ' Pre: %{pct}%%'
keys_label: ' Teclas: %{unlocked}/%{total} (%{mastered} dominadas)'
ngram_empty: 'Completa ejercicios adaptativos para ver datos de n-gramas'
ngram_header_speed_narrow: ' Bgrm Vel Esper Anom%'
ngram_header_error_narrow: ' Bgrm Err Mst Tasa Esp Anom%'
ngram_header_speed: ' Bigrama Vel Esper Muestras Anom%'
ngram_header_error: ' Bigrama Errores Muestras Tasa Esper Anom%'
focus_title: ' Foco Activo '
focus_char_label: ' Foco: '
focus_bigram_value: 'Bigrama %{label}'
focus_plus: ' + '
anomaly_error: 'errores'
anomaly_speed: 'velocidad'
focus_detail_both: ' Carácter ''%{ch}'': tecla más débil | Bigrama %{label}: anomalía de %{type} %{pct}%%'
focus_detail_char_only: ' Carácter ''%{ch}'': tecla más débil, sin anomalías de bigrama confirmadas'
focus_detail_bigram_only: ' (anomalía de %{type}: %{pct}%%)'
focus_empty: ' Completa ejercicios adaptativos para ver datos de foco'
error_anomalies_title: ' Anomalías de Error (%{count}) '
no_error_anomalies: ' No se detectaron anomalías de error'
speed_anomalies_title: ' Anomalías de Velocidad (%{count}) '
no_speed_anomalies: ' No se detectaron anomalías de velocidad'
scope_label_prefix: ' '
bi_label: ' | Bi: %{count}'
tri_label: ' | Tri: %{count}'
hes_label: ' | Hes: >%{ms}ms'
gain_label: ' | Gan: %{value}'
gain_interval: ' (cada 50)'
focus_char_value: 'Carácter ''%{ch}'''
# Mapa de actividad
heatmap:
title: ' Actividad Diaria (Sesiones por Día) '
jan: 'Ene'
feb: 'Feb'
mar: 'Mar'
apr: 'Abr'
may: 'May'
jun: 'Jun'
jul: 'Jul'
aug: 'Ago'
sep: 'Sep'
oct: 'Oct'
nov: 'Nov'
dec: 'Dic'
# Gráfico
chart:
wpm_over_time: ' WPM a lo largo del tiempo '
drill_number: 'Ejercicio #'
# Configuración
settings:
title: ' Configuración '
subtitle: 'Usa las flechas para navegar, Enter/Derecha para cambiar, ESC para guardar y salir'
target_wpm: 'WPM Objetivo'
theme: 'Tema'
word_count: 'Cantidad de Palabras'
ui_language: 'Idioma de Interfaz'
dictionary_language: 'Idioma del Diccionario'
keyboard_layout: 'Distribución de Teclado'
code_language: 'Lenguaje de Código'
code_downloads: 'Descargas de Código'
on: 'Sí'
off: 'No'
code_download_dir: 'Dir. Descarga de Código'
snippets_per_repo: 'Fragmentos por Repo'
unlimited: 'Ilimitado'
download_code_now: 'Descargar Código Ahora'
run_downloader: 'Ejecutar descargador'
passage_downloads: 'Descargas de Pasajes'
passage_download_dir: 'Dir. Descarga de Pasajes'
paragraphs_per_book: 'Párrafos por Libro'
whole_book: 'Libro completo'
download_passages_now: 'Descargar Pasajes Ahora'
export_path: 'Ruta de Exportación'
export_data: 'Exportar Datos'
export_now: 'Exportar ahora'
import_path: 'Ruta de Importación'
import_data: 'Importar Datos'
import_now: 'Importar ahora'
hint_save_back: '[ESC] Guardar y volver'
hint_change_value: '[Enter/flechas] Cambiar valor'
hint_edit_path: '[Enter en ruta] Editar'
hint_move: '[←→] Mover'
hint_tab_complete: '[Tab] Completar (al final)'
hint_confirm: '[Enter] Confirmar'
hint_cancel: '[Esc] Cancelar'
success_title: ' Éxito '
error_title: ' Fallo '
press_any_key: 'Presiona cualquier tecla'
file_exists_title: ' Archivo Existente '
file_exists: 'Ya existe un archivo en esta ruta.'
overwrite_rename: '[d] Sobrescribir [r] Renombrar [Esc] Cancelar'
erase_warning: 'Esto borrará tus datos actuales.'
export_first: 'Exporta primero si deseas conservarlos.'
proceed_yn: '¿Continuar? (y/n)'
confirm_import_title: ' Confirmar Importación '
# Pantallas de selección
select:
dictionary_language_title: ' Seleccionar Idioma del Diccionario '
keyboard_layout_title: ' Seleccionar Distribución de Teclado '
code_language_title: ' Seleccionar Lenguaje de Código '
passage_source_title: ' Seleccionar Fuente de Pasajes '
ui_language_title: ' Seleccionar Idioma de Interfaz '
more_above: '... %{count} más arriba ...'
more_below: '... %{count} más abajo ...'
current: ' (actual)'
disabled: ' (desactivado)'
enabled_default: ' (activado, predeterminado: %{layout})'
enabled: ' (activado)'
disabled_blocked: ' (desactivado: bloqueado)'
built_in: ' (incluido)'
cached: ' (en caché)'
disabled_download: ' (desactivado: requiere descarga)'
download_required: ' (requiere descarga)'
hint_navigate: '[Up/Down/PgUp/PgDn] Navegar'
hint_confirm: '[Enter] Confirmar'
hint_back: '[ESC] Volver'
language_resets_layout: 'Seleccionar un idioma restablece la distribución a la predeterminada de ese idioma.'
layout_no_language_change: 'Cambiar distribución no cambia el idioma del diccionario.'
disabled_network_notice: 'Algunos idiomas están desactivados: activa las descargas en intro/configuración.'
disabled_sources_notice: 'Algunas fuentes están desactivadas: activa las descargas en intro/configuración.'
passage_all: 'Todos (Incluidos + todos los libros)'
passage_builtin: 'Solo pasajes incluidos'
passage_book_prefix: 'Libro: %{title}'
# Progreso
progress:
overall_key_progress: 'Progreso General de Teclas'
unlocked_mastered: '%{unlocked}/%{total} desbloqueadas (%{mastered} dominadas)'
# Árbol de habilidades
skill_tree:
title: ' Árbol de Habilidades '
locked: 'Bloqueado'
unlocked: 'desbloqueado'
mastered: 'dominado'
in_progress: 'en progreso'
complete: 'completo'
locked_status: 'bloqueado'
locked_notice: 'Completa %{count} letras primarias para desbloquear ramas'
branches_separator: 'Ramas (disponibles tras %{count} letras primarias)'
unlocked_letters: 'Desbloqueadas %{unlocked}/%{total} letras'
level: 'Nivel %{current}/%{total}'
level_zero: 'Nivel 0/%{total}'
in_focus: ' en foco'
hint_navigate: '[↑↓/jk] Navegar'
hint_scroll: '[PgUp/PgDn o Ctrl+U/Ctrl+D] Desplazar'
hint_back: '[q] Volver'
hint_unlock: '[Enter] Desbloquear'
hint_start_drill: '[Enter] Iniciar Ejercicio'
unlock_msg_1: 'Una vez desbloqueado, el ejercicio adaptativo incluirá teclas de esta rama que estén desbloqueadas.'
unlock_msg_2: 'Si quieres enfocarte solo en esta rama, inicia un ejercicio directamente desde esta rama en el Árbol de Habilidades.'
confirm_unlock: '¿Desbloquear %{branch}?'
confirm_yn: '[y] Desbloquear [n/ESC] Cancelar'
lvl_prefix: 'Niv'
branch_primary_letters: 'Letras Primarias'
branch_capital_letters: 'Letras Mayúsculas'
branch_numbers: 'Números 0-9'
branch_prose_punctuation: 'Puntuación de Prosa'
branch_whitespace: 'Espacios en Blanco'
branch_code_symbols: 'Símbolos de Código'
level_frequency_order: 'Orden por Frecuencia'
level_common_sentence_capitals: 'Mayúsculas Comunes de Oración'
level_name_capitals: 'Mayúsculas de Nombres'
level_remaining_capitals: 'Mayúsculas Restantes'
level_common_digits: 'Dígitos Comunes'
level_all_digits: 'Todos los Dígitos'
level_essential: 'Esencial'
level_common: 'Común'
level_expressive: 'Expresivo'
level_enter_return: 'Enter/Retorno'
level_tab_indent: 'Tab/Sangría'
level_arithmetic_assignment: 'Aritmética y Asignación'
level_grouping: 'Agrupación'
level_logic_reference: 'Lógica y Referencia'
level_special: 'Especial'
# Hitos
milestones:
unlock_title: ' ¡Tecla Desbloqueada! '
mastery_title: ' ¡Tecla Dominada! '
branches_title: ' ¡Nuevas Ramas Disponibles! '
branch_complete_title: ' ¡Rama Completada! '
all_unlocked_title: ' ¡Todas las Teclas Desbloqueadas! '
all_mastered_title: ' ¡Dominio Total del Teclado! '
unlocked: 'desbloqueada'
mastered: 'dominada'
use_finger: 'Usa tu dedo %{finger}'
hold_right_shift: 'Mantén Shift Derecho (meñique derecho)'
hold_left_shift: 'Mantén Shift Izquierdo (meñique izquierdo)'
congratulations_all_letters: '¡Felicidades! Has dominado las %{count} letras primarias'
new_branches_available: 'Nuevas ramas de habilidades están disponibles:'
visit_skill_tree: 'Visita el Árbol de Habilidades para desbloquear una nueva rama'
and_start_training: '¡y empieza a entrenar!'
open_skill_tree: 'Presiona [t] para abrir el Árbol de Habilidades'
branch_complete_msg: '¡Has completado la rama %{branch}!'
all_levels_mastered: 'Los %{count} niveles dominados.'
all_keys_confident: 'Cada tecla en esta rama está a máxima confianza.'
all_unlocked_msg: '¡Has desbloqueado todas las teclas del teclado!'
all_unlocked_desc: 'Cada carácter, símbolo y modificador está disponible en tus ejercicios.'
keep_practicing_mastery: 'Sigue practicando para alcanzar el dominio — cuando cada tecla llegue a'
confidence_complete: 'máxima confianza, ¡habrás logrado el dominio total del teclado!'
all_mastered_msg: '¡Felicidades — has alcanzado el dominio total del teclado!'
all_mastered_desc: 'Cada tecla del teclado está a máxima confianza.'
mastery_takes_practice: 'El dominio no es un destino — requiere práctica continua.'
keep_drilling: 'Sigue practicando para mantener tu nivel.'
hint_skill_tree_continue: '[t] Abrir Árbol de Habilidades [Otra tecla] Continuar'
hint_any_key: 'Presiona cualquier tecla para continuar'
input_blocked: 'Entrada bloqueada temporalmente (%{ms}ms restantes)'
unlock_msg_1: '¡Buen trabajo! Sigue mejorando tus habilidades.'
unlock_msg_2: '¡Otra tecla añadida a tu arsenal!'
unlock_msg_3: '¡Tu teclado crece! Sigue así.'
unlock_msg_4: '¡Un paso más cerca del dominio total!'
mastery_msg_1: '¡Esta tecla está a máxima confianza!'
mastery_msg_2: '¡Dominas esta tecla a la perfección!'
mastery_msg_3: '¡Memoria muscular asegurada!'
mastery_msg_4: '¡Una tecla más conquistada!'
# Explorador de teclado
keyboard:
title: ' Teclado '
subtitle: 'Presiona o haz clic en una tecla'
hint_navigate: '[←→↑↓/hjkl/Tab] Navegar'
hint_back: '[q/ESC] Volver'
key_label: 'Tecla: '
finger_label: 'Dedo: '
hand_left: 'Izquierda'
hand_right: 'Derecha'
finger_index: 'Índice'
finger_middle: 'Medio'
finger_ring: 'Anular'
finger_pinky: 'Meñique'
finger_thumb: 'Pulgar'
overall_accuracy: ' Precisión general: %{correct}/%{total} (%{pct}%%)'
ranked_accuracy: ' Precisión clasificada: %{correct}/%{total} (%{pct}%%)'
confidence: 'Confianza: '
no_data: 'Sin datos aún'
no_data_short: 'Sin datos'
key_details: ' Detalles de Tecla '
key_details_char: ' Detalles de Tecla: ''%{ch}'' '
key_details_name: ' Detalles de Tecla: %{name} '
press_key_hint: 'Presiona una tecla para ver sus detalles'
shift_label: 'Shift: '
shift_no: 'No'
overall_avg_time: 'Tiempo Prom. General: '
overall_best_time: 'Mejor Tiempo General: '
overall_samples: 'Muestras Generales: '
overall_accuracy_label: 'Precisión General: '
branch_label: 'Rama: '
level_label: 'Nivel: '
built_in_key: 'Tecla Integrada'
unlocked_label: 'Desbloqueada: '
yes: 'Sí'
no: 'No'
in_focus_label: '¿En Foco?: '
mastery_label: 'Dominio: '
mastery_locked: 'Bloqueado'
ranked_avg_time: 'Tiempo Prom. Clasificado: '
ranked_best_time: 'Mejor Tiempo Clasificado: '
ranked_samples: 'Muestras Clasificadas: '
ranked_accuracy_label: 'Precisión Clasificada: '
# Diálogos de introducción
intro:
passage_title: ' Configurar Descarga de Pasajes '
code_title: ' Configurar Descarga de Código '
enable_downloads: 'Activar descargas de red'
download_dir: 'Directorio de descarga'
paragraphs_per_book: 'Párrafos por libro (0 = completo)'
whole_book: 'libro completo'
snippets_per_repo: 'Fragmentos por repo (0 = ilimitado)'
unlimited: 'ilimitado'
start_passage_drill: 'Iniciar ejercicio de pasaje'
start_code_drill: 'Iniciar ejercicio de código'
confirm: 'Confirmar'
hint_navigate: '[Up/Down] Navegar'
hint_adjust: '[Left/Right] Ajustar'
hint_edit: '[Type/Backspace] Editar'
hint_confirm: '[Enter] Confirmar'
hint_cancel: '[ESC] Cancelar'
preparing_download: 'Preparando descarga...'
download_passage_title: ' Descargando Fuente de Pasaje '
download_code_title: ' Descargando Fuente de Código '
book_label: ' Libro: %{name}'
repo_label: ' Repo: %{name}'
progress_bytes: '[%{name}] %{downloaded}/%{total} bytes'
downloaded_bytes: 'Descargado: %{bytes} bytes'
downloading_book_progress: 'Descargando libro actual: [%{bar}] %{downloaded}/%{total} bytes'
downloading_book_bytes: 'Descargando libro actual: %{bytes} bytes'
downloading_code_progress: 'Descargando: [%{bar}] %{downloaded}/%{total} bytes'
downloading_code_bytes: 'Descargando: %{bytes} bytes'
current_book: 'Actual: %{name} (libro %{done}/%{total})'
current_repo: 'Actual: %{name} (repo %{done}/%{total})'
passage_instructions_1: 'keydr puede descargar pasajes de Project Gutenberg para práctica de escritura.'
passage_instructions_2: 'Los libros se descargan una vez y se almacenan localmente.'
passage_instructions_3: 'Configura los ajustes de descarga abajo, luego inicia un ejercicio de pasaje.'
code_instructions_1: 'keydr puede descargar código abierto de GitHub para práctica de escritura.'
code_instructions_2: 'El código se descarga una vez y se almacena localmente.'
code_instructions_3: 'Configura los ajustes de descarga abajo, luego inicia un ejercicio de código.'
# Mensajes de estado (de app.rs)
status:
recovery_files: 'Se encontraron archivos de recuperación de una importación interrumpida. Los datos pueden ser inconsistentes — considera reimportar.'
dir_not_exist: 'El directorio no existe: %{path}'
no_data_store: 'No hay almacén de datos disponible'
serialization_error: 'Error de serialización: %{error}'
exported_to: 'Exportado a %{path}'
export_failed: 'Exportación fallida: %{error}'
could_not_read: 'No se pudo leer el archivo: %{error}'
invalid_export: 'Archivo de exportación inválido: %{error}'
unsupported_version: 'Versión de exportación no soportada: %{got} (se esperaba %{expected})'
import_failed: 'Importación fallida: %{error}'
imported_theme_fallback: 'Importado exitosamente (tema ''%{theme}'' no encontrado, usando predeterminado)'
imported_success: 'Importado exitosamente'
adaptive_unavailable: 'Modo adaptativo clasificado no disponible: %{error}'
switched_to: 'Cambiado a %{name}'
layout_changed: 'Distribución cambiada a %{name}'
# Errores (para traducción de límites de UI)
errors:
unknown_language: 'Idioma desconocido: %{key}'
unknown_layout: 'Distribución de teclado desconocida: %{key}'
unsupported_pair: 'Par idioma/distribución no soportado: %{language} + %{layout}'
language_blocked: 'Idioma bloqueado por nivel de soporte: %{key}'
# Común
common:
wpm: 'WPM'
cpm: 'CPM'
back: 'Volver'