i18ntk
Version:
đ The fastest i18n toolkit with 97% performance boost! Zero-dependency, enterprise-grade internationalization for React, Vue, Angular, Python, Java, PHP & more. Features PIN protection, auto framework detection, 7+ UI languages, and comprehensive transla
716 lines âą 153 kB
JSON
{
"meta": {
"version": "1.10.0",
"updated": "2025-08-16"
},
"common": {
"welcome": "Bienvenue",
"hello": "Bonjour",
"goodbye": "Au revoir",
"yes": "Oui",
"no": "Non",
"save": "Sauvegarder",
"cancel": "Annuler",
"delete": "Supprimer",
"edit": "Ăditer",
"loading": "Chargement...",
"offlineTitle": "Vous ĂȘtes hors ligne",
"offlineMessage": "Vous ĂȘtes hors ligne",
"tryReconnect": "Essayer de se reconnecter",
"logout": "Déconnexion",
"login": "Connexion",
"amount": "Montant",
"success": "SuccĂšs",
"error": "Erreur",
"warning": "Avertissement",
"info": "Info :",
"debug": "Débogage",
"progress": "Progression :",
"remaining": "Restant :",
"total": "Total :",
"completed": "7. Terminé avec succÚs !",
"missing": "Manquant",
"partial": "Partiel",
"sameAsSource": "Identique Ă la source :",
"formatMismatch": "Format non correspondant :",
"typeMismatch": "Type non correspondant :",
"structureMismatch": "Structure non correspondante :",
"invalidOption": "Option invalide",
"separator": "==================================================",
"initializationFailed": "â Ăchec de l'initialisation : {error}",
"stackTrace": "Trace de pile : {stack}",
"pressEnterToContinue": "Appuyez sur Entrée pour continuer...",
"pressEnterToReturn": "Appuyez sur Entrée pour revenir au menu principal...",
"stepCompleted": "Ătape '{stepName}' terminĂ©e.",
"stepFailed": "Ătape '{stepName}' Ă©chouĂ©e.",
"runningStep": "Exécution de l'étape : {stepName}",
"command": "Commande : {command}",
"startingWorkflow": "Démarrage du flux de travail...",
"workflowCompleted": "Flux de travail terminé.",
"checkReports": "Vérifiez les rapports pour plus de détails.",
"errorExecutingCommand": "Error executing command: {error}",
"genericError": "â Error: {error}",
"errors": {
"errors": "Erreurs :",
"genericError": "â Erreur : {error}",
"initializationFailed": "â Initialisation Ă©chouĂ©e : {error}",
"translationKeyNotFound": "Clé de traduction non trouvée : {key}",
"sourceDirectoryNotFound": "Répertoire source non trouvé : {directory}",
"configLoadingFailed": "Chargement de la configuration échoué",
"invalidSourceDirectory": "Répertoire source invalide : {directory}",
"securityViolation": "Violation de sécurité détectée",
"authenticationFailed": "Authentification échouée",
"sourceEqualsI18nWarn": "â ïž sourceDir equals i18nDir ({sourceDir}). Falling back to {fallback} for source scanning."
},
"errorGeneratingStatusSummary": "Erreur lors de la génération du résumé d'état : {error}",
"errorRunningDebugTool": "Erreur lors de l'exécution de l'outil de débogage '{displayName}' : {error}",
"errorReadingDebugLogs": "Erreur lors de la lecture des journaux de débogage : {error}",
"errorAnalyzingLogFile": "Erreur lors de l'analyse du fichier journal : {error}",
"errorAnalyzingTranslationKeys": "Erreur lors de l'analyse des clés de traduction : {error}",
"errorAnalyzingTranslationCompleteness": "Erreur lors de l'analyse de l'exhaustivité des traductions : {error}",
"analyzingTranslationCompleteness": "Analyse de l'exhaustivité des traductions pour toutes les langues...",
"i18nDirectoryNotFound": "â ïž RĂ©pertoire i18n introuvable : {i18nDir}",
"translationCompletenessAnalysisFailed": "â ïž L'analyse de l'exhaustivitĂ© des traductions a Ă©chouĂ© : {error}",
"failedToAnalyzeLanguage": "â Ăchec de l'analyse de la langue {language} : {error}",
"errorReadingI18nDirectory": "â Erreur lors de la lecture du rĂ©pertoire i18n : ",
"languageCompletenessTitle": "đ EXHAUSTIVITĂ DES TRADUCTIONS PAR LANGUE",
"errorAnalyzingTranslationFormat": "Erreur lors de l'analyse du format de traduction : {error}",
"errorAnalyzingTranslationType": "Erreur lors de l'analyse du type de traduction : {error}",
"errorAnalyzingTranslationStructure": "Erreur lors de l'analyse de la structure de traduction : {error}",
"errorAnalyzingTranslationFormatMismatch": "Erreur lors de l'analyse des incohérences de format de traduction : {error}",
"errorAnalyzingTranslationTypeMismatch": "Erreur lors de l'analyse des incohérences de type de traduction : {error}",
"errorAnalyzingTranslationStructureMismatch": "Erreur lors de l'analyse des incohérences de structure de traduction : {error}",
"errorAnalyzingTranslationSameAsSource": "Erreur lors de l'analyse des traductions identiques Ă la source : {error}",
"title": "Statut",
"nextStep1": "1. Vérifier l'analyse d'utilisation :",
"nextStep2": "2. Valider les traductions :",
"nextStep3": "3. Analyser l'exhaustivité :",
"nextStep4": "4. Compléter les traductions manquantes :",
"nextStep5": "5. Générer le rapport de synthÚse :",
"nextStep6": "6. Réviser et finaliser les traductions :",
"generating": "Génération du rapport de synthÚse...",
"review": "Révision des traductions...",
"finalizing": "Finalisation des traductions...",
"finalized": "Finalisé avec succÚs !",
"warnings": "Avertissements :",
"completedKeys": "Clés complétées :",
"missingKeys": "Clés manquantes :",
"partialKeys": "Clés partielles :",
"home": "Accueil",
"settings": "ParamĂštres",
"startingSettings": "đïž DĂ©marrage de la CLI des ParamĂštres...",
"confirm": "Confirmer"
},
"errors": {
"readlineClosed": "Flux d'entrée fermé; exécution en mode non interactif.",
"noPackageJson": "Aucun fichier package.json trouvé. Impossible de détecter automatiquement le framework i18n.",
"noI18nDir": "Aucun répertoire i18n trouvé dans la racine du projet.",
"noI18nConfig": "Aucun fichier de configuration i18n trouvé dans la racine du projet."
},
"fixer": {
"help_message": "\nCorrecteur de Traduction I18n\n\nUtilisation: node i18ntk-fixer.js [options]\n\nOptions:\n --source-dir <dir> Répertoire source à analyser (par défaut: ./locales)\n --languages <langs> Liste séparée par virgules des langues à corriger\n --markers <markers> Liste séparée par virgules des marqueurs à traiter comme non traduits\n --no-backup Sauter la création de sauvegarde automatique\n --help Afficher cette aide\n\nExemples:\n node i18ntk-fixer.js --languages de,fr\n node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED\n node i18ntk-fixer.js --no-backup\n",
"starting": "đ DĂ©marrage de la correction de traduction pour les langues: {languages}",
"sourceDirectory": "đ RĂ©pertoire source: {sourceDir}",
"sourceLanguage": "đ€ Langue source: {sourceLanguage}",
"markers": "đ·ïž Marqueurs Ă corriger: {markers}",
"scanningLanguage": "đ Analyse de {language}...",
"noLanguages": "â Aucune langue spĂ©cifiĂ©e pour la correction.",
"allComplete": "đ Toutes les traductions sont dĂ©jĂ complĂštes!",
"fullReportSaved": "đ Rapport complet sauvegardĂ© dans: {reportPath}",
"reviewReport": "Veuillez examiner le rapport avant de continuer.",
"backupCreated": "đŸ Sauvegarde créée avec succĂšs.",
"applyingFixes": "đ Application des corrections...",
"fixingComplete": "â
Correction de traduction terminée!",
"operationCancelled": "â OpĂ©ration annulĂ©e par l'utilisateur.",
"analysisTitle": "đ ANALYSE DE CORRECTION DE TRADUCTION",
"analysisSeparator": "==================================================",
"totalIssues": "Total de problÚmes trouvés: {totalIssues}",
"missingTranslations": "Traductions manquantes: {missing}",
"placeholderTranslations": "Traductions avec marqueurs: {placeholder}",
"noIssues": "â
Aucun problÚme trouvé. Toutes les traductions sont complÚtes.",
"detailedIssues": "đ PROBLĂMES DĂTAILLĂS:",
"detailedSeparator": "--------------------------------------------------",
"filePath": "đ {file} â {path}",
"missingKey": "â MANQUANT: {source} â {new}",
"placeholderKey": "â ïž MARQUEUR: \"{target}\" â \"{new}\"",
"moreIssues": "... et {count} problÚmes supplémentaires. Consultez le fichier de rapport pour les détails complets.",
"confirmationTitle": "đ€ Voulez-vous procĂ©der avec ces corrections?",
"confirmationOptions": "Options:",
"optionYes": "o - Oui, appliquer toutes les corrections",
"optionNo": "n - Non, annuler l'opération",
"optionShow": "d - Afficher les problÚmes détaillés",
"choicePrompt": "Votre choix (o/n/d): ",
"nonInteractiveMode": "⥠Mode non interactif détecté - application automatique des corrections...",
"reportGenerated": "đ Rapport de correction gĂ©nĂ©rĂ©: {path}",
"summary": {
"totalIssues": "Total des problĂšmes : {total}",
"missingKeys": "Clés manquantes : {missing}",
"placeholderKeys": "Clés avec marqueurs : {placeholder}",
"languages": "Langues : {languages}"
},
"welcome": {
"title": "đŻ Bienvenue dans l'Outil de RĂ©paration des Traductions !",
"description": "Cet outil vous aidera à corriger les traductions brisées et les marqueurs dans vos fichiers de langue."
},
"markerPrompt": {
"title": "đ·ïž Configurer les Marqueurs de Placeholder",
"description": "Entrez les marqueurs qui indiquent le texte non traduit (séparés par des virgules) :",
"currentDefaults": "Marqueurs par défaut : {markers}",
"input": "Marqueurs (ou appuyez sur Entrée pour utiliser les défauts) : "
},
"languagePrompt": {
"title": "đ SĂ©lectionner les Langues Ă RĂ©parer",
"available": "Langues disponibles : {languages}",
"description": "Entrez les langues à réparer (séparées par des virgules) ou appuyez sur Entrée pour toutes :",
"input": "Langues : ",
"noLanguages": "Aucune langue trouvée à réparer."
},
"directoryPrompt": {
"title": "đ SĂ©lectionner le RĂ©pertoire",
"current": "Répertoire actuel : {dir}",
"description": "Entrez le répertoire contenant vos fichiers de langue (ou appuyez sur Entrée pour le répertoire actuel, 0 pour annuler) :",
"input": "Répertoire : "
}
},
"autorun": {
"stepAnalyzeTranslations": "Analyser les traductions",
"stepCompletedWithIcon": "â
Ătape '{stepName}' terminĂ©e.",
"stepValidateTranslations": "Valider les traductions",
"stepRunning": "L'Ă©tape '{stepName}' est en coursâŠ",
"separator": "==================================================",
"stepFailed": "L'étape '{stepName}' a échoué.",
"errorLabel": "Erreur : {error}",
"autoRunScriptTitle": "Script Auto-Run",
"usageTitle": "Utilisation :",
"runAllSteps": "node i18ntk-autorun.js --all - Exécuter toutes les étapes définies dans i18ntk-config.json",
"configureSettingsFirst": "node i18ntk-autorun.js --config - Configurer les paramĂštres du workflow",
"runSpecificSteps": "node i18ntk-autorun.js --steps <numéro_étapes> - Exécuter des étapes spécifiques (ex. --steps 1,3,5)",
"showHelp": "node i18ntk-autorun.js --help - Afficher cette aide",
"examplesTitle": "Exemples :",
"configExample": "node i18ntk-autorun.js --config",
"stepsExample1": "node i18ntk-autorun.js --steps 1,2,3",
"stepsExample2": "node i18ntk-autorun.js --all",
"customSettingsConfiguration": "Configuration des paramÚtres personnalisés",
"availableSteps": "Ătapes disponibles :",
"startingAutoRunWorkflow": "DĂ©marrage du workflow Auto-RunâŠ",
"workflowIncludesSteps": "Le workflow comprend {count} étapes :",
"missingRequiredFile": "Fichier requis manquant : {file}",
"workflowStopped": "Workflow arrĂȘtĂ©.",
"workflowCompleted": "Workflow terminé.",
"successfulSteps": "Ătapes rĂ©ussies : {count}",
"failedSteps": "Ătapes Ă©chouĂ©es : {count}",
"stepInitializeProject": "Initialiser le projet",
"stepCheckUsage": "Vérifier l'utilisation",
"stepGenerateSummary": "GĂ©nĂ©ration du rapport rĂ©sumĂ©âŠ",
"runInitializationFirst": "Veuillez d'abord exécuter l'initialisation.",
"initializationCheckPassed": "ContrÎle d'initialisation réussi.",
"runningStep": "Exécution de l'étape : {stepName}",
"commandLabel": "Commande : {command}",
"stepCompletedWithTime": "L'étape '{stepName}' terminée en {duration} ms.",
"stepCompleted": "L'étape '{stepName}' terminée.",
"stepFailedWithError": "L'étape '{stepName}' a échoué avec l'erreur : {error}",
"requiredStepFailed": "Ătape requise Ă©chouĂ©e. ArrĂȘt du workflow.",
"optionalStepFailed": "Ătape facultative Ă©chouĂ©e. Poursuite du workflow.",
"stepRequired": "(Requise)",
"stepOptional": "(Facultative)",
"startingExecution": "DĂ©marrage de l'exĂ©cutionâŠ",
"pressEnterToContinue": "Appuyez sur EntrĂ©e pour continuerâŠ",
"runningSelectedSteps": "ExĂ©cution des Ă©tapes sĂ©lectionnĂ©esâŠ",
"invalidStepNumber": "Numéro d'étape invalide : {stepNum}",
"executionReport": "Rapport d'exécution :",
"requiredFailedSteps": "Ătapes requises Ă©chouĂ©es : {count}",
"stepDetails": "Détails de l'étape :",
"reportSavedTo": "Rapport enregistré dans : {path}",
"overallStatusSuccess": "SUCCĂS",
"overallStatusFailed": "ĂCHEC",
"overallStatus": "Statut global : {status}",
"pressEnterForDefaults": "Appuyez sur Entrée pour utiliser les paramÚtres par défaut pour toute invite.",
"sourceDirPrompt": "Entrez le répertoire source (par défaut : {default}) : ",
"sourceLangPrompt": "Entrez la langue source (par défaut : {default}) : ",
"targetLangsPrompt": "Entrez les langues cibles (séparées par des virgules, par défaut : {default}) : ",
"translationMarkerPrompt": "Entrez le marqueur de traduction (par défaut : {default}) : ",
"outputDirPrompt": "Entrez le répertoire de sortie pour les rapports (par défaut : {default}) : ",
"settingsUpdatedSuccessfully": "ParamĂštres mis Ă jour avec succĂšs !",
"errorConfiguringSettings": "Erreur lors de la configuration des paramĂštres : {error}",
"configurationComplete": "Configuration terminée.",
"runAutoRunCommand": "Vous pouvez maintenant exécuter la commande auto-run.",
"configurationFailed": "Configuration échouée : {error}",
"noValidStepNumbers": "Aucun numéro d'étape valide fourni.",
"autoRunFailed": "Exécution auto-run échouée : {error}",
"stepCompleteTranslations": "Compléter les traductions",
"stepAnalyzeSizing": "Analyser le dimensionnement",
"stepCompletedIcon": "â
",
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}] ExĂ©cution de l'Ă©tape '{stepName}'âŠ",
"stepFailedIcon": "â",
"translationLoadWarning": "Avertissement : impossible de charger les traductions {lang}",
"configReadError": "Erreur de lecture de {file}"
},
"analyze": {
"help_message": "\nAnalyseur de Traduction I18n\nUtilisation: node i18ntk-analyze.js [options]\n\nOptions:\n --source-dir <dir> Répertoire source à analyser (par défaut: ./locales)\n --i18n-dir <dir> Répertoire i18n (par défaut: ./locales)\n --output-report Générer un rapport détaillé\n --output-dir <dir> Répertoire de sortie pour les rapports (par défaut: ./i18ntk-reports)\n --help Afficher cette aide\n\nExemples:\n node i18ntk-analyze.js --output-report\n node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-analyze.js --output-dir=./analysis --output-report\n",
"source_directory": "đ RĂ©pertoire source: {sourceDir}",
"i18n_directory": "đ RĂ©pertoire i18n: {i18nDir}",
"loading_translation_files": "đ Chargement des fichiers de traduction...",
"sourceDirectoryLabel": "đ RĂ©pertoire Source: {sourceDir}",
"sourceLanguageLabel": "đ Langue Source: {sourceLanguage}",
"strictModeLabel": "âïž Mode Strict: {mode}\n",
"found_translation_files_count": "â
Trouvés {count} fichiers de traduction",
"analyzing_translations": "đ Analyse des traductions...",
"analysis_completed_successfully": "đ Analyse terminĂ©e avec succĂšs !",
"analysis_results": "đ RĂSULTATS DE L'ANALYSE",
"language_analysis_stats": " {language}: {translatedKeys}/{totalKeys} ({percentage}% traduit)",
"sample_missing_keys": "\nExemple de clés manquantes:",
"missing_key": "- {key}",
"and_more_missing": "...et {count} de plus.",
"sample_unused_keys": "\nExemple de clés inutilisées:",
"unused_key": "- {key}",
"and_more_unused": "...et {count} de plus.",
"recommendations": "\nđ RECOMMANDATIONS",
"add_missing_translations": "đĄ Ajouter les traductions manquantes pour amĂ©liorer la couverture.",
"remove_unused_translations": "đĄ Supprimer les traductions inutilisĂ©es pour garder votre projet propre.",
"next_steps": "\nđ PROCHAINES ĂTAPES",
"review_analysis_results": "1. Examiner les résultats de l'analyse dans la console ou le rapport généré.",
"run_with_output_report": "2. Exécuter avec --output-report pour un rapport détaillé.",
"add_or_remove_translations": "3. Ajouter les traductions manquantes ou supprimer les inutilisées.",
"rerun_analysis": "4. Relancer l'analyse pour vérifier les améliorations.",
"analysis_summary": "đ RĂSUMĂ DE L'ANALYSE",
"source_files_scanned": "Fichiers source analysés: {fileCount}",
"translation_files_checked": "Fichiers de traduction vérifiés: {translationFileCount}",
"total_keys": "Clés totales: {totalKeys}",
"translated_keys": "Clés traduites: {translatedKeys}",
"missing_keys": "Clés manquantes: {missingKeys}",
"unused_keys": "Clés inutilisées: {unusedKeys}",
"translation_coverage": "Couverture de traduction: {coverage}%",
"analysis_passed_for_language": "â
Analyse réussie pour {language}",
"analysis_failed_for_language": "â Analyse Ă©chouĂ©e pour {language} ({missingKeys} manquantes, {unusedKeys} inutilisĂ©es)",
"starting": "đ DĂ©marrage de l'analyse de traduction...",
"foundLanguages": "đ TrouvĂ©es {count} langues Ă analyser: {languages}",
"analyzing": "đ Analyse de {language}...",
"reportTitle": "đ RAPPORT D'ANALYSE DE TRADUCTION",
"generated": "Généré: {timestamp}",
"status": "Statut: {translated}/{total} clés ({percentage}% traduit)",
"filesAnalyzed": "Fichiers analysés: {analyzed}/{total}",
"keysNeedingTranslation": "Clés nécessitant une traduction: {count}",
"fileBreakdown": "đ DĂCOMPOSITION DES FICHIERS",
"error": "Erreur",
"completed": "â
Analyse terminée pour {language}",
"progress": "đ Progression Globale: {translated}/{total} langues traitĂ©es",
"reportSaved": " Rapport sauvegardé: {reportPath}",
"summary": "đ RĂSUMĂ DE L'ANALYSE",
"finished": "â
Analyse terminée avec succÚs !",
"statusFileMissing": "â Fichier de traduction manquant",
"sourceKeys": "đ ClĂ©s source: {count}",
"translation": "đ Traduction: {translated}/{total} ({percentage}%)",
"structure": "đïž Structure: {status}",
"consistent": "Consistente",
"inconsistent": "Inconsistante",
"missingKeys": "Clés manquantes: {count}",
"extraKeys": "Clés supplémentaires: {count}",
"issues": "â ïž ProblĂšmes trouvĂ©s: {count}",
"issueType": {
"not_translated": "Non traduit: {count}",
"empty_value": "Valeurs vides: {count}",
"partial_translation": "Traductions partielles: {count}",
"format_mismatch": "Discordances de format: {count}",
"type_mismatch": "Discordances de type: {count}",
"structure_mismatch": "Discordances de structure: {count}",
"same_as_source": "Identique Ă la source: {count}"
},
"keysToTranslate": "đ CLĂS Ă TRADUIRE",
"key": "Clé",
"english": "Anglais",
"needsTranslation": "BESOIN DE TRADUCTION",
"andMoreKeys": "...et {count} clés supplémentaires.",
"noLanguages": "â ïž Aucune langue cible trouvĂ©e.",
"languageStats": "{language}: {percentage}% complet ({translated}/{total} clés)",
"invalidReportFilePath": "Chemin de fichier de rapport invalide",
"failedToWriteReportFile": "Ăchec de l'Ă©criture sĂ©curisĂ©e du fichier de rapport"
},
"complete": {
"configLoadedSuccessfully": "Configuration chargée avec succÚs",
"configLoadingFailed": "Ăchec du chargement de la configuration",
"sourceLanguageNotFound": "Langue source non trouvée",
"couldNotParseTarget": "Impossible de parser la cible",
"couldNotParseSource": "Impossible de parser la source",
"reportGenerated": "Rapport généré",
"generateReportPrompt": "Générer un rapport détaillé ? (y/N): ",
"title": "đ COMPLĂTION DE TRADUCTION I18NTK",
"separator": "============================================================",
"sourceDir": "đ RĂ©pertoire source : {sourceDir}",
"sourceLanguage": "đ Langue source : {sourceLanguage}",
"dryRunMode": "đ§Ș Mode test - aucune modification ne sera appliquĂ©e",
"languages": "đ Langues disponibles : {languages}",
"addingMissingKeys": "â Ajout des clĂ©s manquantes aux fichiers de traduction...",
"processing": "đ Traitement de {language}...",
"addedKeys": "â
{count} clés manquantes ajoutées",
"noChangesNeeded": "â
Aucune modification nécessaire pour {language}",
"summaryTitle": "đ RĂSUMĂ DE COMPLĂTION",
"totalChanges": "đ Modifications totales : {totalChanges}",
"languagesProcessed": "đ Langues traitĂ©es : {languagesProcessed}",
"missingKeysAdded": "â ClĂ©s manquantes ajoutĂ©es : {missingKeysAdded}",
"nextStepsTitle": "đ ĂTAPES SUIVANTES",
"nextStep1": "1. Exécuter l'analyse d'utilisation :",
"nextStep2": " node i18ntk-usage.js --output-report",
"nextStep3": "2. Valider les traductions :",
"nextStep4": " node i18ntk-validate.js",
"nextStep5": "3. Analyser les motifs :",
"nextStep6": " node i18ntk-analyze.js",
"allKeysAvailable": "đ Toutes les clĂ©s de traduction sont maintenant disponibles !",
"runWithoutDryRun": "đĄ ExĂ©cuter sans --dry-run pour appliquer les modifications",
"deletingOldReport": "đïž Suppression de l'ancien rapport...",
"generatingFreshAnalysis": "đ GĂ©nĂ©ration d'une nouvelle analyse d'utilisation...",
"couldNotGenerate": "â Impossible de gĂ©nĂ©rer l'analyse d'utilisation",
"reportNotFound": "đ Rapport d'utilisation introuvable. Utilisation des clĂ©s communes...",
"foundMissingKeys": "đ TrouvĂ© {count} clĂ©s manquantes depuis l'analyse d'utilisation",
"couldNotParse": "â Impossible d'analyser le rapport d'utilisation. Utilisation des clĂ©s communes...",
"errorDuringCompletion": "â Erreur lors de la finalisation : {error}",
"fatalError": "â Erreur fatale : {error}",
"configurationValidationFailed": "Ăchec de la validation de configuration : champs requis manquants"
},
"sizing": {
"separator": "================================================================================",
"lineSeparator": " --------------------------------------------------------------------------------",
"analysisStats": "{stats}",
"sourceDirectoryLabel": "đ RĂ©pertoire source : {sourceDir}",
"sourceLanguageLabel": "đ Langue source : {sourceLanguage}",
"strictModeLabel": "âïž Mode strict : {mode}",
"invalidSourceDirectoryError": "Chemin du répertoire source invalide : {sourceDir}",
"sourceDirectoryNotFoundError": "Répertoire source introuvable : {sourceDir}",
"invalidOutputDirectoryError": "Chemin du répertoire de sortie invalide : {outputDir}",
"invalidReportFileError": "Chemin du fichier de rapport invalide",
"problematic_keys": "Clés problématiques : {problematicKeys}",
"problematicKeysLabel": "Clés problématiques : {problematicKeys}",
"long_translations": "Traductions longues : {longTranslations}",
"failedToSaveReportError": "Ăchec de l'enregistrement sĂ©curisĂ© du rapport",
"invalidCsvFileError": "Chemin du fichier CSV invalide",
"failedToSaveCsvError": "Ăchec de l'enregistrement sĂ©curisĂ© du rapport CSV",
"fatalError": "â L'analyse du dimensionnement a Ă©chouĂ© : {error}",
"starting_i18n_sizing_analysis": "Démarrage de l'analyse du dimensionnement i18n...",
"source_directory": "Répertoire source : {sourceDir}",
"found_languages": "Langues trouvées : {languages}",
"analyzing_file_sizes": "Analyse des tailles de fichiers...",
"analyzing_translation_content": "Analyse du contenu des traductions...",
"generating_size_comparisons": "Génération des comparaisons de taille...",
"no_languages_found_for_comparison": "Aucune langue trouvée pour la comparaison",
"sizing_analysis_results": "Résultats de l'analyse du dimensionnement I18n",
"file_sizes_title": "Tailles des fichiers",
"file_sizes_header": "Langue Taille(Ko) Lignes CaractĂšres",
"file_size_row": "{lang} {sizeKB} {lines} {characters}",
"language_statistics_title": "Statistiques des langues",
"language_stats_header": "Langue Clés CaractÚres Long. moy. Long. max Vides Longs",
"language_stats_row": "{lang} {totalKeys} {totalCharacters} {averageKeyLength} {maxKeyLength} {emptyKeys} {longKeys}",
"size_variations_title": "Variations de taille",
"size_variations_header": "Langue Diff. car. % Diff Problématique",
"size_variation_row": "{lang} {characterDifference} {percentageDifference}% {problematic}",
"problematic_yes": "Oui",
"problematic_no": "Non",
"recommendations_title": "Recommandations",
"recommendation_item": "{index}. {recommendation}",
"problematic_key_detail": " {index}. Clé: '{key}' - Variations: {variations}",
"generating_detailed_report": "Génération du rapport détaillé...",
"keysHaveSignificantSizeVariations": "les clés présentent des variations de taille significatives",
"longTranslationsDetected": "{lang} a {data.longKeys} traductions de plus de 100 caractÚres - envisagez de les décomposer",
"longer": "plus long",
"shorter": "plus court",
"review_translations": "Considérez la revue des traductions {lang} - elles sont {data.percentageDifference}% {data.comparison} que la référence",
"report_saved_to": "Rapport enregistré dans : {reportPath}",
"considerReviewingTranslations": "Envisagez de revoir les traductions {lang} - elles sont {data.percentageDifference}% plus longues que la référence",
"csv_report_saved_to": "Rapport CSV enregistré dans: {csvPath}",
"human_report_saved": "Rapport lisible enregistré: {reportPath}",
"folder_summary_title": "Résumé du dossier",
"folder_summary_table_header": "Langue Taille(KB) Clés Longueur Moyenne CaractÚres Totaux",
"folder_summary_row": "{lang} {sizeKB} {totalKeys} {avgLength} {totalChars}",
"language_comparison_title": "Comparaison des langues",
"language_comparison_row": "{lang}: {diff} caractĂšres ({percent}%) {status}",
"summary_stats": "đ RĂ©sumĂ©: {totalLanguages} langues, {totalKeys} clĂ©s - Rapports enregistrĂ©s dans {reportPath}",
"detailedKeysDescription": "Afficher l'analyse détaillée des clés dans la console",
"too_many_keys_warning": "â ïž Trop de clĂ©s pour l'affichage console - voir le rapport dĂ©taillĂ© pour l'analyse complĂšte",
"no_translation_files_found": "Aucun fichier de traduction trouvé",
"analysis_completed": "Analyse terminée en {duration}ms",
"analysis_failed": "L'analyse a échoué : {errorMessage}",
"starting_analysis": "Démarrage de l'analyse...",
"found_files": "Trouvé {count} fichiers",
"failed_to_parse_language_error": "Ăchec de l'analyse des traductions {language} : {errorMessage}",
"recommendations": {
"keys_have_significant_size_variations": "les clés présentent des variations de taille significatives",
"consider_reviewing_translations": "Envisagez de revoir les traductions {lang} - elles sont {percentageDifference}% {comparison} que la référence",
"long_translations_detected": "{lang} a {longKeys} traductions de plus de {threshold} caractÚres - envisagez de les décomposer"
}
},
"usage": {
"help_message": "\nAnalyseur d'utilisation I18n\n\nUtilisation: node i18ntk-usage.js [options]\n\nOptions:\n --source-dir <dir> Répertoire source à analyser (par défaut: ./src)\n --i18n-dir <dir> Répertoire i18n (par défaut: ./src/locales)\n --output-report Générer un rapport détaillé\n --output-dir <dir> Répertoire de sortie pour les rapports (par défaut: ./reports)\n --help Afficher cette aide\n\nExemples:\n node i18ntk-usage.js --output-report\n node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-usage.js --output-dir=./analysis --output-report\n",
"source_directory_thissourcedir": "đ RĂ©pertoire source: {sourceDir}",
"translationCompletenessTitle": "đ ExhaustivitĂ© des traductions:",
"i18n_directory_thisi18ndir": "đ RĂ©pertoire i18n: {i18nDir}",
"failed_to_parse_filename_error": "â ïž Ăchec de l'analyse de {fileName}: {errorMessage}",
"analyzing_source_files": "đ Analyse des fichiers sources...",
"found_files_in_source": "đ TrouvĂ© {numFiles} fichiers dans le rĂ©pertoire source",
"found_thisusedkeyssize_unique_": "đŻ TrouvĂ© {usedKeysSize} clĂ©s uniques utilisĂ©es",
"total_key_usages_totalkeysfoun": "đ Total des utilisations de clĂ©s: {totalKeysFound}",
"loading_available_translation_": "đ Chargement des clĂ©s de traduction disponibles...",
"found_thisavailablekeyssize_av": "â
Trouvé {availableKeysSize} clés disponibles",
"foundTranslationFiles": "â
Trouvé {count} fichiers de traduction",
"errorReadingI18nDirectory": "â ïž Erreur de lecture du rĂ©pertoire i18n: {error}",
"pressEnterToReturnToMenu": "đ Appuyez sur EntrĂ©e pour revenir au menu principal...",
"notTranslatedKeysTotal": "â ïž ClĂ©s non traduites: {total}",
"noSourceFilesFound": "â ïž Aucun fichier source trouvĂ© dans le rĂ©pertoire source.",
"reviewNotTranslatedKeys": "đĄ Examiner les clĂ©s non traduites",
"analysisCompletedSuccessfully": "đ Analyse terminĂ©e avec succĂšs !",
"detectedSourceDirectory": "Répertoire source détecté: {sourceDir}",
"detectedI18nDirectory": "Répertoire i18n détecté: {i18nDir}",
"fileInfo": "đ {namespace}: {keys} clĂ©s",
"failedToAnalyzeUsage": "â Ăchec de l'analyse d'utilisation: {error}",
"failedToAnalyzeFile": "â Ăchec de l'analyse du fichier: {error}",
"failedToExtractKeys": "â Ăchec de l'extraction des clĂ©s de {filePath}: {error}",
"analysisFailedError": "Erreur: Impossible de terminer l'analyse - {error}",
"analyzerInitialized": "Analyseur initialisé",
"analyzerInitFailed": "Ăchec de l'initialisation de l'analyseur: {error}",
"argsParsed": "Arguments analysés",
"processedFiles": "Traité {processedFiles} sur {totalFiles} fichiers.",
"argsParseFailed": "Ăchec de l'analyse des arguments: {error}",
"translationDiscoveryError": "Erreur de découverte de traduction: {error}",
"fileTraversalError": "Erreur de parcours des fichiers: {error}",
"sourceEqualsI18nWarn": "â ïž Le rĂ©pertoire source et le rĂ©pertoire i18n sont identiques. Cela peut causer des problĂšmes avec l'analyse.",
"i18nEqualsSourceWarn": "â ïž Le rĂ©pertoire i18n et le rĂ©pertoire source sont identiques. Cela peut causer des problĂšmes avec l'analyse.",
"usageAnalysisFailed": "â ïž Ăchec de l'analyse d'utilisation: {error}",
"translationFileParseError": "â ïž Erreur d'analyse du fichier de traduction: {error}",
"translationKeysLoadError": "â ïž Erreur de chargement des clĂ©s de traduction: {error}",
"languageCompletenessStats": "đ {language}: {translated}/{total} ({completeness}% traduit)",
"missingKeysCount": "â ClĂ©s manquantes: {count}",
"analyzingTranslationCompleteness": "Analyse de l'exhaustivité des traductions...",
"unusedKeysCount": "â ïž ClĂ©s non utilisĂ©es: {count}",
"usedKeysCount": "â
Clés utilisées: {count}",
"availableKeysCount": "Clés disponibles: {count}",
"analysisResults": "Résultats de l'analyse:",
"i18nDirectoryNotFound": "â ïž RĂ©pertoire i18n introuvable. Veuillez vĂ©rifier le chemin.",
"sourceDirectoryNotFound": "â ïž RĂ©pertoire source introuvable: {dir}",
"checkUsage": {
"title": "đ ANALYSE D'UTILISATION I18NTK",
"analyzing_source_files": "đ Analyse des fichiers sources...",
"source_directory_thissourcedir": "đ RĂ©pertoire source : {sourceDir}",
"i18n_directory_thisi18ndir": "đ RĂ©pertoire i18n : {i18nDir}",
"found_files_in_source": "â
Trouvé {numFiles} fichiers dans le répertoire source",
"no_source_files_found": "â ïž Aucun fichier source trouvĂ© dans le rĂ©pertoire source.",
"processedFiles": "đ TraitĂ© {processedFiles} sur {totalFiles} fichiers",
"failedToProcessFile": "â Ăchec du traitement de {filePath} : {error}",
"found_thisusedkeyssize_unique_": "đ TrouvĂ© {usedKeysSize} clĂ©s uniques utilisĂ©es",
"total_key_usages_totalkeysfoun": "đ Total des utilisations de clĂ©s : {totalKeysFound}",
"loading_available_translation_": "đ Chargement des clĂ©s de traduction disponibles...",
"found_thisavailablekeyssize_av": "â
Trouvé {availableKeysSize} clés disponibles",
"message": "Analyse de l'utilisation des clés de traduction dans votre projet...",
"usage_analysis_results": "đ RĂSULTATS D'ANALYSE D'UTILISATION",
"source_files_scanned_thisfileu": "đ Fichiers sources analysĂ©s : {fileUsageSize}",
"available_translation_keys_thi": "â
Clés de traduction disponibles : {availableKeysSize}",
"used_translation_keys_thisused": "đ ClĂ©s de traduction utilisĂ©es : {usedKeysSize}",
"dynamic_keys_detected_dynamick": "⥠Clés dynamiques détectées : {dynamicKeysLength}",
"unused_keys_unusedkeyslength": "đïž ClĂ©s inutilisĂ©es : {unusedKeysLength}",
"missing_keys_missingkeyslength": "â ClĂ©s manquantes : {missingKeysLength}",
"translation_completeness_title": "đ EXHAUSTIVITĂ DES TRADUCTIONS",
"language_completeness_stats": "{language} : {translated}/{total} clés ({percentage}%)",
"n_sample_unused_keys": "\nđïž EXEMPLE DE CLĂS INUTILISĂES (5 premiĂšres) :",
"key": " đ {key}",
"and_unusedkeyslength_5_more": "... et {count} autres clés inutilisées",
"n_sample_missing_keys": "\nâ EXEMPLE DE CLĂS MANQUANTES (5 premiĂšres) :",
"and_missingkeyslength_5_more": "... et {count} autres clés manquantes",
"n_generating_detailed_report": "\nđ GĂ©nĂ©ration du rapport dĂ©taillĂ©...",
"report_saved_reportpath": "đ Rapport sauvegardĂ© : {reportPath}",
"n_recommendations": "\nđĄ RECOMMANDATIONS :",
"consider_removing_unused_trans": " đïž Envisagez de supprimer les traductions inutilisĂ©es pour rĂ©duire la taille du bundle",
"add_missing_translation_keys_t": " â Ajoutez les clĂ©s de traduction manquantes pour maintenir la cohĂ©rence",
"review_dynamic_keys_manually_t": " đ VĂ©rifiez manuellement les clĂ©s dynamiques (elles peuvent ĂȘtre valides)",
"all_translation_keys_are_prope": "â
Toutes les clés de traduction sont correctement utilisées !",
"n_next_steps": "\nđŻ PROCHAINES ĂTAPES :",
"2_check_the_detailed_report_fo": " 2. Vérifiez le rapport détaillé pour les problÚmes spécifiques",
"help_message": "\nAnalyseur d'utilisation I18n\n\nUtilisation : node i18ntk-usage.js [options]\n\nOptions :\n --source-dir <dir> Répertoire source à analyser (par défaut : ./src)\n --i18n-dir <dir> Répertoire i18n (par défaut : ./src/locales)\n --output-report Générer un rapport détaillé\n --output-dir <dir> Répertoire de sortie pour les rapports (par défaut : ./reports)\n --help Afficher cette aide\n\nExemples :\n node i18ntk-usage.js --output-report\n node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-usage.js --output-dir=./analysis --output-report\n",
"1_review_the_analysis_results": "1. Examinez les résultats d'analyse dans la console ou le rapport généré.",
"2_run_with_outputreport_for_de": "2. Exécutez avec --output-report pour un rapport détaillé.",
"3_remove_unused_keys_or_add_mi": "3. Supprimez les clés inutilisées ou ajoutez les clés manquantes à votre code source.",
"4_rerun_analysis_to_verify_imp": "4. Relancez l'analyse pour vérifier les améliorations.",
"noSourceFilesFound": "Aucun fichier source trouvé à analyser.",
"i18nDirectoryNotFound": "Répertoire i18n introuvable : {i18nDir}",
"noTranslationLanguagesFound": "Aucune langue de traduction trouvée.",
"failedToAnalyzeFile": "Ăchec de l'analyse du fichier {filePath} : {error}",
"failedToAnalyzeLanguage": "Ăchec de l'analyse de la langue {language} : {error}",
"translationCompletenessAnalysisFailed": "L'analyse de l'exhaustivité des traductions a échoué : {error}",
"n": ""
},
"complete": {
"configLoadedSuccessfully": "Configuration chargée avec succÚs",
"configLoadingFailed": "Ăchec du chargement de la configuration",
"title": "đ COMPLĂTION DES TRADUCTIONS I18NTK",
"separator": "============================================================",
"sourceDir": "đ RĂ©pertoire source : {sourceDir}",
"sourceLanguage": "đ Langue source : {sourceLanguage}",
"dryRunMode": "đ§Ș Mode simulation - aucune modification ne sera effectuĂ©e",
"languages": "đ Langues disponibles : {languages}",
"addingMissingKeys": "â Ajout des clĂ©s manquantes aux fichiers de traduction...",
"processing": "đ Traitement de {language}...",
"addedKeys": "â
Ajouté {count} clés manquantes",
"changeDetails": "đ {file} : {key}",
"andMore": "...et {count} autres",
"noChangesNeeded": "â
Aucune modification nécessaire pour {language}",
"summaryTitle": "đ RĂSUMĂ DE LA COMPLĂTION",
"totalChanges": "đ Total des modifications : {totalChanges}",
"languagesProcessed": "đ Langues traitĂ©es : {languagesProcessed}",
"missingKeysAdded": "â ClĂ©s manquantes ajoutĂ©es : {missingKeysAdded}",
"nextStepsTitle": "đ PROCHAINES ĂTAPES",
"nextStep1": "1. Lancer l'analyse d'utilisation :",
"nextStep2": " node i18ntk-usage.js --output-report",
"nextStep3": "2. Valider les traductions :",
"nextStep4": " node i18ntk-validate.js",
"nextStep5": "3. Analyser les motifs :",
"nextStep6": " node i18ntk-analyze.js",
"allKeysAvailable": "đ Toutes les clĂ©s de traduction sont maintenant disponibles !",
"runWithoutDryRun": "đĄ ExĂ©cutez sans --dry-run pour appliquer les modifications",
"deletingOldReport": "đïž Suppression de l'ancien rapport...",
"generatingFreshAnalysis": "đ GĂ©nĂ©ration d'une nouvelle analyse d'utilisation...",
"couldNotGenerate": "â Impossible de gĂ©nĂ©rer l'analyse d'utilisation",
"reportNotFound": "đ Rapport d'utilisation introuvable. Utilisation des clĂ©s communes...",
"foundMissingKeys": "đ TrouvĂ© {count} clĂ©s manquantes dans l'analyse d'utilisation",
"couldNotParse": "â Impossible d'analyser le rapport d'utilisation. Utilisation des clĂ©s communes..."
},
"noTranslationLanguagesFound": "Aucune langue de traduction trouvée",
"failedToAnalyzeLanguage": "Ăchec de l'analyse de la langue",
"translationCompletenessAnalysisFailed": "L'analyse de l'exhaustivité des traductions a échoué"
},
"validate": {
"help_message": "\nValidateur de traductions I18n\n\nUtilisation : node i18ntk-validate.js [options]\n\nOptions :\n --source-dir <dir> Répertoire source à analyser (par défaut : ./locales)\n --i18n-dir <dir> Répertoire I18n (par défaut : ./locales)\n --output-report Générer un rapport détaillé\n --output-dir <dir> Répertoire de sortie pour les rapports (par défaut : ./i18ntk-reports)\n --help Afficher cette aide\n\nExemples :\n node i18ntk-validate.js --output-report\n node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-validate.js --output-dir=./analysis --output-report\n",
"title": "đ Validateur de traductions I18n",
"message": "Lancement du processus de validation...",
"sourceDirectory": "đ RĂ©pertoire source : {dir}",
"sourceLanguage": "đ Langue source : {sourceLanguage}",
"strictMode": "âïž Mode strict : {mode}",
"noTargetLanguages": "Aucune langue cible configurée ; validation des cibles ignorée. Ajoutez des langues via \"i18ntk init --languages=de,fr\".",
"validatingLanguages": "đ Validation des langues : {langs}",
"validatingLanguage": "đ Validation de la langue : {lang}",
"filesCount": "đ Fichiers : {count}",
"keysCount": "đ ClĂ©s : {count}",
"missingFilesCount": "đ Fichiers manquants : {count}",
"syntaxErrorsCount": "â Erreurs de syntaxe : {count}",
"translationPercentage": "đŻ Traduction : {percentage}% ({translated}/{total} clĂ©s)",
"validationSummary": "đ RĂCAPITULATIF DE LA VALIDATION",
"validation_failed": "â Validation Ă©chouĂ©e : {error}",
"totalErrors": "â Erreurs totales : {count}",
"totalWarnings": "â ïž Avertissements totaux : {count}",
"errorsSection": "â ERREURS",
"warningsSection": "â ïž AVERTISSEMENTS",
"recommendationsSection": "đĄ RECOMMANDATIONS",
"fixErrorsFirst": "1. Corrigez d'abord toutes les erreurs",
"resolveMissingFilesAndSyntaxErrors": "1. Résolvez les fichiers manquants et les erreurs de syntaxe",
"fixStructuralInconsistencies": "2. Corrigez les incohérences structurelles",
"completeMissingTranslations": "3. Complétez les traductions manquantes",
"rerunValidation": "4. Relancez la validation pour vérifier les corrections",
"addressWarnings": "Traitez les avertissements pour améliorer la qualité",
"reviewWarnings": "Vérifiez les avertissements et corrigez-les si nécessaire",
"considerRunningWithStrict": "2. Envisagez d'exécuter avec l'option --strict pour une validation plus stricte",
"allValidationsPassed": "đ Toutes les validations sont rĂ©ussies !",
"considerRunningUsageAnalysis": "Envisagez d'exécuter l'analyse d'utilisation : node i18ntk-usage.js",
"deletedOldReport": "đïž Ancien rapport de validation supprimĂ©",
"sourceDir": "đ RĂ©pertoire source : {sourceDir}",
"i18nDir": "đ RĂ©pertoire i18n : {i18nDir}",
"loadingTranslationFiles": "đ Chargement des fichiers de traduction...",
"foundTranslationFilesCount": "â
{count} fichiers de traduction trouvés",
"analyzingTranslations": "đ Analyse des traductions...",
"validationCompletedSuccessfully": "đ Validation terminĂ©e avec succĂšs !",
"validationErrorsFound": "â ïž Erreurs de validation trouvĂ©es : {count}",
"validationWarningsFound": "â ïž Avertissements de validation trouvĂ©s : {count}",
"validationPassed": "â
Validation réussie sans erreurs",
"validationFailed": "Validation échouée : {error}",
"startingValidationProcess": "đ DĂ©marrage du processus de validation...",
"validationProcessCompletedSuccessfully": "â
Processus de validation terminé avec succÚs",
"stackTrace": "Trace de la pile : {stack}",
"authenticationFailed": "â Authentification Ă©chouĂ©e. AccĂšs refusĂ©.",
"fatalValidationError": "â Erreur fatale de validation : {error}",
"configAccess": "AccĂšs Ă la configuration pour la validation",
"configValidated": "Configuration validée avec succÚs",
"configError": "Erreur de configuration : {error}",
"validatorInit": "Initialisation du validateur I18n",
"validatorInitialized": "Validateur I18n initialisé avec succÚs",
"validatorInitError": "Erreur d'initialisation du validateur : {error}",
"argsParsing": "Analyse des arguments de la ligne de commande",
"argsParsed": "Arguments de la ligne de commande analysés avec succÚs",
"argsParseError": "Erreur d'analyse des arguments : {error}",
"languagesScan": "Analyse des langues disponibles",
"languagesFound": "{count} langues trouvées",
"languagesScanError": "Erreur lors de l'analyse des langues : {error}",
"filesScan": "{count} fichiers trouvés en {language}",
"filesScanError": "Erreur lors de l'analyse des fichiers : {error}",
"jsonValidated": "Syntaxe JSON validée : {filePath}",
"jsonValidationError": "Erreur de validation JSON : {error}",
"languageValidation": "Validation de la langue : {language}",
"languageValidationError": "Erreur de validation de la langue : {error}",
"fileDeleted": "Fichier supprimé",
"runStarted": "Démarrage de la validation",
"runCompleted": "Validation terminée avec succÚs",
"runError": "Exécution de la validation échouée : {error}",
"scriptExecution": "Exécution du script",
"validationCompleted": "Validation terminée",
"validationError": "Erreur de validation : {error}",
"separator": "ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ",
"languageHeader": "đ Langue : {language}",
"validationResults": "đ RĂ©sultats de la validation",
"noErrors": "â
Aucune erreur trouvée",
"noWarnings": "â
Aucun avertissement trouvé",
"summaryHeader": "đ RĂCAPITULATIF GĂNĂRAL",
"progressIndicator": "âł Traitement en cours...",
"completedIndicator": "â
Terminé",
"errorIndicator": "â Erreur",
"warningIndicator": "â ïž Avertissement",
"infoIndicator": "âčïž Info",
"sourceDirNotConfigured": "Répertoire source non configuré",
"sourceLanguageNotConfigured": "Langue source non configurée",
"translationFunctionNotInitialized": "Fonction de traduction non initialisée correctement",
"sourceLanguageDirectoryNotFound": "Répertoire de la langue source introuvable",
"specifiedLanguageNotFound": "Langue spécifiée introuvable",
"noJsonFilesFound": "Aucun fichier JSON trouvé dans le répertoire source : {sourceDir}",
"i18nDirectoryNotFound": "Répertoire i18n introuvable : {i18nDir}",
"invalidDirectoryPaths": "Chemins de répertoires invalides détectés",
"invalidSampleFilePath": "Chemin de fichier d'exemple invalide",
"failedToCreateSampleTranslationFile": "Ăchec de la crĂ©ation du fichier de traduction d'exemple",
"invalidFilePathDetected": "Chemin de fichier invalide détecté",
"failedToWriteFile": "Ăchec de l'Ă©criture du fichier : {filePath}"
},
"adminCli": {
"setupPinProtectionTitle": "\nđ Configuration de la protection PIN Admin",
"setupPinProtectionDescription": "Cela exigera un PIN de 4 à 6 chiffres pour les opérations administratives.",
"enablePinProtectionPrompt": "Voulez-vous activer la protection PIN admin ?",
"setupCancelled": "Configuration de la protection PIN admin annulée.",
"enterPinPrompt": "Entrez un PIN de 4 Ă 6 chiffres : ",
"pinFormatError": "â Le PIN doit comporter 4 Ă 6 chiffres. Veuillez rĂ©essayer.",
"confirmPinPrompt": "Confirmez le PIN : ",
"pinMismatchError": "â Les PIN ne correspondent pas. Veuillez rĂ©essayer.",
"pinProtectionEnabledSuccess": "â
Protection PIN admin activée avec succÚs !",
"pinRecoveryWarning": "â ïž Retenez votre PIN - il ne peut pas ĂȘtre rĂ©cupĂ©rĂ© en cas de perte.",
"setupPinProtectionFailed": "â Ăchec de la configuration de la protection PIN admin.",
"errorSettingUpPin": "â Erreur lors de la configuration du PIN admin : {message}",
"authRequiredForOperation": "\nđ Authentification admin requise pour : {operation}",
"invalidPinFormat": "â Format de PIN invalide. Le PIN doit comporter 4 Ă 6 chiffres.",
"authenticationSuccess": "â
Authentification réussie !",
"invalidPinAttemptsRemaining": "â PIN invalide. {remaining} tentatives restantes.",
"authenticationFailedAccessDenied": "â Authentification Ă©chouĂ©e. AccĂšs refusĂ©.",
"authenticationError": "â Erreur d'authentification : {message}",
"pinProtectionNotEnabled": "La protection PIN admin n'est pas activée actuellement.",
"disablingPinProtectionTitle": "\nđ DĂ©sactivation de la protection PIN Admin",
"confirmDisablePinProtection": "Ătes-vous sĂ»r de vouloir dĂ©sactiver la protection PIN admin ?",
"operationCancelled": "Opération annulée.",
"pinProtectionDisabledSuccess": "â
Protection PIN admin désactivée.",
"disablePinProtectionFailed": "â Ăchec de la dĂ©sactivation de la protection PIN admin.",
"errorDisablingPinProtection": "â Erreur lors de la dĂ©sactivation de la protection admin : {message}",
"adminProtectionStatusTitle": "\nđ Ătat de la protection admin",
"statusEnabled": "Statut : â
ACTIVĂ",
"protectionDetails": "Protection : PIN de 4 à 6 chiffres requis pour les opérations admin",
"lockoutDetails": "Verrouillage : 3 échecs = verrouillage de 15 minutes",
"statusDisabled": "Statut : â DĂSACTIVĂ",
"noAuthRequired": "Protection : Aucune authentification requise",
"unprotectedRisk": "Risque : les opérations admin ne sont pas protégées",
"errorCheckingAdminStatus": "â Erreur lors de la vĂ©rification du statut admin : {message}",
"authRequired": "đ Authentification admin requise.",
"invalidPin": "â PIN invalide.",
"authSuccess": "â
Authentification réussie !",
"adminPinSetupCli": "admin_pin_setup_cli",
"adminAuthFailedCli": "admin_auth_failed_cli",
"adminAuthDisabledCli": "admin_auth_disabled_cli",
"protectedAccess": "AccÚs protégé : authentification admin requise pour les opérations sensibles.",
"enterPin": "Entrez le PIN admin : ",
"accessGranted": "AccÚs accordé."
},
"adminPin