@intlayer/docs 8.3.0-canary.4 → 8.3.1

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 (240) hide show
  1. package/docs/ar/compiler.md +84 -49
  2. package/docs/ar/configuration.md +80 -37
  3. package/docs/ar/intlayer_with_nextjs_16.md +174 -1
  4. package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
  5. package/docs/ar/intlayer_with_react_router_v7.md +224 -1
  6. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
  7. package/docs/ar/intlayer_with_svelte_kit.md +175 -2
  8. package/docs/ar/intlayer_with_tanstack.md +176 -1
  9. package/docs/ar/intlayer_with_vite+preact.md +174 -1
  10. package/docs/ar/intlayer_with_vite+react.md +174 -1
  11. package/docs/ar/intlayer_with_vite+solid.md +174 -1
  12. package/docs/ar/intlayer_with_vite+svelte.md +174 -1
  13. package/docs/ar/intlayer_with_vite+vue.md +174 -1
  14. package/docs/de/compiler.md +83 -48
  15. package/docs/de/configuration.md +434 -212
  16. package/docs/de/intlayer_with_nextjs_16.md +176 -1
  17. package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
  18. package/docs/de/intlayer_with_react_router_v7.md +225 -2
  19. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
  20. package/docs/de/intlayer_with_svelte_kit.md +158 -2
  21. package/docs/de/intlayer_with_tanstack.md +159 -1
  22. package/docs/de/intlayer_with_vite+preact.md +157 -1
  23. package/docs/de/intlayer_with_vite+react.md +157 -1
  24. package/docs/de/intlayer_with_vite+solid.md +159 -3
  25. package/docs/de/intlayer_with_vite+svelte.md +157 -1
  26. package/docs/de/intlayer_with_vite+vue.md +157 -1
  27. package/docs/en/compiler.md +60 -33
  28. package/docs/en/configuration.md +80 -57
  29. package/docs/en/intlayer_with_nextjs_16.md +176 -0
  30. package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
  31. package/docs/en/intlayer_with_react_router_v7.md +159 -0
  32. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
  33. package/docs/en/intlayer_with_svelte_kit.md +159 -0
  34. package/docs/en/intlayer_with_tanstack.md +160 -1
  35. package/docs/en/intlayer_with_vite+preact.md +159 -0
  36. package/docs/en/intlayer_with_vite+react.md +159 -0
  37. package/docs/en/intlayer_with_vite+solid.md +148 -27
  38. package/docs/en/intlayer_with_vite+svelte.md +159 -0
  39. package/docs/en/intlayer_with_vite+vue.md +142 -41
  40. package/docs/en-GB/compiler.md +66 -34
  41. package/docs/en-GB/configuration.md +78 -36
  42. package/docs/es/compiler.md +83 -48
  43. package/docs/es/configuration.md +429 -206
  44. package/docs/es/intlayer_with_adonisjs.md +1 -1
  45. package/docs/es/intlayer_with_express.md +1 -1
  46. package/docs/es/intlayer_with_fastify.md +1 -1
  47. package/docs/es/intlayer_with_hono.md +1 -1
  48. package/docs/es/intlayer_with_nestjs.md +1 -1
  49. package/docs/es/intlayer_with_nextjs_16.md +176 -3
  50. package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
  51. package/docs/es/intlayer_with_nuxt.md +1 -1
  52. package/docs/es/intlayer_with_react_router_v7.md +227 -4
  53. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
  54. package/docs/es/intlayer_with_svelte_kit.md +158 -2
  55. package/docs/es/intlayer_with_tanstack.md +160 -2
  56. package/docs/es/intlayer_with_vite+preact.md +162 -6
  57. package/docs/es/intlayer_with_vite+react.md +160 -4
  58. package/docs/es/intlayer_with_vite+solid.md +163 -7
  59. package/docs/es/intlayer_with_vite+svelte.md +157 -1
  60. package/docs/es/intlayer_with_vite+vue.md +165 -9
  61. package/docs/fr/compiler.md +81 -46
  62. package/docs/fr/configuration.md +355 -134
  63. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  64. package/docs/fr/intlayer_with_express.md +1 -1
  65. package/docs/fr/intlayer_with_fastify.md +1 -1
  66. package/docs/fr/intlayer_with_hono.md +1 -1
  67. package/docs/fr/intlayer_with_nestjs.md +1 -1
  68. package/docs/fr/intlayer_with_nextjs_16.md +183 -7
  69. package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
  70. package/docs/fr/intlayer_with_react_router_v7.md +229 -3
  71. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
  72. package/docs/fr/intlayer_with_svelte_kit.md +158 -2
  73. package/docs/fr/intlayer_with_tanstack.md +159 -1
  74. package/docs/fr/intlayer_with_vite+preact.md +164 -8
  75. package/docs/fr/intlayer_with_vite+react.md +162 -6
  76. package/docs/fr/intlayer_with_vite+solid.md +163 -7
  77. package/docs/fr/intlayer_with_vite+svelte.md +157 -1
  78. package/docs/fr/intlayer_with_vite+vue.md +164 -8
  79. package/docs/hi/compiler.md +81 -46
  80. package/docs/hi/configuration.md +87 -44
  81. package/docs/hi/intlayer_with_nextjs_16.md +174 -1
  82. package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
  83. package/docs/hi/intlayer_with_react_router_v7.md +224 -1
  84. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
  85. package/docs/hi/intlayer_with_svelte_kit.md +158 -2
  86. package/docs/hi/intlayer_with_tanstack.md +159 -1
  87. package/docs/hi/intlayer_with_vite+preact.md +157 -1
  88. package/docs/hi/intlayer_with_vite+react.md +157 -1
  89. package/docs/hi/intlayer_with_vite+solid.md +157 -1
  90. package/docs/hi/intlayer_with_vite+svelte.md +157 -1
  91. package/docs/hi/intlayer_with_vite+vue.md +157 -1
  92. package/docs/id/compiler.md +84 -51
  93. package/docs/id/configuration.md +83 -45
  94. package/docs/id/intlayer_with_nextjs_16.md +174 -1
  95. package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
  96. package/docs/id/intlayer_with_react_router_v7.md +224 -1
  97. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
  98. package/docs/id/intlayer_with_svelte_kit.md +158 -2
  99. package/docs/id/intlayer_with_tanstack.md +159 -1
  100. package/docs/id/intlayer_with_vite+preact.md +157 -1
  101. package/docs/id/intlayer_with_vite+react.md +157 -1
  102. package/docs/id/intlayer_with_vite+solid.md +157 -1
  103. package/docs/id/intlayer_with_vite+svelte.md +157 -1
  104. package/docs/id/intlayer_with_vite+vue.md +157 -1
  105. package/docs/it/compiler.md +81 -46
  106. package/docs/it/configuration.md +426 -204
  107. package/docs/it/intlayer_with_nextjs_16.md +174 -1
  108. package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
  109. package/docs/it/intlayer_with_react_router_v7.md +225 -2
  110. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
  111. package/docs/it/intlayer_with_svelte_kit.md +158 -2
  112. package/docs/it/intlayer_with_tanstack.md +159 -1
  113. package/docs/it/intlayer_with_vite+preact.md +157 -1
  114. package/docs/it/intlayer_with_vite+react.md +157 -1
  115. package/docs/it/intlayer_with_vite+solid.md +159 -3
  116. package/docs/it/intlayer_with_vite+svelte.md +157 -1
  117. package/docs/it/intlayer_with_vite+vue.md +157 -1
  118. package/docs/ja/compiler.md +94 -58
  119. package/docs/ja/configuration.md +88 -45
  120. package/docs/ja/intlayer_with_nextjs_16.md +174 -1
  121. package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
  122. package/docs/ja/intlayer_with_react_router_v7.md +184 -394
  123. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
  124. package/docs/ja/intlayer_with_svelte_kit.md +119 -595
  125. package/docs/ja/intlayer_with_tanstack.md +131 -642
  126. package/docs/ja/intlayer_with_vite+preact.md +111 -1231
  127. package/docs/ja/intlayer_with_vite+react.md +129 -1304
  128. package/docs/ja/intlayer_with_vite+solid.md +159 -3
  129. package/docs/ja/intlayer_with_vite+svelte.md +157 -1
  130. package/docs/ja/intlayer_with_vite+vue.md +157 -1
  131. package/docs/ko/compiler.md +88 -52
  132. package/docs/ko/configuration.md +87 -44
  133. package/docs/ko/intlayer_with_nextjs_16.md +174 -1
  134. package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
  135. package/docs/ko/intlayer_with_react_router_v7.md +225 -2
  136. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
  137. package/docs/ko/intlayer_with_svelte_kit.md +158 -2
  138. package/docs/ko/intlayer_with_tanstack.md +159 -1
  139. package/docs/ko/intlayer_with_vite+preact.md +157 -1
  140. package/docs/ko/intlayer_with_vite+react.md +157 -1
  141. package/docs/ko/intlayer_with_vite+solid.md +159 -3
  142. package/docs/ko/intlayer_with_vite+svelte.md +157 -1
  143. package/docs/ko/intlayer_with_vite+vue.md +157 -1
  144. package/docs/pl/compiler.md +84 -51
  145. package/docs/pl/configuration.md +83 -37
  146. package/docs/pl/intlayer_with_nextjs_16.md +174 -1
  147. package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
  148. package/docs/pl/intlayer_with_react_router_v7.md +224 -1
  149. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
  150. package/docs/pl/intlayer_with_svelte_kit.md +158 -2
  151. package/docs/pl/intlayer_with_tanstack.md +159 -1
  152. package/docs/pl/intlayer_with_vite+preact.md +157 -1
  153. package/docs/pl/intlayer_with_vite+react.md +157 -1
  154. package/docs/pl/intlayer_with_vite+solid.md +157 -1
  155. package/docs/pl/intlayer_with_vite+svelte.md +157 -1
  156. package/docs/pl/intlayer_with_vite+vue.md +157 -1
  157. package/docs/pt/compiler.md +81 -46
  158. package/docs/pt/configuration.md +404 -194
  159. package/docs/pt/intlayer_with_nextjs_16.md +174 -1
  160. package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
  161. package/docs/pt/intlayer_with_react_router_v7.md +224 -1
  162. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
  163. package/docs/pt/intlayer_with_svelte_kit.md +158 -2
  164. package/docs/pt/intlayer_with_tanstack.md +159 -1
  165. package/docs/pt/intlayer_with_vite+preact.md +157 -1
  166. package/docs/pt/intlayer_with_vite+react.md +157 -1
  167. package/docs/pt/intlayer_with_vite+solid.md +157 -1
  168. package/docs/pt/intlayer_with_vite+svelte.md +157 -1
  169. package/docs/pt/intlayer_with_vite+vue.md +157 -1
  170. package/docs/ru/compiler.md +90 -57
  171. package/docs/ru/configuration.md +76 -46
  172. package/docs/ru/intlayer_with_nextjs_16.md +174 -1
  173. package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
  174. package/docs/ru/intlayer_with_react_router_v7.md +224 -1
  175. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
  176. package/docs/ru/intlayer_with_svelte_kit.md +158 -2
  177. package/docs/ru/intlayer_with_tanstack.md +159 -1
  178. package/docs/ru/intlayer_with_vite+preact.md +157 -1
  179. package/docs/ru/intlayer_with_vite+react.md +157 -1
  180. package/docs/ru/intlayer_with_vite+solid.md +157 -1
  181. package/docs/ru/intlayer_with_vite+svelte.md +157 -1
  182. package/docs/ru/intlayer_with_vite+vue.md +157 -1
  183. package/docs/tr/compiler.md +85 -52
  184. package/docs/tr/configuration.md +83 -40
  185. package/docs/tr/intlayer_with_nextjs_16.md +174 -1
  186. package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
  187. package/docs/tr/intlayer_with_react_router_v7.md +224 -1
  188. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
  189. package/docs/tr/intlayer_with_svelte_kit.md +158 -2
  190. package/docs/tr/intlayer_with_tanstack.md +159 -1
  191. package/docs/tr/intlayer_with_vite+preact.md +157 -1
  192. package/docs/tr/intlayer_with_vite+react.md +157 -1
  193. package/docs/tr/intlayer_with_vite+solid.md +157 -1
  194. package/docs/tr/intlayer_with_vite+svelte.md +157 -1
  195. package/docs/tr/intlayer_with_vite+vue.md +157 -1
  196. package/docs/uk/compiler.md +96 -61
  197. package/docs/uk/configuration.md +83 -37
  198. package/docs/uk/intlayer_with_nextjs_16.md +174 -1
  199. package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
  200. package/docs/uk/intlayer_with_react_router_v7.md +224 -1
  201. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
  202. package/docs/uk/intlayer_with_svelte_kit.md +157 -1
  203. package/docs/uk/intlayer_with_tanstack.md +159 -1
  204. package/docs/uk/intlayer_with_vite+preact.md +157 -1
  205. package/docs/uk/intlayer_with_vite+react.md +157 -1
  206. package/docs/uk/intlayer_with_vite+solid.md +157 -1
  207. package/docs/uk/intlayer_with_vite+svelte.md +157 -1
  208. package/docs/uk/intlayer_with_vite+vue.md +157 -1
  209. package/docs/vi/compiler.md +85 -50
  210. package/docs/vi/configuration.md +85 -39
  211. package/docs/vi/intlayer_with_nextjs_16.md +174 -1
  212. package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
  213. package/docs/vi/intlayer_with_react_router_v7.md +224 -1
  214. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
  215. package/docs/vi/intlayer_with_svelte_kit.md +158 -2
  216. package/docs/vi/intlayer_with_tanstack.md +159 -1
  217. package/docs/vi/intlayer_with_vite+preact.md +157 -1
  218. package/docs/vi/intlayer_with_vite+react.md +157 -1
  219. package/docs/vi/intlayer_with_vite+solid.md +157 -1
  220. package/docs/vi/intlayer_with_vite+svelte.md +157 -1
  221. package/docs/vi/intlayer_with_vite+vue.md +157 -1
  222. package/docs/zh/compiler.md +84 -49
  223. package/docs/zh/configuration.md +80 -37
  224. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  225. package/docs/zh/intlayer_with_express.md +1 -1
  226. package/docs/zh/intlayer_with_fastify.md +1 -1
  227. package/docs/zh/intlayer_with_hono.md +1 -1
  228. package/docs/zh/intlayer_with_nestjs.md +1 -1
  229. package/docs/zh/intlayer_with_nextjs_16.md +174 -1
  230. package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
  231. package/docs/zh/intlayer_with_react_router_v7.md +227 -4
  232. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
  233. package/docs/zh/intlayer_with_svelte_kit.md +158 -2
  234. package/docs/zh/intlayer_with_tanstack.md +159 -1
  235. package/docs/zh/intlayer_with_vite+preact.md +159 -3
  236. package/docs/zh/intlayer_with_vite+react.md +157 -1
  237. package/docs/zh/intlayer_with_vite+solid.md +161 -5
  238. package/docs/zh/intlayer_with_vite+svelte.md +157 -1
  239. package/docs/zh/intlayer_with_vite+vue.md +158 -2
  240. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-03-11
