# Menu principal
menu:
  subtitle: 'Tuteur de Frappe en Terminal'
  adaptive_drill: 'Exercice Adaptatif'
  adaptive_drill_desc: 'Mots phonétiques avec déverrouillage adaptatif des touches'
  code_drill: 'Exercice de Code'
  code_drill_desc: 'Entraînez-vous à taper la syntaxe du code'
  passage_drill: 'Exercice de Passage'
  passage_drill_desc: 'Tapez des passages de livres'
  skill_tree: 'Arbre de Compétences'
  skill_tree_desc: 'Voir les branches de progression et lancer des exercices'
  keyboard: 'Clavier'
  keyboard_desc: 'Explorer la disposition du clavier et les statistiques'
  statistics: 'Statistiques'
  statistics_desc: 'Voir vos statistiques de frappe'
  settings: 'Paramètres'
  settings_desc: 'Configurer keydr'
  day_streak: ' | %{days} jours consécutifs'
  key_progress: ' Progression %{unlocked}/%{total} (%{mastered} maîtrisées) | Objectif %{target} WPM%{streak}'
  hint_start: '[1-3] Démarrer'
  hint_skill_tree: '[t] Arbre de Compétences'
  hint_keyboard: '[b] Clavier'
  hint_stats: '[s] Statistiques'
  hint_settings: '[c] Paramètres'
  hint_quit: '[q] Quitter'

# Écran d'exercice
drill:
  title: ' Exercice '
  mode_adaptive: 'Adaptatif'
  mode_code: 'Code (Non classé)'
  mode_passage: 'Passage (Non classé)'
  focus_char: 'Focus : ''%{ch}'''
  focus_bigram: 'Focus : "%{bigram}"'
  focus_both: 'Focus : ''%{ch}'' + "%{bigram}"'
  header_wpm: 'WPM'
  header_acc: 'Pré'
  header_err: 'Err'
  code_source: ' Source du code '
  passage_source: ' Source du passage '
  footer: '[ESC] Fin  [Backspace] Effacer'
  keys_reenabled: 'Touches réactivées en %{ms}ms'
  hint_end: '[ESC] Fin de l''exercice'
  hint_backspace: '[Backspace] Effacer'

# Tableau de bord / résultat de l'exercice
dashboard:
  title: ' Exercice Terminé '
  results: 'Résultats'
  unranked_note_prefix: '  (Non classé'
  unranked_note_suffix: ' ne compte pas pour l''arbre de compétences)'
  speed: '  Vitesse :   '
  accuracy_label: '  Précision : '
  time_label: '  Temps :     '
  errors_label: '  Erreurs :   '
  correct_detail: '  (%{correct}/%{total} corrects)'
  input_blocked: '  Saisie temporairement bloquée '
  input_blocked_ms: '(%{ms}ms restantes)'
  hint_continue: '[c/Enter/Space] Continuer'
  hint_retry: '[r] Réessayer'
  hint_menu: '[q] Menu'
  hint_stats: '[s] Statistiques'
  hint_delete: '[x] Supprimer'

# Barre latérale de statistiques (pendant l'exercice)
sidebar:
  title: ' Statistiques '
  wpm: 'WPM : '
  target: 'Objectif : '
  target_wpm: '%{wpm} WPM'
  accuracy: 'Précision : '
  progress: 'Progression : '
  correct: 'Corrects : '
  errors: 'Erreurs : '
  time: 'Temps : '
  last_drill: ' Dernier Exercice '
  vs_avg: '  vs moy : '

