@intlayer/docs 6.0.0 → 6.0.2-canary.0

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.
Files changed (104) hide show
  1. package/dist/cjs/blog.cjs.map +1 -1
  2. package/dist/cjs/common.cjs +6 -5
  3. package/dist/cjs/common.cjs.map +1 -1
  4. package/dist/cjs/generated/blog.entry.cjs +318 -1863
  5. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  6. package/dist/cjs/generated/docs.entry.cjs +1317 -6282
  7. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  8. package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
  9. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  10. package/dist/cjs/generated/legal.entry.cjs +43 -84
  11. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  12. package/dist/esm/blog.mjs.map +1 -1
  13. package/dist/esm/common.mjs +2 -5
  14. package/dist/esm/common.mjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +318 -1863
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +1317 -6282
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +43 -84
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/dist/types/blog.d.ts +1 -1
  24. package/dist/types/blog.d.ts.map +1 -1
  25. package/dist/types/common.d.ts +1 -1
  26. package/dist/types/common.d.ts.map +1 -1
  27. package/dist/types/generated/blog.entry.d.ts +1 -1
  28. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  29. package/dist/types/generated/docs.entry.d.ts +2 -1
  30. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  31. package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
  32. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  33. package/dist/types/generated/legal.entry.d.ts +1 -1
  34. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  35. package/docs/ar/intlayer_CMS.md +261 -85
  36. package/docs/ar/releases/v6.md +273 -0
  37. package/docs/ar/roadmap.md +1 -3
  38. package/docs/ar/vs_code_extension.md +94 -63
  39. package/docs/de/intlayer_CMS.md +247 -65
  40. package/docs/de/releases/v6.md +298 -0
  41. package/docs/de/roadmap.md +1 -3
  42. package/docs/de/vs_code_extension.md +89 -58
  43. package/docs/en/configuration.md +9 -2
  44. package/docs/en/intlayer_CMS.md +205 -23
  45. package/docs/en/intlayer_cli.md +4 -4
  46. package/docs/en/intlayer_visual_editor.md +7 -6
  47. package/docs/en/intlayer_with_nextjs_14.md +17 -1
  48. package/docs/en/intlayer_with_nextjs_15.md +17 -1
  49. package/docs/en/releases/v6.md +268 -0
  50. package/docs/en/roadmap.md +1 -3
  51. package/docs/en/vs_code_extension.md +79 -49
  52. package/docs/en-GB/intlayer_CMS.md +216 -52
  53. package/docs/en-GB/releases/v6.md +297 -0
  54. package/docs/en-GB/roadmap.md +1 -3
  55. package/docs/en-GB/vs_code_extension.md +79 -48
  56. package/docs/es/intlayer_CMS.md +257 -84
  57. package/docs/es/releases/v6.md +274 -0
  58. package/docs/es/roadmap.md +1 -3
  59. package/docs/es/vs_code_extension.md +90 -60
  60. package/docs/fr/intlayer_CMS.md +250 -68
  61. package/docs/fr/releases/v6.md +274 -0
  62. package/docs/fr/roadmap.md +1 -3
  63. package/docs/fr/vs_code_extension.md +94 -63
  64. package/docs/hi/intlayer_CMS.md +253 -77
  65. package/docs/hi/releases/v6.md +273 -0
  66. package/docs/hi/roadmap.md +1 -3
  67. package/docs/hi/vs_code_extension.md +92 -61
  68. package/docs/it/intlayer_CMS.md +251 -73
  69. package/docs/it/releases/v6.md +273 -0
  70. package/docs/it/roadmap.md +1 -3
  71. package/docs/it/vs_code_extension.md +94 -63
  72. package/docs/ja/intlayer_CMS.md +282 -97
  73. package/docs/ja/releases/v6.md +273 -0
  74. package/docs/ja/roadmap.md +1 -3
  75. package/docs/ja/vs_code_extension.md +99 -68
  76. package/docs/ko/intlayer_CMS.md +267 -93
  77. package/docs/ko/releases/v6.md +273 -0
  78. package/docs/ko/roadmap.md +1 -3
  79. package/docs/ko/vs_code_extension.md +88 -57
  80. package/docs/pt/intlayer_CMS.md +261 -83
  81. package/docs/pt/releases/v6.md +273 -0
  82. package/docs/pt/roadmap.md +1 -3
  83. package/docs/pt/vs_code_extension.md +89 -58
  84. package/docs/ru/intlayer_CMS.md +240 -65
  85. package/docs/ru/releases/v6.md +274 -0
  86. package/docs/ru/roadmap.md +1 -1
  87. package/docs/ru/vs_code_extension.md +83 -52
  88. package/docs/tr/intlayer_CMS.md +278 -96
  89. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  90. package/docs/tr/intlayer_with_tanstack.md +3 -0
  91. package/docs/tr/releases/v6.md +273 -0
  92. package/docs/tr/roadmap.md +1 -1
  93. package/docs/tr/vs_code_extension.md +100 -71
  94. package/docs/zh/intlayer_CMS.md +257 -76
  95. package/docs/zh/releases/v6.md +273 -0
  96. package/docs/zh/roadmap.md +1 -3
  97. package/docs/zh/vs_code_extension.md +99 -68
  98. package/package.json +9 -8
  99. package/src/blog.ts +1 -1
  100. package/src/common.ts +2 -6
  101. package/src/generated/blog.entry.ts +323 -1864
  102. package/src/generated/docs.entry.ts +1317 -6278
  103. package/src/generated/frequentQuestions.entry.ts +202 -1183
  104. package/src/generated/legal.entry.ts +48 -85