3
+ updatedAt: 2026-03-12
4
4
  title: Configuração
5
5
  description: Aprenda como configurar o Intlayer para sua aplicação. Entenda as várias configurações e opções disponíveis para personalizar o Intlayer conforme suas necessidades.
6
6
  keywords:
@@ -15,23 +15,32 @@ slugs:
15
15
  - configuration
16
16
  history:
17
17
  - version: 8.3.0
18
- data: 2026-03-11
18
+ date: 2026-03-11
19
19
  changes: Mover 'baseDir' da configuração de 'content' para a configuração de 'system'
20
20
  - version: 8.2.0
21
- date: 2026-03-10
21
+ date: 2026-03-09
22
22
  changes: Atualizar opções do compilador, adicionar suporte para 'output' e 'noMetadata'
23
23
  - version: 8.1.7
24
24
  date: 2026-02-25
25
25
  changes: Atualizar opções do compilador
26
+ - version: 8.1.5
27
+ date: 2026-02-23
28
+ changes: Adicionado a opção do compilador 'build-only' e o prefixo do dicionário
26
29
  - version: 8.0.6
27
30
  date: 2026-02-12
28
31
  changes: Adicionar suporte para os provedores Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face e Together.ai
29
- - version: 8.0.4
32
+ - version: 8.0.5
30
33
  date: 2026-02-06