# Tableau de bord des statistiques
stats:
  title: ' Statistiques '
  empty: 'Aucun exercice terminé. Commencez à taper !'
  tab_dashboard: '[1] Tableau de bord'
  tab_history: '[2] Historique'
  tab_activity: '[3] Activité'
  tab_accuracy: '[4] Précision'
  tab_timing: '[5] Chronométrage'
  tab_ngrams: '[6] N-grammes'
  hint_back: '[ESC] Retour'
  hint_next_tab: '[Tab] Onglet suivant'
  hint_switch_tab: '[1-6] Changer d''onglet'
  hint_navigate: '[j/k] Naviguer'
  hint_page: '[PgUp/PgDn] Défiler'
  hint_delete: '[x] Supprimer'
  summary_title: ' Résumé '
  drills: '  Exercices : '
  avg_wpm: '    WPM Moy : '
  best_wpm: '    Meilleur WPM : '
  accuracy_label: '  Précision : '
  total_time: '    Temps total : '
  wpm_chart_title: ' WPM par Exercice (20 derniers, Objectif : %{target}) '
  accuracy_chart_title: ' Précision %% (50 derniers Exercices) '
  chart_drill: 'Exercice #'
  chart_accuracy_pct: 'Précision %%'
  sessions_title: ' Sessions Récentes '
  session_header: '   #     WPM    Raw    Pré%%    Temps     Date/Heure        Mode       Classé  Partiel'
  session_separator: '  ─────────────────────────────────────────────────────────────────────'
  delete_confirm: 'Supprimer la session #%{idx} ? (y/n)'
  confirm_title: ' Confirmer '
  yes: 'oui'
  no: 'non'
  keyboard_accuracy_title: ' Précision du Clavier %% '
  keyboard_timing_title: ' Chronométrage du Clavier (ms) '
  slowest_keys_title: ' Touches les plus Lentes (ms) '
  fastest_keys_title: ' Touches les plus Rapides (ms) '
  worst_accuracy_title: ' Pire Précision (%%) '
  best_accuracy_title: ' Meilleure Précision (%%) '
  not_enough_data: ' Données insuffisantes'
  streaks_title: ' Séries '
  current_streak: '  Actuelle : '
  best_streak: '    Meilleure : '
  active_days: '    Jours actifs : '
  top_days_none: '  Meilleurs jours : aucun'
  top_days: '  Meilleurs jours : %{days}'
  wpm_label: '  WPM : %{avg}/%{target} (%{pct}%%)'
  acc_label: '  Pré : %{pct}%%'
  keys_label: '  Touches : %{unlocked}/%{total} (%{mastered} maîtrisées)'
  ngram_empty: 'Terminez des exercices adaptatifs pour voir les données de n-grammes'
  ngram_header_speed_narrow: ' Bgrm Vit   Att   Anom%'
  ngram_header_error_narrow: ' Bgrm Err Éch Taux Att Anom%'
  ngram_header_speed: ' Bigramme Vit    Att     Échan.   Anom%'
  ngram_header_error: ' Bigramme Erreurs Échan.   Taux  Att     Anom%'
  focus_title: ' Focus Actif '
  focus_char_label: '  Focus : '
  focus_bigram_value: 'Bigramme %{label}'
  focus_plus: ' + '
  anomaly_error: 'erreur'
  anomaly_speed: 'vitesse'
  focus_detail_both: '  Caractère ''%{ch}'' : touche la plus faible | Bigramme %{label} : anomalie de %{type} %{pct}%%'
  focus_detail_char_only: '  Caractère ''%{ch}'' : touche la plus faible, aucune anomalie de bigramme confirmée'
  focus_detail_bigram_only: '  (anomalie de %{type} : %{pct}%%)'
  focus_empty: '  Terminez des exercices adaptatifs pour voir les données de focus'
  error_anomalies_title: ' Anomalies d''Erreur (%{count}) '
  no_error_anomalies: ' Aucune anomalie d''erreur détectée'
  speed_anomalies_title: ' Anomalies de Vitesse (%{count}) '
  no_speed_anomalies: ' Aucune anomalie de vitesse détectée'
  scope_label_prefix: ' '
  bi_label: ' | Bi : %{count}'
  hes_label: ' | Hés : >%{ms}ms'
  focus_char_value: 'Caractère ''%{ch}'''

# Carte d'activité
heatmap:
  title: ' Activité Quotidienne (Sessions par Jour) '
  jan: 'Jan'
  feb: 'Fév'
  mar: 'Mar'
  apr: 'Avr'
  may: 'Mai'
  jun: 'Jun'
  jul: 'Jul'
  aug: 'Aoû'
  sep: 'Sep'
  oct: 'Oct'
  nov: 'Nov'
  dec: 'Déc'

