CLI — Chaînes d'interface utilisateur
extract
Synopsis : ai-i18n-tools extract
Met à jour strings.json à partir de littéraux t("…") / i18n.t("…"), d'une description package.json facultative et d'entrées englishName groupées facultatives lorsque includeUiLanguageEnglishNames est activé (voir ui.uiExtractor ; ne lit pas languagesManifestPath). Régénère également ui-languages.json à languagesManifestPath. Lorsque .html / .htm sont répertoriés dans ui.uiExtractor.extensions, capture également les chaînes de marqueur data-i18n / data-i18n-title / data-i18n-placeholder à partir du HTML. Nécessite un ui.sourceRoots non vide. N'appelle pas de LLM.
Voir aussi : Présentation des chaînes d'interface utilisateur, Applications HTML simples
migrate-intlayer
Synopsis : ai-i18n-tools migrate-intlayer [paths...] [--write] [--report <path>] [--content-glob <glob>] [--t-import <specifier>]
Importe les dictionnaires Intlayer *.content.ts dans strings.json et les fichiers de paramètres régionaux plats, et réécrit les sites d'appel simples useIntlayer / getIntlayer en t('English source'). Exécution à blanc par défaut (le rapport est toujours écrit). --write amorce le catalogue et applique des réécritures sûres. N'appelle pas de LLM.
Le rapport assure la transition pour tout ce que --write laisse derrière lui, et se termine par un TODO étape par étape qui organise le reste du travail : un appel concret à t() ou JSX pour chaque site d'appel manuel, la ligne import { t }, les fichiers de dictionnaire et les éléments résiduels de IntlayerProvider à supprimer par la suite, les chaînes sources nécessitant extract puis translate-ui, et un script d'amorçage d'exécution i18next à coller en remplacement du module i18n de l'application. Le contrôle de la locale doit appeler i18n.changeLanguage ainsi que loadLocale. extract génère ui-languages.json, qui est importé par ce script d'amorçage. Ne modifiez pas manuellement strings.json, les fichiers de locale plats, ni ui-languages.json.
Options clés : --write, --report, --content-glob (par défaut **/*.content.ts), --t-import
Voir aussi : Migration depuis Intlayer
mark-html
Synopsis : ai-i18n-tools mark-html [paths...] [--write]
Insère des marqueurs data-i18n / data-i18n-title / data-i18n-placeholder bruts dans le HTML afin que le texte source soit écrit une seule fois (sur l'élément lui-même). Analyse les fichiers/répertoires/globs donnés (par défaut : .html / .htm sous ui.sourceRoots). Exécution à blanc par défaut (signale le nombre d'ajouts par fichier et les éléments à contenu mixte qui nécessitent un <span data-i18n> manuel) ; --write applique les modifications. Idempotent, respecte data-i18n-ignore (ignore l'élément et son sous-arbre), ne touche jamais les éléments de type code (code, pre, kbd, samp, var) ou le texte vide/numérique uniquement, et n'émet jamais de marqueur valorisé. N'appelle pas de LLM.
Options clés : --write
Voir aussi : Marquage HTML pour la traduction
generate-ui-languages
Synopsis : ai-i18n-tools generate-ui-languages [--master <path>] [--dry-run]
Écrit ui-languages.json dans languagesManifestPath (par défaut {ui.flatOutputDir}/ui-languages.json) en utilisant sourceLocale + targetLocales et le data/ui-languages-complete.json groupé (ou --master). Avertit et émet des espaces réservés TODO pour les locales manquantes dans le fichier maître. Si vous avez un manifeste existant avec des valeurs label ou englishName personnalisées, elles seront remplacées par les valeurs par défaut du catalogue maître — examinez et ajustez le fichier généré par la suite.
Options clés : --master, --dry-run
translate-ui
Synopsis : ai-i18n-tools translate-ui [-l <codes>] [--force] [--dry-run] [-j <n>]
Traduit uniquement les chaînes d'interface utilisateur (strings.json → JSON de locale). Nécessite features.translateUIStrings.
Options clés : -l / --locale, --force, --dry-run, -j / --concurrency
-l / --locale : paramètres régionaux cibles séparés par des virgules (par défaut : configuration targetLocales moins sourceLocale). --force : retraduire toutes les entrées par paramètre régional (ignorer les traductions existantes). --dry-run : pas d’écritures, pas d’appels d’API. -j parallélise les paramètres régionaux ; dans chaque paramètre régional, la configuration uiBatchConcurrency (par défaut 2) parallélise les lots LLM (blocs de 50 chaînes, puis groupes pluriels). Il n’y a pas d’indicateur CLI pour uiBatchConcurrency.
sync-ui
Synopsis : ai-i18n-tools sync-ui [-l <codes>] [--force] [--dry-run] [-j <n>]
Extrait, puis traduit les chaînes d’interface utilisateur (nécessite features.translateUIStrings). Interface utilisateur uniquement — pas de documentation, de SVG ou de json[]. Mêmes options -l, --force, --dry-run et -j que translate-ui.
proofread-ui
Synopsis : ai-i18n-tools proofread-ui [-l <code>] [--chunk <n>] [--dry-run] [--json] [-j <n>]
Exécute d’abord extract (nécessite features.translateUIStrings) pour que strings.json corresponde à la source, puis une révision LLM des chaînes d’interface utilisateur de la locale source (orthographe, grammaire). Les indications terminologiques proviennent uniquement du CSV glossary.userGlossary (même portée que translate-ui — pas strings.json / uiGlossary, donc une mauvaise copie n’est pas renforcée en tant que glossaire). Utilise le fournisseur LLM actif (sa variable d’environnement de clé API).
Renvoie le code 1 en cas d'échec (feature flag manquant, échec de l'extraction, catalogue manquant ou invalide, clé API manquante, ou lorsque tous les lots échouent) ; renvoie le code 0 lorsque l'exécution se termine avec succès (les résultats sont fournis à titre indicatif). Écrit proofread-ui-results_<timestamp>.log sous cacheDir sous forme de rapport lisible (résumé, problèmes, lignes non examinées et lignes validées pour chaque chaîne) ; le terminal affiche uniquement les totaux du résumé et les problèmes (aucune ligne [ok] par chaîne). Si un lot échoue, ou si une réponse du modèle est plus courte que le lot et ne contient pas de index utilisable pour chaque emplacement, ces chaînes sont considérées comme non examinées. Leurs problèmes sont ignorés afin d'éviter qu'un tableau trop court ne soit appliqué aux mauvaises chaînes. Affiche le nom du fichier journal sur la dernière ligne. Avec --json, la sortie lisible est dirigée vers stderr. Les liens utilisent path:line, comme le bouton de lien des chaînes dans l'interface du tableau de bord.
Options clés : -l / --locale, --chunk (par défaut 50), --dry-run, --json, -j / --concurrency
export-ui-xliff
Synopsis : ai-i18n-tools export-ui-xliff [-l <codes>] [-o <dir>] [--untranslated-only] [--dry-run]
Exporte strings.json vers XLIFF 2.0 (un .xliff par locale cible). Lecture seule ; pas d’API.
Options clés : -l / --locale, -o / --output-dir, --untranslated-only, --dry-run
-o / --output-dir : répertoire de sortie (par défaut : même dossier que le catalogue). --untranslated-only : uniquement les unités pour lesquelles il manque une traduction pour cette locale.