31
34
  changes: Adicionar `dataSerialization` à configuração de IA
35
+ - version: 8.0.0
36
+ date: 2026-01-24
37
+ changes: Renomear o modo de importação `live` para `fetch` para descrever melhor o mecanismo subjacente.
38
+ - version: 8.0.0
39
+ date: 2026-01-22
40
+ changes: Mover a configuração de build para `importMode` na configuração do dicionário.
32
41
  - version: 8.0.0
33
42
  date: 2026-01-22
34
- changes: Mover a configuração de build importMode para a configuração do dicionário.
43
+ changes: Adicionada a opção `rewrite` à configuração de roteamento
35
44
  - version: 8.0.0
36
45
  date: 2026-01-18
37
46
  changes: Separar a configuração do sistema da configuração do conteúdo. Mover os caminhos internos para a propriedade `system`. Adicionar `codeDir` para separar os arquivos de conteúdo da transformação do código.
@@ -44,6 +53,24 @@ history:
44
53
  - version: 7.5.0
45
54
  date: 2025-12-17
46
55
  changes: Adicionar opção `buildMode`
56
+ - version: 7.0.0
57
+ date: 2025-10-25
58
+ changes: Adicionada a configuração `dictionary`
59
+ - version: 7.0.0
60
+ date: 2025-10-21
61
+ changes: Substituído o `middleware` pela configuração `routing`
62
+ - version: 7.0.0
63
+ date: 2025-10-12
64
+ changes: Adicionada a opção `formatCommand`
65
+ - version: 6.2.0
66
+ date: 2025-10-12
67
+ changes: Atualizada a opção `excludedPath`
68
+ - version: 6.0.2
69
+ date: 2025-09-23
70
+ changes: Adicionada a opção `outputFormat`
71
+ - version: 6.0.0
72
+ date: 2025-09-21
73
+ changes: Removido o campo `dictionaryOutput` e o campo `i18nextResourcesDir`
47
74
  - version: 6.0.0
48
75
  date: 2025-09-16
49
76
  changes: Adicionado modo de importação `live`
@@ -92,7 +119,7 @@ O Intlayer aceita formatos de arquivos de configuração JSON, JS, MJS e TS:
92
119
 
93
120
  ## Exemplo de arquivo de configuração
94
121
 
95
- ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
122
+ ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
96
123
  import { Locales, type IntlayerConfig } from "intlayer";
97
124
  import { nextjsRewrite } from "intlayer/routing";
98
125
  import { z } from "zod";
@@ -190,7 +217,7 @@ const config: IntlayerConfig = {
190
217
  * Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
191
218
  * Default: ['cookie', 'header']
192
219
  */
193
- storage: "cookie",
220
+ storage: ["cookie", "header"],
194
221
 
195
222
  /**
196
223
  * Base path for the application URLs.
@@ -321,12 +348,23 @@ const config: IntlayerConfig = {
321
348
  /**
322
349
  * Global context to guide the AI in generating translations.
323
350
  */
324
- applicationContext: "This is a travel booking application.",
351
+ applicationContext: "Esta é uma aplicação de reserva de viagens.",
325
352
 
326
353
  /**
327
354
  * Base URL for the AI API.
328
355
  */
329
356
  baseURL: "http://localhost:3000",
357
+
358
+ /**
359
+ * Serialização de dados
360
+ *
361
+ * Opções:
362
+ * - "json": Padrão, confiável; consome mais tokens.
363
+ * - "toon": Menos tokens, menos consistente que o JSON.
364
+ *
365
+ * Padrão: "json"
366
+ */
367
+ dataSerialization: "json",
330
368
  },
331
369
 
332
370
  /**
@@ -349,9 +387,9 @@ const config: IntlayerConfig = {
349
387
 
350
388
  /**
351
389
  * Output format for generated dictionary files.
352
- * Default: ['esm', 'cjs']
390
+ * Default: ['cjs', 'esm']
353
391
  */
354
- outputFormat: ["esm"],
392
+ outputFormat: ["cjs", "esm"],
355
393
 
356
394
  /**
357
395
  * Indicates if the build should check TypeScript types.
@@ -426,42 +464,70 @@ const config: IntlayerConfig = {
426
464
  compiler: {
427
465
  /**
428
466
  * Indica se o compilador deve ser habilitado.
467
+ *
468
+ * - false : Desabilita o compilador.
469
+ * - true : Habilita o compilador.
470
+ * - "build-only" : Ignora o compilador durante o desenvolvimento para acelerar os tempos de inicialização.
471
+ *
472
+ * Valor padrão : false
429
473
  */
430
474
  enabled: true,
431
475
 