# Graphique
chart:
  wpm_over_time: ' WPM au fil du temps '
  drill_number: 'Exercice #'

# Paramètres
settings:
  title: ' Paramètres '
  subtitle: 'Utilisez les flèches pour naviguer, Entrée/Droite pour changer, ESC pour sauvegarder et quitter'
  target_wpm: 'WPM Objectif'
  theme: 'Thème'
  word_count: 'Nombre de Mots'
  ui_language: 'Langue de l''Interface'
  dictionary_language: 'Langue du Dictionnaire'
  keyboard_layout: 'Disposition du Clavier'
  code_language: 'Langage de Code'
  code_downloads: 'Téléchargements de Code'
  on: 'Oui'
  off: 'Non'
  code_download_dir: 'Rép. Téléchargement Code'
  snippets_per_repo: 'Extraits par Dépôt'
  unlimited: 'Illimité'
  download_code_now: 'Télécharger Code Maintenant'
  run_downloader: 'Lancer le téléchargeur'
  passage_downloads: 'Téléchargements de Passages'
  passage_download_dir: 'Rép. Téléchargement Passages'
  paragraphs_per_book: 'Paragraphes par Livre'
  whole_book: 'Livre entier'
  download_passages_now: 'Télécharger Passages Maintenant'
  export_path: 'Chemin d''Export'
  export_data: 'Exporter les Données'
  export_now: 'Exporter maintenant'
  import_path: 'Chemin d''Import'
  import_data: 'Importer les Données'
  import_now: 'Importer maintenant'
  hint_save_back: '[ESC] Sauvegarder et retour'
  hint_change_value: '[Enter/flèches] Changer la valeur'
  hint_edit_path: '[Enter sur chemin] Éditer'
  hint_move: '[←→] Déplacer'
  hint_tab_complete: '[Tab] Compléter (à la fin)'
  hint_confirm: '[Enter] Confirmer'
  hint_cancel: '[Esc] Annuler'
  success_title: ' Succès '
  error_title: ' Erreur '
  press_any_key: 'Appuyez sur une touche'
  file_exists_title: ' Fichier Existant '
  file_exists: 'Un fichier existe déjà à ce chemin.'
  overwrite_rename: '[d] Écraser  [r] Renommer  [Esc] Annuler'
  erase_warning: 'Ceci effacera vos données actuelles.'
  export_first: 'Exportez d''abord si vous voulez les conserver.'
  proceed_yn: 'Continuer ? (y/n)'
  confirm_import_title: ' Confirmer l''Importation '

# Écrans de sélection
select:
  dictionary_language_title: ' Sélectionner la Langue du Dictionnaire '
  keyboard_layout_title: ' Sélectionner la Disposition du Clavier '
  code_language_title: ' Sélectionner le Langage de Code '
  passage_source_title: ' Sélectionner la Source de Passages '
  ui_language_title: ' Sélectionner la Langue de l''Interface '
  more_above: '... %{count} de plus au-dessus ...'
  more_below: '... %{count} de plus en-dessous ...'
  current: ' (actuel)'
  disabled: ' (désactivé)'
  enabled_default: ' (activé, par défaut : %{layout})'
  enabled: ' (activé)'
  disabled_blocked: ' (désactivé : bloqué)'
  built_in: ' (intégré)'
  cached: ' (en cache)'
  disabled_download: ' (désactivé : téléchargement requis)'
  download_required: ' (téléchargement requis)'
  hint_navigate: '[Up/Down/PgUp/PgDn] Naviguer'
  hint_confirm: '[Enter] Confirmer'
  hint_back: '[ESC] Retour'
  language_resets_layout: 'Sélectionner une langue réinitialise la disposition à celle par défaut de cette langue.'
  layout_no_language_change: 'Changer la disposition ne change pas la langue du dictionnaire.'
  disabled_network_notice: 'Certaines langues sont désactivées : activez les téléchargements dans intro/paramètres.'
  disabled_sources_notice: 'Certaines sources sont désactivées : activez les téléchargements dans intro/paramètres.'
  passage_all: 'Tous (Intégrés + tous les livres)'
  passage_builtin: 'Passages intégrés uniquement'
  passage_book_prefix: 'Livre : %{title}'

