@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,808 @@
1
+ ---
2
+ createdAt: 2025-06-18
3
+ updatedAt: 2025-06-29
4
+ title: Cara menerjemahkan aplikasi Nuxt dan Vue Anda – panduan i18n 2025
5
+ description: Temukan cara membuat situs web Nuxt dan Vue Anda menjadi multibahasa. Ikuti dokumentasi untuk melakukan internasionalisasi (i18n) dan menerjemahkannya.
6
+ keywords:
7
+ - Internasionalisasi
8
+ - Dokumentasi
9
+ - Intlayer
10
+ - Nuxt
11
+ - Vue
12
+ - JavaScript
13
+ slugs:
14
+ - doc
15
+ - environment
16
+ - nuxt-and-vue
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-nuxt-template
18
+ history:
19
+ - version: 5.5.10
20
+ date: 2025-06-29
21
+ changes: Inisialisasi riwayat
22
+ ---
23
+
24
+ # Terjemahkan situs web Nuxt dan Vue Anda menggunakan Intlayer | Internasionalisasi (i18n)
25
+
26
+ Lihat [Application Template](https://github.com/aymericzip/intlayer-nuxt-template) di GitHub.
27
+
28
+ ## Daftar Isi
29
+
30
+ <TOC/>
31
+
32
+ ## Apa itu Intlayer?
33
+
34
+ **Intlayer** adalah pustaka internasionalisasi (i18n) open-source yang inovatif, dirancang untuk menyederhanakan dukungan multibahasa dalam aplikasi web modern.
35
+
36
+ Dengan Intlayer, Anda dapat:
37
+
38
+ - **Mengelola terjemahan dengan mudah** menggunakan kamus deklaratif di tingkat komponen.
39
+ - **Melokalkan metadata**, rute, dan konten secara dinamis.
40
+ - **Memastikan dukungan TypeScript** dengan tipe yang dihasilkan secara otomatis, meningkatkan autocompletion dan deteksi kesalahan.
41
+ - **Memanfaatkan fitur canggih**, seperti deteksi dan pergantian locale secara dinamis.
42
+
43
+ ---
44
+
45
+ ## Panduan Langkah demi Langkah untuk Mengatur Intlayer dalam Aplikasi Nuxt
46
+
47
+ <iframe
48
+ src="https://stackblitz.com/github/aymericzip/intlayer-nuxt-template?embed=1&ctl=1&file=intlayer.config.ts"
49
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
50
+ title="Demo CodeSandbox - Cara Menginternasionalisasi aplikasi Anda menggunakan Intlayer"
51
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
52
+ loading="lazy"
53
+ />
54
+
55
+ ### Langkah 1: Instalasi Dependensi
56
+
57
+ Instal paket yang diperlukan menggunakan npm:
58
+
59
+ ```bash packageManager="npm"
60
+ npm install intlayer vue-intlayer
61
+ npm install --save-dev nuxt-intlayer
62
+ ```
63
+
64
+ ```bash packageManager="pnpm"
65
+ pnpm add intlayer vue-intlayer
66
+ pnpm add --save-dev nuxt-intlayer
67
+ ```
68
+
69
+ ```bash packageManager="yarn"
70
+ yarn add intlayer vue-intlayer
71
+ yarn add --save-dev nuxt-intlayer
72
+ ```
73
+
74
+ - **intlayer**
75
+
76
+ - **intlayer**
77
+
78
+ Paket inti yang menyediakan alat internasionalisasi untuk manajemen konfigurasi, terjemahan, [deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md), transpile, dan [perintah CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_cli.md).
79
+
80
+ - **vue-intlayer**
81
+ Paket yang mengintegrasikan Intlayer dengan aplikasi Vue. Ini menyediakan composables untuk komponen Vue.
82
+
83
+ - **nuxt-intlayer**
84
+ Modul Nuxt yang mengintegrasikan Intlayer dengan aplikasi Nuxt. Modul ini menyediakan pengaturan otomatis, middleware untuk deteksi locale, manajemen cookie, dan pengalihan URL.
85
+
86
+ ### Langkah 2: Konfigurasi proyek Anda
87
+
88
+ Buat file konfigurasi untuk mengatur bahasa aplikasi Anda:
89
+
90
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
91
+ import { Locales, type IntlayerConfig } from "intlayer";
92
+
93
+ const config: IntlayerConfig = {
94
+ internationalization: {
95
+ locales: [
96
+ Locales.ENGLISH,
97
+ Locales.FRENCH,
98
+ Locales.SPANISH,
99
+ // Locale lain milik Anda
100
+ ],
101
+ defaultLocale: Locales.ENGLISH,
102
+ },
103
+ content: {
104
+ contentDir: ["."], // Karena secara default Intlayer akan memantau file deklarasi konten dari direktori `./src`
105
+ },
106
+ };
107
+
108
+ export default config;
109
+ ```
110
+
111
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
112
+ import { Locales } from "intlayer";
113
+
114
+ /** @type {import('intlayer').IntlayerConfig} */
115
+ const config = {
116
+ internationalization: {
117
+ locales: [
118
+ Locales.ENGLISH,
119
+ Locales.FRENCH,
120
+ Locales.SPANISH,
121
+ // Locale lain milik Anda
122
+ ],
123
+ defaultLocale: Locales.ENGLISH,
124
+ },
125
+ content: {
126
+ contentDir: ["."],
127
+ },
128
+ };
129
+
130
+ export default config;
131
+ ```
132
+
133
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
134
+ const { Locales } = require("intlayer");
135
+
136
+ /** @type {import('intlayer').IntlayerConfig} */
137
+ const config = {
138
+ internationalization: {
139
+ locales: [
140
+ Locales.ENGLISH,
141
+ Locales.FRENCH,
142
+ Locales.SPANISH,
143
+ // Locale lain milik Anda
144
+ ],
145
+ defaultLocale: Locales.ENGLISH,
146
+ },
147
+ content: {
148
+ contentDir: ["."],
149
+ },
150
+ };
151
+
152
+ module.exports = config;
153
+ ```
154
+
155
+ > Melalui file konfigurasi ini, Anda dapat mengatur URL yang dilokalkan, pengalihan middleware, nama cookie, lokasi dan ekstensi deklarasi konten Anda, menonaktifkan log Intlayer di konsol, dan lainnya. Untuk daftar lengkap parameter yang tersedia, lihat [dokumentasi konfigurasi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/configuration.md).
156
+
157
+ ### Langkah 3: Integrasikan Intlayer dalam Konfigurasi Nuxt Anda
158
+
159
+ Tambahkan modul intlayer ke konfigurasi Nuxt Anda:
160
+
161
+ ```typescript fileName="nuxt.config.ts"
162
+ import { defineNuxtConfig } from "nuxt/config";
163
+
164
+ export default defineNuxtConfig({
165
+ // ... Konfigurasi Nuxt Anda yang sudah ada
166
+ modules: ["nuxt-intlayer"],
167
+ });
168
+ ```
169
+
170
+ > Modul `nuxt-intlayer` secara otomatis menangani integrasi Intlayer dengan Nuxt. Modul ini mengatur pembuatan deklarasi konten, memantau file dalam mode pengembangan, menyediakan middleware untuk deteksi locale, dan mengelola routing yang dilokalkan.
171
+
172
+ ### Langkah 4: Deklarasikan Konten Anda
173
+
174
+ Buat dan kelola deklarasi konten Anda untuk menyimpan terjemahan:
175
+
176
+ ```tsx fileName="components/helloWorld.content.ts" contentDeclarationFormat="typescript"
177
+ import { t, type Dictionary } from "intlayer";
178
+
179
+ const helloWorldContent = {
180
+ key: "helloworld",
181
+ content: {
182
+ count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }),
183
+ edit: t({
184
+ en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
185
+ fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
186
+ es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
187
+ }),
188
+ checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe " }),
189
+ nuxtIntlayer: t({
190
+ en: "Dokumentasi Nuxt Intlayer",
191
+ fr: "Documentation de Nuxt Intlayer",
192
+ es: "Documentación de Nuxt Intlayer",
193
+ }),
194
+ learnMore: t({
195
+ en: "Pelajari lebih lanjut tentang Nuxt di ",
196
+ fr: "En savoir plus sur Nuxt dans la ",
197
+ es: "Aprenda más sobre Nuxt en la ",
198
+ }),
199
+ nuxtDocs: t({
200
+ en: "Dokumentasi Nuxt",
201
+ fr: "Documentation Nuxt",
202
+ es: "Documentación de Nuxt",
203
+ }),
204
+ readTheDocs: t({
205
+ en: "Klik logo Nuxt untuk mempelajari lebih lanjut",
206
+ fr: "Cliquez sur le logo Nuxt pour en savoir plus",
207
+ es: "Haga clic en el logotipo de Nuxt para obtener más información",
208
+ id: "Klik logo Nuxt untuk mempelajari lebih lanjut",
209
+ }),
210
+ },
211
+ } satisfies Dictionary;
212
+
213
+ export default helloWorldContent;
214
+ ```
215
+
216
+ ```javascript fileName="components/helloWorld.content.mjs" contentDeclarationFormat="esm"
217
+ import { t } from "intlayer";
218
+
219
+ /** @type {import('intlayer').Dictionary} */
220
+ const helloWorldContent = {
221
+ key: "helloworld",
222
+ content: {
223
+ count: t({
224
+ en: "count is ",
225
+ fr: "le compte est ",
226
+ es: "el recuento es ",
227
+ id: "jumlah adalah ",
228
+ }),
229
+ edit: t({
230
+ en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
231
+ fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
232
+ es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
233
+ id: "Edit <code>components/HelloWorld.vue</code> dan simpan untuk menguji HMR",
234
+ }),
235
+ checkOut: t({
236
+ en: "Check out ",
237
+ fr: "Vérifiez ",
238
+ es: "Compruebe ",
239
+ id: "Periksa ",
240
+ }),
241
+ nuxtIntlayer: t({
242
+ en: "Nuxt Intlayer documentation",
243
+ fr: "Documentation de Nuxt Intlayer",
244
+ es: "Documentación de Nuxt Intlayer",
245
+ id: "Dokumentasi Nuxt Intlayer",
246
+ }),
247
+ learnMore: t({
248
+ en: "Learn more about Nuxt in the ",
249
+ fr: "En savoir plus sur Nuxt dans la ",
250
+ es: "Aprenda más sobre Nuxt en la ",
251
+ id: "Pelajari lebih lanjut tentang Nuxt di ",
252
+ }),
253
+ nuxtDocs: t({
254
+ en: "Nuxt Documentation",
255
+ fr: "Documentation Nuxt",
256
+ es: "Documentación de Nuxt",
257
+ id: "Dokumentasi Nuxt",
258
+ }),
259
+ readTheDocs: t({
260
+ en: "Click on the Nuxt logo to learn more",
261
+ fr: "Cliquez sur le logo Nuxt pour en savoir plus",
262
+ es: "Haga clic en el logotipo de Nuxt para obtener más información",
263
+ id: "Klik logo Nuxt untuk mempelajari lebih lanjut",
264
+ }),
265
+ },
266
+ };
267
+
268
+ export default helloWorldContent;
269
+ ```
270
+
271
+ ```javascript fileName="components/helloWorld.content.cjs" contentDeclarationFormat="commonjs"
272
+ const { t } = require("intlayer");
273
+
274
+ /** @type {import('intlayer').Dictionary} */
275
+ const helloWorldContent = {
276
+ key: "helloworld",
277
+ content: {
278
+ count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es ", id: "jumlah adalah " }),
279
+ edit: t({
280
+ en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
281
+ fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
282
+ es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
283
+ id: "Edit <code>components/HelloWorld.vue</code> dan simpan untuk menguji HMR",
284
+ }),
285
+ checkOut: t({ en: "Check out ", fr: "Vérifiez ", es: "Compruebe ", id: "Periksa " }),
286
+ nuxtIntlayer: t({
287
+ en: "Nuxt Intlayer documentation",
288
+ fr: "Documentation de Nuxt Intlayer",
289
+ es: "Documentación de Nuxt Intlayer",
290
+ id: "Dokumentasi Nuxt Intlayer",
291
+ }),
292
+ es: "Dokumentasi Nuxt Intlayer",
293
+ }),
294
+ learnMore: t({
295
+ en: "Pelajari lebih lanjut tentang Nuxt di ",
296
+ fr: "En savoir plus sur Nuxt dans la ",
297
+ es: "Aprenda más sobre Nuxt en la ",
298
+ }),
299
+ nuxtDocs: t({
300
+ en: "Dokumentasi Nuxt",
301
+ fr: "Documentation Nuxt",
302
+ es: "Documentación de Nuxt",
303
+ }),
304
+ readTheDocs: t({
305
+ en: "Klik logo Nuxt untuk mempelajari lebih lanjut",
306
+ fr: "Cliquez sur le logo Nuxt pour en savoir plus",
307
+ es: "Haga clic en el logotipo de Nuxt para obtener más información",
308
+ }),
309
+ },
310
+ };
311
+
312
+ module.exports = helloWorldContent;
313
+ ```
314
+
315
+ ```json fileName="components/helloWorld.content.json" contentDeclarationFormat="json"
316
+ {
317
+ "$schema": "https://intlayer.org/schema.json",
318
+ "key": "helloworld",
319
+ "content": {
320
+ "count": {
321
+ "nodeType": "translation",
322
+ "translation": {
323
+ "en": "count is ",
324
+ "fr": "le compte est ",
325
+ "es": "el recuento es ",
326
+ "id": "jumlahnya adalah "
327
+ }
328
+ },
329
+ "edit": {
330
+ "nodeType": "translation",
331
+ "translation": {
332
+ "en": "Edit <code>components/HelloWorld.vue</code> and save to test HMR",
333
+ "fr": "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR",
334
+ "es": "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR",
335
+ "id": "Edit <code>components/HelloWorld.vue</code> dan simpan untuk menguji HMR"
336
+ }
337
+ },
338
+ "checkOut": {
339
+ "nodeType": "translation",
340
+ "translation": {
341
+ "en": "Check out ",
342
+ "fr": "Vérifiez ",
343
+ "es": "Compruebe ",
344
+ "id": "Periksa "
345
+ }
346
+ },
347
+ "nuxtIntlayer": {
348
+ "nodeType": "translation",
349
+ "translation": {
350
+ "id": "Dokumentasi Nuxt Intlayer"
351
+ }
352
+ },
353
+ "learnMore": {
354
+ "nodeType": "translation",
355
+ "translation": {
356
+ "id": "Pelajari lebih lanjut tentang Nuxt di "
357
+ }
358
+ },
359
+ "nuxtDocs": {
360
+ "nodeType": "translation",
361
+ "translation": {
362
+ "id": "Dokumentasi Nuxt"
363
+ }
364
+ },
365
+ "readTheDocs": {
366
+ "nodeType": "translation",
367
+ "translation": {
368
+ "id": "Klik pada logo Nuxt untuk mempelajari lebih lanjut",
369
+ "id": "Klik pada logo Nuxt untuk mempelajari lebih lanjut"
370
+ }
371
+ }
372
+ }
373
+ }
374
+ ```
375
+
376
+ > Deklarasi konten Anda dapat didefinisikan di mana saja dalam aplikasi Anda selama mereka termasuk dalam direktori `contentDir` (secara default, `./src`). Dan sesuai dengan ekstensi file deklarasi konten (secara default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
377
+
378
+ > Untuk detail lebih lanjut, lihat [dokumentasi deklarasi konten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/dictionary/content_file.md).
379
+
380
+ ### Langkah 5: Gunakan Intlayer dalam Kode Anda
381
+
382
+ Akses kamus konten Anda di seluruh aplikasi Nuxt Anda menggunakan composable `useIntlayer`:
383
+
384
+ ```vue fileName="components/HelloWorld.vue"
385
+ <script setup lang="ts">
386
+ import { ref } from "vue";
387
+ import { useIntlayer } from "vue-intlayer";
388
+
389
+ defineProps({
390
+ msg: String,
391
+ });
392
+
393
+ const {
394
+ count,
395
+ edit,
396
+ checkOut,
397
+ nuxtIntlayer,
398
+ learnMore,
399
+ nuxtDocs,
400
+ readTheDocs,
401
+ } = useIntlayer("helloworld");
402
+ const countRef = ref(0);
403
+ </script>
404
+
405
+ <template>
406
+ <h1>{{ msg }}</h1>
407
+
408
+ <div class="card">
409
+ <button type="button" @click="countRef++">
410
+ <count />
411
+ {{ countRef }}
412
+ </button>
413
+ <p v-html="edit"></p>
414
+ </div>
415
+
416
+ <p>
417
+ <checkOut />
418
+ <a href="https://nuxt.com/docs/getting-started/introduction" target="_blank"
419
+ >Nuxt</a
420
+ >, <nuxtIntlayer />
421
+ </p>
422
+ <p>
423
+ <learnMore />
424
+ <a href="https://nuxt.com" target="_blank"><nuxtDocs /></a>.
425
+ </p>
426
+ <p class="read-the-docs"><readTheDocs /></p>
427
+ <p class="read-the-docs">{{ readTheDocs }}</p>
428
+ </template>
429
+ ```
430
+
431
+ #### Mengakses Konten di Intlayer
432
+
433
+ Intlayer menawarkan berbagai API untuk mengakses konten Anda:
434
+
435
+ - **Sintaks berbasis komponen** (direkomendasikan):
436
+ Gunakan sintaks `<myContent />`, atau `<Component :is="myContent" />` untuk merender konten sebagai Node Intlayer. Ini terintegrasi dengan mulus dengan [Visual Editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md) dan [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md).
437
+
438
+ - **Sintaks berbasis string**:
439
+ Gunakan `{{ myContent }}` untuk merender konten sebagai teks biasa, tanpa dukungan Visual Editor.
440
+
441
+ - **Sintaks HTML mentah**:
442
+ Gunakan `<div v-html="myContent" />` untuk merender konten sebagai HTML mentah, tanpa dukungan Visual Editor.
443
+
444
+ - **Sintaks destrukturisasi**:
445
+ Composable `useIntlayer` mengembalikan sebuah Proxy dengan konten. Proxy ini dapat didestrukturisasi untuk mengakses konten sambil menjaga reaktivitas.
446
+ - Gunakan `const content = useIntlayer("myContent");` dan `{{ content.myContent }}` / `<content.myContent />`.
447
+ - Atau gunakan `const { myContent } = useIntlayer("myContent");` dan `{{ myContent}}` / `<myContent/>` untuk mendestrukturisasi konten.
448
+
449
+ ### (Opsional) Langkah 6: Ubah bahasa konten Anda
450
+
451
+ Untuk mengubah bahasa konten Anda, Anda dapat menggunakan fungsi `setLocale` yang disediakan oleh composable `useLocale`. Fungsi ini memungkinkan Anda mengatur locale aplikasi dan memperbarui konten sesuai dengan locale tersebut.
452
+
453
+ Buat sebuah komponen untuk beralih antar bahasa:
454
+
455
+ ```vue fileName="components/LocaleSwitcher.vue"
456
+ <template>
457
+ <div class="locale-switcher">
458
+ <select v-model="selectedLocale" @change="changeLocale">
459
+ <option v-for="loc in availableLocales" :key="loc" :value="loc">
460
+ {{ getLocaleName(loc) }}
461
+ </option>
462
+ </select>
463
+ </div>
464
+ </template>
465
+
466
+ <script setup lang="ts">
467
+ import { ref, watch } from "vue";
468
+ import { getLocaleName } from "intlayer";
469
+ import { useLocale } from "vue-intlayer";
470
+
471
+ // Mendapatkan informasi locale dan fungsi setLocale
472
+ const { locale, availableLocales, setLocale } = useLocale();
473
+
474
+ // Melacak locale yang dipilih dengan ref
475
+ const selectedLocale = ref(locale.value);
476
+
477
+ // Memperbarui locale saat pilihan berubah
478
+ const changeLocale = () => setLocale(selectedLocale.value);
479
+
480
+ // Menjaga selectedLocale tetap sinkron dengan locale global
481
+ watch(
482
+ () => locale.value,
483
+ (newLocale) => {
484
+ selectedLocale.value = newLocale;
485
+ }
486
+ );
487
+ </script>
488
+ </template>
489
+
490
+ <style scoped>
491
+ .locale-switcher {
492
+ margin: 1rem 0;
493
+ }
494
+
495
+ select {
496
+ padding: 0.5rem;
497
+ border-radius: 0.25rem;
498
+ border: 1px solid #ccc;
499
+ }
500
+ </style>
501
+ ```
502
+
503
+ Kemudian, gunakan komponen ini di halaman atau layout Anda:
504
+
505
+ ```vue fileName="app.vue"
506
+ <script setup lang="ts">
507
+ import { useIntlayer } from "vue-intlayer";
508
+ import LocaleSwitcher from "~/components/LocaleSwitcher.vue";
509
+
510
+ const content = useIntlayer("app"); // Buat file deklarasi intlayer terkait
511
+ </script>
512
+
513
+ <template>
514
+ <div>
515
+ <header>
516
+ <LocaleSwitcher />
517
+ </header>
518
+ <main>
519
+ <NuxtPage />
520
+ </main>
521
+ </div>
522
+ </template>
523
+ ```
524
+
525
+ ### (Opsional) Langkah 7: Tambahkan Routing yang dilokalisasi ke aplikasi Anda
526
+
527
+ Nuxt secara otomatis menangani routing yang dilokalkan saat menggunakan modul `nuxt-intlayer`. Ini membuat rute untuk setiap bahasa secara otomatis berdasarkan struktur direktori halaman Anda.
528
+
529
+ Contoh:
530
+
531
+ ```plaintext
532
+ pages/
533
+ ├── index.vue → /, /fr, /es
534
+ ├── about.vue → /about, /fr/about, /es/about
535
+ └── contact/
536
+ └── index.vue → /contact, /fr/contact, /es/contact
537
+ ```
538
+
539
+ Untuk membuat halaman yang dilokalkan, cukup buat file Vue Anda di direktori `pages/`:
540
+
541
+ ```vue fileName="pages/about.vue"
542
+ <script setup lang="ts">
543
+ import { useIntlayer } from "vue-intlayer";
544
+
545
+ const content = useIntlayer("about");
546
+ </script>
547
+
548
+ <template>
549
+ <div>
550
+ <h1>{{ content.title }}</h1>
551
+ <p>{{ content.description }}</p>
552
+ </div>
553
+ </template>
554
+ ```
555
+
556
+ Modul `nuxt-intlayer` secara otomatis akan:
557
+
558
+ - Mendeteksi locale yang dipilih pengguna
559
+ - Menangani pergantian locale melalui URL
560
+ - Mengatur atribut `<html lang="">` yang sesuai
561
+ - Mengelola cookie locale
562
+ - Mengarahkan pengguna ke URL yang dilokalisasi dengan tepat
563
+
564
+ ### (Opsional) Langkah 8: Membuat Komponen Tautan yang Dilokalisasi
565
+
566
+ Untuk memastikan navigasi aplikasi Anda menghormati locale saat ini, Anda dapat membuat komponen `LocalizedLink` khusus. Komponen ini secara otomatis menambahkan prefix bahasa saat ini pada URL internal.
567
+
568
+ ```vue fileName="components/LocalizedLink.vue"
569
+ <template>
570
+ <NuxtLink :to="localizedHref" v-bind="$attrs">
571
+ <slot />
572
+ </NuxtLink>
573
+ </template>
574
+
575
+ <script setup lang="ts">
576
+ import { computed } from "vue";
577
+ import { getLocalizedUrl } from "intlayer";
578
+ import { useLocale } from "vue-intlayer";
579
+
580
+ const props = defineProps({
581
+ to: {
582
+ type: String,
583
+ required: true,
584
+ },
585
+ });
586
+
587
+ const { locale } = useLocale();
588
+
589
+ // Periksa apakah tautan bersifat eksternal
590
+ const isExternalLink = computed(() => /^https?:\/\//.test(props.to || ""));
591
+
592
+ // Buat href yang dilokalkan untuk tautan internal
593
+ const localizedHref = computed(() =>
594
+ isExternalLink.value ? props.to : getLocalizedUrl(props.to, locale.value)
595
+ );
596
+ </script>
597
+ ```
598
+
599
+ Kemudian gunakan komponen ini di seluruh aplikasi Anda:
600
+
601
+ ```vue fileName="pages/index.vue"
602
+ <template>
603
+ <div>
604
+ <LocalizedLink to="/about">
605
+ {{ content.aboutLink }}
606
+ </LocalizedLink>
607
+ <LocalizedLink to="/contact">
608
+ {{ content.contactLink }}
609
+ </LocalizedLink>
610
+ </div>
611
+ </template>
612
+
613
+ <script setup lang="ts">
614
+ import { useIntlayer } from "vue-intlayer";
615
+ import LocalizedLink from "~/components/LocalizedLink.vue";
616
+
617
+ const content = useIntlayer("home");
618
+ </script>
619
+ ```
620
+
621
+ ### (Opsional) Langkah 9: Menangani Metadata dan SEO
622
+
623
+ Nuxt menyediakan kemampuan SEO yang sangat baik. Anda dapat menggunakan Intlayer untuk menangani metadata yang dilokalisasi:
624
+
625
+ ```vue fileName="pages/about.vue"
626
+ <script setup lang="ts">
627
+ import { useSeoMeta } from "nuxt/app";
628
+ import { getIntlayer } from "intlayer";
629
+ import { useLocale } from "vue-intlayer";
630
+
631
+ const { locale } = useLocale();
632
+ const content = getIntlayer("about-meta", locale.value);
633
+
634
+ useSeoMeta({
635
+ title: content.title,
636
+ description: content.description,
637
+ });
638
+ </script>
639
+
640
+ <template>
641
+ <div>
642
+ <h1>{{ content.pageTitle }}</h1>
643
+ <p>{{ content.pageContent }}</p>
644
+ </div>
645
+ </template>
646
+ ```
647
+
648
+ Buat deklarasi konten yang sesuai:
649
+
650
+ ```ts fileName="pages/about-meta.content.ts"
651
+ import { t, type Dictionary } from "intlayer";
652
+ import type { useSeoMeta } from "nuxt/app";
653
+
654
+ const aboutMetaContent = {
655
+ key: "about-meta",
656
+ content: {
657
+ title: t({
658
+ en: "About Us - My Company",
659
+ fr: "À Propos - Ma Société",
660
+ es: "Acerca de Nosotros - Mi Empresa",
661
+ id: "Tentang Kami - Perusahaan Saya",
662
+ }),
663
+ description: t({
664
+ en: "Learn more about our company and our mission",
665
+ fr: "En savoir plus sur notre société et notre mission",
666
+ es: "Conozca más sobre nuestra empresa y nuestra misión",
667
+ id: "Pelajari lebih lanjut tentang perusahaan kami dan misi kami",
668
+ }),
669
+ },
670
+ } satisfies Dictionary<Parameters<typeof useSeoMeta>[0]>;
671
+
672
+ export default aboutMetaContent;
673
+ ```
674
+
675
+ ```typescript fileName="pages/about-meta.content.mjs" contentDeclarationFormat="esm"
676
+ import { t } from "intlayer";
677
+
678
+ /** @type {import('intlayer').Dictionary} */
679
+ const aboutMetaContent = {
680
+ key: "about-meta",
681
+ content: {
682
+ title: t({
683
+ id: "Tentang Kami - Perusahaan Saya",
684
+ zh: "关于我们 - 我的公司",
685
+ en: "About Us - My Company",
686
+ fr: "À Propos - Ma Société",
687
+ es: "Acerca de Nosotros - Mi Empresa",
688
+ }),
689
+ description: t({
690
+ id: "Pelajari lebih lanjut tentang perusahaan kami dan misi kami",
691
+ zh: "了解更多关于我们公司和我们的使命",
692
+ en: "Learn more about our company and our mission",
693
+ fr: "En savoir plus sur notre société et notre mission",
694
+ es: "Conozca más sobre nuestra empresa y nuestra misión",
695
+ }),
696
+ },
697
+ };
698
+
699
+ export default aboutMetaContent;
700
+ ```
701
+
702
+ ```typescript fileName="pages/about-meta.content.js" contentDeclarationFormat="cjs"
703
+ const { t } = require("intlayer");
704
+
705
+ /** @type {import('intlayer').Dictionary} */
706
+ const aboutMetaContent = {
707
+ key: "about-meta",
708
+ content: {
709
+ title: t({
710
+ id: "Tentang Kami - Perusahaan Saya",
711
+ zh: "关于我们 - 我的公司",
712
+ en: "About Us - My Company",
713
+ fr: "À Propos - Ma Société",
714
+ es: "Acerca de Nosotros - Mi Empresa",
715
+ }),
716
+ description: t({
717
+ zh: "了解更多关于我们公司和我们的使命",
718
+ en: "Learn more about our company and our mission",
719
+ fr: "En savoir plus sur notre société et notre mission",
720
+ es: "Conozca más sobre nuestra empresa y nuestra misión",
721
+ id: "Pelajari lebih lanjut tentang perusahaan kami dan misi kami",
722
+ }),
723
+ },
724
+ };
725
+
726
+ module.exports = aboutMetaContent;
727
+ ```
728
+
729
+ ```json fileName="pages/about-meta.content.json" contentDeclarationFormat="json"
730
+ {
731
+ "key": "about-meta",
732
+ "content": {
733
+ "title": {
734
+ "nodeType": "translation",
735
+ "translations": {
736
+ "zh": "关于我们 - 我的公司",
737
+ "en": "About Us - My Company",
738
+ "fr": "À Propos - Ma Société",
739
+ "es": "Acerca de Nosotros - Mi Empresa",
740
+ "id": "Tentang Kami - Perusahaan Saya"
741
+ }
742
+ },
743
+ "description": {
744
+ "nodeType": "translation",
745
+ "translations": {
746
+ "zh": "了解更多关于我们公司和我们的使命",
747
+ "en": "Learn more about our company and our mission",
748
+ "fr": "En savoir plus sur notre société et notre mission",
749
+ "es": "Conozca más sobre nuestra empresa y nuestra misión"
750
+ }
751
+ }
752
+ }
753
+ }
754
+ ```
755
+
756
+ ### Konfigurasi TypeScript
757
+
758
+ Intlayer menggunakan module augmentation untuk mendapatkan manfaat dari TypeScript dan membuat codebase Anda lebih kuat.
759
+
760
+ ![Autocompletion](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
761
+
762
+ ![Translation error](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
763
+
764
+ Pastikan konfigurasi TypeScript Anda menyertakan tipe yang dihasilkan secara otomatis.
765
+
766
+ ```json5 fileName="tsconfig.json"
767
+ {
768
+ // ... Konfigurasi TypeScript Anda yang sudah ada
769
+ "include": [
770
+ // ... Konfigurasi TypeScript Anda yang sudah ada
771
+ ".intlayer/**/*.ts", // Sertakan tipe yang dihasilkan secara otomatis
772
+ ],
773
+ }
774
+ ```
775
+
776
+ ### Konfigurasi Git
777
+
778
+ Disarankan untuk mengabaikan file yang dihasilkan oleh Intlayer. Ini memungkinkan Anda untuk menghindari meng-commit file tersebut ke repository Git Anda.
779
+
780
+ Untuk melakukannya, Anda dapat menambahkan instruksi berikut ke file `.gitignore` Anda:
781
+
782
+ ```plaintext fileName=".gitignore"
783
+ # Abaikan file yang dihasilkan oleh Intlayer
784
+ .intlayer
785
+ ```
786
+
787
+ ### Ekstensi VS Code
788
+
789
+ Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat menginstal **Ekstensi VS Code Intlayer** resmi.
790
+
791
+ [Pasang dari VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
792
+
793
+ Ekstensi ini menyediakan:
794
+
795
+ - **Autocompletion** untuk kunci terjemahan.
796
+ - **Deteksi kesalahan secara real-time** untuk terjemahan yang hilang.
797
+ - **Pratinjau inline** dari konten yang diterjemahkan.
798
+ - **Aksi cepat** untuk dengan mudah membuat dan memperbarui terjemahan.
799
+
800
+ Untuk detail lebih lanjut tentang cara menggunakan ekstensi ini, lihat [dokumentasi Ekstensi VS Code Intlayer](https://intlayer.org/doc/vs-code-extension).
801
+
802
+ ---
803
+
804
+ ### Melangkah Lebih Jauh
805
+
806
+ Untuk melangkah lebih jauh, Anda dapat mengimplementasikan [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_visual_editor.md) atau mengeksternalisasi konten Anda menggunakan [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/intlayer_CMS.md).
807
+
808
+ ---