Posez votre question et obtenez un résumé du document en referencant cette page et le Provider AI de votre choix
Historique des versions
- "Historique initial"v9.7.103/11/2026
Le contenu de cette page a été traduit à l'aide d'une IA.
Voir la dernière version du contenu original en anglaisSi vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.
Lien GitHub de la documentationCopier le Markdown du doc dans le presse-papiers
Plugin Prettier
prettier-plugin-intlayer ordonne les clés de vos traductions dans un ordre fixe à chaque formatage Prettier. Les diffs restent réduits, les conflits de fusion deviennent plus rares et une locale manquante se repère immédiatement.
Copier le code dans le presse-papiers
Installation
Copier le code dans le presse-papiers
Nécessite Prettier 3 ou une version ultérieure.
Si votre projet utilise déjà Prettier, intlayer init prettier installe le plugin et l'ajoute automatiquement à votre configuration.
Utilisation
Ajoutez le plugin à votre configuration Prettier :
Copier le code dans le presse-papiers
Pour l'appliquer uniquement à vos déclarations de contenu, utilisez un override :
Copier le code dans le presse-papiers
Ce qui est trié
t() : locales
Les locales épinglées apparaissent en premier (en par défaut). Les autres locales suivent par ordre alphabétique.
Copier le code dans le presse-papiers
plural() : ordre CLDR
Les catégories vont de la plus petite quantité vers la solution de repli : zero, one, two, few, many, other.
Copier le code dans le presse-papiers
enu() : seuils croissants
Les conditions sont triées par leur nombre, puis par opérateur (<1, <=1, 1, >=1, >1). fallback est placé en dernier.
Copier le code dans le presse-papiers
Au moment de l'exécution, la première condition correspondante l'emporte. Le plugin n'applique le nouvel ordre que si chaque quantité donne toujours le même contenu. Lorsque l'ordre détermine le résultat, l'objet reste inchangé. Par exemple, dans { '<1': …, '<=-2.3': … }, la clé '<1' intercepte tous les nombres négatifs.
select() : ordre alphabétique
Les cas sont triés par ordre alphabétique et fallback est placé en dernier.
Copier le code dans le presse-papiers
Sans clé fallback ni clé other, le dernier cas sert de solution de repli. Ce cas reste en dernier et seuls les cas qui le précèdent sont triés.
Fichiers .content.json
La forme sérialisée est triée de la même façon : { "nodeType": "translation", "translation": { … } }, ainsi que les nœuds plural, enumeration et select.
Clés de contenu (optionnel)
Avec intlayerSortContentKeys: true, le plugin trie également les clés de content du dictionnaire par ordre alphabétique, à chaque niveau d'imbrication. Cela s'applique uniquement aux fichiers *.content.*.
Copier le code dans le presse-papiers
Le tri continue à travers chaque helper (t, plural, enu, select, cond, gender, md, insert, nest, file…) pour atteindre les objets qu'ils contiennent. La structure interne de chaque helper conserve son propre ordonnancement. Les clés passées à cond() et gender() ne sont jamais réordonnées, car leur dernière clé sert de repli. Les champs situés au même niveau que content (key, title, locale…) restent inchangés.
Options
Ouvrir le tableau dans une fenêtre modale pour voir tout le contenu clairement
| Option | Valeur par défaut | Description |
|---|---|---|
intlayerPinnedLocales | ["en"] | Locales conservées en tête dans t(), dans cet ordre. Passez [] pour trier toutes les locales. |
intlayerSortContentKeys | false | Dans les fichiers *.content.*, trie également les clés de contenu et les objets imbriqués. |
Ce qui n'est pas modifié
- Objets contenant une décomposition (
...base), une clé calculée ([key]), une méthode ou une clé dupliquée. - Mappages
plural()contenant une clé qui n'est pas une catégorie CLDR. - Mappages
enu()dont le nouvel ordre modifierait le contenu résolu. - Appels à toute autre fonction portant le même nom qu'un helper mais recevant un argument qui n'est pas un objet.
Les commentaires se déplacent avec la clé à laquelle ils appartiennent.
Analyseurs pris en charge
babel, babel-flow, babel-ts, typescript, flow, acorn, espree, meriyah, json, json5 et jsonc. Les blocs <script> des fichiers Vue, Svelte et Astro sont formatés avec ces analyseurs.
Limite connue. Prettier n'exécute qu'un seul plugin par analyseur. Si un autre plugin remplace également les analyseurs JavaScript/TypeScript (par exempleprettier-plugin-tailwindcss), seul le dernier listé s'applique à ces fichiers. Limitezprettier-plugin-intlayeraux fichiers*.content.*avec un override pour éviter tout conflit.