# Progression
progress:
  overall_key_progress: 'Progression Globale des Touches'
  unlocked_mastered: '%{unlocked}/%{total} déverrouillées (%{mastered} maîtrisées)'

# Arbre de compétences
skill_tree:
  title: ' Arbre de Compétences '
  locked: 'Verrouillé'
  unlocked: 'déverrouillé'
  mastered: 'maîtrisé'
  in_progress: 'en cours'
  complete: 'terminé'
  locked_status: 'verrouillé'
  locked_notice: 'Terminez %{count} lettres primaires pour débloquer les branches'
  branches_separator: 'Branches (disponibles après %{count} lettres primaires)'
  unlocked_letters: 'Déverrouillées %{unlocked}/%{total} lettres'
  level: 'Niveau %{current}/%{total}'
  level_zero: 'Niveau 0/%{total}'
  in_focus: '  en focus'
  hint_navigate: '[↑↓/jk] Naviguer'
  hint_scroll: '[PgUp/PgDn ou Ctrl+U/Ctrl+D] Défiler'
  hint_back: '[q] Retour'
  hint_unlock: '[Enter] Déverrouiller'
  hint_start_drill: '[Enter] Lancer l''Exercice'
  unlock_msg_1: 'Une fois déverrouillé, l''exercice adaptatif inclura les touches de cette branche qui sont déverrouillées.'
  unlock_msg_2: 'Si vous voulez vous concentrer sur cette branche, lancez un exercice directement depuis cette branche dans l''Arbre de Compétences.'
  confirm_unlock: 'Déverrouiller %{branch} ?'
  confirm_yn: '[y] Déverrouiller  [n/ESC] Annuler'
  lvl_prefix: 'Niv'
  branch_primary_letters: 'Lettres Primaires'
  branch_capital_letters: 'Lettres Majuscules'
  branch_numbers: 'Chiffres 0-9'
  branch_prose_punctuation: 'Ponctuation de Prose'
  branch_whitespace: 'Espaces Blancs'
  branch_code_symbols: 'Symboles de Code'
  level_frequency_order: 'Ordre de Fréquence'
  level_common_sentence_capitals: 'Majuscules de Phrases Courantes'
  level_name_capitals: 'Majuscules de Noms'
  level_remaining_capitals: 'Majuscules Restantes'
  level_common_digits: 'Chiffres Courants'
  level_all_digits: 'Tous les Chiffres'
  level_essential: 'Essentiel'
  level_common: 'Courant'
  level_expressive: 'Expressif'
  level_enter_return: 'Entrée/Retour'
  level_tab_indent: 'Tab/Indentation'
  level_arithmetic_assignment: 'Arithmétique et Affectation'
  level_grouping: 'Groupement'
  level_logic_reference: 'Logique et Référence'
  level_special: 'Spécial'

