@intlayer/docs 8.9.6-canary.0 → 8.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/docs/ar/benchmark/nextjs.md +8 -8
- package/docs/ar/benchmark/solid.md +8 -8
- package/docs/ar/benchmark/svelte.md +8 -8
- package/docs/ar/benchmark/tanstack.md +7 -7
- package/docs/ar/benchmark/vue.md +8 -8
- package/docs/ar/interest_of_intlayer.md +107 -80
- package/docs/bn/interest_of_intlayer.md +237 -0
- package/docs/cs/interest_of_intlayer.md +237 -0
- package/docs/de/benchmark/nextjs.md +8 -8
- package/docs/de/benchmark/solid.md +8 -8
- package/docs/de/benchmark/svelte.md +8 -8
- package/docs/de/benchmark/tanstack.md +7 -7
- package/docs/de/benchmark/vue.md +8 -8
- package/docs/de/interest_of_intlayer.md +98 -74
- package/docs/en/benchmark/___nextjs.md +8 -8
- package/docs/en/benchmark/___tanstack.md +6 -6
- package/docs/en/benchmark/nextjs.md +8 -8
- package/docs/en/benchmark/solid.md +8 -8
- package/docs/en/benchmark/svelte.md +8 -8
- package/docs/en/benchmark/tanstack.md +7 -7
- package/docs/en/benchmark/vue.md +8 -8
- package/docs/en/configuration.md +2 -1
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en-GB/benchmark/nextjs.md +8 -8
- package/docs/en-GB/benchmark/solid.md +8 -8
- package/docs/en-GB/benchmark/svelte.md +8 -8
- package/docs/en-GB/benchmark/tanstack.md +7 -7
- package/docs/en-GB/benchmark/vue.md +8 -8
- package/docs/en-GB/configuration.md +2 -1
- package/docs/en-GB/interest_of_intlayer.md +59 -33
- package/docs/es/benchmark/nextjs.md +8 -8
- package/docs/es/benchmark/solid.md +8 -8
- package/docs/es/benchmark/svelte.md +8 -8
- package/docs/es/benchmark/tanstack.md +7 -7
- package/docs/es/benchmark/vue.md +8 -8
- package/docs/es/interest_of_intlayer.md +28 -2
- package/docs/fr/benchmark/nextjs.md +8 -8
- package/docs/fr/benchmark/solid.md +8 -8
- package/docs/fr/benchmark/svelte.md +8 -8
- package/docs/fr/benchmark/tanstack.md +7 -7
- package/docs/fr/benchmark/vue.md +8 -8
- package/docs/fr/interest_of_intlayer.md +47 -21
- package/docs/hi/benchmark/nextjs.md +8 -8
- package/docs/hi/benchmark/solid.md +8 -8
- package/docs/hi/benchmark/svelte.md +8 -8
- package/docs/hi/benchmark/tanstack.md +7 -7
- package/docs/hi/benchmark/vue.md +8 -8
- package/docs/hi/interest_of_intlayer.md +114 -88
- package/docs/id/benchmark/nextjs.md +8 -8
- package/docs/id/benchmark/solid.md +8 -8
- package/docs/id/benchmark/svelte.md +8 -8
- package/docs/id/benchmark/tanstack.md +7 -7
- package/docs/id/benchmark/vue.md +8 -8
- package/docs/id/interest_of_intlayer.md +81 -81
- package/docs/it/benchmark/nextjs.md +8 -8
- package/docs/it/benchmark/solid.md +8 -8
- package/docs/it/benchmark/svelte.md +8 -8
- package/docs/it/benchmark/tanstack.md +7 -7
- package/docs/it/benchmark/vue.md +4 -4
- package/docs/it/interest_of_intlayer.md +96 -69
- package/docs/ja/benchmark/nextjs.md +8 -8
- package/docs/ja/benchmark/solid.md +8 -8
- package/docs/ja/benchmark/svelte.md +8 -8
- package/docs/ja/benchmark/tanstack.md +7 -7
- package/docs/ja/benchmark/vue.md +8 -8
- package/docs/ja/interest_of_intlayer.md +108 -81
- package/docs/ko/benchmark/nextjs.md +8 -8
- package/docs/ko/benchmark/solid.md +8 -8
- package/docs/ko/benchmark/svelte.md +8 -8
- package/docs/ko/benchmark/tanstack.md +7 -7
- package/docs/ko/benchmark/vue.md +8 -8
- package/docs/ko/interest_of_intlayer.md +101 -74
- package/docs/nl/interest_of_intlayer.md +237 -0
- package/docs/pl/benchmark/nextjs.md +8 -8
- package/docs/pl/benchmark/solid.md +8 -8
- package/docs/pl/benchmark/svelte.md +8 -8
- package/docs/pl/benchmark/tanstack.md +7 -7
- package/docs/pl/benchmark/vue.md +8 -8
- package/docs/pl/interest_of_intlayer.md +85 -83
- package/docs/pt/benchmark/nextjs.md +8 -8
- package/docs/pt/benchmark/solid.md +8 -8
- package/docs/pt/benchmark/svelte.md +8 -8
- package/docs/pt/benchmark/tanstack.md +7 -7
- package/docs/pt/benchmark/vue.md +8 -8
- package/docs/pt/interest_of_intlayer.md +91 -67
- package/docs/ru/benchmark/nextjs.md +8 -8
- package/docs/ru/benchmark/solid.md +6 -7
- package/docs/ru/benchmark/svelte.md +8 -8
- package/docs/ru/benchmark/tanstack.md +7 -7
- package/docs/ru/benchmark/vue.md +8 -8
- package/docs/ru/interest_of_intlayer.md +95 -69
- package/docs/tr/benchmark/nextjs.md +8 -8
- package/docs/tr/benchmark/solid.md +8 -8
- package/docs/tr/benchmark/svelte.md +8 -8
- package/docs/tr/benchmark/tanstack.md +7 -7
- package/docs/tr/benchmark/vue.md +8 -8
- package/docs/tr/interest_of_intlayer.md +94 -89
- package/docs/uk/benchmark/nextjs.md +8 -8
- package/docs/uk/benchmark/solid.md +8 -8
- package/docs/uk/benchmark/svelte.md +8 -8
- package/docs/uk/benchmark/tanstack.md +7 -7
- package/docs/uk/benchmark/vue.md +8 -8
- package/docs/uk/interest_of_intlayer.md +94 -96
- package/docs/ur/interest_of_intlayer.md +237 -0
- package/docs/vi/benchmark/nextjs.md +8 -8
- package/docs/vi/benchmark/solid.md +8 -8
- package/docs/vi/benchmark/svelte.md +8 -8
- package/docs/vi/benchmark/tanstack.md +7 -7
- package/docs/vi/benchmark/vue.md +8 -8
- package/docs/vi/interest_of_intlayer.md +82 -79
- package/docs/zh/benchmark/nextjs.md +8 -8
- package/docs/zh/benchmark/solid.md +6 -7
- package/docs/zh/benchmark/svelte.md +7 -7
- package/docs/zh/benchmark/tanstack.md +7 -7
- package/docs/zh/benchmark/vue.md +8 -8
- package/docs/zh/interest_of_intlayer.md +99 -72
- package/docs/zh-TW/interest_of_intlayer.md +237 -0
- package/package.json +6 -6
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-14
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-27
|
|
4
4
|
title: Interesse do Intlayer
|
|
5
5
|
description: Descubra os benefícios e vantagens de usar o Intlayer em seus projetos. Entenda por que o Intlayer se destaca entre outros frameworks.
|
|
6
6
|
keywords:
|
|
@@ -13,19 +13,22 @@ slugs:
|
|
|
13
13
|
- doc
|
|
14
14
|
- why
|
|
15
15
|
history:
|
|
16
|
+
- version: 7.3.1
|
|
17
|
+
date: 2025-11-27
|
|
18
|
+
changes: "Lançamento do Compilador"
|
|
16
19
|
- version: 5.8.0
|
|
17
20
|
date: 2025-08-19
|
|
18
21
|
changes: "Atualização da tabela comparativa"
|
|
19
22
|
- version: 5.5.10
|
|
20
23
|
date: 2025-06-29
|
|
21
|
-
changes: "
|
|
24
|
+
changes: "Início do histórico"
|
|
22
25
|
---
|
|
23
26
|
|
|
24
27
|
# Por que você deve considerar o Intlayer?
|
|
25
28
|
|
|
26
29
|
## O que é o Intlayer?
|
|
27
30
|
|
|
28
|
-
**Intlayer** é uma biblioteca de internacionalização projetada especificamente para desenvolvedores JavaScript. Ela permite a declaração do seu conteúdo em qualquer lugar do seu código.
|
|
31
|
+
**Intlayer** é uma biblioteca de internacionalização projetada especificamente para desenvolvedores JavaScript. Ela permite a declaração do seu conteúdo em qualquer lugar do seu código. Ela converte declarações de conteúdo multilíngue em dicionários estruturados para integrar facilmente no seu código. Usando TypeScript, o **Intlayer** torna seu desenvolvimento mais robusto e eficiente.
|
|
29
32
|
|
|
30
33
|
## Por que o Intlayer foi criado?
|
|
31
34
|
|
|
@@ -37,8 +40,8 @@ Todas essas soluções adotam uma abordagem centralizada para listar e gerenciar
|
|
|
37
40
|
.
|
|
38
41
|
├── locales
|
|
39
42
|
│ ├── en.json
|
|
40
|
-
│ ├──
|
|
41
|
-
│ └──
|
|
43
|
+
│ ├── es.json
|
|
44
|
+
│ └── fr.json
|
|
42
45
|
├── i18n.ts
|
|
43
46
|
└── src
|
|
44
47
|
└── components
|
|
@@ -67,23 +70,23 @@ Ou aqui usando namespaces:
|
|
|
67
70
|
└── index.tsx
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
Este tipo de arquitetura retarda o processo de desenvolvimento e torna a base de código mais complexa de manter por vários motivos:
|
|
71
74
|
|
|
72
|
-
1. **Para
|
|
75
|
+
1. **Para cada novo componente criado, você deve:**
|
|
73
76
|
- Criar o novo recurso/namespace na pasta `locales`
|
|
74
|
-
- Lembrar de importar o novo namespace
|
|
75
|
-
- Traduzir seu conteúdo (
|
|
77
|
+
- Lembrar de importar o novo namespace em sua página
|
|
78
|
+
- Traduzir seu conteúdo (muitas vezes feito manualmente por copiar/colar de provedores de IA)
|
|
76
79
|
|
|
77
|
-
2. **Para qualquer alteração feita
|
|
80
|
+
2. **Para qualquer alteração feita em seus componentes, você deve:**
|
|
78
81
|
- Procurar o recurso/namespace relacionado (longe do componente)
|
|
79
82
|
- Traduzir seu conteúdo
|
|
80
|
-
- Garantir que seu conteúdo esteja atualizado para
|
|
81
|
-
- Verificar se seu namespace não inclui chaves/valores não
|
|
82
|
-
- Garantir que a estrutura
|
|
83
|
+
- Garantir que seu conteúdo esteja atualizado para cada localidade
|
|
84
|
+
- Verificar se seu namespace não inclui chaves/valores não utilizados
|
|
85
|
+
- Garantir que a estrutura de seus arquivos JSON seja a mesma para todas as localidades
|
|
83
86
|
|
|
84
|
-
Em projetos profissionais que utilizam essas soluções, plataformas de localização são frequentemente usadas para ajudar a gerenciar a tradução do seu conteúdo. No entanto, isso pode rapidamente se tornar
|
|
87
|
+
Em projetos profissionais que utilizam essas soluções, plataformas de localização são frequentemente usadas para ajudar a gerenciar a tradução do seu conteúdo. No entanto, isso pode rapidamente se tornar dispendioso para grandes projetos.
|
|
85
88
|
|
|
86
|
-
Para resolver
|
|
89
|
+
Para resolver este problema, o Intlayer adota uma abordagem que delimita seu conteúdo por componente e mantém seu conteúdo próximo ao seu componente, como costumamos fazer com CSS (`styled-components`), tipos, documentação (`storybook`) ou testes unitários (`jest`).
|
|
87
90
|
|
|
88
91
|
```bash codeFormat="typescript"
|
|
89
92
|
.
|
|
@@ -146,68 +149,89 @@ Esta abordagem permite que você:
|
|
|
146
149
|
|
|
147
150
|
1. **Aumente a velocidade de desenvolvimento**
|
|
148
151
|
- Arquivos `.content.{{ts|mjs|cjs|json}}` podem ser criados usando uma extensão do VSCode
|
|
149
|
-
- Ferramentas de
|
|
152
|
+
- Ferramentas de IA de preenchimento automático em seu IDE (como o GitHub Copilot) podem ajudá-lo a declarar seu conteúdo, reduzindo o copiar/colar
|
|
150
153
|
|
|
151
|
-
2. **
|
|
154
|
+
2. **Limpe sua base de código**
|
|
155
|
+
- Reduza a complexidade
|
|
156
|
+
- Aumente a manutenibilidade
|
|
152
157
|
|
|
153
|
-
3. **
|
|
154
|
-
|
|
155
|
-
4. **Duplicar seus componentes e seus conteúdos relacionados com mais facilidade (Exemplo: componentes de login/registro, etc.)**
|
|
158
|
+
3. **Duplique seus componentes e seus conteúdos relacionados com mais facilidade (Exemplo: componentes de login/registro, etc.)**
|
|
156
159
|
- Limitando o risco de impactar o conteúdo de outros componentes
|
|
157
160
|
- Copiando/colando seu conteúdo de uma aplicação para outra sem dependências externas
|
|
158
161
|
|
|
159
|
-
|
|
160
|
-
- Se você não
|
|
161
|
-
- Se você excluir um componente, será mais fácil lembrar de remover seu conteúdo relacionado, pois estará presente na mesma pasta
|
|
162
|
+
4. **Evite poluir sua base de código com chaves/valores não utilizados para componentes não utilizados**
|
|
163
|
+
- Se você não usar um componente, o Intlayer não importará seu conteúdo relacionado
|
|
164
|
+
- Se você excluir um componente, será mais fácil lembrar de remover seu conteúdo relacionado, pois ele estará presente na mesma pasta
|
|
162
165
|
|
|
163
|
-
|
|
164
|
-
- O agente de IA não
|
|
165
|
-
- As traduções podem ser facilmente
|
|
166
|
+
5. **Reduza o custo de raciocínio para agentes de IA declararem seu conteúdo multilíngue**
|
|
167
|
+
- O agente de IA não terá que varrer toda a sua base de código para saber onde implementar seu conteúdo
|
|
168
|
+
- As traduções podem ser feitas facilmente por ferramentas de IA de preenchimento automático em seu IDE (como o GitHub Copilot)
|
|
166
169
|
|
|
167
|
-
|
|
168
|
-
- Se um componente for carregado
|
|
170
|
+
6. **Otimize o desempenho de carregamento**
|
|
171
|
+
- Se um componente for carregado tardiamente (lazy-loaded), seu conteúdo relacionado será carregado ao mesmo tempo
|
|
169
172
|
|
|
170
173
|
## Recursos adicionais do Intlayer
|
|
171
174
|
|
|
172
|
-
| Recurso | Descrição
|
|
173
|
-
| ------------------------------------------------------------------------------------------------------------------------- |
|
|
174
|
-
|  | **Gestão de Conteúdo
|
|
176
|
-
|
|
|
177
|
-
|  | **Suporte Multi-Framework**<br><br>O Intlayer é compatível com todos os principais frameworks e bibliotecas, incluindo Next.js, React, Vite, Vue.js, Nuxt, Preact, Express e muito mais. |
|
|
178
|
+
|  | **Gestão de Conteúdo Baseada em JavaScript**<br><br>Aproveite a flexibilidade do JavaScript para definir e gerenciar seu conteúdo com eficiência. <br><br> - [Declaração de conteúdo](https://intlayer.org/doc/concept/content) |
|
|
179
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Recurso" width="700"> | **Compilador**<br><br>O Compilador Intlayer extrai automaticamente o conteúdo dos componentes e gera os arquivos de dicionário.<br><br> - [Compilador](https://intlayer.org/doc/compiler) |
|
|
180
|
+
|  | **Arquivo de Declaração de Conteúdo por Localidade**<br><br>Acelere seu desenvolvimento declarando seu conteúdo uma vez, antes da geração automática.<br><br> - [Arquivo de Declaração de Conteúdo por Localidade](https://intlayer.org/doc/concept/per-locale-file) |
|
|
181
|
+
|  | **Ambiente com Segurança de Tipos**<br><br>Utilize o TypeScript para garantir que suas definições de conteúdo e código estejam livres de erros, beneficiando-se também do preenchimento automático do IDE.<br><br> - [Configuração do TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
182
|
+
|  | **Configuração Simplificada**<br><br>Comece a rodar rapidamente com configuração mínima. Ajuste as configurações de internacionalização, roteamento, IA, build e tratamento de conteúdo com facilidade. <br><br> - [Explore a integração com Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
183
|
+
|  | **Recuperação de Conteúdo Simplificada**<br><br>Não há necessidade de chamar sua função `t` para cada item de conteúdo. Recupere todo o seu conteúdo diretamente usando um único hook.<br><br> - [Integração com React](https://intlayer.org/doc/environment/create-react-app) |
|
|
184
|
+
|  | **Implementação Consistente de Server Components**<br><br>Perfeitamente adequado para server components do Next.js, use a mesma implementação para componentes client e server, sem necessidade de passar sua função `t` por cada server component. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
185
|
+
|  | **Base de Código Organizada**<br><br>Mantenha sua base de código mais organizada: 1 componente = 1 dicionário na mesma pasta. Traduções próximas aos seus respectivos componentes aumentam a manutenibilidade e a clareza. <br><br> - [Como o Intlayer funciona](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
186
|
+
|  | **Roteamento Avançado**<br><br>Suporte total ao roteamento de aplicativos, adaptando-se perfeitamente a estruturas complexas de aplicativos, para Next.js, React, Vite, Vue.js, etc.<br><br> - [Explore a integração com Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
187
|
+
|  | **Suporte a Markdown**<br><br>Importe e interprete arquivos de localidade e Markdown remoto para conteúdo multilíngue, como políticas de privacidade, documentação, etc. Interprete e torne os metadados de Markdown acessíveis em seu código.<br><br> - [Arquivos de conteúdo](https://intlayer.org/doc/concept/content/file) |
|
|
188
|
+
|  | **Editor Visual e CMS Gratuitos**<br><br>Um editor visual e CMS gratuitos estão disponíveis para escritores de conteúdo, removendo a necessidade de uma plataforma de localização. Mantenha seu conteúdo sincronizado usando Git, ou externalize-o total ou parcialmente com o CMS.<br><br> - [Editor Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
|
|
189
|
+
|  | **Conteúdo Tree-shakable**<br><br>Conteúdo tree-shakable, reduzindo o tamanho do bundle final. Carrega o conteúdo por componente, excluindo qualquer conteúdo não utilizado do seu bundle. Suporta carregamento tardio (lazy loading) para aumentar a eficiência de carregamento do app. <br><br> - [Otimização do build do app](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
190
|
+
|  | **Renderização Estática**<br><br>Não bloqueia a Renderização Estática. <br><br> - [Integração com Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
191
|
+
|  | **Tradução Baseada em IA**<br><br>Transforme seu site em 231 idiomas com apenas um clique usando as ferramentas avançadas de tradução baseadas em IA do Intlayer, usando seu próprio provedor de IA/chave de API. <br><br> - [Integração de CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI do Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Auto preenchimento](https://intlayer.org/doc/concept/auto-fill) |
|
|
192
|
+
|  | **Integração do Servidor MCP**<br><br>Fornece um servidor MCP (Model Context Protocol) para automação de IDE, permitindo uma gestão de conteúdo fluida e fluxos de trabalho de i18n diretamente no seu ambiente de desenvolvimento. <br><br> - [Servidor MCP](https://github.com/aymericzip/intlayer/blob/main/docs/pt/mcp_server.md) |
|
|
193
|
+
|  | **Extensão para VSCode**<br><br>O Intlayer fornece uma extensão para VSCode para ajudá-lo a gerenciar seu conteúdo e traduções, criar seus dicionários, traduzir seu conteúdo e muito mais. <br><br> - [Extensão para VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
194
|
+
|  | **Interoperabilidade**<br><br>Permite interoperabilidade com react-i18next, next-i18next, next-intl e react-intl. <br><br> - [Intlayer e react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer e next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer e next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
|
|
195
|
+
| Teste de Traduções Ausentes (CLI/CI) | ✅ CLI: npx intlayer content test (auditoria compatível com CI) |
|
|
191
196
|
|
|
192
197
|
## Comparação do Intlayer com outras soluções
|
|
193
198
|
|
|
194
|
-
|
|
|
195
|
-
|
|
|
196
|
-
| **Traduções Próximas aos Componentes**
|
|
197
|
-
| **Integração com TypeScript**
|
|
198
|
-
| **Detecção de Tradução Ausente**
|
|
199
|
-
| **Conteúdo Rico (JSX/Markdown/componentes)**
|
|
200
|
-
| **Tradução
|
|
201
|
-
| **Editor Visual**
|
|
202
|
-
| **Roteamento Localizado**
|
|
203
|
-
| **Geração Dinâmica de Rotas**
|
|
204
|
-
| **Pluralização**
|
|
205
|
-
| **Formatação (datas, números, moedas)**
|
|
206
|
-
| **Formato de Conteúdo**
|
|
207
|
-
| **Suporte ICU**
|
|
208
|
-
| **
|
|
209
|
-
| **Ecossistema / Comunidade**
|
|
210
|
-
| **Renderização
|
|
211
|
-
| **Tree-shaking (
|
|
212
|
-
| **Carregamento
|
|
213
|
-
| **
|
|
199
|
+
| Recurso | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
|
|
200
|
+
| -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
|
|
201
|
+
| **Traduções Próximas aos Componentes** | ✅ Sim, conteúdo colocalizado com cada componente | ❌ Não | ❌ Não | ❌ No | ❌ Não | ❌ Não | ✅ Sim - usando `Single File Components` (SFCs) |
|
|
202
|
+
| **Integração com TypeScript** | ✅ Avançada, tipos estritos gerados automaticamente | ⚠️ Básica; configuração extra para segurança | ✅ Boa, mas menos estrita | ⚠️ Tipagens, precisa de configuração | ✅ Boa | ⚠️ Básica | ✅ Boa (tipos disponíveis; segurança de chaves precisa de setup) |
|
|
203
|
+
| **Detecção de Tradução Ausente** | ✅ Destaque de erro no TypeScript e erro/aviso no tempo de build | ⚠️ Principalmente strings de fallback em tempo de execução | ⚠️ Strings de fallback | ⚠️ Precisa de configuração extra | ⚠️ Fallback em tempo de execução | ⚠️ Fallback em tempo de execução | ⚠️ Fallback/avisos em tempo de execução (configurável) |
|
|
204
|
+
| **Conteúdo Rico (JSX/Markdown/componentes)** | ✅ Suporte direto | ⚠️ Limitado / apenas interpolação | ⚠️ Sintaxe ICU, não JSX real | ⚠️ Limitado | ❌ Não projetado para nós ricos | ⚠️ Limitado | ⚠️ Limitado (componentes via `<i18n-t>`, Markdown via plugins) |
|
|
205
|
+
| **Tradução baseada em IA** | ✅ Sim, suporta vários provedores de IA. Utilizável com suas próprias chaves de API. Considera o contexto da sua aplicação e o escopo do conteúdo | ❌ Não | ❌ Não | ❌ Não | ❌ Não | ❌ Não | ❌ Não |
|
|
206
|
+
| **Editor Visual** | ✅ Sim, Editor Visual local + CMS opcional; pode externalizar o conteúdo da base de código; incorporável | ❌ Não / disponível via plataformas de localização externas | ❌ Não / disponível via plataformas de localização externas | ❌ Não / disponível via plataformas de localização externas | ❌ Não / disponível via plataformas de localização externas | ❌ Não / disponível via plataformas de localização externas | ❌ Não / disponível via plataformas de localização externas |
|
|
207
|
+
| **Roteamento Localizado** | ✅ Sim, suporta caminhos localizados nativamente (funciona com Next.js e Vite) | ⚠️ Sem suporte nativo, requer plugins (ex: `next-i18next`) ou configuração de roteador personalizada | ❌ Não, apenas formatação de mensagens, o roteamento deve ser manual | ⚠️ Sem suporte nativo, requer plugins ou configuração manual | ✅ Nativo, App Router suporta segmento `[locale]` | ✅ Nativo | ✅ Nativo |
|
|
208
|
+
| **Geração Dinâmica de Rotas** | ✅ Sim | ⚠️ Plugin/ecossistema ou configuração manual | ❌ Não fornecido | ⚠️ Plugin/manual | ✅ Sim | ✅ Sim | ❌ Não fornecido (Nuxt i18n fornece) |
|
|
209
|
+
| **Pluralização** | ✅ Padrões baseados em enumeração | ✅ Configurável (plugins como i18next-icu) | ✅ (ICU) | ✅ (ICU/messageformat) | ✅ Boa | ✅ Boa | ✅ Regras de pluralização integradas |
|
|
210
|
+
| **Formatação (datas, números, moedas)** | ✅ Formatadores otimizados (Intl sob o capô) | ⚠️ Via plugins ou uso personalizado do Intl | ✅ Formatadores ICU | ✅ Helpers ICU/CLI | ✅ Boa (helpers Intl) | ✅ Boa (helpers Intl) | ✅ Formatadores de data/número integrados (Intl) |
|
|
211
|
+
| **Formato de Conteúdo** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) | ⚠️ .json | ✅ .json, .js | ⚠️ .po, .json | ✅ .json, .js, .ts | ⚠️ .json | ✅ .json, .js |
|
|
212
|
+
| **Suporte a ICU** | ⚠️ WIP | ⚠️ Via plugin (i18next-icu) | ✅ Sim | ✅ Sim | ✅ Sim | ⚠️ Via plugin (`i18next-icu`) | ⚠️ Via formatador/compilador personalizado |
|
|
213
|
+
| **Helpers de SEO (hreflang, sitemap)** | ✅ Ferramentas integradas: helpers para sitemap, robots.txt, metadados | ⚠️ Plugins da comunidade/manual | ❌ Não é o núcleo | ❌ Não é o núcleo | ✅ Boa | ✅ Boa | ❌ Não é o núcleo (Nuxt i18n fornece helpers) |
|
|
214
|
+
| **Ecossistema / Comunidade** | ⚠️ Menor, mas crescendo rápido e reativo | ✅ Maior e maduro | ✅ Grande | ⚠️ Menor | ✅ Tamanho médio, focado no Next.js | ✅ Tamanho médio, focado no Next.js | ✅ Grande no ecossistema Vue |
|
|
215
|
+
| **Renderização no Lado do Servidor e Server Components** | ✅ Sim, simplificado para SSR / React Server Components | ⚠️ Suportado no nível da página, mas precisa passar funções-t na árvore de componentes para filhos server components | ⚠️ Suportado no nível da página com configuração adicional, mas precisa passar funções-t na árvore de componentes para filhos server components | ✅ Suportado, configuração necessária | ⚠️ Suportado no nível da página, mas precisa passar funções-t na árvore de componentes para filhos server components | ⚠️ Suportado no nível da página, mas precisa passar funções-t na árvore de componentes para filhos server components | ✅ SSR via Nuxt/Vue SSR (sem RSC) |
|
|
216
|
+
| **Tree-shaking (carrega apenas o conteúdo usado)** | ✅ Sim, por componente no tempo de build via plugins Babel/SWC | ⚠️ Geralmente carrega tudo (pode ser melhorado com namespaces/code-splitting) | ⚠️ Geralmente carrega tudo | ❌ Não é o padrão | ⚠️ Parcial | ⚠️ Parcial | ⚠️ Parcial (com code-splitting/configuração manual) |
|
|
217
|
+
| **Carregamento Tardio (Lazy Loading)** | ✅ Sim, por localidade / por dicionário | ✅ Sim (ex: backends/namespaces sob demanda) | ✅ Sim (bundles de localidade divididos) | ✅ Sim (importações dinâmicas de catálogo) | ✅ Sim (por rota/por localidade), precisa de gestão de namespace | ✅ Sim (por rota/por localidade), precisa de gestão de namespace | ✅ Sim (mensagens de localidade assíncronas) |
|
|
218
|
+
| **Limpar conteúdo não utilizado** | ✅ Sim, por dicionário no tempo de build | ❌ Não, apenas via segmentação manual de namespace | ❌ Não, todas as mensagens declaradas são agrupadas | ✅ Sim, chaves não utilizadas detectadas e removidas no build | ❌ Não, pode ser gerenciado manualmente com gestão de namespace | ❌ Não, pode ser gerenciado manualmente com gestão de namespace | ❌ Não, apenas possível via lazy-loading manual |
|
|
219
|
+
| **Gestão de Projetos Grandes** | ✅ Incentiva a modularidade, adequado para design-systems | ⚠️ Precisa de boa disciplina de arquivos | ⚠️ Catálogos centrais podem se tornar grandes | ⚠️ Pode se tornar complexo | ✅ Modular com configuração | ✅ Modular com configuração | ✅ Modular com configuração do Vue Router/Nuxt i18n |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Estrelas do GitHub
|
|
224
|
+
|
|
225
|
+
As estrelas do GitHub são um forte indicador da popularidade de um projeto, da confiança da comunidade e da relevância a longo prazo. Embora não sejam uma medida direta da qualidade técnica, elas refletem quantos desenvolvedores consideram o projeto útil, acompanham seu progresso e têm probabilidade de adotá-lo. Para estimar o valor de um projeto, as estrelas ajudam a comparar a tração entre as alternativas e fornecem insights sobre o crescimento do ecossistema.
|
|
226
|
+
|
|
227
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Interoperabilidade
|
|
232
|
+
|
|
233
|
+
o `intlayer` também pode ajudar a gerenciar seus namespaces `react-intl`, `react-i18next`, `next-intl`, `next-i18next` e `vue-i18n`.
|
|
234
|
+
|
|
235
|
+
Usando o `intlayer`, você pode declarar seu conteúdo no formato da sua biblioteca i18n favorita, e o intlayer gerará seus namespaces no local de sua escolha (exemplo: `/messages/{{locale}}/{{namespace}}.json`).
|
|
236
|
+
|
|
237
|
+
Consulte as [opções dictionaryOutput e i18nextResourcesDir](https://intlayer.org/doc/concept/configuration#content-configuration) para mais detalhes.
|
|
@@ -36,14 +36,14 @@ history:
|
|
|
36
36
|
|
|
37
37
|
## Ссылка на результаты:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md
|
|
46
|
+
> [Посмотреть полные данные бенчмарка](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md)
|
|
47
47
|
|
|
48
48
|
Полный репозиторий бенчмарка можно найти [здесь](https://github.com/intlayer-org/benchmark-i18n).
|
|
49
49
|
|
|
@@ -72,7 +72,7 @@ Intlayer пытается оптимизировать все эти аспек
|
|
|
72
72
|
|
|
73
73
|
Чтобы выявить эти проблемы, я создал бесплатный сканер, который вы можете попробовать [здесь](https://intlayer.org/i18n-seo-scanner).
|
|
74
74
|
|
|
75
|
-
<
|
|
75
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
76
76
|
|
|
77
77
|
## Проблема
|
|
78
78
|
|
|
@@ -36,14 +36,13 @@ history:
|
|
|
36
36
|
|
|
37
37
|
## Ссылка на результаты:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
|
|
41
|
-
width="100%"
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md"
|
|
41
|
+
width="100%"
|
|
42
42
|
height="600px"
|
|
43
|
-
|
|
44
|
-
</iframe>
|
|
43
|
+
/>
|
|
45
44
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md
|
|
45
|
+
> [Посмотреть полные данные бенчмарка](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_solid.md)
|
|
47
46
|
|
|
48
47
|
Полный репозиторий бенчмарка можно найти [здесь](https://github.com/intlayer-org/benchmark-i18n/tree/main).
|
|
49
48
|
|
|
@@ -68,7 +67,7 @@ history:
|
|
|
68
67
|
|
|
69
68
|
Чтобы быстро выявить проблемы с утечкой i18n, я настроил бесплатный сканер, доступный [здесь](https://intlayer.org/i18n-seo-scanner).
|
|
70
69
|
|
|
71
|
-
<
|
|
70
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
72
71
|
|
|
73
72
|
## Проблема
|
|
74
73
|
|
|
@@ -36,14 +36,14 @@ history:
|
|
|
36
36
|
|
|
37
37
|
## Ссылка на результаты:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md
|
|
46
|
+
> [Посмотреть полные данные бенчмарка](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_svelte.md)
|
|
47
47
|
|
|
48
48
|
Полный репозиторий бенчмарка можно найти [здесь](https://github.com/intlayer-org/benchmark-i18n/tree/main).
|
|
49
49
|
|
|
@@ -67,7 +67,7 @@ history:
|
|
|
67
67
|
|
|
68
68
|
Чтобы быстро выявить проблемы с утечкой i18n, я настроил бесплатный сканер, доступный [здесь](https://intlayer.org/i18n-seo-scanner).
|
|
69
69
|
|
|
70
|
-
<
|
|
70
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
71
71
|
|
|
72
72
|
## Проблема
|
|
73
73
|
|
|
@@ -36,14 +36,14 @@ history:
|
|
|
36
36
|
|
|
37
37
|
## Ссылка на результаты:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
|
|
41
|
-
width="100%"
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
|
|
41
|
+
width="100%"
|
|
42
42
|
height="600px"
|
|
43
|
-
style="border:none;"
|
|
44
|
-
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md
|
|
46
|
+
> [Посмотреть полные данные бенчмарка](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md)
|
|
47
47
|
|
|
48
48
|
Полный репозиторий бенчмарка можно найти [здесь](https://github.com/intlayer-org/benchmark-i18n/tree/main).
|
|
49
49
|
|
|
@@ -68,7 +68,7 @@ history:
|
|
|
68
68
|
|
|
69
69
|
Чтобы быстро выявить проблемы с утечкой i18n, я настроил бесплатный сканер, доступный [здесь](https://intlayer.org/i18n-seo-scanner).
|
|
70
70
|
|
|
71
|
-
<
|
|
71
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
72
72
|
|
|
73
73
|
## Проблема
|
|
74
74
|
|
package/docs/ru/benchmark/vue.md
CHANGED
|
@@ -36,14 +36,14 @@ history:
|
|
|
36
36
|
|
|
37
37
|
## Ссылка на результаты:
|
|
38
38
|
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
<ClickToOpenIframe
|
|
40
|
+
src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md"
|
|
41
|
+
width="100%"
|
|
42
|
+
height="600px"
|
|
43
|
+
style="border:none;"
|
|
44
|
+
/>
|
|
45
45
|
|
|
46
|
-
> https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md
|
|
46
|
+
> [Посмотреть полные данные бенчмарка](https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-vite_vue.md)
|
|
47
47
|
|
|
48
48
|
Полный репозиторий бенчмарка можно найти [здесь](https://github.com/intlayer-org/benchmark-i18n/tree/main).
|
|
49
49
|
|
|
@@ -67,7 +67,7 @@ history:
|
|
|
67
67
|
|
|
68
68
|
Чтобы быстро выявить проблемы с утечкой i18n, я настроил бесплатный сканер, доступный [здесь](https://intlayer.org/i18n-seo-scanner).
|
|
69
69
|
|
|
70
|
-
<
|
|
70
|
+
<ClickToOpenIframe src="https://intlayer.org/i18n-seo-scanner" width="100%" height="600px" style="border:none;"/>
|
|
71
71
|
|
|
72
72
|
## Проблема
|
|
73
73
|
|