432
476
  /**
433
- * Pattern to traverse the code to optimize.
434
- */
435
- transformPattern: [
436
- "**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
437
- "!**/node_modules/**",
438
- ],
439
-
440
- /**
441
- * Pattern to exclude from the optimization.
477
+ * Define o caminho dos arquivos de saída. Substitui `outputDir`.
478
+ *
479
+ * - Os caminhos `./` são resolvidos em relação ao diretório do componente.
480
+ * - Os caminhos `/` são resolvidos em relação à raiz do projeto (`baseDir`).
481
+ *
482
+ * - A inserção da variável `{{locale}}` no caminho ativará a geração de dicionários separados por idioma.
483
+ *
484
+ * Exemplo:
485
+ * ```ts
486
+ * {
487
+ * // Cria arquivos .content.ts multilíngues próximos ao componente
488
+ * output: ({ fileName, extension }) => `./${fileName}${extension}`,
489
+ *
490
+ * // output: './{{fileName}}{{extension}}', // Equivalente usando uma string template
491
+ * }
492
+ * ```
493
+ *
494
+ * ```ts
495
+ * {
496
+ * // Cria arquivos JSON centralizados por idioma na raiz do projeto
497
+ * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
498
+ *
499
+ * // output: '/locales/{{locale}}/{{key}}.content.json', // Equivalente usando uma string template
500
+ * }
501
+ * ```
502
+ *
503
+ * Lista de variáveis:
504
+ * - `fileName`: O nome do arquivo.
505
+ * - `key`: A chave do conteúdo.
506
+ * - `locale`: O idioma do conteúdo.
507
+ * - `extension`: A extensão do arquivo.
508
+ * - `componentFileName`: O nome do arquivo do componente.
509
+ * - `componentExtension`: A extensão do arquivo do componente.
510
+ * - `format`: O formato do dicionário.
511
+ * - `componentFormat`: O formato do dicionário do componente.
512
+ * - `componentDirPath`: O caminho do diretório do componente.
442
513
  */
443
- excludePattern: ["**/node_modules/**"],
514
+ output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
444
515
 
445
516
  /**
446
- * Diretório de saída para os dicionários optimizados.
517
+ * Indica se os componentes devem ser salvos após serem transformados.
518
+ * Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois removido.
447
519
  */
448
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
520
+ saveComponents: false,
449
521
 
450
522
  /**
451
- * Inserir apenas o conteúdo no arquivo gerado, sem chave.
523
+ * Inserir apenas o conteúdo no arquivo gerado. Útil para saídas JSON i18next ou ICU MessageFormat por localidade.
452
524
  */
453
525
  noMetadata: false,
454
526
 
455
527
  /**
456
528
  * Prefixo da chave do dicionário
457
529
  */
458
- dictionaryKeyPrefix: "", // Remove base prefix
459
-
460
- /**
461
- * Indica se os componentes devem ser salvos após serem transformados.
462
- * Dessa forma, o compilador pode ser executado apenas uma vez para transformar o app e depois removido.
463
- */
464
- saveComponents: false,
530
+ dictionaryKeyPrefix: "", // Adicionar um prefixo opcional para as chaves do dicionário extraídas
465
531
  },
466
532
 