# Jalons
milestones:
  unlock_title: ' Touche Déverrouillée ! '
  mastery_title: ' Touche Maîtrisée ! '
  branches_title: ' Nouvelles Branches Disponibles ! '
  branch_complete_title: ' Branche Terminée ! '
  all_unlocked_title: ' Toutes les Touches Déverrouillées ! '
  all_mastered_title: ' Maîtrise Totale du Clavier ! '
  unlocked: 'déverrouillée'
  mastered: 'maîtrisée'
  use_finger: 'Utilisez votre %{finger}'
  hold_right_shift: 'Maintenez Shift Droit (auriculaire droit)'
  hold_left_shift: 'Maintenez Shift Gauche (auriculaire gauche)'
  congratulations_all_letters: 'Félicitations ! Vous avez maîtrisé les %{count} lettres primaires'
  new_branches_available: 'De nouvelles branches de compétences sont disponibles :'
  visit_skill_tree: 'Visitez l''Arbre de Compétences pour déverrouiller une nouvelle branche'
  and_start_training: 'et commencez l''entraînement !'
  open_skill_tree: 'Appuyez sur [t] pour ouvrir l''Arbre de Compétences'
  branch_complete_msg: 'Vous avez terminé la branche %{branch} !'
  all_levels_mastered: 'Les %{count} niveaux sont maîtrisés.'
  all_keys_confident: 'Chaque touche de cette branche est à confiance maximale.'
  all_unlocked_msg: 'Vous avez déverrouillé toutes les touches du clavier !'
  all_unlocked_desc: 'Chaque caractère, symbole et modificateur est disponible dans vos exercices.'
  keep_practicing_mastery: 'Continuez à pratiquer pour atteindre la maîtrise — quand chaque touche atteindra'
  confidence_complete: 'la confiance maximale, vous aurez atteint la maîtrise totale du clavier !'
  all_mastered_msg: 'Félicitations — vous avez atteint la maîtrise totale du clavier !'
  all_mastered_desc: 'Chaque touche du clavier est à confiance maximale.'
  mastery_takes_practice: 'La maîtrise n''est pas une destination — elle nécessite une pratique continue.'
  keep_drilling: 'Continuez à vous entraîner pour garder votre niveau.'
  hint_skill_tree_continue: '[t] Ouvrir l''Arbre de Compétences  [Autre touche] Continuer'
  hint_any_key: 'Appuyez sur une touche pour continuer'
  input_blocked: 'Saisie temporairement bloquée (%{ms}ms restantes)'
  unlock_msg_1: 'Bon travail ! Continuez à améliorer vos compétences.'
  unlock_msg_2: 'Une touche de plus dans votre arsenal !'
  unlock_msg_3: 'Votre clavier s''agrandit ! Continuez !'
  unlock_msg_4: 'Un pas de plus vers la maîtrise totale !'
  mastery_msg_1: 'Cette touche est à confiance maximale !'
  mastery_msg_2: 'Vous maîtrisez cette touche parfaitement !'
  mastery_msg_3: 'Mémoire musculaire acquise !'
  mastery_msg_4: 'Une touche de plus conquise !'

# Explorateur de clavier
keyboard:
  title: ' Clavier '
  subtitle: 'Appuyez ou cliquez sur une touche'
  hint_navigate: '[←→↑↓/hjkl/Tab] Naviguer'
  hint_back: '[q/ESC] Retour'
  key_label: 'Touche : '
  finger_label: 'Doigt : '
  hand_left: 'Gauche'
  hand_right: 'Droite'
  finger_index: 'Indicateur'
  finger_middle: 'Majeur'
  finger_ring: 'Annulaire'
  finger_pinky: 'Auriculaire'
  finger_thumb: 'Pouce'
  overall_accuracy: '  Précision globale : %{correct}/%{total} (%{pct}%%)'
  ranked_accuracy: '  Précision classée : %{correct}/%{total} (%{pct}%%)'
  confidence: 'Confiance : '
  no_data: 'Pas encore de données'
  no_data_short: 'Pas de données'
  key_details: ' Détails de la Touche '
  key_details_char: ' Détails de la Touche : ''%{ch}'' '
  key_details_name: ' Détails de la Touche : %{name} '
  press_key_hint: 'Appuyez sur une touche pour voir ses détails'
  shift_label: 'Shift : '
  shift_no: 'Non'
  overall_avg_time: 'Temps Moy. Global : '
  overall_best_time: 'Meilleur Temps Global : '
  overall_samples: 'Échantillons Globaux : '
  overall_accuracy_label: 'Précision Globale : '
  branch_label: 'Branche : '
  level_label: 'Niveau : '
  built_in_key: 'Touche Intégrée'
  unlocked_label: 'Déverrouillée : '
  yes: 'Oui'
  no: 'Non'
  in_focus_label: 'En Focus ? : '
  mastery_label: 'Maîtrise : '
  mastery_locked: 'Verrouillé'
  ranked_avg_time: 'Temps Moy. Classé : '
  ranked_best_time: 'Meilleur Temps Classé : '
  ranked_samples: 'Échantillons Classés : '
  ranked_accuracy_label: 'Précision Classée : '