@@ -1,11 +1,11 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
4
- title: CMS Intlayer | Externe seu conteúdo no CMS Intlayer
5
- description: Externe seu conteúdo no CMS Intlayer para delegar a gestão do seu conteúdo ao seu time.
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
+ title: Intlayer CMS | Externalize seu conteúdo no Intlayer CMS
5
+ description: Externalize seu conteúdo no Intlayer CMS para delegar a gestão do seu conteúdo para sua equipe.
6
6
  keywords:
7
7
  - CMS
8
- - Editor visual
8
+ - Editor Visual
9
9
  - Internacionalização
10
10
  - Documentação
11
11
  - Intlayer
@@ -19,11 +19,11 @@ slugs:
19
19
  youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
20
20
  ---
21
21
 
22
- # Intlayer Sistema de Gerenciamento de Conteúdo (CMS) Documentação
22
+ # Documentação do Sistema de Gestão de Conteúdo (CMS) Intlayer
23
23
 
24
- <iframe title="Visual Editor + CMS for Your Web App: Intlayer Explained" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
24
+ <iframe title="Editor Visual + CMS para sua Aplicação Web: Intlayer Explicado" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
25
25
 
26
- O Intlayer CMS é um aplicativo que permite externalizar o conteúdo de um projeto Intlayer.
26
+ O Intlayer CMS é uma aplicação que permite externalizar o conteúdo de um projeto Intlayer.
27
27
 
28
28
  Para isso, o Intlayer introduz o conceito de 'dicionários distantes'.
29
29
 
@@ -33,15 +33,15 @@ Para isso, o Intlayer introduz o conceito de 'dicionários distantes'.
33
33
 
34
34
  O Intlayer faz uma distinção entre dicionários 'locais' e 'distantes'.
35
35
 
36
- - Um dicionário 'local' é um dicionário declarado no seu projeto Intlayer. Como o arquivo de declaração de um botão ou sua barra de navegação. Externalizar seu conteúdo não faz sentido neste caso, pois este conteúdo não deve mudar frequentemente.
36
+ - Um dicionário 'local' é um dicionário que é declarado no seu projeto Intlayer. Como o arquivo de declaração de um botão, ou sua barra de navegação. Externalizar seu conteúdo não faz sentido neste caso porque esse conteúdo não deve mudar com frequência.
37
37
 
38
- - Um dicionário 'distante' é um dicionário gerenciado através do Intlayer CMS. Ele pode ser útil para permitir que sua equipe gerencie seu conteúdo diretamente no site e também tem como objetivo usar recursos de teste A/B e otimização automática de SEO.
38
+ - Um dicionário 'distante' é um dicionário que é gerenciado através do Intlayer CMS. Pode ser útil para permitir que sua equipe gerencie seu conteúdo diretamente no seu site, e também tem como objetivo usar recursos de testes A/B e otimização automática de SEO.
39
39
 
40
40
  ## Editor visual vs CMS
41
41
 
42
- O [Editor Visual Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md) é uma ferramenta que permite gerenciar seu conteúdo em um editor visual para dicionários locais. Uma vez feita uma alteração, o conteúdo será substituído na base de código. Isso significa que o aplicativo será reconstruído e a página será recarregada para exibir o novo conteúdo.
42
+ O editor [Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md) é uma ferramenta que permite gerenciar seu conteúdo em um editor visual para dicionários locais. Uma vez que uma alteração é feita, o conteúdo será substituído na base de código. Isso significa que a aplicação será reconstruída e a página será recarregada para exibir o novo conteúdo.
43
43
 
