@intlayer/docs 7.0.6 → 7.0.8-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,53 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Tôi nhận được lỗi module not found khi sử dụng bun
5
+ description: Sửa lỗi khi sử dụng bun.
6
+ keywords:
7
+ - bun
8
+ - module not found
9
+ - intlayer
10
+ - cấu hình
11
+ - trình quản lý gói
12
+ slugs:
13
+ - frequent-questions
14
+ - bun-set-up
15
+ ---
16
+
17
+ # Tôi nhận được lỗi module not found khi sử dụng bun
18
+
19
+ ## Mô tả vấn đề
20
+
21
+ Khi sử dụng bun, bạn có thể gặp lỗi như sau:
22
+
23
+ ```bash
24
+ Cannot find package 'intlayer' from '/workspace/packages/@intlayer/config/dist/cjs/utils/ESMxCJSHelpers.cjs' undefined
25
+ ```
26
+
27
+ ## Nguyên nhân
28
+
29
+ Intlayer sử dụng `require` bên trong. Và bun giới hạn hàm require chỉ để giải quyết các gói của package `@intlayer/config`, thay vì toàn bộ dự án.
30
+
31
+ ## Giải pháp
32
+
33
+ ### Cung cấp hàm `require` trong cấu hình
34
+
35
+ ```ts
36
+ const config: IntlayerConfig = {
37
+ build: {
38
+ require, // cung cấp hàm require trong cấu hình build
39
+ },
40
+ };
41
+
42
+ export default config;
43
+ ```
44
+
45
+ ```ts fileName="next.config.ts" codeFormat="typescript"
46
+ import { withIntlayer } from "next-intlayer/server";
47
+
48
+ const configuration = withIntlayer({
49
+ require, // sử dụng hàm require khi cấu hình với Intlayer trong Next.js
50
+ });
51
+
52
+ export default configuration;
53
+ ```
@@ -0,0 +1,64 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Làm thế nào để tùy chỉnh danh sách ngôn ngữ?
5
+ description: Tìm hiểu cách tùy chỉnh danh sách ngôn ngữ.
6
+ keywords:
7
+ - locales
8
+ - danh sách
9
+ - intlayer
10
+ - cấu hình
11
+ - availableLocales
12
+ - defaultLocale
13
+ - useLocale
14
+ - hook
15
+ - locale
16
+ - danh sách
17
+ slugs:
18
+ - frequent-questions
19
+ - customized-locale-list
20
+ ---
21
+
22
+ # Có thể chặn một loại ngôn ngữ, như tiếng Anh không? Tôi đang thêm tiếng Anh vào từ điển nhưng chưa muốn tiếng Anh xuất hiện trên trang web
23
+
24
+ Có, bạn có thể chặn một loại ngôn ngữ, như tiếng Anh, bằng cách sử dụng tùy chọn `availableLocales` trong cấu hình Intlayer.
25
+
26
+ ```ts
27
+ import { IntlayerConfig } from "intlayer";
28
+
29
+ const config: IntlayerConfig = {
30
+ locales: [Locales.FRENCH, Locales.SPANISH, Locales.ENGLISH],
31
+ availableLocales: [Locales.FRENCH, Locales.SPANISH],
32
+ defaultLocale: Locales.FRENCH,
33
+ };
34
+ ```
35
+
36
+ hoặc
37
+
38
+ ```ts
39
+ import { IntlayerConfig } from "intlayer";
40
+
41
+ const locales = [Locales.FRENCH, Locales.SPANISH, Locales.ENGLISH];
42
+
43
+ const config: IntlayerConfig = {
44
+ locales,
45
+ availableLocales: locales.filter((locale) => locale !== Locales.ENGLISH),
46
+ defaultLocale: Locales.FRENCH,
47
+ };
48
+ ```
49
+
50
+ Cấu hình này sẽ thay đổi kiểu của hàm `t()` của bạn chỉ bao gồm các locale có sẵn.
51
+
52
+ Tùy chọn availableLocales là tùy chọn, nếu bạn không cung cấp, tất cả các locale sẽ được sử dụng.
53
+
54
+ Hãy cẩn thận, tất cả các locale được bao gồm trong tùy chọn `availableLocales` nên được bao gồm trong tùy chọn `locales`.
55
+
56
+ Lưu ý rằng nếu bạn sử dụng hook `useLocale`, tùy chọn `availableLocales` sẽ được sử dụng để thiết lập quyền truy cập vào danh sách locale.
57
+
58
+ ```ts
59
+ import { useLocale } from "intlayer";
60
+
61
+ const { availableLocales } = useLocale();
62
+
63
+ console.log(availableLocales); // [Locales.FRENCH, Locales.SPANISH]
64
+ ```
@@ -0,0 +1,113 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Cách cấu hình định tuyến dựa trên tên miền?
5
+ description: Tìm hiểu cách cấu hình định tuyến dựa trên tên miền.
6
+ keywords:
7
+ - domain
8
+ - routing
9
+ - intlayer
10
+ - configuration
11
+ - middleware
12
+ - react-router
13
+ - vue-router
14
+ - next.js
15
+ - vite
16
+ - framework
17
+ slugs:
18
+ - frequent-questions
19
+ - domain-routing
20
+ ---
21
+
22
+ # Làm thế nào để cấu hình **định tuyến dựa trên tên miền** với Intlayer thay vì các đường dẫn `/[locale]/`?
23
+
24
+ ## Trả lời ngắn gọn
25
+
26
+ Định tuyến dựa trên tên miền đơn giản hơn định tuyến dựa trên đường dẫn (`example.com/[locale]/`) vì bạn có thể bỏ qua toàn bộ cấu hình middleware và routing. Chỉ cần triển khai ứng dụng của bạn lên từng tên miền ngôn ngữ và đặt một biến môi trường cho mỗi tên miền.
27
+
28
+ ## Các bước thực hiện
29
+
30
+ 1. **Triển khai một lần cho mỗi tên miền** (`example.com`, `exemple.fr`, `ejemplo.es`, …).
31
+ 2. Với mỗi lần triển khai, đặt `LOCALE` (và các biến môi trường Intlayer thông thường) thành ngôn ngữ mà tên miền đó sẽ phục vụ.
32
+ 3. Tham chiếu biến đó dưới dạng `defaultLocale` trong file `intlayer.config.[ts|js]` của bạn.
33
+
34
+ ```ts
35
+ import { Locales, type IntlayerConfig } from "intlayer";
36
+
37
+ const config: IntlayerConfig = {
38
+ internationalization: {
39
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
40
+ defaultLocale: process.env.LOCALE, // 👈 tên miền quyết định ngôn ngữ
41
+ },
42
+ // ... phần còn lại của cấu hình
43
+ };
44
+
45
+ export default config;
46
+ ```
47
+
48
+ Chỉ vậy thôi — cách này hoạt động tương tự cho **Next.js**, **Vite + React**, **Vite + Vue**, v.v.
49
+
50
+ ## Nếu mọi tên miền đều trỏ đến cùng một lần triển khai thì sao?
51
+
52
+ Nếu tất cả các tên miền đều trỏ đến cùng một bundle ứng dụng, bạn sẽ cần phát hiện host tại runtime và truyền ngôn ngữ thủ công thông qua provider.
53
+
54
+ ### Dành cho Next.js
55
+
56
+ ```tsx
57
+ // src/IntlayerProvider.tsx
58
+ import {
59
+ IntlayerClientProvider,
60
+ type IntlayerClientProviderProps,
61
+ } from "next-intlayer";
62
+ import { IntlayerServerProvider } from "next-intlayer/server";
63
+ import type { FC } from "react";
64
+
65
+ export const IntlayerProvider: FC<IntlayerClientProviderProps> = ({
66
+ children,
67
+ locale,
68
+ }) => {
69
+ const resolvedLocale = locale ?? getLocaleFromHostname(); // 👈 lấy ngôn ngữ từ hostname nếu không có locale truyền vào
70
+ return (
71
+ <IntlayerServerProvider locale={resolvedLocale}>
72
+ <IntlayerClientProvider locale={resolvedLocale}>
73
+ {children}
74
+ </IntlayerClientProvider>
75
+ </IntlayerServerProvider>
76
+ );
77
+ };
78
+ ```
79
+
80
+ ### Dành cho Vue
81
+
82
+ ```ts
83
+ import { createApp } from "vue";
84
+ import { installIntlayer } from "vue-intlayer";
85
+ import App from "./App.vue";
86
+ import { router } from "./routes";
87
+
88
+ const app = createApp(App);
89
+ app.use(router);
90
+ installIntlayer(app, getLocaleFromHostname()); // 👈 cài đặt Intlayer với ngôn ngữ lấy từ hostname
91
+ app.mount("#app");
92
+ ```
93
+
94
+ Thay thế `getLocaleFromHostname()` bằng logic tra cứu của riêng bạn.
95
+
96
+ ## Cập nhật bộ chuyển đổi ngôn ngữ của bạn
97
+
98
+ Khi sử dụng định tuyến dựa trên tên miền, việc thay đổi ngôn ngữ đồng nghĩa với việc điều hướng sang một tên miền khác:
99
+
100
+ ```ts
101
+ const { locale } = useLocale();
102
+
103
+ function changeLanguage(target: Locale) {
104
+ window.location.href = domainForLocale[target]; // 👈 chuyển hướng đến tên miền tương ứng với ngôn ngữ mục tiêu
105
+ }
106
+ ```
107
+
108
+ ## Lợi ích của định tuyến dựa trên tên miền
109
+
110
+ 1. **Cấu hình đơn giản hơn**: Không cần cấu hình `intlayerMiddleware`, `generateStaticParams`, `react-router`, hoặc `vue-router`
111
+ 2. **SEO tốt hơn**: Mỗi ngôn ngữ có tên miền riêng
112
+ 3. **URL sạch hơn**: Không có tiền tố ngôn ngữ trong đường dẫn
113
+ 4. **Dễ bảo trì hơn**: Mỗi triển khai ngôn ngữ là độc lập
@@ -0,0 +1,29 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Lỗi ESBuild
5
+ description: Tìm hiểu cách sửa lỗi ESBuild.
6
+ keywords:
7
+ - esbuild
8
+ - lỗi
9
+ - intlayer
10
+ - plugin
11
+ - framework
12
+ - next.js
13
+ - vite
14
+ - react-native
15
+ - lynx
16
+ slugs:
17
+ - frequent-questions
18
+ - esbuild-error
19
+ ---
20
+
21
+ # Lỗi ESBuild
22
+
23
+ Nếu bạn gặp lỗi ESBuild trong quá trình build, rất có thể plugin Intlayer chưa được cấu hình đúng cách.
24
+
25
+ ESBuild chịu trách nhiệm đọc các file khai báo nội dung (`.content.{ts,js,mjs,cjs,json}`) và tạo ra các từ điển tương ứng trong thư mục `.intlayer/dictionary`. Cũng như đọc file cấu hình (`intlayer.config.ts`).
26
+
27
+ Intlayer cung cấp các plugin để tích hợp với các bundler của bạn. Nó được thiết kế để alias các component chỉ chạy trên phía server.
28
+
29
+ Nếu bạn đang sử dụng một framework như Next.js (Webpack / Turbopack), Vite, hoặc React Native, Lynx, v.v. Intlayer cung cấp một plugin mà bạn có thể sử dụng để tích hợp Intlayer vào ứng dụng của mình. Vì vậy, hãy tham khảo tài liệu cụ thể của framework bạn đang dùng để tìm hiểu cách tích hợp plugin.
@@ -0,0 +1,142 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Cách lấy locale từ cookie / headers?
5
+ description: Tìm hiểu cách lấy locale từ cookie / headers.
6
+ keywords:
7
+ - cookie
8
+ - headers
9
+ - intlayer
10
+ - locale
11
+ - hook
12
+ - useLocale
13
+ - useLocaleCookie
14
+ - next.js
15
+ - react-intlayer
16
+ - vue-intlayer
17
+ slugs:
18
+ - frequent-questions
19
+ - get-locale-cookie
20
+ ---
21
+
22
+ # Cách lấy locale từ cookie / headers
23
+
24
+ ## Sử dụng Hooks (Khuyến nghị)
25
+
26
+ Đối với hầu hết các trường hợp sử dụng, nên lấy locale hiện tại bằng hook `useLocale` vì nó được tự động giải quyết. Điều này hoạt động tương tự như composable `useLocale` trong Vue.js.
27
+
28
+ ```ts
29
+ import { useLocale } from "next-intlayer";
30
+ // or import { useLocale } from "react-intlayer";
31
+ // hoặc import { useLocale } từ "vue-intlayer";
32
+
33
+ // Sử dụng phía client
34
+ const { locale } = useLocale();
35
+ ```
36
+
37
+ Đối với các server component, bạn có thể import từ:
38
+
39
+ ```tsx
40
+ import { useLocale } từ "next-intlayer/server";
41
+
42
+ const Test = () => {
43
+ const { locale } = useLocale();
44
+ return <>{locale}</>;
45
+ };
46
+
47
+ const Page = async ({ params }) => {
48
+ const { locale } = await params;
49
+
50
+ return (
51
+ <IntlayerServerProvider locale={locale}>
52
+ <Test />
53
+ </IntlayerServerProvider>
54
+ );
55
+ };
56
+ ```
57
+
58
+ Cũng có một hook `useLocaleCookie` chỉ giải quyết giá trị cookie.
59
+
60
+ ## Cấu hình Cookie thủ công
61
+
62
+ Bạn có thể khai báo tên cookie tùy chỉnh như sau
63
+
64
+ ```ts
65
+ import { type IntlayerConfig } từ "intlayer";
66
+
67
+ const config: IntlayerConfig = {
68
+ middleware: {
69
+ cookieName: "myCustomLocaleCookie", // mặc định là 'intlayer-locale'
70
+ },
71
+ };
72
+
73
+ export default config;
74
+ ```
75
+
76
+ cách lấy lại giá trị như sau
77
+
78
+ ### Phía client
79
+
80
+ ```ts
81
+ // Sử dụng tên cookie mặc định
82
+ const locale = document.cookie
83
+ .split("; ")
84
+ .find((row) => row.startsWith("intlayer-locale="))
85
+ ?.split("=")[1];
86
+
87
+ // Sử dụng tên cookie tùy chỉnh
88
+ const locale = document.cookie
89
+ .split("; ")
90
+ .find((row) => row.startsWith("myCustomLocaleCookie="))
91
+ ?.split("=")[1];
92
+ ```
93
+
94
+ ### Phía server (Next.js)
95
+
96
+ ```ts
97
+ import { cookies } from "next/headers";
98
+
99
+ // Sử dụng tên cookie mặc định
100
+ const locale = cookies().get("intlayer-locale")?.value;
101
+
102
+ // Sử dụng tên cookie tùy chỉnh
103
+ const locale = cookies().get("myCustomLocaleCookie")?.value;
104
+ ```
105
+
106
+ ### Nếu locale chưa được thiết lập
107
+
108
+ Locale chỉ được thiết lập dưới dạng cookie khi người dùng chọn rõ ràng locale. Mặc định, đối với khách truy cập mới, locale được suy diễn từ các trường header.
109
+
110
+ Bạn có thể phát hiện locale ưu tiên của người dùng từ các header của yêu cầu. Dưới đây là ví dụ về cách xử lý điều này:
111
+
112
+ ```ts
113
+ /**
114
+ * Phát hiện locale từ các header của yêu cầu
115
+ *
116
+ * Header accept-language là header quan trọng nhất để phát hiện locale.
117
+ * Nó chứa danh sách các mã ngôn ngữ kèm theo giá trị chất lượng (q-value) cho biết
118
+ * các ngôn ngữ ưu tiên của người dùng theo thứ tự ưu tiên.
119
+ *
120
+ * Ví dụ: "en-US,en;q=0.9,fr;q=0.8,es;q=0.7"
121
+ * - en-US là ngôn ngữ chính (q=1.0 được ngầm định)
122
+ * - en là lựa chọn thứ hai (q=0.9)
123
+ * - fr là lựa chọn thứ ba (q=0.8)
124
+ * - es là lựa chọn thứ tư (q=0.7)
125
+ */
126
+ import { localeDetector } from "@intlayer/core";
127
+
128
+ /**
129
+ * Ví dụ về các header negotiator mà trình duyệt thường gửi
130
+ * Những header này giúp xác định ngôn ngữ ưu tiên của người dùng
131
+ */
132
+ const exampleNegotiatorHeaders: Record<string, string> = {
133
+ "accept-language": "en-US,en;q=0.9,fr;q=0.8,es;q=0.7",
134
+ "accept":
135
+ "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
136
+ "user-agent":
137
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
138
+ };
139
+
140
+ // Ví dụ sử dụng:
141
+ const detectedLocale = localeDetector(exampleNegotiatorHeaders);
142
+ ```
@@ -0,0 +1,155 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Lệnh Intlayer không xác định
5
+ description: Tìm hiểu cách khắc phục lỗi lệnh intlayer không xác định.
6
+ keywords:
7
+ - intlayer
8
+ - lệnh
9
+ - không xác định
10
+ - lỗi
11
+ - vscode
12
+ - tiện ích mở rộng
13
+ - plugin
14
+ - framework
15
+ - next.js
16
+ - vite
17
+ slugs:
18
+ - frequent-questions
19
+ - intlayer-command-undefined
20
+ ---
21
+
22
+ # Lệnh Intlayer không xác định
23
+
24
+ ## Tổng quan
25
+
26
+ CLI Intlayer cung cấp một cách thuận tiện để kiểm soát nội dung intlayer của bạn, bao gồm xây dựng từ điển, đẩy bản dịch và nhiều hơn nữa. Tuy nhiên, nó không bắt buộc để dự án của bạn hoạt động. Nếu bạn đang sử dụng plugin bundler (như `withIntlayer()` cho Next.js hoặc `intlayer()` cho Vite), Intlayer sẽ tự động xây dựng từ điển trong quá trình xây dựng ứng dụng hoặc khi khởi động server phát triển. Ở chế độ phát triển, nó cũng sẽ theo dõi các thay đổi và tự động xây dựng lại các tệp khai báo nội dung.
27
+
28
+ Bạn có thể truy cập các lệnh intlayer theo nhiều cách khác nhau:
29
+
30
+ - Sử dụng lệnh CLI `intlayer` trực tiếp
31
+ - Sử dụng [tiện ích mở rộng VSCode](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/vs_code_extension.md)
32
+ - Sử dụng SDK `@intlayer/cli`
33
+
34
+ ## Vấn đề
35
+
36
+ Khi cố gắng sử dụng lệnh `intlayer`, bạn có thể gặp lỗi sau:
37
+
38
+ ```bash
39
+ 'intlayer' không được nhận dạng là lệnh nội bộ hoặc bên ngoài,
40
+ chương trình có thể thực thi hoặc tệp batch.
41
+ ```
42
+
43
+ ## Giải pháp
44
+
45
+ Hãy thử các giải pháp sau theo thứ tự:
46
+
47
+ 1. **Xác minh lệnh đã được cài đặt**
48
+
49
+ ```bash
50
+ npx intlayer -h
51
+ ```
52
+
53
+ Kết quả mong đợi:
54
+
55
+ ```bash
56
+ Usage: intlayer [options] [command]
57
+
58
+ Intlayer CLI
59
+
60
+ Options:
61
+ -V, --version xuất phiên bản
62
+ -h, --help hiển thị trợ giúp cho lệnh
63
+
64
+ Commands:
65
+ dictionary|dictionaries Các thao tác với từ điển
66
+ configuration|config Các thao tác cấu hình
67
+ help [command] hiển thị trợ giúp cho lệnh
68
+ ```
69
+
70
+ 2. **Cài đặt gói intlayer-cli toàn cục**
71
+
72
+ ```bash
73
+ npm install intlayer-cli -g -g
74
+ ```
75
+
76
+ > Không cần thiết nếu bạn đã cài đặt gói `intlayer`
77
+
78
+ 3. **Cài đặt gói toàn cục**
79
+
80
+ ```bash
81
+ npm install intlayer -g
82
+ ```
83
+
84
+ 4. **Khởi động lại terminal của bạn**
85
+ Đôi khi cần khởi động lại terminal để nhận diện các lệnh mới.
86
+
87
+ 5. **Dọn dẹp và cài đặt lại**
88
+ Nếu các giải pháp trên không hiệu quả:
89
+
90
+ ```bash
91
+ rm -rf node_modules package-lock.json
92
+ npm install
93
+ ```
94
+
95
+ 6. **Xác minh các tệp cài đặt**
96
+ Nếu vấn đề vẫn tiếp diễn, kiểm tra xem các tệp sau có tồn tại không:
97
+ - `node_modules/intlayer/dist/cjs/cli.cjs`
98
+ - `node_modules/intlayer/package.json` (nên có trường `bin` tham chiếu tới `./dist/cjs/cli.cjs`)
99
+
100
+ 7. **Kiểm tra biến môi trường PATH**
101
+ Đảm bảo thư mục bin toàn cục của npm nằm trong PATH của bạn:
102
+
103
+ ```bash
104
+ # Đối với hệ thống Unix (macOS/Linux)
105
+ echo $PATH
106
+ # Nên bao gồm một thư mục như /usr/local/bin hoặc ~/.npm-global/bin
107
+
108
+ # Đối với Windows
109
+ echo %PATH%
110
+ # Nên bao gồm thư mục bin toàn cục của npm
111
+ ```
112
+
113
+ 8. **Sử dụng npx với đường dẫn đầy đủ**
114
+ Nếu lệnh vẫn không tìm thấy, hãy thử dùng npx với đường dẫn đầy đủ:
115
+
116
+ ```bash
117
+ npx ./node_modules/intlayer/ dictionaries build
118
+ ```
119
+
120
+ 9. **Kiểm tra các cài đặt xung đột**
121
+
122
+ ```bash
123
+ # Liệt kê tất cả các gói được cài đặt toàn cục
124
+ npm list -g --depth=0
125
+
126
+ # Gỡ bỏ các cài đặt toàn cục xung đột
127
+ npm uninstall -g intlayer
128
+ npm uninstall -g intlayer-cli
129
+ # Sau đó cài đặt lại
130
+ npm install -g intlayer
131
+ ```
132
+
133
+ 10. **Xác minh phiên bản Node.js và npm**
134
+ Đảm bảo bạn đang sử dụng các phiên bản tương thích:
135
+
136
+ ```bash
137
+ node --version
138
+ npm --version
139
+ ```
140
+
141
+ Nếu bạn đang dùng phiên bản cũ, hãy cân nhắc cập nhật Node.js và npm.
142
+
143
+ 11. **Kiểm tra các vấn đề về quyền truy cập**
144
+ Nếu bạn gặp lỗi về quyền:
145
+
146
+ ```bash
147
+ # Đối với hệ thống dựa trên Unix
148
+ sudo npm install -g intlayer
149
+
150
+ # Hoặc thay đổi thư mục mặc định của npm
151
+ mkdir ~/.npm-global
152
+ npm config set prefix '~/.npm-global'
153
+ # Thêm vào ~/.profile hoặc ~/.bashrc của bạn:
154
+ export PATH=~/.npm-global/bin:$PATH
155
+ ```
@@ -0,0 +1,73 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Lấy Sai Locale Từ URL
5
+ description: Tìm hiểu cách khắc phục lỗi lấy sai locale từ URL.
6
+ keywords:
7
+ - locale
8
+ - url
9
+ - intlayer
10
+ - next.js
11
+ - vite
12
+ - framework
13
+ - middleware
14
+ - configuration
15
+ - prefixDefault
16
+ - noPrefix
17
+ slugs:
18
+ - frequent-questions
19
+ - locale-incorect-in-url
20
+ ---
21
+
22
+ # Lấy Sai Locale Từ URL
23
+
24
+ ## Mô Tả Vấn Đề
25
+
26
+ Khi cố gắng truy cập tham số locale từ URL, bạn có thể gặp phải vấn đề giá trị locale bị sai:
27
+
28
+ ```js
29
+ const { locale } = await params;
30
+ console.log(locale); // trả về "about" thay vì locale mong đợi
31
+ ```
32
+
33
+ ## Giải Pháp
34
+
35
+ ### 1. Kiểm Tra Cấu Trúc Thư Mục
36
+
37
+ Đảm bảo đường dẫn app router của Next.js của bạn theo cấu trúc sau:
38
+
39
+ ```bash
40
+ src/app/[locale]/about/page.tsx
41
+ ```
42
+
43
+ ### 2. Kiểm Tra Cấu Hình Middleware
44
+
45
+ Vấn đề thường xảy ra khi middleware không tồn tại hoặc không được kích hoạt. File middleware nên được đặt tại:
46
+
47
+ ```bash
48
+ src/middleware.ts
49
+ ```
50
+
51
+ Middleware này chịu trách nhiệm viết lại các route khi `prefixDefault` được đặt là `false`. Ví dụ, nó sẽ viết lại `/en/about` thành `/about`.
52
+
53
+ ### 3. Mẫu URL Dựa Trên Cấu Hình
54
+
55
+ #### Cấu Hình Mặc Định (`prefixDefault: false`, `noPrefix: false`)
56
+
57
+ - Tiếng Anh: `/about`
58
+ - Tiếng Pháp: `/fr/about`
59
+ - Tiếng Tây Ban Nha: `/es/about`
60
+
61
+ #### Với `prefixDefault: true`
62
+
63
+ - Tiếng Anh: `/en/about`
64
+ - Tiếng Pháp: `/fr/about`
65
+ - Tiếng Tây Ban Nha: `/es/about`
66
+
67
+ #### Với `noPrefix: true`
68
+
69
+ - Tiếng Anh: `/about`
70
+ - Tiếng Pháp: `/about`
71
+ - Tiếng Tây Ban Nha: `/about`
72
+
73
+ Để biết thêm chi tiết về các tùy chọn cấu hình này, hãy xem [Tài liệu Cấu hình](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/configuration.md).
@@ -0,0 +1,44 @@
1
+ ---
2
+ createdAt: 2025-05-20
3
+ updatedAt: 2025-06-29
4
+ title: Kết xuất Tĩnh và Động với i18n trong Next.js
5
+ description: Tìm hiểu cách sử dụng kết xuất tĩnh và động với i18n trong Next.js.
6
+ keywords:
7
+ - tĩnh
8
+ - động
9
+ - kết xuất
10
+ - i18n
11
+ - next.js
12
+ - next-intl
13
+ - intlayer
14
+ - framework
15
+ - middleware
16
+ - cấu hình
17
+ slugs:
18
+ - frequent-questions
19
+ - static-rendering
20
+ ---
21
+
22
+ # Kết xuất Tĩnh và Động với i18n trong Next.js
23
+
24
+ ## Vấn đề với **next-intl**
25
+
26
+ - **Chuyện gì xảy ra?**
27
+ Khi bạn sử dụng `useTranslations`, `getTranslations`, hoặc bất kỳ helper nào của next-intl _bên trong một Server Component_ trên một ứng dụng có định tuyến i18n (`/en/…`, `/fr/…`), Next.js sẽ đánh dấu toàn bộ route đó là **động**. ([Next Intl][1])
28
+
29
+ - **Tại sao?**
30
+ next-intl tra cứu locale hiện tại từ một header chỉ dành cho request (`x-next-intl-locale`) thông qua `headers()`. Vì `headers()` là một **API động**, bất kỳ component nào sử dụng nó sẽ mất đi khả năng tối ưu tĩnh. ([Next Intl][1], [Next.js][2])
31
+
32
+ - **Giải pháp chính thức (boilerplate)**
33
+ 1. Xuất `generateStaticParams` với tất cả các locale được hỗ trợ.
34
+ 2. Gọi `setRequestLocale(locale)` trong **mọi** layout/trang _trước khi_ bạn gọi `useTranslations`. ([Next Intl][1])
35
+ Điều này loại bỏ sự phụ thuộc vào header, nhưng bạn sẽ có thêm mã để duy trì và một API không ổn định trong môi trường production.
36
+
37
+ ## Cách **intlayer** tránh được vấn đề này
38
+
39
+ **Lựa chọn thiết kế**
40
+
41
+ 1. **Chỉ dùng tham số route** – Locale lấy từ đoạn URL `[locale]` mà Next.js đã truyền sẵn cho mỗi trang.
42
+ 2. **Gói biên dịch thời gian biên dịch** – Các bản dịch được nhập dưới dạng các module ES thông thường, vì vậy chúng được tree-shaken và nhúng vào thời gian biên dịch.
43
+ 3. **Không dùng API động** – `useT()` đọc từ React context, không phải từ `headers()` hay `cookies()`.
44
+ 4. **Không cần cấu hình thêm** – Khi các trang của bạn nằm dưới `app/[locale]/`, Next.js tự động prerender một file HTML cho mỗi locale.