@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,217 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Alat Internasionalisasi (i18n) Terbaik untuk React Native
5
+ description: Temukan solusi i18n React Native terbaik untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
6
+ keywords:
7
+ - React Native
8
+ - i18n
9
+ - multibahasa
10
+ - SEO
11
+ - Internasionalisasi
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - react-native
19
+ ---
20
+
21
+ # Menjelajahi Solusi i18n untuk Menerjemahkan Aplikasi React Native Anda
22
+
23
+ Dalam pasar yang semakin global, menghadirkan aplikasi React Native Anda dalam berbagai bahasa dapat secara signifikan meningkatkan aksesibilitas dan kepuasan pengguna. Internasionalisasi (i18n) adalah kunci untuk mengelola terjemahan secara efektif yang memungkinkan Anda menampilkan teks spesifik bahasa, format tanggal dan waktu, mata uang, dan lainnya tanpa mempersulit basis kode Anda. Dalam artikel ini, kami akan membahas berbagai pendekatan i18n mulai dari pustaka khusus hingga solusi yang lebih umum dan membantu Anda menemukan yang paling sesuai untuk proyek React Native Anda.
24
+
25
+ ---
26
+
27
+ ![ilustrasi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Apa itu Internasionalisasi (i18n)?
30
+
31
+ Internasionalisasi, atau i18n, melibatkan penyusunan aplikasi agar dapat dengan mudah beradaptasi dengan berbagai bahasa, format regional, dan norma budaya. Dalam React Native, i18n mencakup penanganan string untuk tombol dan label, serta pemformatan tanggal, waktu, mata uang, dan lainnya sesuai dengan lokal pengguna. Aplikasi React Native yang disiapkan dengan baik memungkinkan Anda mengintegrasikan bahasa tambahan dan perilaku spesifik lokal secara mulus di kemudian hari tanpa perlu refaktor besar-besaran.
32
+
33
+ Untuk pemahaman lebih mendalam tentang konsep internasionalisasi, lihat artikel kami:
34
+ [Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
35
+
36
+ ---
37
+
38
+ ## Tantangan Terjemahan untuk Aplikasi React Native
39
+
40
+ Bekerja dengan terjemahan di React Native memperkenalkan pertimbangan unik tersendiri:
41
+
42
+ - **Arsitektur Berbasis Komponen**
43
+ Sama seperti di React untuk web, desain modular React Native dapat menyebarkan teks ke berbagai komponen. Sangat penting untuk memusatkan terjemahan ini dengan cara yang kuat.
44
+
45
+ - **Data Offline dan Jarak Jauh**
46
+ Sementara beberapa string dapat disematkan dalam aplikasi, konten lain (misalnya, berita, data produk) mungkin diambil dari jarak jauh. Menangani terjemahan untuk data yang tiba secara asinkron bisa lebih kompleks di perangkat mobile.
47
+
48
+ - **Perilaku Spesifik Platform**
49
+ iOS dan Android masing-masing memiliki pengaturan lokal dan keunikan pemformatan sendiri. Memastikan rendering tanggal, mata uang, dan angka yang konsisten di kedua platform memerlukan pengujian menyeluruh.
50
+
51
+ - **Manajemen State dan Navigasi**
52
+ Mempertahankan bahasa yang dipilih pengguna di berbagai layar, tautan dalam (deep links), atau navigasi berbasis tab berarti mengintegrasikan i18n ke dalam Redux, Context API, atau solusi manajemen state lainnya.
53
+
54
+ - **Pembaruan Aplikasi & Over-the-Air (OTA)**
55
+ Jika Anda menggunakan CodePush atau mekanisme pembaruan OTA lainnya, Anda perlu merencanakan bagaimana pembaruan terjemahan atau bahasa baru akan dikirimkan tanpa memerlukan rilis penuh di app store.
56
+
57
+ ---
58
+
59
+ ## Solusi i18n Terdepan untuk React Native
60
+
61
+ Berikut adalah beberapa pendekatan populer untuk mengelola konten multibahasa di React Native. Masing-masing bertujuan untuk menyederhanakan alur kerja terjemahan Anda dengan cara yang berbeda.
62
+
63
+ ### 1. Intlayer
64
+
65
+ > Situs web: [https://intlayer.org/](https://intlayer.org/)
66
+
67
+ **Ikhtisar**
68
+ **Intlayer** adalah perpustakaan internasionalisasi sumber terbuka yang inovatif, dirancang untuk mempermudah dukungan multibahasa dalam aplikasi JavaScript modern termasuk React Native. Ini menawarkan pendekatan deklaratif untuk terjemahan, memungkinkan Anda mendefinisikan kamus langsung di samping komponen.
69
+
70
+ **Fitur Utama**
71
+
72
+ - **Deklarasi Terjemahan**
73
+ Menyimpan terjemahan dalam satu file atau pada tingkat komponen, sehingga memudahkan untuk menemukan dan memodifikasi teks.
74
+
75
+ - **TypeScript & Autocomplete**
76
+ Secara otomatis menghasilkan definisi tipe untuk kunci terjemahan, memberikan autocomplete yang ramah pengembang dan pemeriksaan kesalahan yang kuat.
77
+
78
+ - **Ringan & Fleksibel**
79
+ Bekerja dengan baik di lingkungan React Native, tanpa beban berlebih yang tidak perlu. Mudah diintegrasikan dan tetap efisien di perangkat mobile.
80
+
81
+ - **Pertimbangan Spesifik Platform**
82
+ Anda dapat menyesuaikan atau memisahkan string khusus platform untuk iOS vs. Android, jika diperlukan.
83
+
84
+ - **Pemrosesan Asinkron**
85
+ Memuat kamus terjemahan secara dinamis, yang berguna untuk aplikasi besar atau peluncuran bahasa secara bertahap.
86
+
87
+ **Pertimbangan**
88
+
89
+ - **Komunitas & Ekosistem**
90
+ Masih merupakan solusi yang relatif baru, jadi Anda mungkin menemukan lebih sedikit contoh yang digerakkan oleh komunitas atau plugin siap pakai dibandingkan dengan perpustakaan yang sudah lama ada.
91
+
92
+ ---
93
+
94
+ ### 2. React-i18next
95
+
96
+ > Situs web: [https://react.i18next.com/](https://react.i18next.com/)
97
+
98
+ **Gambaran Umum**
99
+ **React-i18next** dibangun di atas framework populer **i18next**, menawarkan arsitektur berbasis plugin yang fleksibel dan fitur yang kuat. Ini juga banyak digunakan dalam aplikasi React Native, berkat proses pengaturan yang terdokumentasi dengan baik.
100
+
101
+ **Fitur Utama**
102
+
103
+ - **Integrasi React Native yang Lancar**
104
+ Menyediakan hooks (`useTranslation`), komponen higher-order (HOCs), dan lainnya untuk mengintegrasikan i18n secara mulus ke dalam komponen Anda.
105
+
106
+ - **Pemrosesan Asinkron**
107
+ Memuat terjemahan sesuai permintaan yang bermanfaat untuk aplikasi besar atau saat menambahkan paket bahasa baru secara bertahap.
108
+
109
+ - **Kemampuan Terjemahan yang Kaya**
110
+ Menangani terjemahan bersarang, interpolasi, pluralisasi, dan penggantian variabel secara langsung.
111
+
112
+ - **TypeScript & Autocompletion**
113
+ React-i18next mendukung kunci terjemahan yang bertipe, meskipun pengaturan awal mungkin lebih manual dibandingkan dengan solusi yang secara otomatis menghasilkan tipe.
114
+
115
+ - **Platform Agnostik**
116
+ i18next tidak terikat secara khusus pada web atau mobile, sehingga perpustakaan yang sama dapat digunakan di berbagai jenis proyek (misalnya, jika Anda berbagi kode antara web dan native).
117
+
118
+ **Pertimbangan**
119
+
120
+ - **Kompleksitas Konfigurasi**
121
+ Mengatur i18n dengan fitur lanjutan (bentuk jamak, fallback locale, dll.) dapat memerlukan konfigurasi yang cermat.
122
+
123
+ - **Performa**
124
+ Meskipun React-i18next umumnya memiliki performa yang baik, Anda perlu memperhatikan bagaimana Anda mengatur dan memuat sumber daya terjemahan untuk menghindari beban berlebih pada perangkat mobile.
125
+
126
+ ---
127
+
128
+ ### 3. React Intl (dari FormatJS)
129
+
130
+ > Website: [https://formatjs.io/docs/react-intl/](https://formatjs.io/docs/react-intl/)
131
+
132
+ **Ikhtisar**
133
+ **React Intl**, bagian dari ekosistem **FormatJS**, dibangun untuk menstandarisasi format pesan untuk berbagai locale. Ini menekankan alur kerja ekstraksi pesan dan sangat kuat dalam memformat tanggal, angka, dan waktu dengan benar untuk berbagai locale.
134
+
135
+ **Fitur Utama**
136
+
137
+ - **Komponen Berfokus pada Format**
138
+ `<FormattedMessage>`, `<FormattedDate>`, `<FormattedTime>`, dan lainnya mempermudah tugas pemformatan di iOS dan Android.
139
+
140
+ - **Ringan & Dapat Diperluas**
141
+ Anda dapat mengimpor hanya bagian dari FormatJS yang Anda butuhkan, menjaga bundle keseluruhan tetap ringan yang sangat penting untuk mobile.
142
+
143
+ - **Polyfill untuk Locale yang Tidak Didukung**
144
+ Memastikan format tanggal/angka yang konsisten pada versi Android atau iOS yang lebih lama.
145
+
146
+ - **Kompatibilitas TypeScript**
147
+ Terintegrasi dengan TypeScript, meskipun Anda mungkin memerlukan alat tambahan untuk mencapai ID pesan yang sepenuhnya bertipe.
148
+
149
+ **Pertimbangan**
150
+
151
+ - **Ekstraksi Pesan**
152
+ Membutuhkan alur kerja ekstraksi, yang dapat menambah kompleksitas pada proses build Anda. Namun, ini sangat berguna untuk tim besar yang mengelola banyak terjemahan.
153
+
154
+ - **Ukuran Aplikasi & Deployment**
155
+ Jika Anda mengandalkan banyak polyfill atau file terjemahan besar, perhatikan ukuran keseluruhan aplikasi Anda, yang sangat penting dalam konteks mobile.
156
+
157
+ - **Contoh dari Komunitas**
158
+ Meskipun banyak digunakan, contoh penggunaan khusus React Native mungkin lebih sedikit dibandingkan dengan React web. Anda kemungkinan akan menyesuaikan dokumentasi dan pola yang ada ke lingkungan native.
159
+
160
+ ---
161
+
162
+ ### 4. LinguiJS
163
+
164
+ > Website: [https://lingui.js.org/](https://lingui.js.org/)
165
+
166
+ **Ikhtisar**
167
+ **LinguiJS** menghadirkan pendekatan modern dan ramah pengembang untuk i18n pada JavaScript dan React (termasuk React Native). Dengan ekstraksi dan kompilasi pesan berbasis CLI, LinguiJS fokus pada meminimalkan beban runtime.
168
+
169
+ **Fitur Utama**
170
+
171
+ - **Ekstraksi Pesan Otomatis**
172
+ Memindai kode Anda untuk string terjemahan, mengurangi risiko pesan yang terlewat atau tidak terpakai.
173
+
174
+ - **Beban Runtime Minimal**
175
+ Terjemahan yang telah dikompilasi menjaga performa aplikasi Anda dan dioptimalkan dengan baik untuk perangkat mobile.
176
+
177
+ - **TypeScript & Autocompletion**
178
+ Jika dikonfigurasi dengan benar, Anda akan mendapatkan ID yang bertipe untuk terjemahan, membuat alur kerja pengembang lebih aman dan intuitif.
179
+
180
+ - **Integrasi dengan React Native**
181
+ Mudah untuk dipasang dan dihubungkan dalam lingkungan React Native; Anda juga dapat menangani terjemahan khusus platform jika diperlukan.
182
+
183
+ **Pertimbangan**
184
+
185
+ - **Pengaturan CLI Awal**
186
+ Beberapa langkah tambahan diperlukan untuk mengonfigurasi pipeline ekstraksi dan kompilasi untuk proyek React Native.
187
+
188
+ - **Komunitas & Plugin**
189
+ Ekosistem perpustakaan ini lebih kecil dibandingkan i18next, tetapi berkembang dengan cepat, dan alat CLI inti sangat kuat.
190
+
191
+ - **Organisasi Kode**
192
+ Memutuskan bagaimana membagi katalog pesan Anda (berdasarkan layar, fitur, atau bahasa) sangat penting untuk menjaga kejelasan dalam aplikasi yang lebih besar.
193
+
194
+ ---
195
+
196
+ ## Pemikiran Akhir
197
+
198
+ Saat memilih solusi i18n untuk aplikasi React Native Anda:
199
+
200
+ 1. **Evaluasi Kebutuhan Anda**
201
+ - Berapa banyak bahasa yang dibutuhkan sekarang dan di masa depan?
202
+ - Apakah Anda memerlukan pemuatan sesuai permintaan untuk aplikasi besar?
203
+
204
+ 2. **Perhatikan Perbedaan Platform**
205
+ - Pastikan perpustakaan apa pun mendukung variasi lokal iOS dan Android, terutama keanehan tanggal/angka/mata uang.
206
+ - Pertimbangkan penggunaan offline; beberapa terjemahan mungkin perlu disertakan dalam aplikasi, sementara yang lain dapat diambil secara remote.
207
+
208
+ 3. **Pilih Struktur untuk Skalabilitas**
209
+ - Jika Anda merencanakan aplikasi yang besar atau bertahan lama, alur kerja ekstraksi yang kuat atau kunci bertipe dapat membantu menjaga terjemahan tetap terorganisir dengan baik.
210
+
211
+ 4. **Performa & Ukuran Bundle**
212
+ - Keterbatasan data seluler berarti Anda harus memperhatikan ukuran file terjemahan dan polyfill apa pun.
213
+
214
+ 5. **Pengalaman Pengembang (DX)**
215
+ - Cari perpustakaan yang sesuai dengan keahlian tim Anda; beberapa solusi lebih rinci tetapi mudah dipahami, sementara yang lain menawarkan lebih banyak otomatisasi dengan biaya kompleksitas pengaturan.
216
+
217
+ Setiap solusi Intlayer, React-i18next, React Intl, dan LinguiJS telah terbukti efektif di lingkungan React Native, meskipun dengan prioritas yang sedikit berbeda. Mengevaluasi roadmap proyek Anda, preferensi pengembang, dan kebutuhan lokalisasi akan membantu Anda menemukan solusi yang ideal untuk menghadirkan aplikasi React Native yang benar-benar global.
@@ -0,0 +1,155 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Alat Internasionalisasi (i18n) Terbaik untuk React
5
+ description: Temukan solusi i18n React terbaik untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
6
+ keywords:
7
+ - React
8
+ - i18n
9
+ - multibahasa
10
+ - SEO
11
+ - Internasionalisasi
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - react
19
+ ---
20
+
21
+ # Menjelajahi Solusi i18n untuk Menerjemahkan Situs Web React Anda
22
+
23
+ Di lanskap digital saat ini, memperluas jangkauan situs web Anda untuk melayani audiens global adalah hal yang penting. Bagi pengembang yang membangun dengan React, menerapkan internasionalisasi (i18n) adalah kunci untuk mengelola terjemahan secara efisien sambil mempertahankan struktur aplikasi, nilai SEO, dan pengalaman pengguna. Dalam artikel ini, kami mengeksplorasi berbagai pendekatan i18n mulai dari pustaka khusus hingga solusi yang dikodekan secara kustom yang membantu Anda memutuskan mana yang paling sesuai dengan kebutuhan proyek Anda.
24
+
25
+ ---
26
+
27
+ ![ilustrasi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Apa itu Internasionalisasi (i18n)?
30
+
31
+ Internasionalisasi, disingkat i18n, adalah proses merancang dan mempersiapkan situs web Anda untuk mendukung berbagai bahasa dan konteks budaya. Dalam React, ini berarti mengatur aplikasi Anda sehingga string, format tanggal, format angka, dan bahkan tata letak dapat dengan mudah disesuaikan untuk pengguna dari berbagai wilayah. Mempersiapkan aplikasi React Anda untuk i18n meletakkan dasar untuk mengintegrasikan terjemahan dan fitur lokalisasi lainnya dengan rapi.
32
+
33
+ Pelajari lebih lanjut tentang i18n dengan membaca artikel kami: [Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
34
+
35
+ ---
36
+
37
+ ## Tantangan Terjemahan untuk Aplikasi React
38
+
39
+ Menerjemahkan situs web React menghadirkan beberapa tantangan:
40
+
41
+ - **Arsitektur Berbasis Komponen:** Desain modular React berarti teks dapat tersebar di berbagai komponen, sehingga sangat penting untuk memusatkan dan mengatur string terjemahan.
42
+ - **Konten Dinamis:** Mengelola terjemahan untuk konten yang diperbarui secara real-time atau diambil dari API dapat menambah lapisan kompleksitas.
43
+ - **Pertimbangan SEO:** Untuk aplikasi React yang dirender di sisi server (menggunakan framework seperti Next.js), memastikan bahwa terjemahan berkontribusi positif pada SEO melibatkan pengelolaan URL yang dilokalkan, metadata, dan sitemap.
44
+ - **Manajemen State dan Konteks:** Memastikan bahwa bahasa yang benar dipertahankan di seluruh rute dan komponen memerlukan manajemen state yang matang.
45
+ - **Beban Pengembangan:** Memelihara file terjemahan, memastikan akurasi konteks, dan menjaga agar aplikasi Anda tetap skalabel adalah pertimbangan yang berkelanjutan.
46
+
47
+ ---
48
+
49
+ ## Solusi i18n Terdepan untuk React
50
+
51
+ Berikut adalah beberapa pendekatan populer untuk mengelola konten multibahasa dalam aplikasi React, masing-masing dirancang untuk mempermudah proses terjemahan dengan cara yang berbeda.
52
+
53
+ ### 1. Intlayer
54
+
55
+ > Situs web: [https://intlayer.org/](https://intlayer.org/)
56
+
57
+ **Gambaran Umum**
58
+ **Intlayer** adalah perpustakaan internasionalisasi (i18n) sumber terbuka yang inovatif, dirancang untuk menyederhanakan dukungan multibahasa dalam aplikasi web modern React (dan lainnya). Ini menawarkan pendekatan deklaratif, memungkinkan Anda mendefinisikan kamus terjemahan langsung di dalam komponen Anda.
59
+
60
+ **Fitur Utama**
61
+
62
+ - **Deklarasi Terjemahan**: Memungkinkan deklarasi semua terjemahan dalam satu file, ditempatkan di tingkat komponen, sehingga lebih mudah untuk dipelihara dan diskalakan.
63
+ - **TypeScript & Autocompletion**: Menyediakan definisi tipe yang dihasilkan secara otomatis untuk kunci terjemahan, memberikan autocompletion yang kuat dan deteksi kesalahan.
64
+ - **Komponen Server & SSR**: Dibangun dengan mempertimbangkan rendering sisi server (SSR) dan komponen server, memastikan konten yang dilokalkan dirender secara efisien baik di klien maupun server.
65
+ - **Metadata & URL yang Dilokalkan untuk SEO**: Memudahkan penanganan rute berbasis lokal dinamis, sitemap, dan entri robots.txt untuk meningkatkan keterlihatan dan SEO.
66
+ - **Integrasi Mulus**: Kompatibel dengan bundler dan framework utama seperti Create React App, Next.js, dan Vite, sehingga pengaturan menjadi mudah.
67
+ - **Pemuat Asinkron**: Memuat kamus terjemahan secara dinamis, mengurangi ukuran bundle awal dan meningkatkan performa.
68
+
69
+ **Pertimbangan**
70
+
71
+ - **Komunitas & Ekosistem**: Meskipun berkembang, ekosistem ini masih baru, sehingga plugin dan alat yang didorong oleh komunitas mungkin lebih terbatas dibandingkan solusi yang sudah lebih mapan.
72
+
73
+ ---
74
+
75
+ ### 2. React-i18next
76
+
77
+ Situs web: [https://react.i18next.com/](https://react.i18next.com/)
78
+
79
+ **Gambaran Umum**
80
+ **React-i18next** adalah salah satu pustaka React yang paling banyak digunakan untuk internasionalisasi, dibangun di atas framework populer **i18next**. Ini menyediakan arsitektur berbasis plugin yang fleksibel untuk menangani skenario terjemahan yang kompleks.
81
+
82
+ **Fitur Utama**
83
+
84
+ - **Integrasi React yang Mulus**: Bekerja dengan React hooks, higher-order components (HOCs), dan render props untuk fleksibilitas maksimal.
85
+ - **Pemuat Asinkron**: Memuat sumber daya terjemahan secara dinamis, mengurangi ukuran bundle awal dan meningkatkan performa.
86
+ - **Kemampuan Terjemahan yang Kaya**: Mendukung terjemahan bersarang, bentuk jamak, interpolasi, dan lainnya.
87
+ - **TypeScript & Autocompletion**: Dengan konfigurasi tambahan, Anda dapat menikmati kunci terjemahan yang bertipe, meskipun pengaturannya bisa lebih manual.
88
+ - **Metadata & URL yang Dilokalkan**: Dapat diintegrasikan dengan Next.js untuk rute yang dilokalkan, sitemap, dan robots.txt, meningkatkan SEO.
89
+ - **Server Components & SSR**: Dengan Next.js atau pengaturan SSR lainnya, Anda dapat menyajikan konten yang sepenuhnya dilokalkan dari server.
90
+
91
+ **Pertimbangan**
92
+
93
+ - **Pemeliharaan**: Konfigurasi dapat menjadi kompleks, terutama untuk proyek besar atau multi-tim; struktur file terjemahan yang hati-hati sangat penting.
94
+ - **Ekosistem Plugin**: Tersedia ekosistem luas plugin dan middleware, yang juga berarti Anda perlu menyaring berbagai paket untuk menemukan alat yang tepat.
95
+ - **Server Components**: Membutuhkan pengaturan tambahan untuk memastikan server components mengambil locale yang benar, terutama jika menggunakan framework selain Next.js.
96
+
97
+ ---
98
+
99
+ ### 3. React Intl (dari FormatJS)
100
+
101
+ Website: [https://formatjs.io/docs/react-intl/](https://formatjs.io/docs/react-intl/)
102
+
103
+ **Ikhtisar**
104
+ **React Intl**, bagian dari rangkaian **FormatJS**, berfokus pada standarisasi format pesan, lokalisasi tanggal/angka/waktu, dan pesan waktu relatif. Ini menggunakan alur kerja ekstraksi pesan untuk menangani terjemahan Anda secara efisien.
105
+
106
+ **Fitur Utama**
107
+
108
+ - **Komponen Berfokus Format**: `<FormattedMessage>`, `<FormattedDate>`, `<FormattedTime>`, dan lainnya untuk menyederhanakan format di React.
109
+ - **Server Components & SSR**: Menawarkan dukungan untuk pengaturan SSR sehingga konten yang dilokalkan dapat disajikan untuk meningkatkan performa dan SEO.
110
+ - **Metadata & URL yang Dilokalkan**: Dapat diintegrasikan dengan framework seperti Next.js untuk menghasilkan sitemap yang dilokalkan, menangani rute dinamis, dan menyesuaikan robots.txt.
111
+ - **TypeScript & Autocompletion**: Dapat digabungkan dengan TypeScript tetapi mungkin memerlukan alat tambahan untuk autocompletion ID pesan.
112
+ - **Polyfills untuk Browser yang Tidak Didukung**: Menjamin perilaku yang konsisten di lingkungan lama.
113
+
114
+ **Pertimbangan**
115
+
116
+ - **Verbosity & Boilerplate**: Ketergantungan pada komponen khusus dapat menyebabkan kode menjadi lebih verbose, terutama dalam aplikasi besar.
117
+ - **Memisahkan Terjemahan**: Perpustakaan inti tidak menyediakan dukungan bawaan untuk memisahkan terjemahan ke dalam beberapa file sehingga memerlukan pengaturan tambahan atau plugin.
118
+ - **Maintainability**: Pendekatan langsung untuk format bisa bermanfaat, tetapi ekstraksi pesan dan beban organisasi dapat tumbuh dengan cepat.
119
+
120
+ ### 4. LinguiJS
121
+
122
+ Website: [https://lingui.js.org/](https://lingui.js.org/)
123
+
124
+ **Ikhtisar:**
125
+
126
+ **Ikhtisar**
127
+ **LinguiJS** menawarkan pendekatan modern yang ramah pengembang untuk mengelola i18n di JavaScript dan React. Ini berfokus pada pengurangan konfigurasi sambil memberdayakan Anda dengan CLI yang kuat dan alur kerja ekstraksi pesan.
128
+
129
+ **Fitur Utama**
130
+
131
+ - **Ekstraksi Pesan Otomatis**: CLI khusus yang menemukan dan mengekstrak pesan dari kode Anda, meminimalkan langkah manual.
132
+ - **Overhead Runtime Minimal**: Terjemahan yang dikompilasi mengurangi ukuran bundle dan biaya performa saat runtime.
133
+ - **TypeScript & Autocompletion**: Mendukung ID bertipe jika Anda mengonfigurasi katalog terjemahan Anda dengan benar, meningkatkan pengalaman pengembang.
134
+ - **Komponen Server & SSR**: Kompatibel dengan strategi server-side rendering; dapat diintegrasikan dengan Next.js atau framework SSR lainnya.
135
+ - **Metadata & URL yang Dilokalkan**: Meskipun tidak sejelas beberapa perpustakaan lain, ini dapat diintegrasikan dengan pengaturan routing Anda untuk menangani sitemap, robots.txt, dan jalur yang dilokalkan.
136
+
137
+ **Pertimbangan**
138
+
139
+ - **Pemeliharaan**: Ekstraksi otomatis membantu menjaga kode tetap bersih, tetapi menyusun beberapa file terjemahan untuk aplikasi besar memerlukan organisasi yang disiplin.
140
+ - **Komunitas & Plugin**: Ekosistemnya berkembang tetapi masih lebih kecil dibandingkan dengan i18next atau FormatJS.
141
+ - **Komponen Server**: Mungkin memerlukan konfigurasi yang lebih eksplisit untuk memastikan komponen server menerima data lokal yang benar.
142
+
143
+ ---
144
+
145
+ ### Pemikiran Akhir
146
+
147
+ Saat memilih perpustakaan i18n untuk React:
148
+
149
+ - **Evaluasi Kebutuhan Anda**: Pertimbangkan ukuran proyek, pengalaman pengembang, dan bagaimana Anda berencana menangani terjemahan (manual vs. ekstraksi otomatis).
150
+ - **Periksa Kompatibilitas Server**: Jika Anda mengandalkan SSR atau komponen server (terutama di Next.js), pastikan perpustakaan yang Anda pilih mendukungnya dengan mulus.
151
+ - **TypeScript & Autocomplete**: Jika TypeScript menjadi prioritas, pilih perpustakaan yang mudah diintegrasikan dengan kunci bertipe dan menyediakan alat pengembang yang kuat.
152
+ - **Pemeliharaan & Skalabilitas**: Proyek besar sering membutuhkan struktur terjemahan yang jelas dan mudah dipelihara, jadi pertimbangkan roadmap jangka panjang Anda.
153
+ - **SEO & Metadata**: Jika SEO penting, pastikan solusi yang Anda pilih mendukung metadata yang dilokalkan, rute, serta sitemap/robots untuk setiap bahasa.
154
+
155
+ Semua pustaka ini dapat mendukung aplikasi React multibahasa dengan prioritas dan kekuatan yang sedikit berbeda. Pilihlah yang paling sesuai dengan **kinerja**, **DX (pengalaman pengembang)**, dan **tujuan bisnis** proyek Anda.
@@ -0,0 +1,131 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Alat Internasionalisasi (i18n) Terbaik untuk Svelte
5
+ description: Temukan solusi i18n Svelte terbaik untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
6
+ keywords:
7
+ - Svelte
8
+ - i18n
9
+ - multibahasa
10
+ - SEO
11
+ - Internasionalisasi
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - svelte
19
+ ---
20
+
21
+ # Menjelajahi Solusi i18n untuk Menerjemahkan Situs Web Svelte Anda
22
+
23
+ Seiring web terus menghubungkan orang-orang di seluruh dunia, menyediakan konten dalam berbagai bahasa menjadi semakin penting. Bagi pengembang yang bekerja dengan **Svelte**, menerapkan i18n sangat penting untuk mengelola terjemahan secara efisien, menjaga kode tetap bersih, dan mempertahankan praktik SEO yang baik. Dalam artikel ini, kami membahas berbagai solusi dan alur kerja i18n untuk Svelte yang membantu Anda memilih yang paling sesuai dengan kebutuhan proyek Anda.
24
+
25
+ ---
26
+
27
+ ![ilustrasi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Apa itu Internasionalisasi (i18n)?
30
+
31
+ Internasionalisasi, yang biasa disingkat i18n, adalah proses merancang dan membangun aplikasi Anda agar dapat dengan mudah beradaptasi dengan berbagai bahasa, wilayah, dan konvensi budaya. Dalam Svelte, ini biasanya berarti menyiapkan string terjemahan, melokalisasi tanggal, waktu, dan angka, serta memastikan antarmuka pengguna dapat beralih secara dinamis di antara berbagai locale tanpa perlu penulisan ulang kode yang besar.
32
+
33
+ Untuk mempelajari lebih lanjut tentang dasar-dasar i18n, baca artikel kami: [Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
34
+
35
+ ---
36
+
37
+ ## Tantangan Terjemahan untuk Aplikasi Svelte
38
+
39
+ Menerjemahkan aplikasi Svelte dapat menghadirkan beberapa kendala:
40
+
41
+ - **Komponen Satu Berkas**: Pendekatan komponen satu berkas Svelte (di mana HTML, CSS, dan JavaScript ada bersama) membuat teks mudah tersebar, sehingga memerlukan strategi untuk memusatkan terjemahan.
42
+ - **Konten Dinamis**: Data yang diambil dari API atau input pengguna menambah kompleksitas saat memastikan konten diterjemahkan secara langsung.
43
+ - **Pertimbangan SEO**: Jika Anda menggunakan **SvelteKit** untuk server-side rendering (SSR), mengonfigurasi URL yang dilokalisasi, meta tag, dan sitemap untuk SEO yang efektif memerlukan perhatian ekstra.
44
+ - **State & Routing**: Mempertahankan bahasa yang benar di berbagai rute dan halaman dinamis sering kali melibatkan pengaturan state global, route guards, atau custom hooks di SvelteKit.
45
+ - **Maintainability**: Seiring bertambahnya codebase dan file terjemahan Anda, menjaga semuanya tetap terorganisir dengan baik dan tersinkronisasi menjadi usaha yang berkelanjutan.
46
+
47
+ ---
48
+
49
+ ## Solusi i18n Terdepan untuk Svelte
50
+
51
+ Svelte tidak menyediakan solusi i18n bawaan secara native (seperti Angular), tetapi komunitas telah menciptakan berbagai pustaka dan pola yang kuat. Berikut beberapa pendekatan populer.
52
+
53
+ ### 1. svelte-i18n
54
+
55
+ Repositori: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
56
+
57
+ **Ikhtisar**
58
+ **svelte-i18n** adalah salah satu pustaka yang paling banyak digunakan untuk menambahkan internasionalisasi ke aplikasi Svelte. Ini memungkinkan Anda memuat dan beralih antar locale secara dinamis saat runtime dan menyertakan bantuan untuk plural, interpolasi, dan lainnya.
59
+
60
+ **Fitur Utama**
61
+
62
+ - **Terjemahan Runtime**: Memuat file terjemahan sesuai permintaan, memungkinkan Anda mengganti bahasa tanpa perlu membangun ulang aplikasi.
63
+ - **Pluralisasi & Interpolasi**: Menyediakan sintaks yang sederhana untuk menangani bentuk jamak dan menyisipkan variabel dalam terjemahan.
64
+ - **Lazy Loading**: Hanya mengambil file terjemahan yang Anda butuhkan, mengoptimalkan performa untuk aplikasi besar atau banyak bahasa.
65
+ - **Dukungan SvelteKit**: Contoh yang terdokumentasi dengan baik menunjukkan cara mengintegrasikan dengan SSR di SvelteKit untuk SEO yang lebih baik.
66
+
67
+ **Pertimbangan**
68
+
69
+ - **Organisasi Proyek**: Anda perlu menyusun file terjemahan secara logis seiring pertumbuhan proyek.
70
+ - **Pengaturan SSR**: Mengonfigurasi SSR untuk SEO mungkin memerlukan langkah tambahan untuk memastikan deteksi locale yang benar di sisi server.
71
+ - **Performa**: Meskipun fleksibel saat runtime, memuat banyak terjemahan sekaligus dapat mempengaruhi waktu muat awal; pertimbangkan strategi lazy loading atau caching.
72
+
73
+ ---
74
+
75
+ ### 2. svelte-intl-precompile
76
+
77
+ Repository: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
78
+
79
+ **Ikhtisar**
80
+ **svelte-intl-precompile** menggunakan pendekatan prekompilasi untuk mengurangi beban saat runtime dan meningkatkan performa. Perpustakaan ini mengintegrasikan konsep pemformatan pesan (mirip dengan FormatJS) sambil menghasilkan pesan yang sudah dikompilasi sebelumnya pada saat build.
81
+
82
+ **Fitur Utama**
83
+
84
+ - **Pesan yang Dikompilasi Sebelumnya**: Dengan mengompilasi string terjemahan selama langkah build, performa runtime meningkat, dan ukuran bundle bisa lebih kecil.
85
+ - **Integrasi dengan SvelteKit**: Kompatibel dengan SSR, memungkinkan Anda menyajikan halaman yang sepenuhnya dilokalkan untuk SEO dan pengalaman pengguna yang lebih baik.
86
+ - **Ekstraksi Pesan**: Secara otomatis mengekstrak string dari kode Anda, mengurangi beban pembaruan manual.
87
+ - **Format Lanjutan**: Mendukung pluralisasi, terjemahan spesifik gender, dan interpolasi variabel.
88
+
89
+ **Pertimbangan**
90
+
91
+ - **Kompleksitas Build**: Menyiapkan prekompilasi mungkin menambah kompleksitas pada pipeline build Anda.
92
+ - **Konten Dinamis**: Jika Anda membutuhkan terjemahan langsung untuk konten yang dibuat pengguna, pendekatan ini mungkin memerlukan langkah tambahan untuk pembaruan saat runtime.
93
+ - **Kurva Pembelajaran**: Kombinasi ekstraksi pesan dan prekompilasi bisa sedikit lebih kompleks bagi pemula.
94
+
95
+ ---
96
+
97
+ ---
98
+
99
+ ### 3. i18next dengan Svelte / SvelteKit
100
+
101
+ Website: [https://www.i18next.com/](https://www.i18next.com/)
102
+
103
+ **Ikhtisar**
104
+ Meskipun **i18next** lebih umum dikaitkan dengan React atau Vue, juga memungkinkan untuk mengintegrasikannya dengan Svelte atau **SvelteKit**. Memanfaatkan ekosistem luas i18next bisa sangat membantu jika Anda membutuhkan i18n yang konsisten di berbagai framework JavaScript dalam organisasi Anda.
105
+
106
+ **Fitur Utama**
107
+
108
+ - **Ekosistem Matang**: Manfaatkan berbagai plugin, modul deteksi bahasa, dan dukungan komunitas yang luas.
109
+ - **Runtime atau Build-Time**: Pilih antara pemuatan dinamis atau pengemasan terjemahan Anda untuk startup yang sedikit lebih cepat.
110
+ - **Ramai SSR**: SvelteKit SSR dapat menyajikan konten yang dilokalkan dengan menggunakan i18next di sisi server, yang sangat baik untuk SEO.
111
+ - **Fitur Kaya**: Mendukung interpolasi, bentuk jamak, terjemahan bersarang, dan skenario i18n yang lebih kompleks.
112
+
113
+ **Pertimbangan**
114
+
115
+ - **Pengaturan Manual**: i18next tidak memiliki integrasi khusus untuk Svelte secara langsung, jadi Anda perlu mengonfigurasinya sendiri.
116
+ - **Beban Berlebih**: i18next sangat kuat, tetapi untuk proyek Svelte yang lebih kecil, beberapa fiturnya mungkin berlebihan.
117
+ - **Routing & State**: Penanganan routing bahasa kemungkinan akan melibatkan hooks atau middleware khusus SvelteKit.
118
+
119
+ ---
120
+
121
+ ### Pemikiran Akhir
122
+
123
+ Saat memilih strategi i18n untuk aplikasi Svelte Anda:
124
+
125
+ 1. **Menilai Skala Proyek**: Untuk proyek yang lebih kecil atau prototipe cepat, perpustakaan yang lebih sederhana seperti **svelte-i18n** atau pendekatan i18n minimal mungkin sudah cukup. Aplikasi yang lebih besar dan kompleks mungkin akan mendapatkan manfaat dari solusi yang bertipe, sudah dikompilasi sebelumnya, atau berbasis ekosistem yang lebih kuat.
126
+ 2. **Pertimbangan SSO & SSR**: Jika SEO sangat penting atau Anda membutuhkan rendering sisi server dengan **SvelteKit**, pilihlah perpustakaan yang mendukung SSR secara efektif dan dapat menangani rute yang dilokalkan, metadata, dan sitemap.
127
+ 3. **Runtime vs. Build-Time**: Tentukan apakah Anda memerlukan pergantian bahasa dinamis saat runtime atau lebih memilih terjemahan yang sudah dikompilasi sebelumnya untuk kinerja yang lebih baik. Setiap pendekatan memiliki kompromi yang berbeda.
128
+ 4. **Integrasi TypeScript**: Jika Anda sangat bergantung pada TypeScript, solusi seperti **Intlayer** atau perpustakaan dengan kunci bertipe dapat secara signifikan mengurangi kesalahan saat runtime dan meningkatkan pengalaman pengembang.
129
+ 5. **Pemeliharaan & Skalabilitas**: Rencanakan bagaimana Anda akan mengatur, memperbarui, dan memversioning file terjemahan Anda. Ekstraksi otomatis, konvensi penamaan, dan struktur folder yang konsisten akan menghemat waktu dalam jangka panjang.
130
+
131
+ Pada akhirnya, setiap perpustakaan menawarkan keunggulan unik. Pilihan Anda bergantung pada **kinerja**, **pengalaman pengembang**, **kebutuhan SEO**, dan **pemeliharaan jangka panjang**. Dengan memilih solusi yang sesuai dengan tujuan proyek Anda, Anda dapat menciptakan aplikasi Svelte yang benar-benar global dan memuaskan pengguna di seluruh dunia.
@@ -0,0 +1,130 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Alat Internasionalisasi (i18n) Terbaik untuk Vue
5
+ description: Temukan solusi i18n Vue teratas untuk mengatasi tantangan terjemahan, meningkatkan SEO, dan memberikan pengalaman web global yang mulus.
6
+ keywords:
7
+ - Vue
8
+ - i18n
9
+ - multibahasa
10
+ - SEO
11
+ - Internasionalisasi
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - vue
19
+ ---
20
+
21
+ # Menjelajahi Solusi i18n untuk Menerjemahkan Situs Web Vue.js Anda
22
+
23
+ Dalam lanskap digital yang semakin mengglobal, memperluas jangkauan situs web Vue.js Anda ke pengguna dalam berbagai bahasa bukan lagi sekadar "nilai tambah" tetapi menjadi kebutuhan kompetitif. Internasionalisasi (i18n) memungkinkan pengembang untuk mengelola terjemahan dan menyesuaikan aplikasi mereka untuk berbagai lokal sambil mempertahankan nilai SEO, pengalaman pengguna, dan struktur kode yang dapat dipelihara. Dalam artikel ini, kita akan menjelajahi berbagai pendekatan mulai dari pustaka khusus hingga solusi yang dikodekan secara kustom yang membantu Anda mengintegrasikan i18n ke dalam proyek Vue.js Anda dengan lancar.
24
+
25
+ ---
26
+
27
+ ![ilustrasi i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Apa itu Internasionalisasi (i18n)?
30
+
31
+ Internasionalisasi (i18n) adalah praktik mempersiapkan aplikasi perangkat lunak (atau situs web) untuk berbagai bahasa dan konvensi budaya. Dalam ekosistem Vue.js, ini mencakup penetapan bagaimana teks, tanggal, angka, mata uang, dan elemen lain yang dapat dilokalisasi dapat disesuaikan dengan berbagai lokal. Dengan mengatur i18n sejak awal, Anda memastikan struktur yang terorganisir dan skalabel untuk menambahkan bahasa baru serta menangani kebutuhan lokalisasi di masa depan.
32
+
33
+ Untuk mempelajari lebih lanjut tentang dasar-dasar i18n, lihat referensi kami: [Apa itu Internasionalisasi (i18n)? Definisi dan Tantangan](https://github.com/aymericzip/intlayer/blob/main/docs/blog/id/what_is_internationalization.md).
34
+
35
+ ---
36
+
37
+ ## Tantangan Terjemahan untuk Aplikasi Vue
38
+
39
+ Menerjemahkan aplikasi Vue.js membawa tantangan tersendiri:
40
+
41
+ - **Arsitektur Berbasis Komponen:** Mirip dengan React, komponen file tunggal (SFC) Vue mungkin masing-masing berisi teks dan pengaturan khusus lokal. Anda memerlukan strategi untuk memusatkan string terjemahan.
42
+ - **Konten Dinamis:** Data yang diambil dari API atau dimanipulasi secara real-time memerlukan pendekatan fleksibel untuk memuat dan menerapkan terjemahan secara langsung.
43
+ - **Pertimbangan SEO:** Dengan rendering sisi server melalui Nuxt atau pengaturan SSR lainnya, sangat penting untuk mengelola URL yang dilokalisasi, meta tag, dan sitemap agar SEO tetap kuat.
44
+ - **State dan Konteks Reaktif:** Memastikan bahwa lokal saat ini dipertahankan di seluruh rute dan komponen yang secara reaktif memperbarui teks dan format memerlukan pendekatan yang matang, terutama saat menggunakan Vuex atau Pinia untuk manajemen state.
45
+ - **Beban Pengembangan:** Menjaga file terjemahan tetap terorganisir, konsisten, dan terbaru dapat dengan cepat menjadi tugas besar jika tidak dikelola dengan hati-hati.
46
+
47
+ ---
48
+
49
+ ## Solusi i18n Terdepan untuk Vue.js
50
+
51
+ Berikut adalah beberapa pustaka dan pendekatan populer yang dapat Anda gunakan untuk mengintegrasikan internasionalisasi ke dalam aplikasi Vue Anda. Masing-masing bertujuan untuk menyederhanakan terjemahan, SEO, dan pertimbangan performa dengan cara yang berbeda.
52
+
53
+ ---
54
+
55
+ ### 1. Vue I18n
56
+
57
+ > Situs web: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
58
+
59
+ **Gambaran Umum**
60
+ **Vue I18n** adalah pustaka lokalisasi yang paling banyak digunakan dalam ekosistem Vue, menyediakan cara yang mudah dan kaya fitur untuk menangani terjemahan di proyek berbasis Vue 2, Vue 3, dan Nuxt.
61
+
62
+ **Fitur Utama**
63
+
64
+ - **Pengaturan Sederhana**
65
+ Konfigurasikan pesan lokal dengan cepat dan ganti locale menggunakan API yang terdokumentasi dengan baik.
66
+ - **Reaktivitas**
67
+ Perubahan locale langsung memperbarui teks di seluruh komponen berkat sistem reaktivitas Vue.
68
+ - **Pluralisasi & Format Tanggal/Angka**
69
+ Metode bawaan menangani kasus umum, termasuk bentuk jamak, format tanggal/waktu, format angka/mata uang, dan lainnya.
70
+ - **Dukungan Nuxt.js**
71
+ Modul Nuxt I18n memperluas Vue I18n untuk pembuatan rute otomatis, URL ramah SEO, dan sitemap untuk setiap locale.
72
+ - **Dukungan TypeScript**
73
+ Dapat diintegrasikan dengan aplikasi Vue berbasis TypeScript, meskipun autocompletion untuk kunci terjemahan mungkin memerlukan konfigurasi tambahan.
74
+ - **SSR & Pemisahan Kode**
75
+ Bekerja mulus dengan Nuxt untuk server-side rendering, dan mendukung code splitting untuk file terjemahan guna meningkatkan performa.
76
+
77
+ **Pertimbangan**
78
+
79
+ - **Beban Konfigurasi**
80
+ Proyek besar atau dengan banyak tim mungkin memerlukan struktur folder yang jelas dan konvensi penamaan untuk mengelola file terjemahan secara efisien.
81
+ - **Ekosistem Plugin**
82
+ Meskipun kuat, Anda mungkin perlu memilih dengan hati-hati dari beberapa plugin atau modul (Nuxt I18n, Vue I18n, dll.) untuk membangun setup yang sempurna.
83
+
84
+ ---
85
+
86
+ ### 2. LinguiJS (Integrasi Vue)
87
+
88
+ > Situs web: [https://lingui.js.org/](https://lingui.js.org/)
89
+
90
+ **Ikhtisar**
91
+ Awalnya dikenal untuk integrasi React, **LinguiJS** juga menawarkan plugin Vue yang fokus pada overhead runtime minimal dan alur kerja ekstraksi pesan otomatis.
92
+
93
+ **Fitur Utama**
94
+
95
+ - **Ekstraksi Pesan Otomatis**
96
+ Gunakan Lingui CLI untuk memindai kode Vue Anda untuk terjemahan, mengurangi entri manual ID pesan.
97
+ - **Kompak & Performa Tinggi**
98
+ Terjemahan yang dikompilasi menghasilkan jejak runtime yang lebih kecil, penting untuk aplikasi Vue dengan performa tinggi.
99
+ - **TypeScript & Autocompletion**
100
+ Meskipun konfigurasi sedikit lebih manual, ID dan katalog yang bertipe dapat meningkatkan pengalaman pengembang dalam proyek Vue berbasis TypeScript.
101
+ - **Kompatibilitas Nuxt & SSR**
102
+ Dapat diintegrasikan dengan setup SSR untuk menyajikan halaman yang sepenuhnya dilokalkan, meningkatkan SEO dan performa untuk setiap locale yang didukung.
103
+ - **Pluralisasi & Format**
104
+ Dukungan bawaan untuk plural, format angka, tanggal, dan lainnya yang sesuai dengan standar format pesan ICU.
105
+
106
+ **Pertimbangan**
107
+
108
+ - **Dokumentasi yang Kurang Spesifik untuk Vue**
109
+ Meskipun LinguiJS memiliki dukungan resmi untuk Vue, dokumentasinya terutama berfokus pada React; Anda mungkin perlu mengandalkan contoh dari komunitas.
110
+ - **Komunitas yang Lebih Kecil**
111
+ Dibandingkan dengan Vue I18n, ekosistemnya relatif lebih kecil. Plugin yang dikelola secara resmi dan add-on pihak ketiga bisa lebih terbatas.
112
+
113
+ ---
114
+
115
+ ## Pemikiran Akhir
116
+
117
+ Saat memilih solusi i18n untuk aplikasi Vue.js Anda:
118
+
119
+ 1. **Evaluasi Kebutuhan Anda**
120
+ Ukuran proyek, keterampilan pengembang, dan kompleksitas lokalisasi semuanya menjadi faktor dalam pilihan Anda.
121
+ 2. **Evaluasi Kompatibilitas SSR**
122
+ Jika Anda membangun aplikasi Nuxt atau bergantung pada SSR, pastikan pendekatan yang Anda pilih mendukung rendering server dengan lancar.
123
+ 3. **TypeScript & Autocompletion**
124
+ Jika Anda menghargai pengalaman pengembang yang kuat dengan kesalahan ketik kunci terjemahan yang minimal, pastikan solusi Anda menawarkan definisi bertipe atau dapat diintegrasikan dengan definisi tersebut.
125
+ 4. **Kemudahan Pengelolaan & Skalabilitas**
126
+ Saat Anda menambahkan lebih banyak locale atau memperluas aplikasi Anda, struktur file terjemahan yang terorganisir sangat penting.
127
+ 5. **SEO & Metadata**
128
+ Untuk situs multibahasa agar dapat peringkat dengan baik, solusi Anda harus mempermudah meta tag yang dilokalkan, URL, sitemap, dan `robots.txt` untuk setiap locale.
129
+
130
+ Tidak peduli jalur mana yang Anda pilih, Intlayer, Vue I18n, LinguiJS, atau pendekatan yang dikodekan khusus, Anda akan berada di jalur yang tepat untuk menghadirkan aplikasi Vue.js yang ramah global. Setiap solusi menawarkan kompromi yang berbeda terkait performa, pengalaman pengembang, dan skalabilitas. Dengan menilai kebutuhan proyek Anda secara cermat, Anda dapat dengan percaya diri memilih pengaturan i18n yang mempersiapkan Anda dan audiens multibahasa Anda untuk sukses.