Haz tu pregunta y obtén un resumen del documento referenciando esta página y el proveedor AI de tu elección
Historial de versiones
- "Historial inicial"v9.7.13/11/2026
El contenido de esta página ha sido traducido con una IA.
Ver la última versión del contenido original en inglésSi tienes una idea para mejorar esta documentación, no dudes en contribuir enviando una pull request en GitHub.
Enlace de GitHub a la documentaciónCopiar el Markdown del documento a la portapapeles
Plugin de Prettier
prettier-plugin-intlayer organiza las claves de tus traducciones en un orden fijo cada vez que Prettier formatea un archivo. Las diferencias (diffs) se mantienen pequeñas, los conflictos de fusión se vuelven más raros y una locale faltante resulta fácil de detectar.
Copiar el código al portapapeles
Instalación
Copiar el código al portapapeles
Requiere Prettier 3 o superior.
Si tu proyecto ya utiliza Prettier, intlayer init prettier instala el plugin y lo añade a tu configuración por ti.
Uso
Añade el plugin a tu configuración de Prettier:
Copiar el código al portapapeles
Para aplicarlo únicamente a tus declaraciones de contenido, utiliza una regla de anulación (override):
Copiar el código al portapapeles
Qué se ordena
t(): locales
Las locales fijadas aparecen primero (en por defecto). Las demás locales siguen en orden alfabético.
Copiar el código al portapapeles
plural(): orden CLDR
Las categorías van desde la cantidad más pequeña hasta la alternativa (fallback): zero, one, two, few, many, other.
Copiar el código al portapapeles
enu(): umbrales ascendentes
Las condiciones se ordenan según su número y luego por operador (<1, <=1, 1, >=1, >1). fallback va al final.
Copiar el código al portapapeles
En tiempo de ejecución, prevalece la primera condición coincidente. El plugin aplica el nuevo orden únicamente cuando cada cantidad sigue resolviendo al mismo contenido. Cuando el orden decide el resultado, el objeto se deja tal como se escribió. Por ejemplo, en { '<1': …, '<=-2.3': … } la clave '<1' captura todo número negativo.
select(): alfabético
Los casos se ordenan alfabéticamente y fallback se coloca al final.
Copiar el código al portapapeles
Sin una clave fallback o other, el último caso se utiliza como respaldo. Ese caso permanece al final y solo se ordenan los casos que lo preceden.
Archivos .content.json
La forma serializada se ordena de la misma manera: { "nodeType": "translation", "translation": { … } }, así como los nodos plural, enumeration y select.
Claves de contenido (opcional)
Con intlayerSortContentKeys: true, el plugin también ordena las claves de content del diccionario alfabéticamente en cada nivel de anidamiento. Esto solo se aplica en archivos *.content.*.
Copiar el código al portapapeles
El ordenamiento continúa a través de cada asistente (t, plural, enu, select, cond, gender, md, insert, nest, file…) para acceder a los objetos dentro de ellos. La estructura interna de cada asistente conserva su orden. Las claves pasadas a cond() y gender() nunca se reordenan, ya que su última clave funciona como fallback. Los campos adyacentes a content (key, title, locale…) se mantienen intactos.
Opciones
Abrir la tabla en una ventana flotante para ver todo el contenido claramente
| Opción | Predeterminado | Descripción |
|---|---|---|
intlayerPinnedLocales | ["en"] | Locales que se mantienen primero en t(), en este orden. Pasa [] para ordenar todas las locales. |
intlayerSortContentKeys | false | En archivos *.content.*, también ordena las claves de contenido del diccionario y objetos anidados. |
Qué se deja sin cambios
- Objetos que contienen una propagación (
...base), una clave calculada ([key]), un método o una clave duplicada. - Asignaciones
plural()con una clave que no pertenezca a las categorías CLDR. - Asignaciones
enu()cuyo nuevo orden cambiaría el contenido resuelto. - Llamadas a cualquier otra función con un nombre coincidente con el de un asistente pero que reciba un argumento que no sea un objeto.
Los comentarios se mueven junto con la clave a la que pertenecen.
Parsers compatibles
babel, babel-flow, babel-ts, typescript, flow, acorn, espree, meriyah, json, json5 y jsonc. Los bloques <script> de archivos Vue, Svelte y Astro se formatean con estos parsers.
Limitación conocida. Prettier ejecuta un único plugin por parser. Si otro plugin también reemplaza los parsers de JavaScript/TypeScript (por ejemploprettier-plugin-tailwindcss), solo el último listado se aplicará a esos archivos. Limitaprettier-plugin-intlayera archivos*.content.*mediante un override para evitar el conflicto.