467
533
  /**
@@ -480,7 +546,7 @@ const config: IntlayerConfig = {
480
546
  };
481
547
 
482
548
  export default config;
483
- ```
549
+ ````
484
550
 
485
551
  ## Referência de Configuração
486
552
 
@@ -609,41 +675,50 @@ Define configurações relacionadas ao editor integrado, incluindo porta do serv
609
675
  - _Exemplo_: `4000`
610
676
  - _Nota_: A porta do servidor de sincronização ao vivo.
611
677
 
612
- - **liveSyncURL**:
613
- - _Tipo_: `string`
614
- - _Padrão_: `'http://localhost:{liveSyncPort}'`
615
- - _Descrição_: A URL do servidor de sincronização ao vivo.
616
- - _Exemplo_: `'https://example.com'`
617
- - _Nota_: Aponta para localhost por padrão, mas pode ser alterado para qualquer URL no caso de um servidor de sincronização ao vivo remoto.
618
-
619
- ### Configuração do Middleware
678
+ ### Configuração de Roteamento
620
679
 
621
- Configurações que controlam o comportamento do middleware, incluindo como a aplicação lida com cookies, cabeçalhos e prefixos de URL para gerenciamento de localidade.
680
+ Configurações que controlam o comportamento do roteamento, incluindo estrutura de URL, armazenamento de localidade e como o middleware opera.
622
681
 
623
682
  #### Propriedades
624
683
 
625
- - **headerName**:
626
- - _Tipo_: `string`
627
- - _Padrão_: `'x-intlayer-locale'`
628
- - _Descrição_: O nome do cabeçalho HTTP usado para determinar a localidade.
629
- - _Exemplo_: `'x-custom-locale'`
630
- - _Nota_: Útil para determinação de localidade baseada em API.
631
-
632
- - **cookieName**:
633
- - _Tipo_: `string`
634
- - _Padrão_: `'intlayer-locale'`
635
- - _Descrição_: O nome do cookie usado para armazenar a localidade.
636
- - _Exemplo_: `'custom-locale'`
637
- - _Nota_: Usado para persistir a localidade entre sessões.
638
-
639
- - **prefixDefault**:
640
- - _Tipo_: `boolean`
641
- - _Padrão_: `false`
642
- - _Descrição_: Se deve incluir a localidade padrão na URL.
643
- - _Exemplo_: `true`
644
- - _Nota_:
645
- - Se `true` e `defaultLocale = 'en'`: caminho = `/en/dashboard` ou `/fr/dashboard`
646
- - Se `false` e `defaultLocale = 'en'`: caminho = `/dashboard` ou `/fr/dashboard`
684
+ - **mode**:
685
+ - _Tipo_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
686
+ - _Padrão_: `'prefix-no-default'`
687
+ - _Descrição_: Modo de roteamento de URL para lidar com a localidade.
688
+ - _Exemplos_:
689
+ - `'prefix-no-default'`: `/dashboard` (pt) ou `/fr/dashboard` (fr)
690
+ - `'prefix-all'`: `/pt/dashboard` (pt) ou `/fr/dashboard` (fr)
691
+ - `'no-prefix'`: `/dashboard` (localidade tratada por outros meios)
692
+ - `'search-params'`: `/dashboard?locale=fr`
693
+ - _Nota_: Esta configuração não afeta a manipulação de cookies ou o armazenamento da localidade.
694
+
695
+ - **storage**:
696
+ - _Tipo_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
697
+ - _Padrão_: `['cookie', 'header']`
698
+ - _Descrição_: Configuração para armazenar a localidade no cliente.
699
+
700
+ - **cookie**:
701
+ - _Descrição_: Armazena os dados em cookies, pequenos pedaços de dados armazenados no navegador do cliente, acessíveis tanto do lado do cliente quanto do servidor.
702
+ - _Nota_: Para armazenamento em conformidade com o GDPR, certifique-se do consentimento do usuário antes de usar.
703
+ - _Nota_: Os parâmetros do cookie são personalizáveis se configurados como CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
704
+
705
+ - **localStorage**:
706
+ - _Descrição_: Armazena dados no navegador sem datas de expiração, permitindo a persistência dos dados entre sessões; acessível apenas do lado do cliente.
707
+ - _Nota_: Ideal para armazenamento de dados a longo prazo, mas esteja ciente das implicações de privacidade e segurança.
708
+ - _Nota_: O local storage é acessível apenas do lado do cliente; o proxy do intlayer não poderá acessá-lo.
709
+ - _Nota_: Os parâmetros do local storage são personalizáveis se configurados como StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
710
+
711
+ - **sessionStorage**:
712
+ - _Descrição_: Armazena dados pela duração da sessão da página, o que significa que são limpos quando a aba ou janela é fechada; acessível apenas do lado do cliente.
713
+ - _Nota_: Adequado para armazenamento temporário de dados por sessão.
714
+ - _Nota_: O local storage é acessível apenas do lado do cliente; o proxy do intlayer não poderá acessá-lo.
715
+ - _Nota_: Os parâmetros do local storage são personalizáveis se configurados como StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
716
+
717
+ - **header**:
718
+ - _Descrição_: Utiliza cabeçalhos HTTP para armazenar ou transmitir dados de localidade, útil para determinar o idioma no lado do servidor.
719
+ - _Nota_: Útil em chamadas de API para manter configurações de idioma consistentes entre solicitações.
720
+ - _Nota_: O cabeçalho é acessível apenas do lado do servidor; o lado do cliente não poderá acessá-lo.
721
+ - _Nota_: O nome do cabeçalho é personalizável se configurado como StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
647
722
 
648
723
  - **basePath**:
649
724
  - _Tipo_: `string`
@@ -651,10 +726,23 @@ Configurações que controlam o comportamento do middleware, incluindo como a ap
651
726
  - _Descrição_: O caminho base para as URLs da aplicação.
652
727
  - _Exemplo_: `'/my-app'`
653
728
  - _Nota_:
654
- - Se a aplicação estiver hospedada em `https://example.com/my-app`
655
- - O caminho base é `'/my-app'`
656
- - A URL será `https://example.com/my-app/en`
657
- - Se o caminho base não estiver definido, a URL será `https://example.com/en`
729
+ - Se a aplicação estiver hospedada em `https://example.com/my-app`,
730
+ - o caminho base é `'/my-app'`.
731
+ - A URL será `https://example.com/my-app/pt`.
732
+ - Se o caminho base não estiver definido, a URL será `https://example.com/pt`.
733
+
734
+ - **noPrefix**:
735
+ - _Tipo_: `boolean`
736
+ - _Padrão_: `false`
737
+ - _Descrição_: Indica se deve omitir o prefixo da localidade nas URLs.
738
+ - _Exemplo_: `true`
739
+ - _Nota_:
740
+ - Se `true`: Sem prefixo na URL
741
+ - Se `false`: Com prefixo na URL
742
+ - Exemplo com `basePath = '/my-app'`:
743
+ - Se `noPrefix = false`: a URL será `https://example.com/my-app/pt`
744
+ - Se `noPrefix = true`: a URL será `https://example.com/my-app`
745
+ - Esta opção só é válida se `mode` for `'prefix-no-default'` ou `'prefix-all'`.
658
746
 
659
747
  - **rewrite**:
660
748
  - _Tipo_: `Record<string, StrictModeLocaleMap<string>>`
@@ -665,17 +753,20 @@ Configurações que controlam o comportamento do middleware, incluindo como a ap
665
753
  routing: {
666
754
  mode: "prefix-no-default", // Estratégia de fallback
667
755
  rewrite: nextjsRewrite({
668
- "/[locale]/about": {
669
- en: "/[locale]/about",
670
- fr: "/[locale]/a-propos",
756
+ "/about": {
757
+ pt: "/sobre-nos",
758
+ en: "/about",
759
+ fr: "/a-propos",
671
760
  },
672
- "/[locale]/product/[slug]": {
673
- en: "/[locale]/product/[slug]",
674
- fr: "/[locale]/produit/[slug]",
761
+ "/product/[slug]": {
762
+ pt: "/produto/[slug]",
763
+ en: "/product/[slug]",
764
+ fr: "/produit/[slug]",
675
765
  },
676
- "/[locale]/blog/[category]/[id]": {
677
- en: "/[locale]/blog/[category]/[id]",
678
- fr: "/[locale]/journal/[category]/[id]",
766
+ "/blog/[category]/[id]": {
767
+ pt: "/blog/[category]/[id]",
768
+ en: "/blog/[category]/[id]",
769
+ fr: "/journal/[category]/[id]",
679
770
  },
680
771
  }),
681
772
  }
@@ -686,25 +777,157 @@ Configurações que controlam o comportamento do middleware, incluindo como a ap
686
777
  - _Nota_: Ao gerar URLs com `getLocalizedUrl()`, as regras de reescrita são aplicadas automaticamente se corresponderem ao caminho fornecido.
687
778
  - _Referência_: Para mais informações, consulte [Reescrita de URL personalizada](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/custom_url_rewrites.md).
688
779
 
689
- - **serverSetCookie**:
690
- - _Tipo_: `string`
691
- - _Padrão_: `'always'`
692
- - _Descrição_: Regra para definir o cookie de localidade no servidor.
693
- - _Opções_: `'always'`, `'never'`
694
- - _Exemplo_: `'never'`
695
- - _Nota_: Controla se o cookie de localidade é definido a cada requisição ou nunca.
780
+ #### Atributos de Cookie
696
781
 
697
- - **noPrefix**:
698
- - _Tipo_: `boolean`
699
- - _Padrão_: `false`
700
- - _Descrição_: Se deve omitir o prefixo da localidade nas URLs.
701
- - _Exemplo_: `true`
702
- - _Nota_:
703
- - Se `true`: Sem prefixo na URL
704
- - Se `false`: Com prefixo na URL
705
- - Exemplo com `basePath = '/my-app'`:
706
- - Se `noPrefix = false`: a URL será `https://example.com/my-app/en`
707
- - Se `noPrefix = true`: a URL será `https://example.com`
782
+ Ao usar o armazenamento de cookie, você pode configurar atributos de cookie adicionais:
783
+
784
+ - **name**: Nome do cookie (padrão: `'INTLAYER_LOCALE'`)
785
+ - **domain**: Domínio do cookie (padrão: undefined)
786
+ - **path**: Caminho do cookie (padrão: undefined)
787
+ - **secure**: Requer HTTPS (padrão: undefined)
788
+ - **httpOnly**: Flag HTTP-only (padrão: undefined)
789
+ - **sameSite**: Política SameSite (`'strict' | 'lax' | 'none'`)
790
+ - **expires**: Data de expiração ou dias (padrão: undefined)
791
+
792
+ #### Atributos de Armazenamento Local
793
+
794
+ Ao usar localStorage ou sessionStorage:
795
+
796
+ - **type**: Tipo de armazenamento (`'localStorage' | 'sessionStorage'`)
797
+ - **name**: Nome da chave de armazenamento (padrão: `'INTLAYER_LOCALE'`)
798
+
799
+ #### Exemplos de Configuração
800
+
801
+ Aqui estão alguns exemplos comuns de configuração para a nova estrutura de roteamento v8:
802
+
803
+ **Configuração Básica (Padrão)**:
804
+
805
+ ```typescript
806
+ import { Locales, type IntlayerConfig } from "intlayer";
807
+ // intlayer.config.ts
808
+ const config: IntlayerConfig = {
809
+ internationalization: {
810
+ locales: ["en", "fr", "pt"],
811
+ defaultLocale: "en",
812
+ },
813
+ routing: {
814
+ mode: "prefix-no-default",
815
+ storage: "localStorage",
816
+ basePath: "",
817
+ },
818
+ };
819
+
820
+ export default config;
821
+ ```
822
+
823
+ **Configuração em Conformidade com o GDPR**:
824
+
825
+ ```typescript
826
+ import { Locales, type IntlayerConfig } from "intlayer";
827
+ // intlayer.config.ts
828
+ const config: IntlayerConfig = {
829
+ internationalization: {
830
+ locales: ["en", "fr", "pt"],
831
+ defaultLocale: "en",
832
+ },
833
+ routing: {
834
+ mode: "prefix-no-default",
835
+ storage: [
836
+ {
837
+ type: "localStorage",
838
+ name: "user-locale",
839
+ },
840
+ {
841
+ type: "cookie",
842
+ name: "user-locale",
843
+ secure: true,
844
+ sameSite: "strict",
845
+ httpOnly: false,
846
+ },
847
+ ],
848
+ basePath: "",
849
+ },
850
+ };
851
+
852
+ export default config;
853
+ ```
854
+
855
+ **Modo de Parâmetros de Busca**:
856
+
857
+ ```typescript
858
+ import { Locales, type IntlayerConfig } from "intlayer";
859
+ // intlayer.config.ts
860
+ const config: IntlayerConfig = {
861
+ internationalization: {
862
+ locales: ["en", "fr", "pt"],
863
+ defaultLocale: "en",
864
+ },
865
+ routing: {
866
+ mode: "search-params",
867
+ storage: "localStorage",
868
+ basePath: "",
869
+ },
870
+ };
871
+
872
+ export default config;
873
+ ```
874
+
875
+ **Modo Sem Prefixo com Armazenamento Personalizado**:
876
+
877
+ ```typescript
878
+ import { Locales, type IntlayerConfig } from "intlayer";
879
+ // intlayer.config.ts
880
+ const config: IntlayerConfig = {
881
+ internationalization: {
882
+ locales: ["en", "fr", "pt"],
883
+ defaultLocale: "en",
884
+ },
885
+ routing: {
886
+ mode: "no-prefix",
887
+ storage: {
888
+ type: "sessionStorage",
889
+ name: "app-locale",
890
+ },
891
+ basePath: "/my-app",
892
+ },
893
+ };
894
+
895
+ export default config;
896
+ ```
897
+
898
+ **Reescrita de URL Personalizada com Rotas Dinâmicas**:
899
+
900
+ ```typescript
901
+ // intlayer.config.ts
902
+ import { nextjsRewrite } from "intlayer/routing";
903
+
904
+ const config: IntlayerConfig = {
905
+ internationalization: {
906
+ locales: ["en", "fr"],
907
+ defaultLocale: "en",
908
+ },
909
+ routing: {
910
+ mode: "prefix-no-default", // Estratégia de fallback para rotas não reescritas
911
+ storage: "cookie",
912
+ rewrite: nextjsRewrite({
913
+ "/about": {
914
+ en: "/about",
915
+ fr: "/a-propos",
916
+ },
917
+ "/product/[slug]": {
918
+ en: "/product/[slug]",
919
+ fr: "/produit/[slug]",
920
+ },
921
+ "/blog/[category]/[id]": {
922
+ en: "/blog/[category]/[id]",
923
+ fr: "/journal/[category]/[id]",
924
+ },
925
+ }),
926
+ },
927
+ };
928
+
929
+ export default config;
930
+ ```
708
931
 
709
932
  ---
710
933
 
@@ -831,8 +1054,8 @@ Configurações que controlam as operações do dicionário, incluindo o comport
831
1054
 
832
1055
  Esta configuração de dicionário serve a dois propósitos principais:
833
1056
 
834
- 1. **Valores padrão**: Define valores padrão ao criar arquivos de declaração de conteúdo
835
- 2. **Comportamento de fallback**: Fornece valores de fallback quando campos específicos não estão definidos, permitindo que você defina o comportamento das operações do dicionário globalmente
1057
+ 1. **Valores padrão**: Define valores padrão ao criar arquivos de declaração de conteúdo
1058
+ 2. **Comportamento de fallback**: Fornece valores de fallback quando campos específicos não estão definidos, permitindo que você defina o comportamento das operações do dicionário globalmente
836
1059
 
837
1060
  Para mais informações sobre arquivos de declaração de conteúdo e como os valores de configuração são aplicados, consulte a [Documentação do arquivo de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md).
838
1061
 
@@ -903,53 +1126,57 @@ O Intlayer suporta múltiplos provedores de IA para maior flexibilidade e escolh
903
1126
 
904
1127
  #### Propriedades
905
1128
 
906
- - **provider**:
907
- - _Tipo_: `string`
908
- - _Padrão_: `'openai'`
909
- - _Descrição_: O provedor a ser usado para os recursos de IA do Intlayer.
910
- - _Opções_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
911
- - _Exemplo_: `'anthropic'`
1129
+ - **provider** :
1130
+ - _Tipo_ : `string`
1131
+ - _Padrão_ : `'openai'`
1132
+ - _Descrição_ : O provedor a ser usado para os recursos de IA do Intlayer.
1133
+ - _Opções_ : `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
1134
+ - _Exemplo_ : `'anthropic'`
912
1135
  - _Nota_: Diferentes provedores podem exigir diferentes chaves de API e possuir modelos de preços distintos.
913
1136
 
914
- - **model**:
915
- - _Tipo_: `string`
916
- - _Padrão_: Nenhum
917
- - _Descrição_: O modelo a ser usado para os recursos de IA do Intlayer.
918
- - _Exemplo_: `'gpt-4o-2024-11-20'`
919
- - _Nota_: O modelo específico a ser usado varia conforme o provedor.
920
-
921
- - **temperature**:
922
- - _Tipo_: `number`
923
- - _Padrão_: Nenhum
924
- - _Descrição_: A temperatura controla a aleatoriedade das respostas da IA.
925
- - _Exemplo_: `0.1`
926
- - _Nota_: Uma temperatura mais alta tornará a IA mais criativa e menos previsível.
927
-
928
- - **apiKey**:
929
- - _Tipo_: `string`
930
- - _Padrão_: Nenhum
931
- - _Descrição_: Sua chave de API para o provedor selecionado.
932
- - _Exemplo_: `process.env.OPENAI_API_KEY`
933
- - _Nota_: Importante: As chaves de API devem ser mantidas em segredo e não compartilhadas publicamente. Por favor, certifique-se de mantê-las em um local seguro, como variáveis de ambiente.
934
-
935
- - **applicationContext**:
936
- - _Tipo_: `string`
937
- - _Padrão_: Nenhum
938
- - _Descrição_: Fornece contexto adicional sobre sua aplicação para o modelo de IA, ajudando-o a gerar traduções mais precisas e contextualmente apropriadas. Isso pode incluir informações sobre o domínio do seu app, público-alvo, tom ou terminologia específica.
939
-
940
- - **baseURL**:
941
- - _Tipo_: `string`
942
- - _Padrão_: Nenhum
943
- - _Descrição_: A URL base para a API de IA.
944
- - _Exemplo_: `'https://api.openai.com/v1'`
945
- - _Nota_: Pode ser usado para apontar para um endpoint de API de IA local ou personalizado.
1137
+ - **model** :
1138
+ - _Tipo_ : `string`
1139
+ - _Padrão_ : Nenhum
1140
+ - _Descrição_ : O modelo a ser usado para os recursos de IA do Intlayer.
1141
+ - _Exemplo_ : `'gpt-4o-2024-11-20'`
1142
+ - _Nota_ : O modelo específico a ser usado varia conforme o provedor.
1143
+
1144
+ - **temperature** :
1145
+ - _Tipo_ : `number`
1146
+ - _Padrão_ : Nenhum
1147
+ - _Descrição_ : A temperatura controla a aleatoriedade das respostas da IA.
1148
+ - _Exemplo_ : `0.1`
1149
+ - _Nota_ : Uma temperatura mais alta tornará a IA mais criativa e menos previsível.
1150
+
1151
+ - **apiKey** :
1152
+ - _Tipo_ : `string`
1153
+ - _Padrão_ : Nenhum
1154
+ - _Descrição_ : Sua chave de API para o provedor selecionado.
1155
+ - _Exemplo_ : `process.env.OPENAI_API_KEY`
1156
+ - _Nota_ : Importante: As chaves de API devem ser mantidas em segredo e não compartilhadas publicamente. Por favor, certifique-se de mantê-las em um local seguro, como variáveis de ambiente.
1157
+
1158
+ - **applicationContext** :
1159
+ - _Tipo_ : `string`
1160
+ - _Padrão_ : Nenhum
1161
+ - _Descrição_ : Fornece contexto adicional sobre sua aplicação para o modelo de IA, ajudando-o a gerar traduções mais precisas e contextualmente apropriadas. Isso pode incluir informações sobre o domínio do seu app, público-alvo, tom ou terminologia específica.
1162
+ - _Nota_: Você pode usar isso para adicionar outras regras ao modelo de IA (por exemplo, "não transforme URLs").
1163
+ - _Exemplo_ : `'O contexto da minha aplicação'`
1164
+
1165
+ - **baseURL** :
1166
+ - _Tipo_ : `string`
1167
+ - _Padrão_ : Nenhum
1168
+ - _Descrição_ : A URL base para a API de IA.
1169
+ - _Exemplo_ : `'https://api.openai.com/v1'`
1170
+ - _Exemplo_ : `'http://localhost:5000'`
1171
+ - _Nota_ : Pode ser usado para apontar para um endpoint de API de IA local ou personalizado.
946
1172
 
947
1173
  - **dataSerialization**:
948
1174
  - _Tipo_: `'json' | 'toon'`
949
1175
  - _Padrão_: `'json'`
950
- - _Descrição_: O formato de serialización de dados a ser usado nas funcionalidades de IA do Intlayer.
1176
+ - _Descrição_: O formato de serialização de dados a ser usado nas funcionalidades de IA do Intlayer.
951
1177
  - _Exemplo_: `'toon'`
952
1178
  - _Nota_: `json`: Padrão, confiável; usa mais tokens. `toon`: Menos tokens, menos consistente que o JSON.
1179
+ > Se você fornecer parâmetros adicionais, o Intlayer os passará para o modelo de IA como contexto. Isso pode ser usado para ajustar o esforço de raciocínio, a verbosidade do texto, etc.
953
1180
 
954
1181
  ### Configuração de Build
955
1182
 
@@ -963,55 +1190,34 @@ As opções de build se aplicam aos plugins `@intlayer/babel` e `@intlayer/swc`.
963
1190
 
964
1191
  #### Propriedades
965
1192
 
966
- - **mode**:
967
- - _Tipo_: `'auto' | 'manual'`
968
- - _Padrão_: `'auto'`
969
- - _Descrição_: Controla o modo da build.
970
- - _Exemplo_: `'manual'`
971
- - _Nota_: Se 'auto', a build será habilitada automaticamente quando a aplicação for construída.
972
- - _Nota_: Se 'manual', a build será definida apenas quando o comando de build for executado.
973
- - _Nota_: Pode ser usado para desabilitar a build de dicionários, por exemplo quando a execução em um ambiente Node.js deve ser evitada.
974
-
975
- - **checkTypes**:
976
- - _Tipo_: `boolean`
977
- - _Padrão_: `false`
978
- - _Descrição_: Indica se a compilação deve verificar os tipos do TypeScript e registrar erros.
979
- - _Nota_: Isso pode atrasar a compilação.
980
-
981
- - **optimize**:
982
- - _Tipo_: `boolean`
983
- - _Padrão_: `process.env.NODE_ENV === 'production'`
984
- - _Descrição_: Controla se a build deve ser otimizada.
985
- - _Exemplo_: `true`
986
- - _Nota_: Quando ativado, o Intlayer substituirá todas as chamadas de dicionários para otimizar a divisão em chunks. Dessa forma, o pacote final importará apenas os dicionários que são usados. Todas as importações permanecerão como importações estáticas para evitar processamento assíncrono ao carregar os dicionários.
987
- - _Nota_: O Intlayer substituirá todas as chamadas de `useIntlayer` pelo modo definido pela opção `importMode` e `getIntlayer` por `getDictionary`.
988
- - _Nota_: Esta opção depende dos plugins `@intlayer/babel` e `@intlayer/swc`.
989
- - _Nota_: Certifique-se de que todas as chaves sejam declaradas estaticamente nas chamadas de `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
990
-
991
- - **importMode**:
992
- - _Nota_: **Deprecated**: Use `dictionary.importMode` instead.
993
- - _Tipo_: `'static' | 'dynamic' | 'fetch'`
994
- - _Padrão_: `'static'`
995
- - _Descrição_: Controla como os dicionários são importados.
996
- - _Exemplo_: `'dynamic'`
997
- - _Nota_: Modos disponíveis:
1193
+ - **mode** :
1194
+ - _Tipo_ : `'auto' | 'manual'`
1195
+ - _Padrão_ : `'auto'`
1196
+ - _Descrição_ : Controla o modo da build.
1197
+ - _Exemplo_ : `'manual'`
1198
+ - _Nota_ : Se 'auto', a build será habilitada automaticamente durante o build da app.
1199
+ - _Nota_ : Se 'manual', a build será acionada quando o comando de build for executado.
1200
+ - _Nota_ : Pode ser usado para desabilitar a build de dicionários, por exemplo, quando se deseja evitar a execução em um ambiente Node.js.
1201
+
1202
+ - **optimize** :
1203
+ - _Tipo_ : `boolean`
1204
+ - _Padrão_ : `undefined`
1205
+ - _Descrição_ : Controla se a build deve ser otimizada.
1206
+ - _Exemplo_ : `process.env.NODE_ENV === 'production'`
1207
+ - _Nota_ : Por padrão, a otimização da build é indefinida. Se não definida, o Intlayer habilitará a otimização da build durante o build da sua aplicação (vite / nextjs / etc). Definir como `true` forçará a otimização da build, mesmo no modo de desenvolvimento. Definir como `false` desativará a otimização da build.
1208
+ - _Nota_ : Quando ativado, o Intlayer substituirá todas as chamadas de dicionários para otimizar a divisão em chunks. Dessa forma, o pacote final importará apenas os dicionários que são usados. Todas as importações permanecerão como importações estáticas para evitar processamento assíncrono ao carregar os dicionários.
1209
+ - _Nota_ : O Intlayer substituirá todas as chamadas de `useIntlayer` pelo modo definido pela opção `importMode` e `getIntlayer` por `getDictionary`.
1210
+ - _Nota_ : Esta opção depende dos plugins `@intlayer/babel` e `@intlayer/swc`.
1211
+ - _Nota_ : Certifique-se de que todas as chaves sejam declaradas estaticamente nas chamadas de `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
1212
+
1213
+ - **importMode** :
1214
+ - _Tipo_ : `'static' | 'dynamic' | 'fetch'`
1215
+ - _Padrão_ : `'static'`
1216
+ - _Descrição_ : Controla como os dicionários são importados.
1217
+ - _Exemplo_ : `'dynamic'`
1218
+ - _Nota_ : Modos disponíveis:
998
1219
  - "static": Os dicionários são importados estaticamente. Substitui `useIntlayer` por `useDictionary`.
999
1220
  - "dynamic": Os dicionários são importados dinamicamente usando Suspense. Substitui `useIntlayer` por `useDictionaryDynamic`.
1000
- - "fetch": Os dicionários são buscados dinamicamente usando a API de sincronização ao vivo. Substitui `useIntlayer` por `useDictionaryFetch`.
1001
- - _Nota_: Importações dinâmicas dependem do Suspense e podem impactar levemente o desempenho da renderização.
1002
- - _Nota_: Se desativado, todos os idiomas serão carregados de uma vez, mesmo que não sejam usados.
1003
- - _Nota_: Esta opção depende dos plugins `@intlayer/babel` e `@intlayer/swc`.
1004
- - _Nota_: Garanta que todas as chaves sejam declaradas estaticamente nas chamadas `useIntlayer`. Exemplo: `useIntlayer('navbar')`.
1005
- - _Nota_: Esta opção será ignorada se `optimize` estiver desativado.
1006
- - _Nota_: Se definido como "live", apenas os dicionários que incluem conteúdo remoto e estão marcados como "live" serão transformados no modo live. Os outros serão importados dinamicamente no modo "dynamic" para otimizar o número de consultas fetch e o desempenho de carregamento.
1007
- - _Nota_: O modo live usará a API de sincronização ao vivo para buscar os dicionários. Se a chamada da API falhar, os dicionários serão importados dinamicamente no modo "dynamic".
1008
- - _Nota_: Esta opção não impactará as funções `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` e `useDictionaryDynamic`.
1009
-
1010
- - **outputFormat**:
1011
- - _Tipo_: `'esm' | 'cjs'`
1012
- - _Padrão_: `'esm'`
1013
- - _Descrição_: Controla o formato de saída dos dicionários.
1014
- - _Exemplo_: `'cjs'`
1015
1221
  - _Nota_: O formato de saída dos dicionários.
1016
1222
 
1017
1223
  - **traversePattern**:
@@ -1040,7 +1246,7 @@ Configurações que controlan o compilador Intlayer, que extrai dicionários dir
1040
1246
 
1041
1247
  - **dictionaryKeyPrefix**:
1042
1248
  - _Tipo_: `string`
1043
- - _Padrão_: `'comp-'`
1249
+ - _Padrão_: `''`
1044
1250
  - _Descrição_: Prefixo para as chaves de dicionário extraídas.
1045
1251
  - _Exemplo_: `'my-key-'`
1046
1252
  - _Nota_: Quando os dicionários são extraídos, a chave é gerada com base no nome do arquivo. Este prefixo é adicionado à chave gerada para evitar conflitos.
@@ -1064,30 +1270,34 @@ Configurações que controlan o compilador Intlayer, que extrai dicionários dir
1064
1270
  - _Descrição_: Padrões que definem quais arquivos devem ser excluídos durante a otimização.
1065
1271
  - _Exemplo_: `['**/node_modules/**', '!**/node_modules/react/**']`
1066
1272
 
1067
- - **outputDir**:
1068
- - _Tipo_: `string`
1069
- - _Padrão_: `'compiler'`
1070
- - _Descrição_: O diretório onde os dicionários extraídos serão armazenados, relativo ao caminho base do seu projeto.
1071
-
1072
1273
  - **output**:
1073
1274
  - _Tipo_: `FilePathPattern`
1074
- - _Padrão_: `({ key }) => 'compiler/${key}.content.json'`
1075
- - _Descrição_: Define o caminho dos arquivos de saída. Substitui `outputDir`. Manipula variáveis dinâmicas como `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{componentFormat}}`. Pode ser definido como uma string usando o formato `'my/{{var}}/path'` ou como uma função.
1076
- - _Nota_: `./**/*` Os caminhos são resolvidos relativamente ao componente. `/**/*` os caminhos são resolvidos relativamente ao `baseDir` do Intlayer.
1077
- - _Exemplo_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
1275
+ - _Padrão_: `undefined`
1276
+ - _Descrição_: Define o caminho dos arquivos de saída. Substitui `outputDir`. Manipula variáveis dinâmicas por meio de strings de modelo ou uma função. Variáveis suportadas: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` e `{{componentDirPath}}`.
1277
+ - _Nota_: Os caminhos `./` são resolvidos em relação ao diretório do componente. Os caminhos `/` são resolvidos em relação à raiz do projeto (`baseDir`).
1278
+ - _Nota_: A inserção da variável `{{locale}}` no caminho ativará a geração de dicionários separados por idioma.
1279
+ - _Exemplo_:
1280
+ - **Arquivo multilíngue próximo ao componente** :
1281
+ - String: `'./{{fileName}}{{extension}}'`
1282
+ - Função: `({ fileName, extension }) => \`./${fileName}${extension}\``
1283
+
1284
+ - **Arquivos JSON centralizados por idioma** :
1285
+ - String: `'/locales/{{locale}}/{{key}}.content.json'`
1286
+ - Função: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
1078
1287
 
1079
1288
  - **noMetadata**:
1080
1289
  - _Tipo_: `boolean`
1081
1290
  - _Padrão_: `false`
1082
- - _Descrição_: Indica se os metadados devem ser salvos no arquivo. Se verdadeiro, o compilador não salvará os metadados dos dicionários (chave, wrapper de conteúdo).
1291
+ - _Descrição_: Indica se os metadados devem ser salvos no arquivo. Se verdadeiro, o compilador não salvará os metadados dos dicionários (chave, wrapper de conteúdo). Útil para saídas JSON i18next ou ICU MessageFormat por localidade.
1083
1292
  - _Nota_: Útil se usado com o plugin `loadJSON`.
1084
- - _Exemplo_: Se `true`:
1293
+ - _Exemplo_:
1294
+ Se `true` :
1085
1295
  ```json
1086
1296
  {
1087
1297
  "key": "value"
1088
1298
  }
1089
1299
  ```
1090
- Se `false`:
1300
+ Se `false` :
1091
1301
  ```json
1092
1302
  {
1093
1303
  "key": "value",