@intlayer/docs 7.0.7 → 7.0.8

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 (726) hide show
  1. package/blog/ar/i18n_using_next-i18next.md +1068 -0
  2. package/blog/ar/i18n_using_next-intl.md +768 -0
  3. package/blog/ar/intlayer_with_react-intl.md +0 -4
  4. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +5 -4
  5. package/blog/de/i18n_using_next-i18next.md +1107 -0
  6. package/blog/de/i18n_using_next-intl.md +760 -0
  7. package/blog/de/intlayer_with_react-intl.md +0 -4
  8. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  9. package/blog/en/i18n_using_next-i18next.md +1073 -0
  10. package/blog/en/i18n_using_next-intl.md +757 -0
  11. package/blog/en/intlayer_with_i18next.md +71 -8
  12. package/blog/en/intlayer_with_next-i18next.md +71 -8
  13. package/blog/en/intlayer_with_next-intl.md +71 -8
  14. package/blog/en/intlayer_with_react-i18next.md +69 -8
  15. package/blog/en/intlayer_with_react-intl.md +68 -9
  16. package/blog/en/intlayer_with_vue-i18n.md +68 -7
  17. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  18. package/blog/en/vue-i18n_vs_intlayer.md +2 -0
  19. package/blog/en-GB/i18n_using_next-i18next.md +1074 -0
  20. package/blog/en-GB/i18n_using_next-intl.md +757 -0
  21. package/blog/en-GB/intlayer_with_i18next.md +15 -6
  22. package/blog/en-GB/intlayer_with_next-i18next.md +16 -6
  23. package/blog/en-GB/intlayer_with_next-intl.md +16 -6
  24. package/blog/en-GB/intlayer_with_react-i18next.md +16 -7
  25. package/blog/en-GB/intlayer_with_react-intl.md +14 -9
  26. package/blog/en-GB/intlayer_with_vue-i18n.md +16 -7
  27. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  28. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  29. package/blog/en-GB/vue-i18n_vs_intlayer.md +2 -0
  30. package/blog/es/i18n_using_next-i18next.md +1066 -0
  31. package/blog/es/i18n_using_next-intl.md +757 -0
  32. package/blog/es/intlayer_with_react-intl.md +0 -4
  33. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  34. package/blog/fr/i18n_using_next-i18next.md +1078 -0
  35. package/blog/fr/i18n_using_next-intl.md +759 -0
  36. package/blog/fr/intlayer_with_react-intl.md +0 -4
  37. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  38. package/blog/hi/i18n_using_next-i18next.md +1068 -0
  39. package/blog/hi/i18n_using_next-intl.md +758 -0
  40. package/blog/hi/intlayer_with_react-intl.md +0 -4
  41. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  42. package/blog/id/i18n_using_next-i18next.md +1078 -0
  43. package/blog/id/i18n_using_next-intl.md +757 -0
  44. package/blog/id/index.md +69 -0
  45. package/blog/id/internationalization_and_SEO.md +364 -0
  46. package/blog/id/intlayer_with_react-intl.md +0 -4
  47. package/blog/id/list_i18n_technologies/CMS/drupal.md +143 -0
  48. package/blog/id/list_i18n_technologies/CMS/wix.md +167 -0
  49. package/blog/id/list_i18n_technologies/CMS/wordpress.md +188 -0
  50. package/blog/id/list_i18n_technologies/frameworks/angular.md +125 -0
  51. package/blog/id/list_i18n_technologies/frameworks/flutter.md +150 -0
  52. package/blog/id/list_i18n_technologies/frameworks/react-native.md +217 -0
  53. package/blog/id/list_i18n_technologies/frameworks/react.md +155 -0
  54. package/blog/id/list_i18n_technologies/frameworks/svelte.md +131 -0
  55. package/blog/id/list_i18n_technologies/frameworks/vue.md +130 -0
  56. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1500 -0
  57. package/blog/id/nextjs-multilingual-seo-comparison.md +361 -0
  58. package/blog/id/rag_powered_documentation_assistant.md +288 -0
  59. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  60. package/blog/id/vue-i18n_vs_intlayer.md +278 -0
  61. package/blog/id/what_is_internationalization.md +166 -0
  62. package/blog/it/i18n_using_next-i18next.md +1078 -0
  63. package/blog/it/i18n_using_next-intl.md +758 -0
  64. package/blog/it/intlayer_with_react-intl.md +0 -4
  65. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +4 -0
  66. package/blog/it/vue-i18n_vs_intlayer.md +2 -0
  67. package/blog/ja/i18n_using_next-i18next.md +1078 -0
  68. package/blog/ja/i18n_using_next-intl.md +758 -0
  69. package/blog/ja/intlayer_with_react-intl.md +0 -4
  70. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  71. package/blog/ko/i18n_using_next-i18next.md +1075 -0
  72. package/blog/ko/i18n_using_next-intl.md +759 -0
  73. package/blog/ko/intlayer_with_react-intl.md +0 -4
  74. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  75. package/blog/pl/i18n_using_next-i18next.md +1078 -0
  76. package/blog/pl/i18n_using_next-intl.md +758 -0
  77. package/blog/pl/index.md +69 -0
  78. package/blog/pl/internationalization_and_SEO.md +363 -0
  79. package/blog/pl/intlayer_with_react-intl.md +0 -4
  80. package/blog/pl/list_i18n_technologies/CMS/drupal.md +143 -0
  81. package/blog/pl/list_i18n_technologies/CMS/wix.md +167 -0
  82. package/blog/pl/list_i18n_technologies/CMS/wordpress.md +196 -0
  83. package/blog/pl/list_i18n_technologies/frameworks/angular.md +125 -0
  84. package/blog/pl/list_i18n_technologies/frameworks/flutter.md +151 -0
  85. package/blog/pl/list_i18n_technologies/frameworks/react-native.md +217 -0
  86. package/blog/pl/list_i18n_technologies/frameworks/react.md +155 -0
  87. package/blog/pl/list_i18n_technologies/frameworks/svelte.md +131 -0
  88. package/blog/pl/list_i18n_technologies/frameworks/vue.md +130 -0
  89. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1501 -0
  90. package/blog/pl/nextjs-multilingual-seo-comparison.md +362 -0
  91. package/blog/pl/rag_powered_documentation_assistant.md +288 -0
  92. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  93. package/blog/pl/vue-i18n_vs_intlayer.md +278 -0
  94. package/blog/pl/what_is_internationalization.md +167 -0
  95. package/blog/pt/i18n_using_next-i18next.md +1067 -0
  96. package/blog/pt/i18n_using_next-intl.md +760 -0
  97. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  98. package/blog/ru/i18n_using_next-i18next.md +1106 -0
  99. package/blog/ru/i18n_using_next-intl.md +759 -0
  100. package/blog/ru/intlayer_with_react-intl.md +0 -4
  101. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  102. package/blog/tr/i18n_using_next-i18next.md +1078 -0
  103. package/blog/tr/i18n_using_next-intl.md +760 -0
  104. package/blog/tr/intlayer_with_react-intl.md +0 -4
  105. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  106. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  107. package/blog/tr/vue-i18n_vs_intlayer.md +2 -0
  108. package/blog/vi/i18n_using_next-i18next.md +1080 -0
  109. package/blog/vi/i18n_using_next-intl.md +758 -0
  110. package/blog/vi/index.md +69 -0
  111. package/blog/vi/internationalization_and_SEO.md +363 -0
  112. package/blog/vi/intlayer_with_react-intl.md +0 -4
  113. package/blog/vi/list_i18n_technologies/CMS/drupal.md +143 -0
  114. package/blog/vi/list_i18n_technologies/CMS/wix.md +167 -0
  115. package/blog/vi/list_i18n_technologies/CMS/wordpress.md +188 -0
  116. package/blog/vi/list_i18n_technologies/frameworks/angular.md +125 -0
  117. package/blog/vi/list_i18n_technologies/frameworks/flutter.md +150 -0
  118. package/blog/vi/list_i18n_technologies/frameworks/react-native.md +217 -0
  119. package/blog/vi/list_i18n_technologies/frameworks/react.md +155 -0
  120. package/blog/vi/list_i18n_technologies/frameworks/svelte.md +131 -0
  121. package/blog/vi/list_i18n_technologies/frameworks/vue.md +130 -0
  122. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1520 -0
  123. package/blog/vi/nextjs-multilingual-seo-comparison.md +362 -0
  124. package/blog/vi/rag_powered_documentation_assistant.md +288 -0
  125. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  126. package/blog/vi/vue-i18n_vs_intlayer.md +278 -0
  127. package/blog/vi/what_is_internationalization.md +168 -0
  128. package/blog/zh/i18n_using_next-i18next.md +1105 -0
  129. package/blog/zh/i18n_using_next-intl.md +758 -0
  130. package/blog/zh/intlayer_with_react-intl.md +0 -4
  131. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  132. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  133. package/dist/cjs/common.cjs +0 -4
  134. package/dist/cjs/common.cjs.map +1 -1
  135. package/dist/cjs/generated/blog.entry.cjs +38 -6
  136. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  137. package/dist/cjs/generated/docs.entry.cjs +0 -6
  138. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  139. package/dist/cjs/generated/frequentQuestions.entry.cjs +0 -6
  140. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  141. package/dist/cjs/generated/legal.entry.cjs +0 -6
  142. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  143. package/dist/esm/generated/blog.entry.mjs +38 -0
  144. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  145. package/dist/types/generated/blog.entry.d.ts +2 -0
  146. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  147. package/docs/ar/component_i18n.md +1 -1
  148. package/docs/ar/configuration.md +6 -0
  149. package/docs/ar/intlayer_cli.md +8 -3
  150. package/docs/ar/intlayer_with_next-i18next.md +619 -0
  151. package/docs/ar/intlayer_with_next-intl.md +446 -0
  152. package/docs/ar/intlayer_with_nextjs_16.md +21 -0
  153. package/docs/ar/intlayer_with_tanstack.md +4 -0
  154. package/docs/ar/intlayer_with_vite+react.md +4 -0
  155. package/docs/de/component_i18n.md +1 -1
  156. package/docs/de/configuration.md +6 -0
  157. package/docs/de/intlayer_cli.md +8 -3
  158. package/docs/de/intlayer_with_next-i18next.md +627 -0
  159. package/docs/de/intlayer_with_next-intl.md +451 -0
  160. package/docs/de/intlayer_with_nextjs_16.md +21 -0
  161. package/docs/de/intlayer_with_tanstack.md +4 -0
  162. package/docs/de/intlayer_with_vite+react.md +4 -0
  163. package/docs/en/component_i18n.md +1 -1
  164. package/docs/en/intlayer_cli.md +8 -1
  165. package/docs/en/intlayer_with_astro.md +10 -2
  166. package/docs/en/intlayer_with_create_react_app.md +8 -0
  167. package/docs/en/intlayer_with_lynx+react.md +8 -0
  168. package/docs/en/intlayer_with_nestjs.md +10 -0
  169. package/docs/en/intlayer_with_nextjs_14.md +10 -2
  170. package/docs/en/intlayer_with_nextjs_15.md +21 -4
  171. package/docs/en/intlayer_with_nextjs_16.md +17 -0
  172. package/docs/en/intlayer_with_nuxt.md +8 -0
  173. package/docs/en/intlayer_with_react_native+expo.md +10 -2
  174. package/docs/en/intlayer_with_react_router_v7.md +8 -0
  175. package/docs/en/intlayer_with_tanstack.md +10 -0
  176. package/docs/en/intlayer_with_vite+preact.md +10 -2
  177. package/docs/en/intlayer_with_vite+react.md +21 -4
  178. package/docs/en/intlayer_with_vite+vue.md +10 -2
  179. package/docs/en-GB/component_i18n.md +1 -1
  180. package/docs/en-GB/configuration.md +6 -0
  181. package/docs/en-GB/intlayer_cli.md +8 -3
  182. package/docs/en-GB/intlayer_with_angular.md +4 -4
  183. package/docs/en-GB/intlayer_with_express.md +4 -4
  184. package/docs/en-GB/intlayer_with_lynx+react.md +12 -12
  185. package/{blog/en/_intlayer_with_next-i18next.md → docs/en-GB/intlayer_with_next-i18next.md} +241 -42
  186. package/{blog/en/_intlayer_with_next-intl.md → docs/en-GB/intlayer_with_next-intl.md} +144 -29
  187. package/docs/en-GB/intlayer_with_nextjs_16.md +21 -0
  188. package/docs/en-GB/intlayer_with_tanstack.md +5 -1
  189. package/docs/en-GB/intlayer_with_vite+react.md +4 -0
  190. package/docs/en-GB/packages/next-intlayer/t.md +2 -2
  191. package/docs/es/component_i18n.md +1 -1
  192. package/docs/es/configuration.md +6 -0
  193. package/docs/es/intlayer_cli.md +8 -3
  194. package/docs/es/intlayer_with_next-i18next.md +628 -0
  195. package/docs/es/intlayer_with_next-intl.md +446 -0
  196. package/docs/es/intlayer_with_nextjs_16.md +21 -0
  197. package/docs/es/intlayer_with_tanstack.md +4 -0
  198. package/docs/es/intlayer_with_vite+react.md +4 -0
  199. package/docs/fr/configuration.md +6 -0
  200. package/docs/fr/intlayer_cli.md +8 -3
  201. package/docs/fr/intlayer_with_next-i18next.md +628 -0
  202. package/docs/fr/intlayer_with_next-intl.md +446 -0
  203. package/docs/fr/intlayer_with_nextjs_16.md +23 -2
  204. package/docs/fr/intlayer_with_tanstack.md +4 -0
  205. package/docs/fr/intlayer_with_vite+react.md +4 -0
  206. package/docs/hi/component_i18n.md +1 -1
  207. package/docs/hi/configuration.md +6 -0
  208. package/docs/hi/intlayer_cli.md +8 -0
  209. package/docs/hi/intlayer_with_next-i18next.md +628 -0
  210. package/docs/hi/intlayer_with_next-intl.md +446 -0
  211. package/docs/hi/intlayer_with_nextjs_16.md +21 -0
  212. package/docs/hi/intlayer_with_tanstack.md +4 -0
  213. package/docs/hi/intlayer_with_vite+react.md +4 -0
  214. package/docs/id/CI_CD.md +198 -0
  215. package/docs/id/autoFill.md +284 -0
  216. package/docs/id/component_i18n.md +186 -0
  217. package/docs/id/configuration.md +710 -0
  218. package/docs/id/dictionary/condition.md +231 -0
  219. package/docs/id/dictionary/content_file.md +1092 -0
  220. package/docs/id/dictionary/enumeration.md +245 -0
  221. package/docs/id/dictionary/file.md +237 -0
  222. package/docs/id/dictionary/function_fetching.md +214 -0
  223. package/docs/id/dictionary/gender.md +273 -0
  224. package/docs/id/dictionary/insertion.md +192 -0
  225. package/docs/id/dictionary/markdown.md +381 -0
  226. package/docs/id/dictionary/nesting.md +273 -0
  227. package/docs/id/dictionary/translation.md +310 -0
  228. package/docs/id/formatters.md +596 -0
  229. package/docs/id/how_works_intlayer.md +256 -0
  230. package/docs/id/index.md +176 -0
  231. package/docs/id/interest_of_intlayer.md +293 -0
  232. package/docs/id/intlayer_CMS.md +549 -0
  233. package/docs/id/intlayer_cli.md +850 -0
  234. package/docs/id/intlayer_visual_editor.md +288 -0
  235. package/docs/id/intlayer_with_angular.md +694 -0
  236. package/docs/id/intlayer_with_astro.md +252 -0
  237. package/docs/id/intlayer_with_create_react_app.md +1233 -0
  238. package/docs/id/intlayer_with_express.md +411 -0
  239. package/docs/id/intlayer_with_lynx+react.md +518 -0
  240. package/docs/id/intlayer_with_nestjs.md +272 -0
  241. package/docs/id/intlayer_with_next-i18next.md +628 -0
  242. package/docs/id/intlayer_with_next-intl.md +446 -0
  243. package/docs/id/intlayer_with_nextjs_14.md +1617 -0
  244. package/docs/id/intlayer_with_nextjs_15.md +1698 -0
  245. package/docs/id/intlayer_with_nextjs_16.md +21 -0
  246. package/docs/id/intlayer_with_nextjs_page_router.md +1478 -0
  247. package/docs/id/intlayer_with_nuxt.md +808 -0
  248. package/docs/id/intlayer_with_react_native+expo.md +699 -0
  249. package/docs/id/intlayer_with_react_router_v7.md +496 -0
  250. package/docs/id/intlayer_with_tanstack.md +564 -0
  251. package/docs/id/intlayer_with_vite+preact.md +1737 -0
  252. package/docs/id/intlayer_with_vite+react.md +1413 -0
  253. package/docs/id/intlayer_with_vite+solid.md +289 -0
  254. package/docs/id/intlayer_with_vite+svelte.md +289 -0
  255. package/docs/id/intlayer_with_vite+vue.md +1088 -0
  256. package/docs/id/introduction.md +218 -0
  257. package/docs/id/locale_mapper.md +242 -0
  258. package/docs/id/mcp_server.md +211 -0
  259. package/docs/id/packages/express-intlayer/t.md +458 -0
  260. package/docs/id/packages/intlayer/getConfiguration.md +145 -0
  261. package/docs/id/packages/intlayer/getEnumeration.md +159 -0
  262. package/docs/id/packages/intlayer/getHTMLTextDir.md +122 -0
  263. package/docs/id/packages/intlayer/getLocaleLang.md +81 -0
  264. package/docs/id/packages/intlayer/getLocaleName.md +119 -0
  265. package/docs/id/packages/intlayer/getLocalizedUrl.md +309 -0
  266. package/docs/id/packages/intlayer/getMultilingualUrls.md +223 -0
  267. package/docs/id/packages/intlayer/getPathWithoutLocale.md +75 -0
  268. package/docs/id/packages/intlayer/getTranslation.md +190 -0
  269. package/docs/id/packages/intlayer/getTranslationContent.md +188 -0
  270. package/docs/id/packages/next-intlayer/t.md +352 -0
  271. package/docs/id/packages/next-intlayer/useDictionary.md +271 -0
  272. package/docs/id/packages/next-intlayer/useIntlayer.md +264 -0
  273. package/docs/id/packages/next-intlayer/useLocale.md +166 -0
  274. package/docs/id/packages/react-intlayer/t.md +303 -0
  275. package/docs/id/packages/react-intlayer/useDictionary.md +287 -0
  276. package/docs/id/packages/react-intlayer/useI18n.md +267 -0
  277. package/docs/id/packages/react-intlayer/useIntlayer.md +254 -0
  278. package/docs/id/packages/react-intlayer/useLocale.md +210 -0
  279. package/docs/id/per_locale_file.md +323 -0
  280. package/docs/id/readme.md +261 -0
  281. package/docs/id/releases/v6.md +305 -0
  282. package/docs/id/roadmap.md +362 -0
  283. package/docs/id/testing.md +202 -0
  284. package/docs/id/vs_code_extension.md +126 -0
  285. package/docs/it/component_i18n.md +1 -1
  286. package/docs/it/configuration.md +6 -0
  287. package/docs/it/intlayer_cli.md +8 -3
  288. package/docs/it/intlayer_with_next-i18next.md +628 -0
  289. package/docs/it/intlayer_with_next-intl.md +446 -0
  290. package/docs/it/intlayer_with_nextjs_16.md +21 -0
  291. package/docs/it/intlayer_with_tanstack.md +4 -0
  292. package/docs/it/intlayer_with_vite+react.md +4 -0
  293. package/docs/ja/component_i18n.md +1 -1
  294. package/docs/ja/configuration.md +6 -0
  295. package/docs/ja/intlayer_cli.md +8 -3
  296. package/docs/ja/intlayer_with_next-i18next.md +627 -0
  297. package/docs/ja/intlayer_with_next-intl.md +446 -0
  298. package/docs/ja/intlayer_with_nextjs_16.md +21 -0
  299. package/docs/ja/intlayer_with_tanstack.md +4 -0
  300. package/docs/ja/intlayer_with_vite+react.md +4 -0
  301. package/docs/ko/configuration.md +6 -0
  302. package/docs/ko/intlayer_cli.md +8 -3
  303. package/docs/ko/intlayer_with_next-i18next.md +627 -0
  304. package/docs/ko/intlayer_with_next-intl.md +446 -0
  305. package/docs/ko/intlayer_with_nextjs_16.md +21 -0
  306. package/docs/ko/intlayer_with_tanstack.md +4 -0
  307. package/docs/ko/intlayer_with_vite+react.md +4 -0
  308. package/docs/pl/CI_CD.md +198 -0
  309. package/docs/pl/autoFill.md +284 -0
  310. package/docs/pl/component_i18n.md +186 -0
  311. package/docs/pl/configuration.md +710 -0
  312. package/docs/pl/dictionary/condition.md +232 -0
  313. package/docs/pl/dictionary/content_file.md +1130 -0
  314. package/docs/pl/dictionary/enumeration.md +245 -0
  315. package/docs/pl/dictionary/file.md +234 -0
  316. package/docs/pl/dictionary/function_fetching.md +214 -0
  317. package/docs/pl/dictionary/gender.md +276 -0
  318. package/docs/pl/dictionary/insertion.md +188 -0
  319. package/docs/pl/dictionary/markdown.md +408 -0
  320. package/docs/pl/dictionary/nesting.md +273 -0
  321. package/docs/pl/dictionary/translation.md +310 -0
  322. package/docs/pl/formatters.md +596 -0
  323. package/docs/pl/how_works_intlayer.md +256 -0
  324. package/docs/pl/index.md +176 -0
  325. package/docs/pl/interest_of_intlayer.md +291 -0
  326. package/docs/pl/intlayer_CMS.md +549 -0
  327. package/docs/pl/intlayer_cli.md +857 -0
  328. package/docs/pl/intlayer_visual_editor.md +288 -0
  329. package/docs/pl/intlayer_with_angular.md +690 -0
  330. package/docs/pl/intlayer_with_astro.md +280 -0
  331. package/docs/pl/intlayer_with_create_react_app.md +1235 -0
  332. package/docs/pl/intlayer_with_express.md +411 -0
  333. package/docs/pl/intlayer_with_lynx+react.md +518 -0
  334. package/docs/pl/intlayer_with_nestjs.md +272 -0
  335. package/docs/pl/intlayer_with_next-i18next.md +628 -0
  336. package/docs/pl/intlayer_with_next-intl.md +446 -0
  337. package/docs/pl/intlayer_with_nextjs_14.md +1594 -0
  338. package/docs/pl/intlayer_with_nextjs_15.md +1701 -0
  339. package/docs/pl/intlayer_with_nextjs_16.md +21 -0
  340. package/docs/pl/intlayer_with_nextjs_page_router.md +1513 -0
  341. package/docs/pl/intlayer_with_nuxt.md +885 -0
  342. package/docs/pl/intlayer_with_react_native+expo.md +698 -0
  343. package/docs/pl/intlayer_with_react_router_v7.md +503 -0
  344. package/docs/pl/intlayer_with_tanstack.md +562 -0
  345. package/docs/pl/intlayer_with_vite+preact.md +1736 -0
  346. package/docs/pl/intlayer_with_vite+react.md +1438 -0
  347. package/docs/pl/intlayer_with_vite+solid.md +290 -0
  348. package/docs/pl/intlayer_with_vite+svelte.md +289 -0
  349. package/docs/pl/intlayer_with_vite+vue.md +1116 -0
  350. package/docs/pl/introduction.md +209 -0
  351. package/docs/pl/locale_mapper.md +242 -0
  352. package/docs/pl/mcp_server.md +211 -0
  353. package/docs/pl/packages/express-intlayer/t.md +458 -0
  354. package/docs/pl/packages/intlayer/getConfiguration.md +146 -0
  355. package/docs/pl/packages/intlayer/getEnumeration.md +160 -0
  356. package/docs/pl/packages/intlayer/getHTMLTextDir.md +121 -0
  357. package/docs/pl/packages/intlayer/getLocaleLang.md +81 -0
  358. package/docs/pl/packages/intlayer/getLocaleName.md +118 -0
  359. package/docs/pl/packages/intlayer/getLocalizedUrl.md +300 -0
  360. package/docs/pl/packages/intlayer/getMultilingualUrls.md +221 -0
  361. package/docs/pl/packages/intlayer/getPathWithoutLocale.md +75 -0
  362. package/docs/pl/packages/intlayer/getTranslation.md +190 -0
  363. package/docs/pl/packages/intlayer/getTranslationContent.md +189 -0
  364. package/docs/pl/packages/next-intlayer/t.md +353 -0
  365. package/docs/pl/packages/next-intlayer/useDictionary.md +270 -0
  366. package/docs/pl/packages/next-intlayer/useIntlayer.md +263 -0
  367. package/docs/pl/packages/next-intlayer/useLocale.md +166 -0
  368. package/docs/pl/packages/react-intlayer/t.md +303 -0
  369. package/docs/pl/packages/react-intlayer/useDictionary.md +289 -0
  370. package/docs/pl/packages/react-intlayer/useI18n.md +249 -0
  371. package/docs/pl/packages/react-intlayer/useIntlayer.md +256 -0
  372. package/docs/pl/packages/react-intlayer/useLocale.md +210 -0
  373. package/docs/pl/per_locale_file.md +321 -0
  374. package/docs/pl/readme.md +261 -0
  375. package/docs/pl/releases/v6.md +305 -0
  376. package/docs/pl/roadmap.md +362 -0
  377. package/docs/pl/testing.md +202 -0
  378. package/docs/pl/vs_code_extension.md +126 -0
  379. package/docs/pt/component_i18n.md +1 -1
  380. package/docs/pt/configuration.md +6 -0
  381. package/docs/pt/intlayer_cli.md +8 -3
  382. package/docs/pt/intlayer_with_next-i18next.md +627 -0
  383. package/docs/pt/intlayer_with_next-intl.md +446 -0
  384. package/docs/pt/intlayer_with_nextjs_16.md +21 -0
  385. package/docs/pt/intlayer_with_tanstack.md +4 -0
  386. package/docs/pt/intlayer_with_vite+react.md +4 -0
  387. package/docs/ru/component_i18n.md +1 -1
  388. package/docs/ru/configuration.md +6 -0
  389. package/docs/ru/intlayer_cli.md +301 -22
  390. package/docs/ru/intlayer_with_next-i18next.md +629 -0
  391. package/docs/ru/intlayer_with_next-intl.md +448 -0
  392. package/docs/ru/intlayer_with_nextjs_16.md +21 -0
  393. package/docs/ru/intlayer_with_tanstack.md +4 -0
  394. package/docs/ru/intlayer_with_vite+react.md +4 -0
  395. package/docs/tr/component_i18n.md +1 -1
  396. package/docs/tr/configuration.md +6 -0
  397. package/docs/tr/intlayer_cli.md +8 -0
  398. package/docs/tr/intlayer_with_next-i18next.md +627 -0
  399. package/docs/tr/intlayer_with_next-intl.md +446 -0
  400. package/docs/tr/intlayer_with_nextjs_16.md +21 -0
  401. package/docs/tr/intlayer_with_tanstack.md +4 -0
  402. package/docs/tr/intlayer_with_vite+react.md +4 -0
  403. package/docs/vi/CI_CD.md +198 -0
  404. package/docs/vi/autoFill.md +284 -0
  405. package/docs/vi/component_i18n.md +186 -0
  406. package/docs/vi/configuration.md +710 -0
  407. package/docs/vi/dictionary/condition.md +237 -0
  408. package/docs/vi/dictionary/content_file.md +1115 -0
  409. package/docs/vi/dictionary/enumeration.md +255 -0
  410. package/docs/vi/dictionary/file.md +234 -0
  411. package/docs/vi/dictionary/function_fetching.md +212 -0
  412. package/docs/vi/dictionary/gender.md +275 -0
  413. package/docs/vi/dictionary/insertion.md +191 -0
  414. package/docs/vi/dictionary/markdown.md +381 -0
  415. package/docs/vi/dictionary/nesting.md +273 -0
  416. package/docs/vi/dictionary/translation.md +309 -0
  417. package/docs/vi/formatters.md +595 -0
  418. package/docs/vi/how_works_intlayer.md +256 -0
  419. package/docs/vi/index.md +174 -0
  420. package/docs/vi/interest_of_intlayer.md +292 -0
  421. package/docs/vi/intlayer_CMS.md +549 -0
  422. package/docs/vi/intlayer_cli.md +850 -0
  423. package/docs/vi/intlayer_visual_editor.md +288 -0
  424. package/docs/vi/intlayer_with_angular.md +692 -0
  425. package/docs/vi/intlayer_with_astro.md +252 -0
  426. package/docs/vi/intlayer_with_create_react_app.md +1230 -0
  427. package/docs/vi/intlayer_with_express.md +409 -0
  428. package/docs/vi/intlayer_with_lynx+react.md +520 -0
  429. package/docs/vi/intlayer_with_nestjs.md +272 -0
  430. package/docs/vi/intlayer_with_next-i18next.md +628 -0
  431. package/docs/vi/intlayer_with_next-intl.md +446 -0
  432. package/docs/vi/intlayer_with_nextjs_14.md +1584 -0
  433. package/docs/vi/intlayer_with_nextjs_15.md +1738 -0
  434. package/docs/vi/intlayer_with_nextjs_16.md +21 -0
  435. package/docs/vi/intlayer_with_nextjs_page_router.md +1504 -0
  436. package/docs/vi/intlayer_with_nuxt.md +821 -0
  437. package/docs/vi/intlayer_with_react_native+expo.md +700 -0
  438. package/docs/vi/intlayer_with_react_router_v7.md +498 -0
  439. package/docs/vi/intlayer_with_tanstack.md +562 -0
  440. package/docs/vi/intlayer_with_vite+preact.md +1722 -0
  441. package/docs/vi/intlayer_with_vite+react.md +1407 -0
  442. package/docs/vi/intlayer_with_vite+solid.md +287 -0
  443. package/docs/vi/intlayer_with_vite+svelte.md +289 -0
  444. package/docs/vi/intlayer_with_vite+vue.md +1071 -0
  445. package/docs/vi/introduction.md +215 -0
  446. package/docs/vi/locale_mapper.md +242 -0
  447. package/docs/vi/mcp_server.md +211 -0
  448. package/docs/vi/packages/express-intlayer/t.md +457 -0
  449. package/docs/vi/packages/intlayer/getConfiguration.md +145 -0
  450. package/docs/vi/packages/intlayer/getEnumeration.md +162 -0
  451. package/docs/vi/packages/intlayer/getHTMLTextDir.md +121 -0
  452. package/docs/vi/packages/intlayer/getLocaleLang.md +81 -0
  453. package/docs/vi/packages/intlayer/getLocaleName.md +129 -0
  454. package/docs/vi/packages/intlayer/getLocalizedUrl.md +309 -0
  455. package/docs/vi/packages/intlayer/getMultilingualUrls.md +221 -0
  456. package/docs/vi/packages/intlayer/getPathWithoutLocale.md +75 -0
  457. package/docs/vi/packages/intlayer/getTranslation.md +201 -0
  458. package/docs/vi/packages/intlayer/getTranslationContent.md +188 -0
  459. package/docs/vi/packages/next-intlayer/t.md +352 -0
  460. package/docs/vi/packages/next-intlayer/useDictionary.md +273 -0
  461. package/docs/vi/packages/next-intlayer/useIntlayer.md +264 -0
  462. package/docs/vi/packages/next-intlayer/useLocale.md +166 -0
  463. package/docs/vi/packages/react-intlayer/t.md +304 -0
  464. package/docs/vi/packages/react-intlayer/useDictionary.md +288 -0
  465. package/docs/vi/packages/react-intlayer/useI18n.md +295 -0
  466. package/docs/vi/packages/react-intlayer/useIntlayer.md +256 -0
  467. package/docs/vi/packages/react-intlayer/useLocale.md +210 -0
  468. package/docs/vi/per_locale_file.md +326 -0
  469. package/docs/vi/readme.md +261 -0
  470. package/docs/vi/releases/v6.md +305 -0
  471. package/docs/vi/roadmap.md +346 -0
  472. package/docs/vi/testing.md +202 -0
  473. package/docs/vi/vs_code_extension.md +126 -0
  474. package/docs/zh/configuration.md +6 -0
  475. package/docs/zh/intlayer_cli.md +8 -3
  476. package/docs/zh/intlayer_with_next-i18next.md +628 -0
  477. package/docs/zh/intlayer_with_next-intl.md +448 -0
  478. package/docs/zh/intlayer_with_nextjs_16.md +21 -0
  479. package/docs/zh/intlayer_with_tanstack.md +4 -0
  480. package/docs/zh/intlayer_with_vite+react.md +4 -0
  481. package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -2
  482. package/frequent_questions/ar/array_as_content_declaration.md +1 -2
  483. package/frequent_questions/ar/build_dictionaries.md +1 -2
  484. package/frequent_questions/ar/build_error_CI_CD.md +1 -2
  485. package/frequent_questions/ar/bun_set_up.md +1 -2
  486. package/frequent_questions/ar/customized_locale_list.md +1 -2
  487. package/frequent_questions/ar/domain_routing.md +1 -2
  488. package/frequent_questions/ar/esbuild_error.md +1 -2
  489. package/frequent_questions/ar/get_locale_cookie.md +1 -2
  490. package/frequent_questions/ar/intlayer_command_undefined.md +1 -2
  491. package/frequent_questions/ar/locale_incorect_in_url.md +1 -2
  492. package/frequent_questions/ar/static_rendering.md +1 -3
  493. package/frequent_questions/ar/translated_path_url.md +1 -2
  494. package/frequent_questions/ar/unknown_command.md +1 -2
  495. package/frequent_questions/de/SSR_Next_no_[locale].md +1 -2
  496. package/frequent_questions/de/array_as_content_declaration.md +1 -2
  497. package/frequent_questions/de/build_dictionaries.md +1 -2
  498. package/frequent_questions/de/build_error_CI_CD.md +1 -2
  499. package/frequent_questions/de/bun_set_up.md +1 -2
  500. package/frequent_questions/de/customized_locale_list.md +1 -2
  501. package/frequent_questions/de/domain_routing.md +1 -2
  502. package/frequent_questions/de/esbuild_error.md +1 -2
  503. package/frequent_questions/de/get_locale_cookie.md +1 -2
  504. package/frequent_questions/de/intlayer_command_undefined.md +1 -2
  505. package/frequent_questions/de/locale_incorect_in_url.md +1 -2
  506. package/frequent_questions/de/static_rendering.md +1 -3
  507. package/frequent_questions/de/translated_path_url.md +1 -2
  508. package/frequent_questions/de/unknown_command.md +1 -2
  509. package/frequent_questions/en/SSR_Next_no_[locale].md +1 -2
  510. package/frequent_questions/en/array_as_content_declaration.md +1 -2
  511. package/frequent_questions/en/build_dictionaries.md +1 -2
  512. package/frequent_questions/en/build_error_CI_CD.md +1 -2
  513. package/frequent_questions/en/bun_set_up.md +1 -2
  514. package/frequent_questions/en/customized_locale_list.md +1 -2
  515. package/frequent_questions/en/domain_routing.md +1 -2
  516. package/frequent_questions/en/esbuild_error.md +1 -2
  517. package/frequent_questions/en/get_locale_cookie.md +1 -2
  518. package/frequent_questions/en/intlayer_command_undefined.md +1 -2
  519. package/frequent_questions/en/locale_incorect_in_url.md +1 -2
  520. package/frequent_questions/en/static_rendering.md +1 -3
  521. package/frequent_questions/en/translated_path_url.md +1 -2
  522. package/frequent_questions/en/unknown_command.md +1 -2
  523. package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -2
  524. package/frequent_questions/en-GB/array_as_content_declaration.md +1 -2
  525. package/frequent_questions/en-GB/build_dictionaries.md +1 -2
  526. package/frequent_questions/en-GB/build_error_CI_CD.md +1 -2
  527. package/frequent_questions/en-GB/bun_set_up.md +1 -2
  528. package/frequent_questions/en-GB/customized_locale_list.md +1 -2
  529. package/frequent_questions/en-GB/domain_routing.md +1 -2
  530. package/frequent_questions/en-GB/esbuild_error.md +1 -2
  531. package/frequent_questions/en-GB/get_locale_cookie.md +1 -2
  532. package/frequent_questions/en-GB/intlayer_command_undefined.md +1 -2
  533. package/frequent_questions/en-GB/locale_incorect_in_url.md +1 -2
  534. package/frequent_questions/en-GB/static_rendering.md +1 -3
  535. package/frequent_questions/en-GB/translated_path_url.md +1 -2
  536. package/frequent_questions/en-GB/unknown_command.md +1 -2
  537. package/frequent_questions/es/SSR_Next_no_[locale].md +1 -2
  538. package/frequent_questions/es/array_as_content_declaration.md +1 -2
  539. package/frequent_questions/es/build_dictionaries.md +1 -2
  540. package/frequent_questions/es/build_error_CI_CD.md +1 -2
  541. package/frequent_questions/es/bun_set_up.md +1 -2
  542. package/frequent_questions/es/customized_locale_list.md +1 -2
  543. package/frequent_questions/es/domain_routing.md +1 -2
  544. package/frequent_questions/es/esbuild_error.md +1 -2
  545. package/frequent_questions/es/get_locale_cookie.md +1 -2
  546. package/frequent_questions/es/intlayer_command_undefined.md +1 -2
  547. package/frequent_questions/es/locale_incorect_in_url.md +1 -2
  548. package/frequent_questions/es/static_rendering.md +1 -3
  549. package/frequent_questions/es/translated_path_url.md +1 -2
  550. package/frequent_questions/es/unknown_command.md +1 -2
  551. package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -2
  552. package/frequent_questions/fr/array_as_content_declaration.md +1 -2
  553. package/frequent_questions/fr/build_dictionaries.md +1 -2
  554. package/frequent_questions/fr/build_error_CI_CD.md +1 -2
  555. package/frequent_questions/fr/bun_set_up.md +1 -2
  556. package/frequent_questions/fr/customized_locale_list.md +1 -2
  557. package/frequent_questions/fr/domain_routing.md +1 -2
  558. package/frequent_questions/fr/esbuild_error.md +1 -2
  559. package/frequent_questions/fr/get_locale_cookie.md +1 -2
  560. package/frequent_questions/fr/intlayer_command_undefined.md +1 -2
  561. package/frequent_questions/fr/locale_incorect_in_url.md +1 -2
  562. package/frequent_questions/fr/static_rendering.md +1 -3
  563. package/frequent_questions/fr/translated_path_url.md +1 -2
  564. package/frequent_questions/fr/unknown_command.md +1 -2
  565. package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -2
  566. package/frequent_questions/hi/array_as_content_declaration.md +1 -2
  567. package/frequent_questions/hi/build_dictionaries.md +1 -2
  568. package/frequent_questions/hi/build_error_CI_CD.md +1 -2
  569. package/frequent_questions/hi/bun_set_up.md +1 -2
  570. package/frequent_questions/hi/customized_locale_list.md +1 -2
  571. package/frequent_questions/hi/domain_routing.md +1 -2
  572. package/frequent_questions/hi/esbuild_error.md +1 -2
  573. package/frequent_questions/hi/get_locale_cookie.md +1 -2
  574. package/frequent_questions/hi/intlayer_command_undefined.md +1 -2
  575. package/frequent_questions/hi/locale_incorect_in_url.md +1 -2
  576. package/frequent_questions/hi/static_rendering.md +1 -3
  577. package/frequent_questions/hi/translated_path_url.md +1 -2
  578. package/frequent_questions/hi/unknown_command.md +1 -2
  579. package/frequent_questions/id/SSR_Next_no_[locale].md +104 -0
  580. package/frequent_questions/id/array_as_content_declaration.md +71 -0
  581. package/frequent_questions/id/build_dictionaries.md +58 -0
  582. package/frequent_questions/id/build_error_CI_CD.md +74 -0
  583. package/frequent_questions/id/bun_set_up.md +53 -0
  584. package/frequent_questions/id/customized_locale_list.md +64 -0
  585. package/frequent_questions/id/domain_routing.md +113 -0
  586. package/frequent_questions/id/esbuild_error.md +29 -0
  587. package/frequent_questions/id/get_locale_cookie.md +142 -0
  588. package/frequent_questions/id/intlayer_command_undefined.md +155 -0
  589. package/frequent_questions/id/locale_incorect_in_url.md +73 -0
  590. package/frequent_questions/id/static_rendering.md +44 -0
  591. package/frequent_questions/id/translated_path_url.md +55 -0
  592. package/frequent_questions/id/unknown_command.md +97 -0
  593. package/frequent_questions/it/SSR_Next_no_[locale].md +1 -2
  594. package/frequent_questions/it/array_as_content_declaration.md +1 -2
  595. package/frequent_questions/it/build_dictionaries.md +1 -2
  596. package/frequent_questions/it/build_error_CI_CD.md +1 -2
  597. package/frequent_questions/it/bun_set_up.md +1 -2
  598. package/frequent_questions/it/customized_locale_list.md +1 -2
  599. package/frequent_questions/it/domain_routing.md +1 -2
  600. package/frequent_questions/it/esbuild_error.md +1 -2
  601. package/frequent_questions/it/get_locale_cookie.md +1 -2
  602. package/frequent_questions/it/intlayer_command_undefined.md +1 -2
  603. package/frequent_questions/it/locale_incorect_in_url.md +1 -2
  604. package/frequent_questions/it/static_rendering.md +1 -3
  605. package/frequent_questions/it/translated_path_url.md +1 -2
  606. package/frequent_questions/it/unknown_command.md +1 -2
  607. package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -2
  608. package/frequent_questions/ja/array_as_content_declaration.md +1 -2
  609. package/frequent_questions/ja/build_dictionaries.md +1 -2
  610. package/frequent_questions/ja/build_error_CI_CD.md +1 -2
  611. package/frequent_questions/ja/bun_set_up.md +1 -2
  612. package/frequent_questions/ja/customized_locale_list.md +1 -2
  613. package/frequent_questions/ja/domain_routing.md +1 -2
  614. package/frequent_questions/ja/esbuild_error.md +1 -2
  615. package/frequent_questions/ja/get_locale_cookie.md +1 -2
  616. package/frequent_questions/ja/intlayer_command_undefined.md +1 -2
  617. package/frequent_questions/ja/locale_incorect_in_url.md +1 -2
  618. package/frequent_questions/ja/static_rendering.md +1 -3
  619. package/frequent_questions/ja/translated_path_url.md +1 -2
  620. package/frequent_questions/ja/unknown_command.md +1 -2
  621. package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -2
  622. package/frequent_questions/ko/array_as_content_declaration.md +1 -2
  623. package/frequent_questions/ko/build_dictionaries.md +1 -2
  624. package/frequent_questions/ko/build_error_CI_CD.md +1 -2
  625. package/frequent_questions/ko/bun_set_up.md +1 -2
  626. package/frequent_questions/ko/customized_locale_list.md +1 -2
  627. package/frequent_questions/ko/domain_routing.md +1 -2
  628. package/frequent_questions/ko/esbuild_error.md +1 -2
  629. package/frequent_questions/ko/get_locale_cookie.md +1 -2
  630. package/frequent_questions/ko/intlayer_command_undefined.md +1 -2
  631. package/frequent_questions/ko/locale_incorect_in_url.md +1 -2
  632. package/frequent_questions/ko/static_rendering.md +1 -3
  633. package/frequent_questions/ko/translated_path_url.md +1 -2
  634. package/frequent_questions/ko/unknown_command.md +1 -2
  635. package/frequent_questions/pl/SSR_Next_no_[locale].md +104 -0
  636. package/frequent_questions/pl/array_as_content_declaration.md +71 -0
  637. package/frequent_questions/pl/build_dictionaries.md +58 -0
  638. package/frequent_questions/pl/build_error_CI_CD.md +74 -0
  639. package/frequent_questions/pl/bun_set_up.md +54 -0
  640. package/frequent_questions/pl/customized_locale_list.md +64 -0
  641. package/frequent_questions/pl/domain_routing.md +113 -0
  642. package/frequent_questions/pl/esbuild_error.md +29 -0
  643. package/frequent_questions/pl/get_locale_cookie.md +142 -0
  644. package/frequent_questions/pl/intlayer_command_undefined.md +155 -0
  645. package/frequent_questions/pl/locale_incorect_in_url.md +73 -0
  646. package/frequent_questions/pl/static_rendering.md +44 -0
  647. package/frequent_questions/pl/translated_path_url.md +55 -0
  648. package/frequent_questions/pl/unknown_command.md +97 -0
  649. package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -2
  650. package/frequent_questions/pt/array_as_content_declaration.md +1 -2
  651. package/frequent_questions/pt/build_dictionaries.md +1 -2
  652. package/frequent_questions/pt/build_error_CI_CD.md +1 -2
  653. package/frequent_questions/pt/bun_set_up.md +1 -2
  654. package/frequent_questions/pt/customized_locale_list.md +1 -2
  655. package/frequent_questions/pt/domain_routing.md +1 -2
  656. package/frequent_questions/pt/esbuild_error.md +1 -2
  657. package/frequent_questions/pt/get_locale_cookie.md +1 -2
  658. package/frequent_questions/pt/intlayer_command_undefined.md +1 -2
  659. package/frequent_questions/pt/locale_incorect_in_url.md +1 -2
  660. package/frequent_questions/pt/static_rendering.md +1 -3
  661. package/frequent_questions/pt/translated_path_url.md +1 -2
  662. package/frequent_questions/pt/unknown_command.md +1 -2
  663. package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -2
  664. package/frequent_questions/ru/array_as_content_declaration.md +1 -2
  665. package/frequent_questions/ru/build_dictionaries.md +1 -2
  666. package/frequent_questions/ru/build_error_CI_CD.md +1 -2
  667. package/frequent_questions/ru/bun_set_up.md +1 -2
  668. package/frequent_questions/ru/customized_locale_list.md +1 -2
  669. package/frequent_questions/ru/domain_routing.md +1 -2
  670. package/frequent_questions/ru/esbuild_error.md +1 -2
  671. package/frequent_questions/ru/get_locale_cookie.md +1 -2
  672. package/frequent_questions/ru/intlayer_command_undefined.md +1 -2
  673. package/frequent_questions/ru/locale_incorect_in_url.md +1 -2
  674. package/frequent_questions/ru/static_rendering.md +1 -2
  675. package/frequent_questions/ru/translated_path_url.md +1 -2
  676. package/frequent_questions/ru/unknown_command.md +1 -2
  677. package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -2
  678. package/frequent_questions/tr/array_as_content_declaration.md +1 -2
  679. package/frequent_questions/tr/build_dictionaries.md +1 -2
  680. package/frequent_questions/tr/build_error_CI_CD.md +1 -2
  681. package/frequent_questions/tr/bun_set_up.md +1 -2
  682. package/frequent_questions/tr/customized_locale_list.md +1 -2
  683. package/frequent_questions/tr/domain_routing.md +1 -2
  684. package/frequent_questions/tr/esbuild_error.md +1 -2
  685. package/frequent_questions/tr/get_locale_cookie.md +1 -2
  686. package/frequent_questions/tr/intlayer_command_undefined.md +1 -2
  687. package/frequent_questions/tr/locale_incorect_in_url.md +1 -2
  688. package/frequent_questions/tr/static_rendering.md +1 -2
  689. package/frequent_questions/tr/translated_path_url.md +1 -2
  690. package/frequent_questions/tr/unknown_command.md +1 -2
  691. package/frequent_questions/vi/SSR_Next_no_[locale].md +106 -0
  692. package/frequent_questions/vi/array_as_content_declaration.md +71 -0
  693. package/frequent_questions/vi/build_dictionaries.md +58 -0
  694. package/frequent_questions/vi/build_error_CI_CD.md +74 -0
  695. package/frequent_questions/vi/bun_set_up.md +53 -0
  696. package/frequent_questions/vi/customized_locale_list.md +64 -0
  697. package/frequent_questions/vi/domain_routing.md +113 -0
  698. package/frequent_questions/vi/esbuild_error.md +29 -0
  699. package/frequent_questions/vi/get_locale_cookie.md +142 -0
  700. package/frequent_questions/vi/intlayer_command_undefined.md +155 -0
  701. package/frequent_questions/vi/locale_incorect_in_url.md +73 -0
  702. package/frequent_questions/vi/static_rendering.md +44 -0
  703. package/frequent_questions/vi/translated_path_url.md +55 -0
  704. package/frequent_questions/vi/unknown_command.md +97 -0
  705. package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -2
  706. package/frequent_questions/zh/array_as_content_declaration.md +1 -2
  707. package/frequent_questions/zh/build_dictionaries.md +1 -2
  708. package/frequent_questions/zh/build_error_CI_CD.md +1 -2
  709. package/frequent_questions/zh/bun_set_up.md +1 -2
  710. package/frequent_questions/zh/customized_locale_list.md +1 -2
  711. package/frequent_questions/zh/domain_routing.md +1 -2
  712. package/frequent_questions/zh/esbuild_error.md +1 -2
  713. package/frequent_questions/zh/get_locale_cookie.md +1 -2
  714. package/frequent_questions/zh/intlayer_command_undefined.md +1 -2
  715. package/frequent_questions/zh/locale_incorect_in_url.md +1 -2
  716. package/frequent_questions/zh/static_rendering.md +1 -3
  717. package/frequent_questions/zh/translated_path_url.md +1 -2
  718. package/frequent_questions/zh/unknown_command.md +1 -2
  719. package/legal/id/privacy_notice.md +83 -0
  720. package/legal/id/terms_of_service.md +55 -0
  721. package/legal/pl/privacy_notice.md +83 -0
  722. package/legal/pl/terms_of_service.md +55 -0
  723. package/legal/vi/privacy_notice.md +83 -0
  724. package/legal/vi/terms_of_service.md +55 -0
  725. package/package.json +19 -18
  726. package/src/generated/blog.entry.ts +38 -0