# Dialogues d'introduction
intro:
  passage_title: ' Configuration Téléchargement de Passages '
  code_title: ' Configuration Téléchargement de Code '
  enable_downloads: 'Activer les téléchargements réseau'
  download_dir: 'Répertoire de téléchargement'
  paragraphs_per_book: 'Paragraphes par livre (0 = entier)'
  whole_book: 'livre entier'
  snippets_per_repo: 'Extraits par dépôt (0 = illimité)'
  unlimited: 'illimité'
  start_passage_drill: 'Lancer l''exercice de passage'
  start_code_drill: 'Lancer l''exercice de code'
  confirm: 'Confirmer'
  hint_navigate: '[Up/Down] Naviguer'
  hint_adjust: '[Left/Right] Ajuster'
  hint_edit: '[Type/Backspace] Éditer'
  hint_confirm: '[Enter] Confirmer'
  hint_cancel: '[ESC] Annuler'
  preparing_download: 'Préparation du téléchargement...'
  download_passage_title: ' Téléchargement de la Source de Passage '
  download_code_title: ' Téléchargement de la Source de Code '
  book_label: ' Livre : %{name}'
  repo_label: ' Dépôt : %{name}'
  progress_bytes: '[%{name}] %{downloaded}/%{total}  bytes'
  downloaded_bytes: 'Téléchargé : %{bytes} bytes'
  downloading_book_progress: 'Téléchargement du livre : [%{bar}] %{downloaded}/%{total} bytes'
  downloading_book_bytes: 'Téléchargement du livre : %{bytes} bytes'
  downloading_code_progress: 'Téléchargement : [%{bar}] %{downloaded}/%{total} bytes'
  downloading_code_bytes: 'Téléchargement : %{bytes} bytes'
  current_book: 'Actuel : %{name}  (livre %{done}/%{total})'
  current_repo: 'Actuel : %{name}  (dépôt %{done}/%{total})'
  passage_instructions_1: 'keydr peut télécharger des passages de Project Gutenberg pour la pratique de frappe.'
  passage_instructions_2: 'Les livres sont téléchargés une fois et mis en cache localement.'
  passage_instructions_3: 'Configurez les paramètres ci-dessous, puis lancez un exercice de passage.'
  code_instructions_1: 'keydr peut télécharger du code open-source de GitHub pour la pratique de frappe.'
  code_instructions_2: 'Le code est téléchargé une fois et mis en cache localement.'
  code_instructions_3: 'Configurez les paramètres ci-dessous, puis lancez un exercice de code.'

# Messages de statut (de app.rs)
status:
  recovery_files: 'Fichiers de récupération trouvés suite à une importation interrompue. Les données peuvent être incohérentes — envisagez de réimporter.'
  dir_not_exist: 'Le répertoire n''existe pas : %{path}'
  no_data_store: 'Aucun stockage de données disponible'
  serialization_error: 'Erreur de sérialisation : %{error}'
  exported_to: 'Exporté vers %{path}'
  export_failed: 'Échec de l''exportation : %{error}'
  could_not_read: 'Impossible de lire le fichier : %{error}'
  invalid_export: 'Fichier d''export invalide : %{error}'
  unsupported_version: 'Version d''export non supportée : %{got} (attendue %{expected})'
  import_failed: 'Échec de l''importation : %{error}'
  imported_theme_fallback: 'Importé avec succès (thème ''%{theme}'' introuvable, utilisation du défaut)'
  imported_success: 'Importé avec succès'
  adaptive_unavailable: 'Mode adaptatif classé non disponible : %{error}'
  switched_to: 'Basculé vers %{name}'
  layout_changed: 'Disposition changée en %{name}'

# Erreurs (pour traduction des limites d'UI)
errors:
  unknown_language: 'Langue inconnue : %{key}'
  unknown_layout: 'Disposition de clavier inconnue : %{key}'
  unsupported_pair: 'Paire langue/disposition non supportée : %{language} + %{layout}'
  language_blocked: 'Langue bloquée par le niveau de support : %{key}'

# Commun
common:
  wpm: 'WPM'
  cpm: 'CPM'
  back: 'Retour'
