Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Histórico de versões
- "Histórico inicial"v9.7.103/11/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentaçãoCopiar o Markdown do documento para a área de transferência
Plugin Prettier
O prettier-plugin-intlayer organiza as chaves das suas traduções em uma ordem fixa a cada formatação do Prettier. Os diffs permanecem pequenos, conflitos de merge tornam-se raros e um locale ausente torna-se fácil de detectar.
Copiar o código para a área de transferência
Instalação
Copiar o código para a área de transferência
Requer o Prettier 3 ou superior.
Se o seu projeto já utiliza o Prettier, intlayer init prettier instala o plugin e o adiciona à sua configuração automaticamente.
Uso
Adicione o plugin à sua configuração do Prettier:
Copiar o código para a área de transferência
Para aplicá-lo apenas às suas declarações de conteúdo, utilize um override:
Copiar o código para a área de transferência
O que é ordenado
t(): locales
Os locales fixados aparecem primeiro (en por padrão). Os demais locales seguem em ordem alfabética.
Copiar o código para a área de transferência
plural(): ordem CLDR
As categorias vão da menor quantidade até a alternativa (fallback): zero, one, two, few, many, other.
Copiar o código para a área de transferência
enu(): limites ascendentes
As condições são ordenadas pelo seu número e depois pelo operador (<1, <=1, 1, >=1, >1). fallback fica por último.
Copiar o código para a área de transferência
Em tempo de execução, a primeira condição correspondente prevalece. O plugin aplica a nova ordem somente quando cada quantidade continuar resultando no mesmo conteúdo. Quando a ordem determina o resultado, o objeto é mantido exatamente como escrito. Por exemplo, em { '<1': …, '<=-2.3': … } a chave '<1' captura qualquer número negativo.
select(): alfabético
Os casos são ordenados alfabeticamente e fallback fica por último.
Copiar o código para a área de transferência
Sem uma chave fallback ou other, o último caso é usado como fallback. Esse caso permanece em último e apenas os casos anteriores a ele são ordenados.
Arquivos .content.json
A forma serializada é ordenada da mesma maneira: { "nodeType": "translation", "translation": { … } }, assim como os nós plural, enumeration e select.
Chaves de conteúdo (opcional)
Com intlayerSortContentKeys: true, o plugin também ordena as chaves de content do dicionário em ordem alfabética em todos os níveis de aninhamento. Isso se aplica apenas a arquivos *.content.*.
Copiar o código para a área de transferência
A ordenação continua através de cada função utilitária (t, plural, enu, select, cond, gender, md, insert, nest, file…) para alcançar os objetos internos. A estrutura interna de cada utilitário preserva sua ordenação. As chaves passadas para cond() e gender() nunca são reordenadas, pois a última chave serve de fallback. Os campos vizinhos a content (key, title, locale…) permanecem inalterados.
Opções
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Opção | Padrão | Descrição |
|---|---|---|
intlayerPinnedLocales | ["en"] | Locales mantidos em primeiro lugar em t(), nessa ordem. Passe [] para ordenar todos os locales. |
intlayerSortContentKeys | false | Em arquivos *.content.*, também ordena as chaves de conteúdo do dicionário e objetos aninhados. |
O que permanece intocado
- Objetos contendo spread (
...base), chave computada ([key]), método ou chave duplicada. - Mapas
plural()com chave que não pertença às categorias CLDR. - Mapas
enu()cuja nova ordem alteraria o conteúdo resolvido. - Chamadas para qualquer outra função com nome semelhante a um helper, mas recebendo argumento diferente de objeto.
Comentários acompanham a chave à qual pertencem.
Parsers suportados
babel, babel-flow, babel-ts, typescript, flow, acorn, espree, meriyah, json, json5 e jsonc. Os blocos <script> de arquivos Vue, Svelte e Astro são formatados com esses parsers.
Limitação conhecida. O Prettier executa apenas um plugin por parser. Se outro plugin também substituir os parsers de JavaScript/TypeScript (por exemploprettier-plugin-tailwindcss), apenas o último listado se aplicará a esses arquivos. Restrinja oprettier-plugin-intlayera arquivos*.content.*através de um override para evitar esse conflito.