@@ -0,0 +1,710 @@
1
+ ---
2
+ createdAt: 2024-08-13
3
+ updatedAt: 2025-10-25
4
+ title: Cấu hình
5
+ description: Tìm hiểu cách cấu hình Intlayer cho ứng dụng của bạn. Hiểu các thiết lập và tùy chọn khác nhau để tùy chỉnh Intlayer theo nhu cầu của bạn.
6
+ keywords:
7
+ - Cấu hình
8
+ - Thiết lập
9
+ - Tùy chỉnh
10
+ - Intlayer
11
+ - Tùy chọn
12
+ slugs:
13
+ - doc
14
+ - concept
15
+ - configuration
16
+ history:
17
+ - version: 7.0.0
18
+ date: 2025-10-25
19
+ changes: Thêm cấu hình `dictionary`
20
+ - version: 7.0.0
21
+ date: 2025-10-21
22
+ changes: Thay thế `middleware` bằng cấu hình `routing`
23
+ - version: 7.0.0
24
+ date: 2025-10-12
25
+ changes: Thêm tùy chọn `formatCommand`
26
+ - version: 6.2.0
27
+ date: 2025-10-12
28
+ changes: Cập nhật tùy chọn `excludedPath`
29
+ - version: 6.0.2
30
+ date: 2025-09-23
31
+ changes: Thêm tùy chọn `outputFormat`
32
+ - version: 6.0.0
33
+ date: 2025-09-21
34
+ changes: Loại bỏ trường `dictionaryOutput` và trường `i18nextResourcesDir`
35
+ - version: 6.0.0
36
+ date: 2025-09-16
37
+ changes: Thêm chế độ nhập khẩu `live`
38
+ - version: 6.0.0
39
+ date: 2025-09-04
40
+ changes: Thay thế trường `hotReload` bằng `liveSync` và thêm các trường `liveSyncPort` và `liveSyncURL`
41
+ - version: 5.6.1
42
+ date: 2025-07-25
43
+ changes: Thay thế `activateDynamicImport` bằng tùy chọn `importMode`
44
+ - version: 5.6.0
45
+ date: 2025-07-13
46
+ changes: Thay đổi giá trị mặc định của contentDir từ `['src']` thành `['.']`
47
+ - version: 5.5.11
48
+ date: 2025-06-29
49
+ changes: Thêm các lệnh `docs`
50
+ ---
51
+
52
+ # Tài liệu Cấu hình Intlayer
53
+
54
+ ## Tổng quan
55
+
56
+ Các tệp cấu hình Intlayer cho phép tùy chỉnh nhiều khía cạnh khác nhau của plugin, chẳng hạn như quốc tế hóa, middleware và xử lý nội dung. Tài liệu này cung cấp mô tả chi tiết về từng thuộc tính trong cấu hình.
57
+
58
+ ---
59
+
60
+ ## Mục lục
61
+
62
+ <TOC/>
63
+
64
+ ---
65
+
66
+ ## Hỗ trợ tệp cấu hình
67
+
68
+ Intlayer chấp nhận các định dạng tệp cấu hình JSON, JS, MJS và TS:
69
+
70
+ - `intlayer.config.ts`
71
+ - `intlayer.config.js`
72
+ - `intlayer.config.json`
73
+ - `intlayer.config.cjs`
74
+ - `intlayer.config.mjs`
75
+ - `.intlayerrc`
76
+
77
+ ---
78
+
79
+ ## Ví dụ tệp cấu hình
80
+
81
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
82
+ import { Locales, type IntlayerConfig } from "intlayer";
83
+
84
+ const config: IntlayerConfig = {
85
+ internationalization: {
86
+ locales: [Locales.ENGLISH],
87
+ },
88
+ content: {
89
+ contentDir: ["src", "../ui-library"],
90
+ },
91
+ dictionary: {
92
+ fill: "./{{fileName}}.content.json",
93
+ },
94
+ routing: {
95
+ mode: "prefix-no-default",
96
+ storage: "cookie",
97
+ },
98
+ editor: {
99
+ applicationURL: "https://example.com",
100
+ },
101
+ ai: {
102
+ apiKey: process.env.OPENAI_API_KEY,
103
+ applicationContext: "Đây là một ứng dụng thử nghiệm", // ngữ cảnh ứng dụng AI
104
+ },
105
+ build: {
106
+ importMode: "dynamic",
107
+ },
108
+ };
109
+
110
+ export default config;
111
+ ```
112
+
113
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
114
+ const { Locales } = require("intlayer");
115
+
116
+ /** @type {import('intlayer').IntlayerConfig} */
117
+ const config = {
118
+ internationalization: {
119
+ locales: [Locales.ENGLISH],
120
+ },
121
+ content: {
122
+ contentDir: ["src", "../ui-library"],
123
+ },
124
+ routing: {
125
+ mode: "prefix-no-default",
126
+ storage: "cookie",
127
+ },
128
+ editor: {
129
+ applicationURL: "https://example.com",
130
+ },
131
+ ai: {
132
+ apiKey: process.env.OPENAI_API_KEY,
133
+ applicationContext: "Đây là một ứng dụng thử nghiệm", // ngữ cảnh ứng dụng AI
134
+ },
135
+ build: {
136
+ importMode: "dynamic",
137
+ },
138
+ };
139
+
140
+ module.exports = config;
141
+ ```
142
+
143
+ ```json5 fileName=".intlayerrc" codeFormat="json"
144
+ {
145
+ "internationalization": {
146
+ "locales": ["en"],
147
+ },
148
+ "content": {
149
+ "contentDir": ["src", "../ui-library"],
150
+ },
151
+ "dictionary": {
152
+ "fill": "./{{fileName}}.content.json",
153
+ },
154
+ "routing": {
155
+ "mode": "prefix-no-default",
156
+ "storage": "cookie",
157
+ },
158
+ "editor": {
159
+ "applicationURL": "https://example.com",
160
+ },
161
+ "ai": {
162
+ "apiKey": "XXXX",
163
+ "applicationContext": "Đây là một ứng dụng thử nghiệm", // ngữ cảnh ứng dụng AI
164
+ },
165
+ "build": {
166
+ "importMode": "dynamic",
167
+ },
168
+ }
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Tham chiếu Cấu hình
174
+
175
+ Các phần sau mô tả các thiết lập cấu hình khác nhau có sẵn cho Intlayer.
176
+
177
+ ---
178
+
179
+ ### Cấu hình Quốc tế hóa
180
+
181
+ Định nghĩa các thiết lập liên quan đến quốc tế hóa, bao gồm các ngôn ngữ có sẵn và ngôn ngữ mặc định cho ứng dụng.
182
+
183
+ #### Thuộc tính
184
+
185
+ - **locales**:
186
+ - _Kiểu_: `string[]`
187
+ - _Mặc định_: `['en']`
188
+ - _Mô tả_: Danh sách các ngôn ngữ được hỗ trợ trong ứng dụng.
189
+ - _Ví dụ_: `['en', 'fr', 'es']`
190
+
191
+ - **requiredLocales**:
192
+ - _Kiểu_: `string[]`
193
+ - _Mặc định_: `[]`
194
+ - _Mô tả_: Danh sách các ngôn ngữ bắt buộc trong ứng dụng.
195
+ - _Ví dụ_: `[]`
196
+ - _Lưu ý_: Nếu để trống, tất cả các ngôn ngữ đều bắt buộc trong chế độ `strict`.
197
+ - _Lưu ý_: Đảm bảo các ngôn ngữ bắt buộc cũng được định nghĩa trong trường `locales`.
198
+ - **strictMode**:
199
+ - _Kiểu_: `string`
200
+ - _Mặc định_: `inclusive`
201
+ - _Mô tả_: Đảm bảo việc triển khai nội dung quốc tế hóa mạnh mẽ bằng cách sử dụng typescript.
202
+ - _Lưu ý_: Nếu được đặt thành "strict", hàm dịch `t` sẽ yêu cầu mỗi ngôn ngữ được khai báo phải được định nghĩa. Nếu thiếu một ngôn ngữ hoặc nếu một ngôn ngữ không được khai báo trong cấu hình của bạn, nó sẽ báo lỗi.
203
+ - _Lưu ý_: Nếu được đặt thành "inclusive", hàm dịch `t` sẽ yêu cầu mỗi ngôn ngữ được khai báo phải được định nghĩa. Nếu thiếu một ngôn ngữ, nó sẽ cảnh báo. Nhưng sẽ chấp nhận nếu một ngôn ngữ không được khai báo trong cấu hình của bạn nhưng tồn tại.
204
+ - _Lưu ý_: Nếu được đặt thành "loose", hàm dịch `t` sẽ chấp nhận bất kỳ ngôn ngữ nào tồn tại.
205
+
206
+ - **defaultLocale**:
207
+ - _Kiểu_: `string`
208
+ - _Mặc định_: `'en'`
209
+ - _Mô tả_: Ngôn ngữ mặc định được sử dụng làm dự phòng nếu ngôn ngữ yêu cầu không được tìm thấy.
210
+ - _Ví dụ_: `'en'`
211
+ - _Lưu ý_: Điều này được sử dụng để xác định ngôn ngữ khi không có ngôn ngữ nào được chỉ định trong URL, cookie hoặc header.
212
+
213
+ ---
214
+
215
+ ### Cấu hình Trình soạn thảo
216
+
217
+ Định nghĩa các thiết lập liên quan đến trình soạn thảo tích hợp, bao gồm cổng máy chủ và trạng thái hoạt động.
218
+
219
+ #### Thuộc tính
220
+
221
+ - **applicationURL**:
222
+ - _Kiểu_: `string`
223
+ - _Mặc định_: `http://localhost:3000`
224
+ - _Mô tả_: URL của ứng dụng. Được sử dụng để giới hạn nguồn gốc của trình soạn thảo vì lý do bảo mật.
225
+ - _Ví dụ_:
226
+ - `'http://localhost:3000'`
227
+ - `'https://example.com'`
228
+ - `process.env.INTLAYER_EDITOR_URL`
229
+ - _Lưu ý_: URL của ứng dụng. Được sử dụng để giới hạn nguồn gốc của trình soạn thảo vì lý do bảo mật. Nếu được đặt thành `'*'`, trình soạn thảo có thể truy cập từ bất kỳ nguồn gốc nào.
230
+
231
+ - **port**:
232
+ - _Kiểu_: `number`
233
+ - _Mặc định_: `8000`
234
+ - _Mô tả_: Cổng được sử dụng bởi máy chủ trình soạn thảo trực quan.
235
+
236
+ - **editorURL**:
237
+ - _Kiểu_: `string`
238
+ - _Mặc định_: `'http://localhost:8000'`
239
+ - _Mô tả_: URL của máy chủ trình soạn thảo. Được sử dụng để giới hạn nguồn gốc của trình soạn thảo vì lý do bảo mật.
240
+ - `'http://localhost:3000'`
241
+ - `'https://example.com'`
242
+ - `process.env.INTLAYER_EDITOR_URL`
243
+ - _Lưu ý_: URL của máy chủ trình soạn thảo để truy cập từ ứng dụng. Được sử dụng để giới hạn các nguồn gốc có thể tương tác với ứng dụng vì lý do bảo mật. Nếu được đặt thành `'*'`, trình soạn thảo có thể truy cập từ bất kỳ nguồn gốc nào. Nên được đặt nếu cổng bị thay đổi, hoặc nếu trình soạn thảo được lưu trữ trên một miền khác.
244
+
245
+ - **cmsURL**:
246
+ - _Kiểu_: `string`
247
+ - _Mặc định_: `'https://intlayer.org'`
248
+ - _Mô tả_: URL của Intlayer CMS.
249
+ - _Ví dụ_: `'https://intlayer.org'`
250
+ - _Lưu ý_: URL của Intlayer CMS.
251
+
252
+ - **backendURL**:
253
+ - _Kiểu_: `string`
254
+ - _Mặc định_: `https://back.intlayer.org`
255
+ - _Mô tả_: URL của máy chủ backend.
256
+ - _Ví dụ_: `http://localhost:4000`
257
+
258
+ - **enabled**:
259
+ - _Kiểu_: `boolean`
260
+ - _Mặc định_: `true`
261
+ - _Mô tả_: Chỉ ra liệu ứng dụng có tương tác với trình soạn thảo trực quan hay không.
262
+ - _Ví dụ_: `process.env.NODE_ENV !== 'production'`
263
+ - _Lưu ý_: Nếu là true, trình soạn thảo sẽ có thể tương tác với ứng dụng. Nếu là false, trình soạn thảo sẽ không thể tương tác với ứng dụng. Trong mọi trường hợp, trình soạn thảo chỉ có thể được kích hoạt bởi trình soạn thảo trực quan. Việc vô hiệu hóa trình soạn thảo cho các môi trường cụ thể là một cách để tăng cường bảo mật.
264
+
265
+ - **clientId**:
266
+ - _Kiểu_: `string` | `undefined`
267
+ - _Mặc định_: `undefined`
268
+ - _Mô tả_: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://intlayer.org/dashboard/project và tạo một tài khoản.
269
+ - _Ví dụ_: `true`
270
+ - _Lưu ý_: Quan trọng: clientId và clientSecret cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở nơi an toàn, chẳng hạn như biến môi trường.
271
+
272
+ - **clientSecret**:
273
+ - _Kiểu_: `string` | `undefined`
274
+ - _Mặc định_: `undefined`
275
+ - _Mô tả_: clientId và clientSecret cho phép các package của intlayer xác thực với backend sử dụng xác thực oAuth2. Một access token được sử dụng để xác thực người dùng liên quan đến dự án. Để lấy access token, truy cập https://intlayer.org/dashboard/project và tạo một tài khoản.
276
+ - _Ví dụ_: `true`
277
+ - _Lưu ý_: Quan trọng: clientId và clientSecret cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở nơi an toàn, chẳng hạn như biến môi trường.
278
+
279
+ - **dictionaryPriorityStrategy**:
280
+ - _Kiểu_: `string`
281
+ - _Mặc định_: `'local_first'`
282
+ - _Mô tả_: Chiến lược ưu tiên từ điển trong trường hợp có cả từ điển cục bộ và từ điển từ xa. Nếu được đặt thành `'distant_first'`, ứng dụng sẽ ưu tiên từ điển từ xa hơn từ điển cục bộ. Nếu được đặt thành `'local_first'`, ứng dụng sẽ ưu tiên từ điển cục bộ hơn từ điển từ xa.
283
+ - _Ví dụ_: `'distant_first'`
284
+
285
+ - **liveSync**:
286
+ - _Kiểu_: `boolean`
287
+ - _Mặc định_: `false`
288
+ - _Mô tả_: Chỉ định liệu server ứng dụng có nên tải lại nóng nội dung của ứng dụng khi phát hiện có thay đổi trên CMS / Visual Editor / Backend hay không.
289
+ - _Ví dụ_: `true`
290
+ - _Lưu ý_: Ví dụ, khi một từ điển mới được thêm hoặc cập nhật, ứng dụng sẽ cập nhật nội dung để hiển thị trên trang.
291
+ - _Lưu ý_: Live sync cần phải đưa nội dung của ứng dụng ra một server khác. Điều này có nghĩa là nó có thể ảnh hưởng nhẹ đến hiệu năng của ứng dụng. Để hạn chế điều này, chúng tôi khuyến nghị nên host ứng dụng và server live sync trên cùng một máy. Ngoài ra, sự kết hợp giữa live sync và `optimize` có thể tạo ra một số lượng lớn các yêu cầu đến server live sync. Tùy thuộc vào hạ tầng của bạn, chúng tôi khuyến nghị nên thử nghiệm cả hai tùy chọn và sự kết hợp của chúng.
292
+
293
+ - **liveSyncPort**:
294
+ - _Kiểu_: `number`
295
+ - _Mặc định_: `4000`
296
+ - _Mô tả_: Cổng của server live sync.
297
+ - _Ví dụ_: `4000`
298
+ - _Lưu ý_: Cổng của server live sync.
299
+
300
+ - **liveSyncURL**:
301
+ - _Kiểu_: `string`
302
+ - _Mặc định_: `'http://localhost:{liveSyncPort}'`
303
+ - _Mô tả_: URL của server live sync.
304
+ - _Ví dụ_: `'https://example.com'`
305
+ - _Lưu ý_: Mặc định trỏ tới localhost nhưng có thể thay đổi thành bất kỳ URL nào trong trường hợp server live sync từ xa.
306
+
307
+ ### Cấu hình Routing
308
+
309
+ Các thiết lập kiểm soát hành vi routing, bao gồm cấu trúc URL, lưu trữ locale và xử lý middleware.
310
+
311
+ #### Thuộc tính
312
+
313
+ - **mode**:
314
+ - _Kiểu_: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
315
+ - _Mặc định_: `'prefix-no-default'`
316
+ - _Mô tả_: Chế độ routing URL để xử lý locale.
317
+ - _Ví dụ_:
318
+ - `'prefix-no-default'`: `/dashboard` (en) hoặc `/fr/dashboard` (fr)
319
+ - `'prefix-all'`: `/en/dashboard` (en) hoặc `/fr/dashboard` (fr)
320
+ - `'no-prefix'`: `/dashboard` (locale được xử lý bằng cách khác)
321
+ - `'search-params'`: `/dashboard?locale=fr`
322
+ - _Lưu ý_: Thiết lập này không ảnh hưởng đến quản lý cookie hoặc lưu trữ locale.
323
+
324
+ - **storage**:
325
+ - _Kiểu_: `false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array`
326
+ - _Mặc định_: `'localStorage'`
327
+ - _Mô tả_: Cấu hình để lưu trữ locale trên client.
328
+
329
+ - **cookie**:
330
+ - _Mô tả_: Lưu dữ liệu trong cookie, các mẩu dữ liệu nhỏ được lưu trên trình duyệt của client, có thể truy cập cả phía client và server.
331
+ - _Lưu ý_: Để tuân thủ GDPR, cần đảm bảo có sự đồng ý của người dùng trước khi sử dụng.
332
+ - _Lưu ý_: Các tham số cookie có thể tùy chỉnh nếu được đặt dưới dạng CookiesAttributes (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`).
333
+
334
+ - **localStorage**:
335
+ - _Mô tả_: Lưu dữ liệu trong trình duyệt mà không có ngày hết hạn, cho phép dữ liệu tồn tại qua các phiên làm việc, chỉ có thể truy cập ở phía client.
336
+ - _Lưu ý_: Phù hợp để lưu trữ dữ liệu lâu dài nhưng cần lưu ý về các vấn đề bảo mật và quyền riêng tư do dữ liệu không hết hạn trừ khi được xóa rõ ràng.
337
+ - _Lưu ý_: Bộ lưu trữ locale chỉ có thể truy cập ở phía client, proxy intlayer sẽ không thể truy cập được.
338
+ - _Lưu ý_: Các tham số lưu trữ locale có thể tùy chỉnh nếu được đặt dưới dạng StorageAttributes (`{ type: 'localStorage', name: 'custom-locale' }`).
339
+
340
+ - **sessionStorage**:
341
+ - _Mô tả_: Lưu dữ liệu trong suốt phiên làm việc của trang, nghĩa là dữ liệu sẽ bị xóa khi tab hoặc cửa sổ trình duyệt đóng, chỉ có thể truy cập ở phía client.
342
+ - _Lưu ý_: Phù hợp để lưu trữ dữ liệu tạm thời cho mỗi phiên làm việc.
343
+ - _Lưu ý_: Bộ lưu trữ locale chỉ có thể truy cập ở phía client, proxy intlayer sẽ không thể truy cập được.
344
+ - _Lưu ý_: Các tham số lưu trữ locale có thể tùy chỉnh nếu được đặt dưới dạng StorageAttributes (`{ type: 'sessionStorage', name: 'custom-locale' }`).
345
+
346
+ - **header**:
347
+ - _Mô tả_: Sử dụng các header HTTP để lưu trữ hoặc truyền dữ liệu locale, phù hợp cho việc xác định ngôn ngữ phía server.
348
+ - _Lưu ý_: Hữu ích trong các cuộc gọi API để duy trì cài đặt ngôn ngữ nhất quán qua các yêu cầu.
349
+ - _Lưu ý_: Header chỉ có thể truy cập ở phía server, phía client sẽ không thể truy cập được.
350
+ - _Lưu ý_: Tên header có thể tùy chỉnh nếu được đặt dưới dạng StorageAttributes (`{ type: 'header', name: 'custom-locale' }`).
351
+
352
+ - **basePath**:
353
+ - _Kiểu_: `string`
354
+ - _Mặc định_: `''`
355
+ - _Mô tả_: Đường dẫn cơ sở cho các URL của ứng dụng.
356
+ - _Ví dụ_: `'/my-app'`
357
+ - _Lưu ý_:
358
+ - Nếu ứng dụng được lưu trữ tại `https://example.com/my-app`
359
+ - Đường dẫn cơ sở là `'/my-app'`
360
+ - URL sẽ là `https://example.com/my-app/en`
361
+ - Nếu không đặt đường dẫn cơ sở, URL sẽ là `https://example.com/en`
362
+
363
+ #### Thuộc tính Cookie
364
+
365
+ Khi sử dụng lưu trữ cookie, bạn có thể cấu hình thêm các thuộc tính cookie:
366
+
367
+ - **name**: Tên cookie (mặc định: `'INTLAYER_LOCALE'`)
368
+ - **domain**: Miền cookie (mặc định: không xác định)
369
+ - **path**: Đường dẫn cookie (mặc định: không xác định)
370
+ - **secure**: Yêu cầu HTTPS (mặc định: không xác định)
371
+ - **httpOnly**: Cờ chỉ HTTP (mặc định: không xác định)
372
+ - **sameSite**: Chính sách SameSite (`'strict' | 'lax' | 'none'`)
373
+ - **expires**: Ngày hết hạn hoặc số ngày (mặc định: không xác định)
374
+
375
+ #### Thuộc tính lưu trữ Locale
376
+
377
+ Khi sử dụng localStorage hoặc sessionStorage:
378
+
379
+ - **type**: Loại lưu trữ (`'localStorage' | 'sessionStorage'`)
380
+ - **name**: Tên khóa lưu trữ (mặc định: `'INTLAYER_LOCALE'`)
381
+
382
+ #### Ví dụ cấu hình
383
+
384
+ Dưới đây là một số ví dụ cấu hình phổ biến cho cấu trúc routing mới v7:
385
+
386
+ **Cấu hình cơ bản (Mặc định)**:
387
+
388
+ ```typescript
389
+ // intlayer.config.ts
390
+ export default defineConfig({
391
+ internationalization: {
392
+ locales: ["en", "fr", "es"],
393
+ defaultLocale: "en",
394
+ },
395
+ routing: {
396
+ mode: "prefix-no-default",
397
+ storage: "localStorage",
398
+ headerName: "x-intlayer-locale",
399
+ basePath: "",
400
+ },
401
+ });
402
+ ```
403
+
404
+ **Cấu hình tuân thủ GDPR**:
405
+
406
+ ```typescript
407
+ // intlayer.config.ts
408
+ export default defineConfig({
409
+ internationalization: {
410
+ locales: ["en", "fr", "es"],
411
+ defaultLocale: "en",
412
+ },
413
+ routing: {
414
+ mode: "prefix-no-default",
415
+ storage: [
416
+ {
417
+ type: "localStorage",
418
+ name: "user-locale",
419
+ },
420
+ {
421
+ type: "cookie",
422
+ name: "user-locale",
423
+ secure: true,
424
+ sameSite: "strict",
425
+ httpOnly: false,
426
+ },
427
+ ],
428
+ headerName: "x-intlayer-locale",
429
+ basePath: "",
430
+ },
431
+ });
432
+ ```
433
+
434
+ **Chế độ Tham số Tìm kiếm**:
435
+
436
+ ```typescript
437
+ // intlayer.config.ts
438
+ export default defineConfig({
439
+ internationalization: {
440
+ locales: ["en", "fr", "es"],
441
+ defaultLocale: "en",
442
+ },
443
+ routing: {
444
+ mode: "search-params",
445
+ storage: "localStorage",
446
+ headerName: "x-intlayer-locale",
447
+ basePath: "",
448
+ },
449
+ });
450
+ ```
451
+
452
+ **Chế độ Không Tiền Tố với Bộ Lưu Trữ Tùy Chỉnh**:
453
+
454
+ ```typescript
455
+ // intlayer.config.ts
456
+ export default defineConfig({
457
+ internationalization: {
458
+ locales: ["en", "fr", "es"],
459
+ defaultLocale: "en",
460
+ },
461
+ routing: {
462
+ mode: "no-prefix",
463
+ storage: {
464
+ type: "sessionStorage",
465
+ name: "app-locale",
466
+ },
467
+ headerName: "x-custom-locale",
468
+ basePath: "/my-app",
469
+ },
470
+ });
471
+ ```
472
+
473
+ ---
474
+
475
+ ### Cấu hình Nội dung
476
+
477
+ Các thiết lập liên quan đến việc xử lý nội dung trong ứng dụng, bao gồm tên thư mục, phần mở rộng tệp, và các cấu hình dẫn xuất.
478
+
479
+ #### Thuộc tính
480
+
481
+ - **watch**:
482
+ - _Kiểu_: `boolean`
483
+ - _Mặc định_: `process.env.NODE_ENV === 'development'`
484
+ - _Mô tả_: Chỉ định liệu Intlayer có nên theo dõi các thay đổi trong các tệp khai báo nội dung trong ứng dụng để xây dựng lại các từ điển liên quan hay không.
485
+
486
+ - **fileExtensions**:
487
+ - _Kiểu_: `string[]`
488
+ - _Mặc định_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
489
+ - _Mô tả_: Các phần mở rộng tệp cần tìm khi xây dựng từ điển.
490
+ - _Ví dụ_: `['.data.ts', '.data.js', '.data.json']`
491
+ - _Lưu ý_: Tùy chỉnh phần mở rộng tệp có thể giúp tránh xung đột.
492
+
493
+ - **baseDir**:
494
+ - _Kiểu_: `string`
495
+ - _Mặc định_: `process.cwd()`
496
+ - _Mô tả_: Thư mục gốc của dự án.
497
+ - _Ví dụ_: `'/path/to/project'`
498
+ - _Lưu ý_: Được sử dụng để giải quyết tất cả các thư mục liên quan đến Intlayer.
499
+
500
+ - **contentDir**:
501
+ - _Kiểu_: `string[]`
502
+ - _Mặc định_: `['.']`
503
+ - _Ví dụ_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
504
+ - _Mô tả_: Đường dẫn thư mục nơi lưu trữ nội dung.
505
+
506
+ - **dictionariesDir**:
507
+ - _Kiểu_: `string`
508
+ - _Mặc định_: `'.intlayer/dictionaries'`
509
+ - _Mô tả_: Đường dẫn thư mục để lưu trữ kết quả trung gian hoặc đầu ra.
510
+
511
+ - **moduleAugmentationDir**:
512
+ - _Kiểu_: `string`
513
+ - _Mặc định_: `'.intlayer/types'`
514
+ - _Mô tả_: Thư mục dành cho việc mở rộng module, giúp IDE gợi ý và kiểm tra kiểu tốt hơn.
515
+ - _Ví dụ_: `'intlayer-types'`
516
+ - _Lưu ý_: Hãy chắc chắn bao gồm thư mục này trong `tsconfig.json`.
517
+
518
+ - **unmergedDictionariesDir**:
519
+ - _Kiểu_: `string`
520
+ - _Mặc định_: `'.intlayer/unmerged_dictionary'`
521
+ - _Mô tả_: Thư mục để lưu trữ các từ điển chưa được hợp nhất.
522
+ - _Ví dụ_: `'translations'`
523
+
524
+ - **dictionariesDir**:
525
+ - _Kiểu_: `string`
526
+ - _Mặc định_: `'.intlayer/dictionary'`
527
+ - _Mô tả_: Thư mục để lưu trữ các từ điển bản địa hóa.
528
+ - _Ví dụ_: `'translations'`
529
+
530
+ - **typesDir**:
531
+ - _Kiểu_: `string`
532
+ - _Mặc định_: `'types'`
533
+ - _Mô tả_: Thư mục để lưu trữ các kiểu của từ điển.
534
+ - _Ví dụ_: `'intlayer-types'`
535
+
536
+ - **mainDir**:
537
+ - _Kiểu_: `string`
538
+ - _Mặc định_: `'main'`
539
+ - _Mô tả_: Thư mục nơi lưu trữ các tệp chính của ứng dụng.
540
+ - _Ví dụ_: `'intlayer-main'`
541
+
542
+ - **excludedPath**:
543
+ - _Kiểu_: `string[]`
544
+ - _Mặc định_: `['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']`
545
+ - _Mô tả_: Các thư mục bị loại trừ khỏi việc tìm kiếm nội dung.
546
+ - _Lưu ý_: Cài đặt này hiện chưa được sử dụng, nhưng dự kiến sẽ được triển khai trong tương lai.
547
+
548
+ - **formatCommand**:
549
+ - _Kiểu_: `string`
550
+ - _Mặc định_: `undefined`
551
+ - _Mô tả_: Lệnh để định dạng nội dung. Khi Intlayer ghi các tệp .content của bạn trên máy cục bộ, lệnh này sẽ được sử dụng để định dạng nội dung.
552
+ - _Ví dụ_: `'npx prettier --write "{{file}}" --log-level silent'` Sử dụng Prettier
553
+ - _Ví dụ_: `'npx biome format "{{file}}" --write --log-level none'` Sử dụng Biome
554
+ - _Ví dụ_: `'npx eslint --fix "{{file}}" --quiet'` Sử dụng ESLint
555
+ - _Lưu ý_: Intlayer sẽ thay thế {{file}} bằng đường dẫn của tệp cần định dạng.
556
+ - _Lưu ý_: Nếu không được thiết lập, Intlayer sẽ cố gắng tự động phát hiện lệnh định dạng. Bằng cách thử giải quyết các lệnh sau: prettier, biome, eslint.
557
+
558
+ ### Cấu hình Từ điển
559
+
560
+ Các cài đặt kiểm soát hoạt động của từ điển, bao gồm hành vi tự động điền và tạo nội dung.
561
+
562
+ Cấu hình từ điển này phục vụ hai mục đích chính:
563
+
564
+ 1. **Giá trị Mặc định**: Định nghĩa các giá trị mặc định khi tạo các tệp khai báo nội dung
565
+ 2. **Hành vi Dự phòng**: Cung cấp các giá trị dự phòng khi các trường cụ thể không được định nghĩa, cho phép bạn định nghĩa hành vi hoạt động của từ điển trên toàn cục
566
+
567
+ Để biết thêm thông tin về các tệp khai báo nội dung và cách các giá trị cấu hình được áp dụng, xem [Tài liệu Tệp Nội dung](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/dictionary/content_file.md).
568
+
569
+ #### Thuộc tính
570
+
571
+ - **fill**
572
+ - **description**
573
+ - **locale**
574
+ - **priority**
575
+ - **live**
576
+ - **title**
577
+ - **tags**
578
+ - **version**
579
+
580
+ ---
581
+
582
+ ### Cấu hình Logger
583
+
584
+ Các cài đặt kiểm soát logger, bao gồm tiền tố sử dụng.
585
+
586
+ #### Thuộc tính
587
+
588
+ - **mode**:
589
+ - _Kiểu_: `string`
590
+ - _Mặc định_: `default`
591
+ - _Mô tả_: Chỉ định chế độ của logger.
592
+ - _Tùy chọn_: `default`, `verbose`, `disabled`
593
+ - _Ví dụ_: `default`
594
+ - _Lưu ý_: Chế độ của logger. Chế độ verbose sẽ ghi lại nhiều thông tin hơn, nhưng có thể được sử dụng cho mục đích gỡ lỗi. Chế độ disabled sẽ tắt logger.
595
+
596
+ - **prefix**:
597
+ - _Kiểu_: `string`
598
+ - _Mặc định_: `'[intlayer] '`
599
+ - _Mô tả_: Tiền tố của logger.
600
+ - _Ví dụ_: `'[my custom prefix] '`
601
+ - _Lưu ý_: Tiền tố của logger.
602
+
603
+ ### Cấu hình AI
604
+
605
+ Các cài đặt kiểm soát các tính năng AI của Intlayer, bao gồm nhà cung cấp, mô hình và khóa API.
606
+
607
+ Cấu hình này là tùy chọn nếu bạn đã đăng ký trên [Bảng điều khiển Intlayer](https://intlayer.org/dashboard/project) bằng khóa truy cập. Intlayer sẽ tự động quản lý giải pháp AI hiệu quả và tiết kiệm chi phí nhất cho nhu cầu của bạn. Sử dụng các tùy chọn mặc định đảm bảo khả năng bảo trì lâu dài tốt hơn khi Intlayer liên tục cập nhật để sử dụng các mô hình phù hợp nhất.
608
+
609
+ Nếu bạn muốn sử dụng khóa API riêng hoặc mô hình cụ thể, bạn có thể định nghĩa cấu hình AI tùy chỉnh của mình.
610
+ Cấu hình AI này sẽ được sử dụng toàn cục trong môi trường Intlayer của bạn. Các lệnh CLI sẽ sử dụng các cài đặt này làm mặc định cho các lệnh (ví dụ: `fill`), cũng như SDK, Visual Editor và CMS. Bạn có thể ghi đè các giá trị mặc định này cho các trường hợp sử dụng cụ thể bằng cách sử dụng các tham số lệnh.
611
+
612
+ Intlayer hỗ trợ nhiều nhà cung cấp AI để tăng tính linh hoạt và lựa chọn. Các nhà cung cấp hiện được hỗ trợ bao gồm:
613
+
614
+ - **OpenAI** (mặc định)
615
+ - **Anthropic Claude**
616
+ - **Mistral AI**
617
+ - **DeepSeek**
618
+ - **Google Gemini**
619
+ - **Meta Llama**
620
+
621
+ #### Thuộc tính
622
+
623
+ - **provider**:
624
+ - _Kiểu_: `string`
625
+ - _Mặc định_: `'openai'`
626
+ - _Mô tả_: Nhà cung cấp được sử dụng cho các tính năng AI của Intlayer.
627
+ - _Tùy chọn_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`
628
+ - _Ví dụ_: `'anthropic'`
629
+ - _Lưu ý_: Các nhà cung cấp khác nhau có thể yêu cầu các khóa API khác nhau và có các mô hình giá khác nhau.
630
+
631
+ - **model**:
632
+ - _Kiểu_: `string`
633
+ - _Mặc định_: Không có
634
+ - _Mô tả_: Mô hình được sử dụng cho các tính năng AI của Intlayer.
635
+ - _Ví dụ_: `'gpt-4o-2024-11-20'`
636
+ - _Lưu ý_: Mô hình cụ thể được sử dụng sẽ khác nhau tùy theo nhà cung cấp.
637
+
638
+ - **temperature**:
639
+ - _Kiểu_: `number`
640
+ - _Mặc định_: Không có
641
+ - _Mô tả_: Tham số temperature điều khiển độ ngẫu nhiên trong các phản hồi của AI.
642
+ - _Ví dụ_: `0.1`
643
+ - _Lưu ý_: Temperature cao hơn sẽ làm AI sáng tạo hơn và ít dự đoán được hơn.
644
+
645
+ - **apiKey**:
646
+ - _Kiểu_: `string`
647
+ - _Mặc định_: Không có
648
+ - _Mô tả_: Khóa API của bạn cho nhà cung cấp đã chọn.
649
+ - _Ví dụ_: `process.env.OPENAI_API_KEY`
650
+ - _Lưu ý_: Quan trọng: Các khóa API cần được giữ bí mật và không được chia sẻ công khai. Vui lòng đảm bảo giữ chúng ở một vị trí an toàn, chẳng hạn như biến môi trường.
651
+
652
+ - **applicationContext**:
653
+ - _Kiểu_: `string`
654
+ - _Mặc định_: Không có
655
+ - _Mô tả_: Cung cấp bối cảnh bổ sung về ứng dụng của bạn cho mô hình AI, giúp nó tạo ra các bản dịch chính xác hơn và phù hợp với ngữ cảnh. Điều này có thể bao gồm thông tin về lĩnh vực ứng dụng, đối tượng mục tiêu, giọng điệu hoặc thuật ngữ cụ thể của bạn.
656
+
657
+ ### Cấu hình Build
658
+
659
+ Các thiết lập kiểm soát cách Intlayer tối ưu hóa và xây dựng tính quốc tế hóa của ứng dụng bạn.
660
+
661
+ Các tùy chọn build áp dụng cho các plugin `@intlayer/babel` và `@intlayer/swc`.
662
+
663
+ > Ở chế độ phát triển, Intlayer sử dụng các import tĩnh cho từ điển để đơn giản hóa trải nghiệm phát triển.
664
+
665
+ > Khi được tối ưu hóa, Intlayer sẽ thay thế các lệnh gọi từ điển để tối ưu hóa việc chia nhỏ, do đó gói cuối cùng chỉ nhập các từ điển thực sự được sử dụng.
666
+
667
+ #### Thuộc tính
668
+
669
+ - **optimize**:
670
+ - _Kiểu_: `boolean`
671
+ - _Mặc định_: `process.env.NODE_ENV === 'production'`
672
+ - _Mô tả_: Điều khiển việc có nên tối ưu hóa quá trình build hay không.
673
+ - _Ví dụ_: `true`
674
+ - _Lưu ý_: Khi được bật, Intlayer sẽ thay thế tất cả các lệnh gọi từ điển để tối ưu hóa việc chia nhỏ. Bằng cách đó, gói cuối cùng sẽ chỉ nhập các từ điển được sử dụng. Tất cả các import sẽ vẫn giữ ở dạng import tĩnh để tránh xử lý bất đồng bộ khi tải các từ điển.
675
+ - _Lưu ý_: Intlayer sẽ thay thế tất cả các lệnh gọi `useIntlayer` bằng chế độ được định nghĩa trong tùy chọn `importMode` và `getIntlayer` bằng `getDictionary`.
676
+ - _Lưu ý_: Tùy chọn này dựa vào các plugin `@intlayer/babel` và `@intlayer/swc`.
677
+ - _Lưu ý_: Đảm bảo tất cả các khóa được khai báo tĩnh trong các lệnh gọi `useIntlayer`. Ví dụ: `useIntlayer('navbar')`.
678
+
679
+ - **importMode**:
680
+ - _Kiểu_: `'static' | 'dynamic' | 'live'`
681
+ - _Mặc định_: `'static'`
682
+ - _Mô tả_: Điều khiển cách các từ điển được nhập.
683
+ - _Ví dụ_: `'dynamic'`
684
+ - _Lưu ý_: Các chế độ có sẵn:
685
+ - "static": Các từ điển được nhập một cách tĩnh. Thay thế `useIntlayer` bằng `useDictionary`.
686
+ - "dynamic": Các từ điển được nhập động sử dụng Suspense. Thay thế `useIntlayer` bằng `useDictionaryDynamic`.
687
+ - "live": Các từ điển được lấy động bằng cách sử dụng API đồng bộ trực tiếp (live sync API). Thay thế `useIntlayer` bằng `useDictionaryDynamic`.
688
+ - _Lưu ý_: Việc nhập động dựa vào Suspense và có thể ảnh hưởng nhẹ đến hiệu suất render.
689
+ - _Lưu ý_: Nếu tắt, tất cả các locale sẽ được tải cùng một lúc, ngay cả khi chúng không được sử dụng.
690
+ - _Lưu ý_: Tùy chọn này dựa vào các plugin `@intlayer/babel` và `@intlayer/swc`.
691
+ - _Lưu ý_: Đảm bảo tất cả các khóa được khai báo tĩnh trong các lệnh gọi `useIntlayer`. Ví dụ: `useIntlayer('navbar')`.
692
+ - _Lưu ý_: Tùy chọn này sẽ bị bỏ qua nếu `optimize` bị tắt.
693
+ - _Lưu ý_: Nếu được đặt thành "live", chỉ những từ điển bao gồm nội dung từ xa và được đánh dấu là "live" mới được chuyển đổi sang chế độ live. Các từ điển khác sẽ được nhập động dưới dạng chế độ "dynamic" để tối ưu số lượng truy vấn fetch và hiệu suất tải.
694
+ - _Lưu ý_: Chế độ live sẽ sử dụng live sync API để lấy các từ điển. Nếu cuộc gọi API thất bại, các từ điển sẽ được nhập động dưới dạng chế độ "dynamic".
695
+ - _Lưu ý_: Tùy chọn này sẽ không ảnh hưởng đến các hàm `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` và `useDictionaryDynamic`.
696
+ - **outputFormat**:
697
+ - _Kiểu_: `'esm' | 'cjs'`
698
+ - _Mặc định_: `'esm'`
699
+ - _Mô tả_: Điều khiển định dạng đầu ra của các từ điển.
700
+ - _Ví dụ_: `'cjs'`
701
+ - _Lưu ý_: Định dạng đầu ra của các từ điển.
702
+
703
+ - **traversePattern**:
704
+ - _Kiểu_: `string[]`
705
+ - _Mặc định_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**\/node_modules/**']`
706
+ - _Mô tả_: Các mẫu định nghĩa những tệp nào sẽ được duyệt trong quá trình tối ưu hóa.
707
+ - _Ví dụ_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
708
+ - _Lưu ý_: Sử dụng để giới hạn tối ưu hóa chỉ cho các tệp mã liên quan và cải thiện hiệu suất xây dựng.
709
+ - _Lưu ý_: Tùy chọn này sẽ bị bỏ qua nếu `optimize` bị vô hiệu hóa.
710
+ - _Lưu ý_: Sử dụng mẫu glob.