44
- Em contraste, o Intlayer CMS é uma ferramenta que permite gerenciar seu conteúdo em um editor visual para dicionários distantes. Uma vez feita uma alteração, o conteúdo **não** impactará sua base de código. E o site exibirá automaticamente o conteúdo alterado.
44
+ Em contraste, o Intlayer CMS é uma ferramenta que permite gerenciar seu conteúdo em um editor visual para dicionários distantes. Uma vez que uma alteração é feita, o conteúdo **não** impactará sua base de código. E o site exibirá automaticamente o conteúdo alterado.
45
45
 
46
46
  ## Integração
47
47
 
@@ -61,7 +61,7 @@ Para integração com Vite + React, consulte o [guia de configuração](https://
61
61
 
62
62
  ## Configuração
63
63
 
64
- No arquivo de configuração do Intlayer, você pode personalizar as configurações do CMS:
64
+ No seu arquivo de configuração do Intlayer, você pode personalizar as configurações do CMS:
65
65
 
66
66
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
67
67
  import type { IntlayerConfig } from "intlayer";
@@ -72,17 +72,17 @@ const config: IntlayerConfig = {
72
72
  /**
73
73
  * Obrigatório
74
74
  *
75
- * A URL do aplicativo.
76
- * Esta é a URL direcionada pelo editor visual.
75
+ * A URL da aplicação.
76
+ * Esta é a URL alvo do editor visual.
77
77
  */
78
78
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
79
79
 
80
80
  /**
81
81
  * Obrigatório
82
82
  *
83
- * O ID do cliente e o segredo do cliente são necessários para habilitar o editor.
83
+ * Client ID e client secret são necessários para ativar o editor.
84
84
  * Eles permitem identificar o usuário que está editando o conteúdo.
85
- * Eles podem ser obtidos criando um novo cliente no Intlayer Dashboard - Projetos (https://intlayer.org/dashboard/projects).
85
+ * Podem ser obtidos criando um novo cliente no Painel do Intlayer - Projetos (https://intlayer.org/dashboard/projects).
86
86
  * clientId: process.env.INTLAYER_CLIENT_ID,
87
87
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
88
88
  */
@@ -92,20 +92,20 @@ const config: IntlayerConfig = {
92
92
  /**
93
93
  * Opcional
94
94
  *
95
- * Caso você esteja hospedando o Intlayer CMS, pode definir a URL do CMS.
95
+ * No caso de estar a hospedar o Intlayer CMS por conta própria, pode definir a URL do CMS.
96
96
  *
97
97
  * A URL do Intlayer CMS.
98
- * Por padrão, está definido como https://intlayer.org
98
+ * Por padrão, está definida para https://intlayer.org
99
99
  */
100
100
  cmsURL: process.env.INTLAYER_CMS_URL,
101
101
 
102
102
  /**
103
103
  * Opcional
104
104
  *
105
- * Caso você esteja hospedando o Intlayer CMS, pode definir a URL do backend.
105
+ * No caso de estar a hospedar o Intlayer CMS por conta própria, pode definir a URL do backend.
106
106
  *
107
- * A URL do backend do Intlayer CMS.
108
- * Por padrão, está definido como https://back.intlayer.org
107
+ * A URL do Intlayer CMS.
108
+ * Por padrão, está definida para https://back.intlayer.org
109
109
  */
110
110
  backendURL: process.env.INTLAYER_BACKEND_URL,
111
111
  },
@@ -122,17 +122,17 @@ const config = {
122
122
  /**
123
123
  * Obrigatório
124
124
  *
125
- * A URL do aplicativo.
126
- * Esta é a URL direcionada pelo editor visual.
125
+ * A URL da aplicação.
126
+ * Esta é a URL alvo do editor visual.
127
127
  */
128
128
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
129
129
 
130
130
  /**
131
131
  * Obrigatório
132
132
  *
133
- * O ID do cliente e o segredo do cliente são necessários para habilitar o editor.
134
- * Eles permitem identificar o usuário que está editando o conteúdo.
135
- * Eles podem ser obtidos criando um novo cliente no Intlayer Dashboard - Projetos (https://intlayer.org/dashboard/projects).
133
+ * O ID do cliente e o segredo do cliente são necessários para ativar o editor.
134
+ * Eles permitem identificar o utilizador que está a editar o conteúdo.
135
+ * Podem ser obtidos criando um novo cliente no Intlayer Dashboard - Projects (https://intlayer.org/dashboard/projects).
136
136
  * clientId: process.env.INTLAYER_CLIENT_ID,
137
137
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
138
138
  */
@@ -142,20 +142,20 @@ const config = {
142
142
  /**
143
143
  * Opcional
144
144
  *
145
- * Caso você esteja hospedando o Intlayer CMS, pode definir a URL do CMS.
145
+ * No caso de estar a hospedar o Intlayer CMS por conta própria, pode definir a URL do CMS.
146
146
  *
147
147
  * A URL do Intlayer CMS.
148
- * Por padrão, está definido como https://intlayer.org
148
+ * Por padrão, está definida como https://intlayer.org
149
149
  */
150
150
  cmsURL: process.env.INTLAYER_CMS_URL,
151
151
 
152
152
  /**
153
153
  * Opcional
154
154
  *
155
- * Caso você esteja hospedando o Intlayer CMS, pode definir a URL do backend.
155
+ * No caso de estar a hospedar o Intlayer CMS por conta própria, pode definir a URL do backend.
156
156
  *
157
- * A URL do backend do Intlayer CMS.
158
- * Por padrão, está definido como https://back.intlayer.org
157
+ * A URL do Intlayer CMS.
158
+ * Por padrão, está definida como https://back.intlayer.org
159
159
  */
160
160
  backendURL: process.env.INTLAYER_BACKEND_URL,
161
161
  },
@@ -172,17 +172,17 @@ const config = {
172
172
  /**
173
173
  * Obrigatório
174
174
  *
175
- * A URL do aplicativo.
176
- * Esta é a URL direcionada pelo editor visual.
175
+ * A URL da aplicação.
176
+ * Esta é a URL alvo do editor visual.
177
177
  */
178
178
  applicationURL: process.env.INTLAYER_APPLICATION_URL,
179
179
 
180
180
  /**
181
181
  * Obrigatório
182
182
  *
183
- * O ID do cliente e o segredo do cliente são necessários para habilitar o editor.
184
- * Eles permitem identificar o usuário que está editando o conteúdo.
185
- * Eles podem ser obtidos criando um novo cliente no Intlayer Dashboard - Projetos (https://intlayer.org/dashboard/projects).
183
+ * O Client ID e o client secret são necessários para ativar o editor.
184
+ * Eles permitem identificar o utilizador que está a editar o conteúdo.
185
+ * Podem ser obtidos criando um novo cliente no Intlayer Dashboard - Projects (https://intlayer.org/dashboard/projects).
186
186
  * clientId: process.env.INTLAYER_CLIENT_ID,
187
187
  * clientSecret: process.env.INTLAYER_CLIENT_SECRET,
188
188
  */
@@ -192,17 +192,20 @@ const config = {
192
192
  /**
193
193
  * Opcional
194
194
  *
195
- * Caso você esteja hospedando o Intlayer CMS, pode definir a URL do CMS.
195
+ * No caso de estar a hospedar o Intlayer CMS por conta própria, pode definir a URL do CMS.
196
196
  *
197
197
  * A URL do Intlayer CMS.
198
- * Por padrão, está definido como https://intlayer.org
198
+ * Por padrão, está definida como https://intlayer.org
199
+ */
200
+ cmsURL: process.env.INTLAYER_CMS_URL,
201
+
199
202
  /**
200
203
  * Opcional
201
204
  *
202
- * Caso você esteja hospedando o Intlayer CMS, pode definir a URL do backend.
205
+ * No caso de estar a hospedar o Intlayer CMS por conta própria, pode definir a URL do backend.
203
206
  *
204
- * A URL do backend do Intlayer CMS.
205
- * Por padrão, está definido como https://back.intlayer.org
207
+ * A URL do Intlayer CMS.
208
+ * Por padrão, está definida como https://back.intlayer.org
206
209
  */
207
210
  backendURL: process.env.INTLAYER_BACKEND_URL,
208
211
  },
@@ -211,54 +214,55 @@ const config = {
211
214
  module.exports = config;
212
215
  ```
213
216
 
214
- > Se você não tiver um ID de cliente e um segredo de cliente, pode obtê-los criando um novo cliente no [Intlayer Dashboard - Projetos](https://intlayer.org/dashboard/projects).
217
+ > Se não tiver um client ID e client secret, pode obtê-los criando um novo cliente no [Intlayer Dashboard - Projects](https://intlayer.org/dashboard/projects).
215
218
 
216
219
  > Para ver todos os parâmetros disponíveis, consulte a [documentação de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md).
217
220
 
218
221
  ## Usando o CMS
219
222
 
220
- ### Enviar sua configuração
223
+ ### Enviar a sua configuração
221
224
 
222
- Para configurar o Intlayer CMS, você pode usar os comandos do [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/pt/intlayer_cli.md).
225
+ Para configurar o Intlayer CMS, pode usar os comandos do [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/pt/intlayer_cli.md).
223
226
 
224
227
  ```bash
225
228
  npx intlayer config push
226
229
  ```
227
230
 
228
- > Se você usar variáveis de ambiente no arquivo `intlayer.config.ts`, pode especificar o ambiente desejado usando o argumento `--env`:
231
+ > Se usar variáveis de ambiente no seu ficheiro de configuração `intlayer.config.ts`, pode especificar o ambiente desejado usando o argumento `--env`:
229
232
 
230
233
  ```bash
231
234
  npx intlayer config push --env production
232
235
  ```
233
236
 
234
- Este comando carrega sua configuração para o Intlayer CMS.
237
+ Este comando envia a sua configuração para o Intlayer CMS.
235
238
 
236
239
  ### Enviar um dicionário
237
240
 
238
- Para transformar seus dicionários locais em um dicionário remoto, você pode usar os comandos do [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/pt/intlayer_cli.md).
241
+ Para transformar os seus dicionários de localidade num dicionário remoto, pode usar os comandos do [intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/pt/intlayer_cli.md).
239
242
 
240
243
  ```bash
241
244
  npx intlayer dictionary push -d my-first-dictionary-key
242
245
  ```
243
246
 
244
- > Se você usar variáveis de ambiente no arquivo `intlayer.config.ts`, pode especificar o ambiente desejado usando o argumento `--env`:
247
+ > Se usar variáveis de ambiente no seu ficheiro de configuração `intlayer.config.ts`, pode especificar o ambiente desejado usando o argumento `--env`:
245
248
 
246
249
  ```bash
247
250
  npx intlayer dictionary push -d my-first-dictionary-key --env production
248
251
  ```
249
252
 
250
- Este comando carrega seus dicionários de conteúdo iniciais, tornando-os disponíveis para busca assíncrona e edição através da plataforma Intlayer.
253
+ Este comando envia os seus dicionários de conteúdo iniciais, tornando-os disponíveis para obtenção e edição assíncronas através da plataforma Intlayer.
251
254
 
252
255
  ### Editar o dicionário
253
256
 
254
- Então, você poderá ver e gerenciar seu dicionário no [Intlayer CMS](https://intlayer.org/dashboard/content).
257
+ Depois, poderá ver e gerir o seu dicionário no [Intlayer CMS](https://intlayer.org/dashboard/content).
258
+
259
+ ## Sincronização ao vivo
255
260
 
256
- ## Hot reloading
261
+ A Sincronização ao Vivo permite que a sua aplicação reflita as alterações de conteúdo do CMS em tempo de execução. Não é necessário reconstruir ou reimplantar. Quando ativada, as atualizações são transmitidas para um servidor de Sincronização ao Vivo que atualiza os dicionários que a sua aplicação lê.
257
262
 
258
- O Intlayer CMS é capaz de recarregar os dicionários automaticamente quando uma alteração é detectada.
263
+ > A Sincronização ao Vivo requer uma conexão contínua com o servidor e está disponível no plano enterprise.
259
264
 
260
- Sem o hot reloading, será necessário um novo build do aplicativo para exibir o novo conteúdo.
261
- Ao ativar a configuração [`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration), o aplicativo substituirá automaticamente o conteúdo atualizado quando ele for detectado.
265
+ Ative a Sincronização ao Vivo atualizando a sua configuração Intlayer:
262
266
 
263
267
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
264
268
  import type { IntlayerConfig } from "intlayer";
@@ -266,18 +270,32 @@ import type { IntlayerConfig } from "intlayer";
266
270
  const config: IntlayerConfig = {
267
271
  // ... outras configurações
268
272
  editor: {
269
- // ... outras configurações
270
-
271
273
  /**
272
- * Indica se o aplicativo deve recarregar automaticamente as configurações de localidade quando uma alteração for detectada.
273
- * Por exemplo, quando um novo dicionário é adicionado ou atualizado, o aplicativo atualizará o conteúdo exibido na página.
274
+ * Ativa o recarregamento a quente das configurações de localidade quando são detetadas alterações.
275
+ * Por exemplo, quando um dicionário é adicionado ou atualizado, a aplicação atualiza
276
+ * o conteúdo exibido na página.
274
277
  *
275
- * Como o hot reloading requer uma conexão contínua com o servidor, ele está disponível apenas para clientes do plano `enterprise`.
278
+ * Como o recarregamento a quente requer uma conexão contínua com o servidor, está
279
+ * disponível apenas para clientes do plano `enterprise`.
276
280
  *
277
281
  * Padrão: false
278
282
  */
279
283
  liveSync: true,
280
284
  },
285
+ build: {
286
+ /**
287
+ * Controla como os dicionários são importados:
288
+ *
289
+ * - "live": Os dicionários são buscados dinamicamente usando a API de Sincronização ao Vivo.
290
+ * Substitui useIntlayer por useDictionaryDynamic.
291
+ *
292
+ * Nota: O modo live usa a API de Sincronização ao Vivo para buscar os dicionários. Se a chamada da API
293
+ * falhar, os dicionários são importados dinamicamente.
294
+ * Nota: Apenas dicionários com conteúdo remoto e sinalizadores "live" usam o modo live.
295
+ * Outros usam o modo dinâmico para melhor desempenho.
296
+ */
297
+ importMode: "live",
298
+ },
281
299
  };
282
300
 
283
301
  export default config;
@@ -288,18 +306,32 @@ export default config;
288
306
  const config = {
289
307
  // ... outras configurações
290
308
  editor: {
291
- // ... outras configurações
292
-
293
309
  /**
294
- * Indica se o aplicativo deve recarregar automaticamente as configurações de localidade quando uma alteração for detectada.
295
- * Por exemplo, quando um novo dicionário é adicionado ou atualizado, o aplicativo atualizará o conteúdo exibido na página.
310
+ * Habilita o recarregamento a quente das configurações de localidade quando alterações são detectadas.
311
+ * Por exemplo, quando um dicionário é adicionado ou atualizado, a aplicação atualiza
312
+ * o conteúdo exibido na página.
296
313
  *
297
- * Como o hot reloading requer uma conexão contínua com o servidor, ele está disponível apenas para clientes do plano `enterprise`.
314
+ * Como o recarregamento a quente requer uma conexão contínua com o servidor, ele está
315
+ * disponível apenas para clientes do plano `enterprise`.
298
316
  *
299
317
  * Padrão: false
300
318
  */
301
319
  liveSync: true,
302
320
  },
321
+ build: {
322
+ /**
323
+ * Controla como os dicionários são importados:
324
+ *
325
+ * - "live": Os dicionários são buscados dinamicamente usando a API de Sincronização ao Vivo.
326
+ * Substitui useIntlayer por useDictionaryDynamic.
327
+ *
328
+ * Nota: O modo live usa a API de Sincronização ao Vivo para buscar os dicionários. Se a chamada da API
329
+ * falhar, os dicionários são importados dinamicamente.
330
+ * Nota: Apenas dicionários com conteúdo remoto e sinalizadores "live" usam o modo live.
331
+ * Outros usam o modo dinâmico para melhor desempenho.
332
+ */
333
+ importMode: "live",
334
+ },
303
335
  };
304
336
 
305
337
  export default config;
@@ -310,43 +342,189 @@ export default config;
310
342
  const config = {
311
343
  // ... outras configurações
312
344
  editor: {
313
- // ... outras configurações
314
-
315
345
  /**
316
- * Indica se o aplicativo deve recarregar automaticamente as configurações de localidade quando uma alteração for detectada.
317
- * Por exemplo, quando um novo dicionário é adicionado ou atualizado, o aplicativo atualizará o conteúdo exibido na página.
346
+ * Habilita o recarregamento a quente das configurações de localidade quando alterações são detectadas.
347
+ * Por exemplo, quando um dicionário é adicionado ou atualizado, a aplicação atualiza
348
+ * o conteúdo exibido na página.
318
349
  *
319
- * Como o hot reloading requer uma conexão contínua com o servidor, ele está disponível apenas para clientes do plano `enterprise`.
350
+ * Como o recarregamento a quente requer uma conexão contínua com o servidor, ele está
351
+ * disponível apenas para clientes do plano `enterprise`.
320
352
  *
321
353
  * Padrão: false
322
354
  */
323
355
  liveSync: true,
356
+
357
+ /**
358
+ * A porta do servidor Live Sync.
359
+ *
360
+ * Padrão: 4000
361
+ */
362
+ liveSyncPort: 4000,
363
+
364
+ /**
365
+ * A URL do servidor Live Sync.
366
+ *
367
+ * Padrão: http://localhost:{liveSyncPort}
368
+ */
369
+ liveSyncURL: "https://live.example.com",
370
+ },
371
+ build: {
372
+ /**
373
+ * Controla como os dicionários são importados:
374
+ *
375
+ * - "live": Os dicionários são buscados dinamicamente usando a API Live Sync.
376
+ * Substitui useIntlayer por useDictionaryDynamic.
377
+ *
378
+ * Nota: O modo live usa a API Live Sync para buscar os dicionários. Se a chamada da API
379
+ * falhar, os dicionários são importados dinamicamente.
380
+ * Nota: Apenas dicionários com conteúdo remoto e sinalizadores "live" usam o modo live.
381
+ * Outros usam o modo dinâmico para melhor desempenho.
382
+ */
383
+ importMode: "live",
324
384
  },
325
385
  };
326
386
 
327
387
  module.exports = config;
328
388
  ```
329
389
 
330
- O hot reloading substitui o conteúdo tanto no lado do servidor quanto no lado do cliente.
390
+ Inicie o servidor Live Sync para envolver sua aplicação:
391
+
392
+ Exemplo usando Next.js:
393
+
394
+ ```json5 fileName="package.json"
395
+ {
396
+ "scripts": {
397
+ // ... outros scripts
398
+ "build": "next build",
399
+ "dev": "next dev",
400
+ "start": "npx intlayer live --process 'next start'",
401
+ },
402
+ }
403
+ ```
404
+
405
+ Exemplo usando Vite:
406
+
407
+ ```json5 fileName="package.json"
408
+ {
409
+ "scripts": {
410
+ // ... outros scripts
411
+ "build": "vite build",
412
+ "dev": "vite dev",
413
+ "start": "npx intlayer live --process 'vite start'",
414
+ },
415
+ }
416
+ ```
417
+
418
+ O servidor Live Sync envolve sua aplicação e aplica automaticamente o conteúdo atualizado assim que ele chega.
419
+
420
+ Para receber notificações de alterações do CMS, o servidor Live Sync mantém uma conexão SSE com o backend. Quando o conteúdo muda no CMS, o backend encaminha a atualização para o servidor Live Sync, que grava os novos dicionários. Sua aplicação refletirá a atualização na próxima navegação ou recarregamento do navegador — sem necessidade de reconstrução.
331
421
 
332
- - No lado do servidor, você deve garantir que o processo do aplicativo tenha acesso de gravação ao diretório `.intlayer/dictionaries`.
333
- - No lado do cliente, o hot reloading permite que o aplicativo recarregue o conteúdo no navegador, sem a necessidade de recarregar a página. No entanto, este recurso está disponível apenas para componentes clientes.
334
- > Como o hot reloading requer uma conexão contínua com o servidor usando um `EventListener`, ele está disponível apenas para clientes do plano `enterprise`.
422
+ Fluxograma (CMS/Backend -> Servidor Live Sync -> Servidor de Aplicação -> Frontend):
335
423
 
336
- ## Depuração
424
+ ![Esquema Lógico do Live Sync](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_logic_schema.svg)
337
425
 
338
- Se você encontrar problemas com o CMS, verifique o seguinte:
426
+ Como funciona:
339
427
 
340
- - O aplicativo está em execução.
428
+ ![Fluxo Live Sync CMS/Backend/Servidor Live Sync/Servidor de Aplicação/Frontend](https://github.com/aymericzip/intlayer/blob/main/docs/assets/live_sync_flow_scema.svg)
341
429
 
342
- - As configurações do [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) estão corretamente definidas no arquivo de configuração do Intlayer.
343
- - Campos obrigatórios:
344
- - A URL do aplicativo deve corresponder à que você definiu na configuração do editor (`applicationURL`).
345
- - A URL do CMS
430
+ ### Fluxo de trabalho de desenvolvimento (local)
431
+
432
+ - Em desenvolvimento, todos os dicionários remotos são buscados quando a aplicação inicia, para que você possa testar atualizações rapidamente.
433
+ - Para testar o Live Sync localmente com Next.js, envolva seu servidor de desenvolvimento:
434
+
435
+ ```json5 fileName="package.json"
436
+ {
437
+ "scripts": {
438
+ // ... outros scripts
439
+ "dev": "npx intlayer live --process 'next dev'",
440
+ // "dev": "npx intlayer live --process 'vite dev'", // Para Vite
441
+ },
442
+ }
443
+ ```
444
+
445
+ Habilite a otimização para que o Intlayer aplique as transformações de importação Live durante o desenvolvimento:
446
+
447
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
448
+ import type { IntlayerConfig } from "intlayer";
449
+
450
+ const config: IntlayerConfig = {
451
+ editor: {
452
+ applicationURL: "http://localhost:5173",
453
+ liveSyncURL: "http://localhost:4000",
454
+ liveSync: true,
455
+ },
456
+ build: {
457
+ optimize: true,
458
+ importMode: "live",
459
+ },
460
+ };
461
+
462
+ export default config;
463
+ ```
464
+
465
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
466
+ /** @type {import('intlayer').IntlayerConfig} */
467
+ const config = {
468
+ editor: {
469
+ applicationURL: "http://localhost:5173",
470
+ liveSyncURL: "http://localhost:4000",
471
+ liveSync: true,
472
+ },
473
+ build: {
474
+ optimize: true,
475
+ importMode: "live",
476
+ },
477
+ };
478
+
479
+ export default config;
480
+ ```
481
+
482
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
483
+ /** @type {import('intlayer').IntlayerConfig} */
484
+ const config = {
485
+ editor: {
486
+ applicationURL: "http://localhost:5173",
487
+ liveSyncURL: "http://localhost:4000",
488
+ liveSync: true,
489
+ },
490
+ build: {
491
+ optimize: true,
492
+ importMode: "live",
493
+ },
494
+ };
495
+
496
+ module.exports = config;
497
+ ```
498
+
499
+ Esta configuração envolve seu servidor de desenvolvimento com o servidor Live Sync, busca dicionários remotos na inicialização e transmite atualizações do CMS via SSE. Atualize a página para ver as mudanças.
500
+
501
+ Notas e restrições:
502
+
503
+ - Adicione a origem do live sync à política de segurança do seu site (CSP). Certifique-se de que a URL do live sync esteja permitida em `connect-src` (e `frame-ancestors`, se relevante).
504
+ - O Live Sync não funciona com saída estática. Para Next.js, a página deve ser dinâmica para receber atualizações em tempo de execução (por exemplo, use `generateStaticParams`, `generateMetadata`, `getServerSideProps` ou `getStaticProps` adequadamente para evitar restrições de somente estático).
505
+ /// No CMS, cada dicionário possui uma flag `live`. Apenas dicionários com `live=true` são buscados via API de sincronização ao vivo; os demais são importados dinamicamente e permanecem inalterados em tempo de execução.
506
+ /// A flag `live` é avaliada para cada dicionário no momento da compilação. Se o conteúdo remoto não foi marcado como `live=true` durante a compilação, você deve recompilar para habilitar a Sincronização ao Vivo para esse dicionário.
507
+ /// O servidor de sincronização ao vivo deve ter permissão para escrever em `.intlayer`. Em contêineres, assegure o acesso de escrita a `/.intlayer`.
508
+ ///
509
+ /// ## Depuração
510
+ ///
511
+ /// Se você encontrar algum problema com o CMS, verifique o seguinte:
512
+ ///
513
+ /// - A aplicação está em execução.
514
+ ///
515
+ /// - A configuração do [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration) está corretamente definida no seu arquivo de configuração do Intlayer.
516
+ /// - Campos obrigatórios:
517
+ - A URL da aplicação deve corresponder àquela que você definiu na configuração do editor (`applicationURL`).
518
+ - A URL do CMS
346
519
 
347
520
  - Certifique-se de que a configuração do projeto foi enviada para o Intlayer CMS.
348
- - O editor visual usa um iframe para exibir seu site. Certifique-se de que a Política de Segurança de Conteúdo (CSP) do seu site permita a URL do CMS como `frame-ancestors` ('https://intlayer.org' por padrão). Verifique o console do editor para quaisquer erros.
521
+
522
+ - O editor visual usa um iframe para exibir seu site. Certifique-se de que a Política de Segurança de Conteúdo (CSP) do seu site permita a URL do CMS como `frame-ancestors` ('https://intlayer.org' por padrão). Verifique o console do editor para qualquer erro.
349
523
 
350
524
  ## Histórico do Documento
351
525
 
352
- - 5.5.10 - 2025-06-29: Histórico inicial
526
+ | Versão | Data | Alterações |
527
+ | ------ | ---------- | -------------------------------------------- |
528
+ | 6.0.1 | 2025-09-22 | Adiciona documentação sobre live sync |
529
+ | 6.0.0 | 2025-09-04 | Substitui o campo `hotReload` por `liveSync` |
530
+ | 5.5.10 | 2025-06-29 | Histórico inicial |