@intlayer/docs 7.0.7 → 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: Najlepsze narzędzia do internacjonalizacji (i18n) dla React Native
5
+ description: Odkryj najlepsze rozwiązania i18n dla React Native, które pomogą w wyzwaniach tłumaczeniowych, zwiększą SEO i zapewnią płynne globalne doświadczenie w sieci.
6
+ keywords:
7
+ - React Native
8
+ - i18n
9
+ - wielojęzyczność
10
+ - SEO
11
+ - Internacjonalizacja
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - react-native
19
+ ---
20
+
21
+ # Eksploracja rozwiązań i18n do tłumaczenia Twojej aplikacji React Native
22
+
23
+ Na coraz bardziej globalnym rynku, dostarczanie aplikacji React Native w wielu językach może znacząco zwiększyć dostępność i satysfakcję użytkowników. Internacjonalizacja (i18n) jest kluczowa dla efektywnego zarządzania tłumaczeniami, pozwalając na wyświetlanie tekstów specyficznych dla danego języka, formatów daty i czasu, walut i innych elementów bez komplikowania bazy kodu. W tym artykule przyjrzymy się różnym podejściom do i18n, od dedykowanych bibliotek po bardziej ogólne rozwiązania, i pomożemy Ci znaleźć to, które najlepiej pasuje do Twojego projektu React Native.
24
+
25
+ ---
26
+
27
+ ![ilustracja i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Czym jest internacjonalizacja (i18n)?
30
+
31
+ Internacjonalizacja, czyli i18n, polega na takiej strukturze aplikacji, która umożliwia jej łatwe dostosowanie do różnych języków, formatów regionalnych i norm kulturowych. W React Native i18n obejmuje obsługę tekstów przycisków i etykiet, a także formatowanie dat, godzin, walut i innych elementów zgodnie z lokalizacją użytkownika. Odpowiednio przygotowane aplikacje React Native pozwalają na bezproblemową integrację dodatkowych języków i zachowań specyficznych dla danej lokalizacji bez konieczności przeprowadzania dużych refaktoryzacji.
32
+
33
+ Aby zgłębić koncepcje internacjonalizacji, zapoznaj się z naszym artykułem:
34
+ [Co to jest internacjonalizacja (i18n)? Definicja i wyzwania](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/what_is_internationalization.md).
35
+
36
+ ---
37
+
38
+ ## Wyzwania związane z tłumaczeniami w aplikacjach React Native
39
+
40
+ Praca z tłumaczeniami w React Native wiąże się z unikalnymi wyzwaniami:
41
+
42
+ - **Architektura oparta na komponentach**
43
+ Podobnie jak w React dla sieci, modularna budowa React Native może rozpraszać teksty po wielu komponentach. Kluczowe jest centralne zarządzanie tymi tłumaczeniami w solidny sposób.
44
+
45
+ - **Dane offline i zdalne**
46
+ Podczas gdy niektóre teksty mogą być osadzone bezpośrednio w aplikacji, inne treści (np. kanały informacyjne, dane produktów) mogą być pobierane zdalnie. Obsługa tłumaczeń dla danych przychodzących asynchronicznie może być bardziej skomplikowana na urządzeniach mobilnych.
47
+
48
+ - **Zachowania specyficzne dla platformy**
49
+ iOS i Android mają własne ustawienia lokalizacji i specyficzne formatowanie. Zapewnienie spójnego wyświetlania dat, walut i liczb na obu platformach wymaga dokładnych testów.
50
+
51
+ - **Zarządzanie stanem i nawigacją**
52
+ Utrzymanie wybranego przez użytkownika języka na różnych ekranach, w deep linkach lub nawigacji opartej na zakładkach oznacza integrację i18n z Redux, Context API lub innym rozwiązaniem do zarządzania stanem.
53
+
54
+ - **Aktualizacje aplikacji i Over-the-Air (OTA)**
55
+ Jeśli korzystasz z CodePush lub innego mechanizmu aktualizacji OTA, musisz zaplanować, jak aktualizacje tłumaczeń lub nowe języki będą dostarczane bez konieczności pełnego wydania w sklepie z aplikacjami.
56
+
57
+ ---
58
+
59
+ ## Wiodące rozwiązania i18n dla React Native
60
+
61
+ Poniżej przedstawiono kilka popularnych podejść do zarządzania treściami wielojęzycznymi w React Native. Każde z nich ma na celu uproszczenie Twojego workflow tłumaczeniowego na różne sposoby.
62
+
63
+ ### 1. Intlayer
64
+
65
+ > Strona internetowa: [https://intlayer.org/](https://intlayer.org/)
66
+
67
+ **Przegląd**
68
+ **Intlayer** to innowacyjna, open-source'owa biblioteka do internacjonalizacji, zaprojektowana w celu usprawnienia wsparcia wielojęzyczności w nowoczesnych aplikacjach JavaScript, w tym React Native. Oferuje deklaratywne podejście do tłumaczeń, pozwalając definiować słowniki bezpośrednio obok komponentów.
69
+
70
+ **Kluczowe funkcje**
71
+
72
+ - **Deklaracja tłumaczeń**
73
+ Przechowuj tłumaczenia w jednym pliku lub na poziomie komponentu, co ułatwia lokalizację i modyfikację tekstu.
74
+
75
+ - **TypeScript i autouzupełnianie**
76
+ Automatycznie generuje definicje typów dla kluczy tłumaczeń, zapewniając przyjazne dla programisty autouzupełnianie oraz solidną kontrolę błędów.
77
+
78
+ - **Lekka i elastyczna**
79
+ Działa płynnie w środowiskach React Native, bez zbędnego obciążenia. Łatwa do integracji i utrzymania wydajności na urządzeniach mobilnych.
80
+
81
+ - **Uwzględnienie specyfiki platformy**
82
+ Możesz dostosować lub rozdzielić ciągi znaków specyficzne dla platform iOS i Android, jeśli zajdzie taka potrzeba.
83
+
84
+ - **Ładowanie asynchroniczne**
85
+ Dynamiczne ładowanie słowników tłumaczeń, co może być przydatne w dużych aplikacjach lub przy stopniowym wprowadzaniu nowych języków.
86
+
87
+ **Uwagi**
88
+
89
+ - **Społeczność i ekosystem**
90
+ Wciąż stosunkowo nowe rozwiązanie, więc możesz napotkać mniej przykładów tworzonych przez społeczność lub gotowych wtyczek w porównaniu do długo istniejących bibliotek.
91
+
92
+ ---
93
+
94
+ ### 2. React-i18next
95
+
96
+ > Strona: [https://react.i18next.com/](https://react.i18next.com/)
97
+
98
+ **Przegląd**
99
+ **React-i18next** opiera się na popularnym frameworku **i18next**, oferując elastyczną architekturę opartą na wtyczkach oraz bogaty zestaw funkcji. Jest szeroko stosowany również w aplikacjach React Native, dzięki dobrze udokumentowanemu procesowi konfiguracji.
100
+
101
+ **Kluczowe funkcje**
102
+
103
+ - **Płynna integracja z React Native**
104
+ Udostępnia hooki (`useTranslation`), komponenty wyższego rzędu (HOCs) i inne narzędzia do bezproblemowej integracji i18n z Twoimi komponentami.
105
+
106
+ - **Ładowanie asynchroniczne**
107
+ Ładuj tłumaczenia na żądanie, co jest korzystne w przypadku dużych aplikacji lub dodawania nowych pakietów językowych w czasie.
108
+
109
+ - **Bogate możliwości tłumaczeń**
110
+ Obsługuje zagnieżdżone tłumaczenia, interpolację, pluralizację oraz zamianę zmiennych od razu po wyjęciu z pudełka.
111
+
112
+ - **TypeScript i autouzupełnianie**
113
+ React-i18next obsługuje typowane klucze tłumaczeń, choć początkowa konfiguracja może być bardziej manualna w porównaniu do rozwiązań, które automatycznie generują typy.
114
+
115
+ - **Niezależność od platformy**
116
+ i18next nie jest powiązany wyłącznie z webem czy mobile, więc ta sama biblioteka może być używana w różnych typach projektów (np. jeśli dzielisz kod między web a native).
117
+
118
+ **Uwagi**
119
+
120
+ - **Złożoność konfiguracji**
121
+ Konfiguracja i18n z zaawansowanymi funkcjami (formy mnogie, zapasowe lokalizacje itp.) może wymagać starannego ustawienia.
122
+
123
+ - **Wydajność**
124
+ Chociaż React-i18next generalnie działa dobrze, warto zwrócić uwagę na sposób organizacji i ładowania zasobów tłumaczeń, aby uniknąć nadmiernego obciążenia na urządzeniach mobilnych.
125
+
126
+ ---
127
+
128
+ ### 3. React Intl (z FormatJS)
129
+
130
+ > Strona internetowa: [https://formatjs.io/docs/react-intl/](https://formatjs.io/docs/react-intl/)
131
+
132
+ **Przegląd**
133
+ **React Intl**, będący częścią ekosystemu **FormatJS**, jest zbudowany wokół standaryzacji formatowania komunikatów dla różnych lokalizacji. Kładzie nacisk na proces ekstrakcji komunikatów i jest szczególnie silny w poprawnym formatowaniu dat, liczb i czasu dla szerokiego zakresu lokalizacji.
134
+
135
+ **Kluczowe funkcje**
136
+
137
+ - **Komponenty skoncentrowane na formatowaniu**
138
+ `<FormattedMessage>`, `<FormattedDate>`, `<FormattedTime>` i inne usprawniają zadania formatowania na platformach iOS i Android.
139
+
140
+ - **Lekki i rozszerzalny**
141
+ Możesz importować tylko te części FormatJS, których potrzebujesz, utrzymując swój pakiet ogólnie lekki, co jest kluczowe dla urządzeń mobilnych.
142
+
143
+ - **Polyfille dla nieobsługiwanych lokalizacji**
144
+ Zapewnia spójne formatowanie dat i liczb na starszych wersjach Androida lub iOS.
145
+
146
+ - **Kompatybilność z TypeScript**
147
+ Integruje się z TypeScript, choć możesz potrzebować dodatkowych narzędzi, aby uzyskać w pełni typowane identyfikatory wiadomości.
148
+
149
+ **Uwagi**
150
+
151
+ - **Ekstrakcja wiadomości**
152
+ Wymaga procesu ekstrakcji, co może zwiększyć złożoność procesu budowania. Jednak jest to potężne rozwiązanie dla dużych zespołów zarządzających wieloma tłumaczeniami.
153
+
154
+ - **Rozmiar aplikacji i wdrożenia**
155
+ Jeśli polegasz na wielu polyfillach lub dużych plikach tłumaczeń, zwróć uwagę na całkowity rozmiar aplikacji, co jest szczególnie ważne w kontekście mobilnym.
156
+
157
+ - **Przykłady społeczności**
158
+ Mimo szerokiego zastosowania, przykłady użycia specyficzne dla React Native mogą być rzadsze niż dla React web. Prawdopodobnie będziesz musiał dostosować istniejącą dokumentację i wzorce do środowiska natywnego.
159
+
160
+ ---
161
+
162
+ ### 4. LinguiJS
163
+
164
+ > Strona internetowa: [https://lingui.js.org/](https://lingui.js.org/)
165
+
166
+ **Przegląd**
167
+ **LinguiJS** oferuje nowoczesne, przyjazne dla programistów podejście do i18n dla JavaScript i React (w tym React Native). Dzięki ekstrakcji i kompilacji wiadomości opartej na CLI, skupia się na minimalizowaniu narzutu w czasie wykonywania.
168
+
169
+ **Kluczowe funkcje**
170
+
171
+ - **Automatyczna ekstrakcja wiadomości**
172
+ Przeszukuje Twój kod w poszukiwaniu ciągów do tłumaczenia, zmniejszając ryzyko pominięcia lub nieużywania wiadomości.
173
+
174
+ - **Minimalny narzut w czasie wykonywania**
175
+ Skompilowane tłumaczenia utrzymują wydajność aplikacji i są dobrze zoptymalizowane pod kątem urządzeń mobilnych.
176
+
177
+ - **TypeScript i autouzupełnianie**
178
+ Przy odpowiedniej konfiguracji otrzymasz typowane identyfikatory tłumaczeń, co sprawia, że praca programisty jest bezpieczniejsza i bardziej intuicyjna.
179
+
180
+ - **Integracja z React Native**
181
+ Łatwy do zainstalowania i powiązania w środowisku React Native; można również obsługiwać tłumaczenia specyficzne dla platformy, jeśli zajdzie taka potrzeba.
182
+
183
+ **Uwagi**
184
+
185
+ - **Początkowa konfiguracja CLI**
186
+ Wymagane są dodatkowe kroki, aby skonfigurować proces ekstrakcji i kompilacji dla projektów React Native.
187
+
188
+ - **Społeczność i wtyczki**
189
+ Ekosystem biblioteki jest mniejszy niż i18next, ale szybko się rozwija, a podstawowe narzędzia CLI są solidne.
190
+
191
+ - **Organizacja kodu**
192
+ Decyzja, jak podzielić katalogi wiadomości (według ekranu, funkcji lub języka), jest kluczowa dla utrzymania przejrzystości w większych aplikacjach.
193
+
194
+ ---
195
+
196
+ ## Ostateczne przemyślenia
197
+
198
+ Wybierając rozwiązanie i18n dla swojej aplikacji React Native:
199
+
200
+ 1. **Oceń swoje wymagania**
201
+ - Ile języków jest potrzebnych teraz i w przyszłości?
202
+ - Czy potrzebujesz ładowania na żądanie dla dużych aplikacji?
203
+
204
+ 2. **Zwróć uwagę na różnice między platformami**
205
+ - Upewnij się, że każda biblioteka obsługuje warianty lokalizacji iOS i Android, zwłaszcza niuanse dotyczące dat, liczb i walut.
206
+ - Weź pod uwagę tryb offline — niektóre tłumaczenia mogą wymagać dołączenia do aplikacji, podczas gdy inne mogą być pobierane zdalnie.
207
+
208
+ 3. **Wybierz strukturę dla skalowalności**
209
+ - Jeśli planujesz dużą lub długotrwałą aplikację, silny workflow ekstrakcji lub typowane klucze mogą pomóc utrzymać tłumaczenia w dobrej organizacji.
210
+
211
+ 4. **Wydajność i rozmiar pakietu**
212
+ - Ograniczenia danych mobilnych oznaczają, że powinieneś uważnie kontrolować rozmiar plików tłumaczeń i wszelkich polyfilli.
213
+
214
+ 5. **Doświadczenie dewelopera (DX)**
215
+ - Szukaj bibliotek, które odpowiadają umiejętnościom Twojego zespołu — niektóre rozwiązania są bardziej rozbudowane, ale proste w użyciu, podczas gdy inne oferują więcej automatyzacji kosztem złożoności konfiguracji.
216
+
217
+ Każde z rozwiązań: Intlayer, React-i18next, React Intl oraz LinguiJS, okazało się skuteczne w środowiskach React Native, choć z nieco różnymi priorytetami. Ocena harmonogramu projektu, preferencji deweloperów oraz potrzeb lokalizacyjnych pomoże wybrać idealne rozwiązanie do stworzenia naprawdę globalnej aplikacji React Native.
@@ -0,0 +1,155 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Najlepsze narzędzia do internacjonalizacji (i18n) dla React
5
+ description: Odkryj najlepsze rozwiązania i18n dla React, które pomogą rozwiązać problemy z tłumaczeniami, poprawić SEO i zapewnić płynne globalne doświadczenie w sieci.
6
+ keywords:
7
+ - React
8
+ - i18n
9
+ - wielojęzyczność
10
+ - SEO
11
+ - Internacjonalizacja
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - react
19
+ ---
20
+
21
+ # Eksploracja rozwiązań i18n do tłumaczenia Twojej strony React
22
+
23
+ W dzisiejszym cyfrowym świecie rozszerzenie zasięgu swojej strony internetowej, aby dotrzeć do globalnej publiczności, jest niezbędne. Dla deweloperów tworzących w React, wdrożenie internacjonalizacji (i18n) jest kluczem do efektywnego zarządzania tłumaczeniami przy jednoczesnym zachowaniu struktury aplikacji, wartości SEO oraz doświadczenia użytkownika. W tym artykule przyglądamy się różnym podejściom do i18n — od dedykowanych bibliotek po rozwiązania kodowane na zamówienie — które pomogą Ci zdecydować, które najlepiej odpowiada potrzebom Twojego projektu.
24
+
25
+ ---
26
+
27
+ ![ilustracja i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Czym jest internacjonalizacja (i18n)?
30
+
31
+ Internacjonalizacja, w skrócie i18n, to proces projektowania i przygotowywania Twojej strony internetowej do obsługi wielu języków i kontekstów kulturowych. W React oznacza to skonfigurowanie aplikacji tak, aby teksty, formaty dat, formaty liczb, a nawet układ mogły być łatwo dostosowywane dla użytkowników z różnych regionów. Przygotowanie aplikacji React do i18n stanowi podstawę do czystej integracji tłumaczeń i innych funkcji lokalizacyjnych.
32
+
33
+ Dowiedz się więcej o i18n, czytając nasz artykuł: [Czym jest internacjonalizacja (i18n)? Definicja i wyzwania](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/what_is_internationalization.md).
34
+
35
+ ---
36
+
37
+ ## Wyzwania związane z tłumaczeniem aplikacji React
38
+
39
+ Tłumaczenie strony React wiąże się z kilkoma wyzwaniami:
40
+
41
+ - **Architektura oparta na komponentach:** Modularna konstrukcja Reacta oznacza, że tekst może być rozproszony w wielu komponentach, co sprawia, że kluczowe jest centralizowanie i organizowanie ciągów tłumaczeń.
42
+ - **Dynamiczna zawartość:** Zarządzanie tłumaczeniami dla treści aktualizowanych w czasie rzeczywistym lub pobieranych z API może wprowadzać dodatkową warstwę złożoności.
43
+ - **Aspekty SEO:** W przypadku aplikacji React renderowanych po stronie serwera (z użyciem frameworków takich jak Next.js), zapewnienie, że tłumaczenia pozytywnie wpływają na SEO, wymaga zarządzania lokalizowanymi URL-ami, metadanymi i mapami witryn.
44
+ - **Zarządzanie stanem i kontekstem:** Zapewnienie utrzymania właściwego języka na trasach i w komponentach wymaga przemyślanego zarządzania stanem.
45
+ - **Nakład pracy przy rozwoju:** Utrzymanie plików tłumaczeń, zapewnienie dokładności kontekstu oraz skalowalności aplikacji to ciągłe wyzwania.
46
+
47
+ ---
48
+
49
+ ## Wiodące rozwiązania i18n dla React
50
+
51
+ Poniżej przedstawiono kilka popularnych podejść do zarządzania treściami wielojęzycznymi w aplikacjach React, z których każde ma na celu usprawnienie procesu tłumaczenia na różne sposoby.
52
+
53
+ ### 1. Intlayer
54
+
55
+ > Strona internetowa: [https://intlayer.org/](https://intlayer.org/)
56
+
57
+ **Przegląd**
58
+ **Intlayer** to innowacyjna, otwartoźródłowa biblioteka do internacjonalizacji (i18n), zaprojektowana, aby uprościć wsparcie wielojęzyczne w nowoczesnych aplikacjach webowych React (i innych). Oferuje podejście deklaratywne, pozwalające definiować słowniki tłumaczeń bezpośrednio w komponentach.
59
+
60
+ **Kluczowe funkcje**
61
+
62
+ - **Deklaracja tłumaczeń**: Umożliwia deklarację wszystkich tłumaczeń w jednym pliku, umieszczonym na poziomie komponentu, co ułatwia utrzymanie i skalowanie.
63
+ - **TypeScript i autouzupełnianie**: Oferuje automatycznie generowane definicje typów dla kluczy tłumaczeń, zapewniając solidne autouzupełnianie i wykrywanie błędów.
64
+ - **Komponenty serwerowe i SSR**: Zaprojektowany z myślą o renderowaniu po stronie serwera (SSR) oraz komponentach serwerowych, co gwarantuje efektywne renderowanie zlokalizowanych treści zarówno po stronie klienta, jak i serwera.
65
+ - **Zlokalizowane metadane i adresy URL dla SEO**: Łatwo obsługuje dynamiczne trasy oparte na lokalizacji, mapy witryn oraz wpisy w robots.txt, poprawiając widoczność i SEO.
66
+ - **Bezproblemowa integracja**: Kompatybilny z głównymi bundlerami i frameworkami takimi jak Create React App, Next.js oraz Vite, co ułatwia konfigurację.
67
+ - **Ładowanie asynchroniczne**: Dynamiczne ładowanie słowników tłumaczeń, zmniejszając początkowy rozmiar paczki i poprawiając wydajność.
68
+
69
+ **Uwagi**
70
+
71
+ - **Społeczność i ekosystem**: Choć rosnący, ekosystem jest stosunkowo nowy, więc wtyczki i narzędzia tworzone przez społeczność mogą być bardziej ograniczone w porównaniu do bardziej dojrzałych rozwiązań.
72
+
73
+ ---
74
+
75
+ ### 2. React-i18next
76
+
77
+ Strona: [https://react.i18next.com/](https://react.i18next.com/)
78
+
79
+ **Przegląd**
80
+ **React-i18next** jest jedną z najczęściej używanych bibliotek React do internacjonalizacji, zbudowaną na bazie popularnego frameworka **i18next**. Zapewnia elastyczną architekturę opartą na wtyczkach, umożliwiającą obsługę złożonych scenariuszy tłumaczeń.
81
+
82
+ **Kluczowe funkcje**
83
+
84
+ - **Bezproblemowa integracja z React**: Działa z hookami React, komponentami wyższego rzędu (HOCs) oraz render props, zapewniając maksymalną elastyczność.
85
+ - **Ładowanie asynchroniczne**: Dynamiczne ładowanie zasobów tłumaczeń, co zmniejsza początkowy rozmiar bundla i poprawia wydajność.
86
+ - **Bogate możliwości tłumaczeń**: Obsługuje zagnieżdżone tłumaczenia, liczby mnogie, interpolację i inne.
87
+ - **TypeScript i autouzupełnianie**: Dzięki dodatkowej konfiguracji można korzystać z typowanych kluczy tłumaczeń, choć konfiguracja może być bardziej manualna.
88
+ - **Zlokalizowane metadane i adresy URL**: Może być zintegrowany z Next.js w celu obsługi zlokalizowanych tras, map witryn i plików robots.txt, co poprawia SEO.
89
+ - **Komponenty serwera i SSR**: Dzięki Next.js lub innym konfiguracjom SSR możesz serwować w pełni zlokalizowane treści bezpośrednio z serwera.
90
+
91
+ **Uwagi**
92
+
93
+ - **Utrzymanie**: Konfiguracja może stać się skomplikowana, zwłaszcza w dużych projektach lub zespołach wieloosobowych; niezbędne jest staranne strukturyzowanie plików tłumaczeń.
94
+ - **Ekosystem wtyczek**: Dostępny jest szeroki ekosystem wtyczek i middleware, co oznacza, że trzeba przesiać różne pakiety, aby znaleźć odpowiednie narzędzia.
95
+ - **Komponenty serwera**: Wymaga dodatkowej konfiguracji, aby komponenty serwera poprawnie obsługiwały odpowiednie lokalizacje, zwłaszcza jeśli używasz frameworków innych niż Next.js.
96
+
97
+ ---
98
+
99
+ ### 3. React Intl (z FormatJS)
100
+
101
+ Website: [https://formatjs.io/docs/react-intl/](https://formatjs.io/docs/react-intl/)
102
+
103
+ **Przegląd**
104
+ **React Intl**, będący częścią pakietu **FormatJS**, koncentruje się na standaryzacji formatowania wiadomości, lokalizacji dat/liczb/czasu oraz komunikatów o czasie względnym. Wykorzystuje proces ekstrakcji wiadomości, aby efektywnie zarządzać tłumaczeniami.
105
+
106
+ **Kluczowe funkcje**
107
+
108
+ - **Komponenty skoncentrowane na formatowaniu**: `<FormattedMessage>`, `<FormattedDate>`, `<FormattedTime>` i inne, które upraszczają formatowanie w React.
109
+ - **Komponenty serwera i SSR**: Oferuje wsparcie dla konfiguracji SSR, dzięki czemu można serwować zlokalizowane treści dla lepszej wydajności i SEO.
110
+ - **Zlokalizowane metadane i adresy URL**: Może integrować się z frameworkami takimi jak Next.js w celu generowania zlokalizowanych map witryn, obsługi dynamicznych tras oraz dostosowywania plików robots.txt.
111
+ - **TypeScript i autouzupełnianie**: Może być łączony z TypeScript, ale może wymagać dodatkowych narzędzi do autouzupełniania identyfikatorów wiadomości.
112
+ - **Polyfille dla nieobsługiwanych przeglądarek**: Zapewnia spójne działanie w starszych środowiskach.
113
+
114
+ **Uwagi**
115
+
116
+ - **Rozbudowanie i boilerplate**: Poleganie na dedykowanych komponentach może prowadzić do bardziej rozbudowanego kodu, szczególnie w dużych aplikacjach.
117
+ - **Podział tłumaczeń**: Główna biblioteka nie oferuje wbudowanego wsparcia dla podziału tłumaczeń na wiele plików, co wymaga dodatkowej konfiguracji lub wtyczek.
118
+ - **Utrzymanie**: Proste podejście do formatowania może być korzystne, ale ekstrakcja wiadomości i organizacja mogą szybko się rozrosnąć.
119
+
120
+ ### 4. LinguiJS
121
+
122
+ Strona: [https://lingui.js.org/](https://lingui.js.org/)
123
+
124
+ **Przegląd:**
125
+
126
+ **Przegląd**
127
+ **LinguiJS** oferuje nowoczesne, przyjazne dla programistów podejście do zarządzania i18n w JavaScript i React. Skupia się na redukcji konfiguracji, jednocześnie zapewniając solidne CLI oraz proces ekstrakcji wiadomości.
128
+
129
+ **Kluczowe funkcje**
130
+
131
+ - **Automatyczna ekstrakcja wiadomości**: Dedykowane CLI, które wykrywa i wyciąga wiadomości z Twojego kodu, minimalizując ręczne kroki.
132
+ - **Minimalne obciążenie w czasie wykonywania**: Kompilowane tłumaczenia zmniejszają rozmiar paczki i koszty wydajności podczas działania.
133
+ - **TypeScript i autouzupełnianie**: Obsługuje typowane ID, jeśli odpowiednio skonfigurujesz katalogi tłumaczeń, poprawiając doświadczenie programisty.
134
+ - **Komponenty serwerowe i SSR**: Kompatybilne ze strategiami renderowania po stronie serwera; może być zintegrowane z Next.js lub innymi frameworkami SSR.
135
+ - **Zlokalizowane metadane i adresy URL**: Chociaż nie jest to tak wyraźne jak w niektórych innych bibliotekach, można ją zintegrować z konfiguracją routingu, aby obsługiwać mapy witryn, robots.txt oraz zlokalizowane ścieżki.
136
+
137
+ **Uwagi**
138
+
139
+ - **Utrzymanie**: Automatyczne wyodrębnianie pomaga utrzymać czystość kodu, ale strukturyzacja wielu plików tłumaczeń dla dużych aplikacji wymaga zdyscyplinowanej organizacji.
140
+ - **Społeczność i wtyczki**: Ekosystem się rozwija, ale jest nadal mniejszy w porównaniu do i18next czy FormatJS.
141
+ - **Komponenty serwerowe**: Może wymagać bardziej wyraźnej konfiguracji, aby zapewnić, że komponenty serwerowe otrzymują poprawne dane lokalizacyjne.
142
+
143
+ ---
144
+
145
+ ### Ostateczne przemyślenia
146
+
147
+ Wybierając bibliotekę i18n dla React:
148
+
149
+ - **Oceń swoje wymagania**: Weź pod uwagę wielkość projektu, doświadczenie dewelopera oraz sposób, w jaki planujesz obsługiwać tłumaczenia (ręcznie vs. automatyczne wyodrębnianie).
150
+ - **Sprawdź kompatybilność z serwerem**: Jeśli polegasz na SSR lub komponentach serwerowych (szczególnie w Next.js), upewnij się, że wybrana biblioteka obsługuje to bezproblemowo.
151
+ - **TypeScript i autouzupełnianie**: Jeśli TypeScript jest priorytetem, wybierz bibliotekę, która łatwo integruje się z typowanymi kluczami i zapewnia solidne narzędzia dla deweloperów.
152
+ - **Utrzymanie i skalowalność**: Większe projekty często potrzebują jasnej, łatwej do utrzymania struktury tłumaczeń, dlatego uwzględnij to w swojej długoterminowej strategii.
153
+ - **SEO i metadane**: Jeśli SEO jest kluczowe, potwierdź, że wybrane rozwiązanie wspiera lokalizowane metadane, ścieżki oraz mapy witryn/robots dla każdego języka.
154
+
155
+ Wszystkie te biblioteki mogą zasilać wielojęzyczną aplikację React, z różnymi priorytetami i mocnymi stronami. Wybierz tę, która najbardziej odpowiada **wydajności**, **doświadczeniu dewelopera (DX)** oraz **celom biznesowym** Twojego projektu.
@@ -0,0 +1,131 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Najlepsze narzędzia do internacjonalizacji (i18n) dla Svelte
5
+ description: Odkryj najlepsze rozwiązania i18n dla Svelte, które pomogą rozwiązać problemy z tłumaczeniami, poprawić SEO i zapewnić płynne globalne doświadczenie w sieci.
6
+ keywords:
7
+ - Svelte
8
+ - i18n
9
+ - wielojęzyczność
10
+ - SEO
11
+ - Internacjonalizacja
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - svelte
19
+ ---
20
+
21
+ # Eksploracja rozwiązań i18n do tłumaczenia Twojej strony Svelte
22
+
23
+ W miarę jak sieć nadal łączy ludzi na całym świecie, dostarczanie treści w wielu językach staje się coraz ważniejsze. Dla deweloperów pracujących z **Svelte**, wdrożenie i18n jest niezbędne do efektywnego zarządzania tłumaczeniami, utrzymania czystego kodu oraz zachowania dobrych praktyk SEO. W tym artykule zagłębiamy się w różne rozwiązania i przepływy pracy i18n dla Svelte, pomagając Ci wybrać to, które najlepiej odpowiada potrzebom Twojego projektu.
24
+
25
+ ---
26
+
27
+ ![ilustracja i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Czym jest internacjonalizacja (i18n)?
30
+
31
+ Internacjonalizacja, powszechnie skracana do i18n, to proces projektowania i budowania aplikacji w taki sposób, aby mogła ona łatwo dostosowywać się do różnych języków, regionów i konwencji kulturowych. W Svelte zazwyczaj oznacza to konfigurację łańcuchów tłumaczeń, lokalizację dat, godzin i liczb oraz zapewnienie, że interfejs użytkownika może dynamicznie przełączać się między różnymi lokalizacjami bez konieczności dużych zmian w kodzie.
32
+
33
+ Aby dowiedzieć się więcej o podstawach i18n, przeczytaj nasz artykuł: [Czym jest internacjonalizacja (i18n)? Definicja i wyzwania](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/what_is_internationalization.md).
34
+
35
+ ---
36
+
37
+ ## Wyzwania związane z tłumaczeniem aplikacji Svelte
38
+
39
+ Tłumaczenie aplikacji Svelte może napotkać na kilka przeszkód:
40
+
41
+ - **Komponenty w pojedynczym pliku**: Podejście Svelte polegające na umieszczaniu HTML, CSS i JavaScript w jednym pliku sprawia, że tekst może się rozproszyć, co wymaga strategii centralizacji tłumaczeń.
42
+ - **Dynamiczna zawartość**: Dane pobierane z API lub wprowadzane przez użytkownika zwiększają złożoność zapewnienia tłumaczenia treści w czasie rzeczywistym.
43
+ - **Aspekty SEO**: Jeśli używasz **SvelteKit** do renderowania po stronie serwera (SSR), konfiguracja lokalizowanych adresów URL, meta tagów i map witryn dla skutecznego SEO wymaga dodatkowej uwagi.
44
+ - **Stan i routing**: Utrzymanie właściwego języka na wielu trasach i dynamicznych stronach często wymaga zarządzania globalnym stanem, ochroną tras lub niestandardowymi hookami w SvelteKit.
45
+ - **Utrzymanie**: W miarę rozrastania się bazy kodu i plików tłumaczeń, utrzymanie wszystkiego w dobrej organizacji i synchronizacji staje się ciągłym wyzwaniem.
46
+
47
+ ---
48
+
49
+ ## Wiodące rozwiązania i18n dla Svelte
50
+
51
+ Svelte nie oferuje natywnego, wbudowanego rozwiązania i18n (jak Angular), ale społeczność stworzyła wiele solidnych bibliotek i wzorców. Poniżej przedstawiono kilka popularnych podejść.
52
+
53
+ ### 1. svelte-i18n
54
+
55
+ Repozytorium: [https://github.com/kaisermann/svelte-i18n](https://github.com/kaisermann/svelte-i18n)
56
+
57
+ **Przegląd**
58
+ **svelte-i18n** to jedna z najczęściej stosowanych bibliotek do dodawania internacjonalizacji w aplikacjach Svelte. Pozwala dynamicznie ładować i przełączać się między lokalizacjami w czasie działania oraz zawiera pomocniki do obsługi liczby mnogiej, interpolacji i innych funkcji.
59
+
60
+ **Kluczowe cechy**
61
+
62
+ - **Tłumaczenia w czasie wykonywania**: Ładuj pliki tłumaczeń na żądanie, co pozwala na zmianę języków bez konieczności przebudowywania aplikacji.
63
+ - **Pluralizacja i interpolacja**: Oferuje prostą składnię do obsługi form liczby mnogiej oraz wstawiania zmiennych w tłumaczeniach.
64
+ - **Lazy Loading**: Pobieraj tylko potrzebne pliki tłumaczeń, optymalizując wydajność w większych aplikacjach lub przy wielu językach.
65
+ - **Wsparcie dla SvelteKit**: Dobrze udokumentowane przykłady pokazują, jak zintegrować się z SSR w SvelteKit dla lepszego SEO.
66
+
67
+ **Uwagi**
68
+
69
+ - **Organizacja projektu**: W miarę rozwoju projektu konieczne będzie logiczne uporządkowanie plików tłumaczeń.
70
+ - **Konfiguracja SSR**: Konfiguracja SSR pod kątem SEO może wymagać dodatkowych kroków, aby zapewnić prawidłowe wykrywanie lokalizacji po stronie serwera.
71
+ - **Wydajność**: Choć elastyczne w czasie wykonywania, załadowanie dużej liczby tłumaczeń naraz może wpłynąć na czas początkowego ładowania; rozważ zastosowanie lazy loadingu lub strategii cache'owania.
72
+
73
+ ---
74
+
75
+ ### 2. svelte-intl-precompile
76
+
77
+ Repozytorium: [https://github.com/cibernox/svelte-intl-precompile](https://github.com/cibernox/svelte-intl-precompile)
78
+
79
+ **Przegląd**
80
+ **svelte-intl-precompile** wykorzystuje podejście prekompilacji, aby zmniejszyć obciążenie w czasie wykonywania i poprawić wydajność. Ta biblioteka integruje koncepcję formatowania wiadomości (podobnie jak FormatJS), generując prekompilowane wiadomości podczas procesu budowania.
81
+
82
+ **Kluczowe cechy**
83
+
84
+ - **Prekompilowane wiadomości**: Poprzez kompilację ciągów tłumaczeń podczas kroku budowania, poprawia się wydajność w czasie wykonywania, a rozmiar paczki może być mniejszy.
85
+ - **Integracja z SvelteKit**: Kompatybilne z SSR, co pozwala na serwowanie w pełni zlokalizowanych stron dla lepszego SEO i doświadczenia użytkownika.
86
+ - **Ekstrakcja wiadomości**: Automatyczne wyodrębnianie ciągów znaków z twojego kodu, co zmniejsza nakład pracy związany z ręcznymi aktualizacjami.
87
+ - **Zaawansowane formatowanie**: Obsługuje pluralizację, tłumaczenia specyficzne dla płci oraz interpolację zmiennych.
88
+
89
+ **Uwagi**
90
+
91
+ - **Złożoność budowania**: Konfiguracja prekompilacji może wprowadzić dodatkową złożoność do twojego procesu budowania.
92
+ - **Dynamiczna zawartość**: Jeśli potrzebujesz tłumaczeń na bieżąco dla treści generowanych przez użytkowników, to podejście może wymagać dodatkowych kroków aktualizacji w czasie wykonywania.
93
+ - **Krzywa uczenia się**: Połączenie ekstrakcji wiadomości i prekompilacji może być nieco bardziej skomplikowane dla początkujących.
94
+
95
+ ---
96
+
97
+ ---
98
+
99
+ ### 3. i18next z Svelte / SvelteKit
100
+
101
+ Strona internetowa: [https://www.i18next.com/](https://www.i18next.com/)
102
+
103
+ **Przegląd**
104
+ Chociaż **i18next** jest częściej kojarzony z React lub Vue, możliwa jest również integracja z Svelte lub **SvelteKit**. Wykorzystanie szerokiego ekosystemu i18next może być pomocne, jeśli potrzebujesz spójnej internacjonalizacji (i18n) w różnych frameworkach JavaScript w Twojej organizacji.
105
+
106
+ **Kluczowe funkcje**
107
+
108
+ - **Dojrzały ekosystem**: Korzystaj z szerokiej gamy wtyczek, modułów wykrywania języka oraz wsparcia społeczności.
109
+ - **W czasie wykonywania lub podczas budowania**: Wybierz między dynamicznym ładowaniem a pakowaniem tłumaczeń dla nieco szybszego uruchamiania.
110
+ - **Przyjazny dla SSR**: SvelteKit SSR może serwować zlokalizowane treści, używając i18next po stronie serwera, co jest świetne dla SEO.
111
+ - **Bogate funkcje**: Obsługuje interpolację, liczby mnogie, zagnieżdżone tłumaczenia oraz bardziej złożone scenariusze i18n.
112
+
113
+ **Uwagi**
114
+
115
+ - **Ręczna konfiguracja**: i18next nie posiada dedykowanej integracji z Svelte „od ręki”, więc będziesz musiał skonfigurować ją samodzielnie.
116
+ - **Nadwyżka**: i18next jest rozbudowany, ale dla mniejszych projektów Svelte niektóre jego funkcje mogą być zbyt rozbudowane.
117
+ - **Routing i stan**: Obsługa routingu językowego prawdopodobnie będzie wymagać niestandardowych hooków lub middleware w SvelteKit.
118
+
119
+ ---
120
+
121
+ ### Ostateczne przemyślenia
122
+
123
+ Podczas wyboru strategii i18n dla Twojej aplikacji Svelte:
124
+
125
+ 1. **Oceń skalę projektu**: Dla mniejszych projektów lub szybkich prototypów mogą wystarczyć prostsze biblioteki, takie jak **svelte-i18n** lub minimalne podejście do i18n. Większe, bardziej złożone aplikacje mogą skorzystać z rozwiązania z typami, prekompilowanego lub opartego na bardziej rozbudowanym ekosystemie.
126
+ 2. **Rozważania dotyczące SEO i SSR**: Jeśli SEO jest kluczowe lub potrzebujesz renderowania po stronie serwera z **SvelteKit**, wybierz bibliotekę, która skutecznie wspiera SSR i potrafi obsługiwać zlokalizowane ścieżki, metadane oraz mapy witryn.
127
+ 3. **W czasie wykonywania vs. podczas budowania**: Zdecyduj, czy potrzebujesz dynamicznej zmiany języka w czasie wykonywania, czy wolisz prekompilowane tłumaczenia dla lepszej wydajności. Każde podejście wiąże się z różnymi kompromisami.
128
+ 4. **Integracja z TypeScript**: Jeśli mocno polegasz na TypeScript, rozwiązania takie jak **Intlayer** lub biblioteki z typowanymi kluczami mogą znacznie zmniejszyć liczbę błędów w czasie wykonywania i poprawić doświadczenie programisty.
129
+ 5. **Utrzymanie i skalowalność**: Zaplanuj, jak będziesz organizować, aktualizować i wersjonować swoje pliki tłumaczeń. Automatyczne wydobywanie, konwencje nazewnictwa oraz spójna struktura folderów zaoszczędzą czas w dłuższej perspektywie.
130
+
131
+ Ostatecznie każda biblioteka oferuje unikalne zalety. Twój wybór zależy od **wydajności**, **doświadczenia programisty**, **potrzeb SEO** oraz **długoterminowej utrzymalności**. Wybierając rozwiązanie, które odpowiada celom Twojego projektu, możesz stworzyć naprawdę globalną aplikację w Svelte, która zachwyci użytkowników na całym świecie.
@@ -0,0 +1,130 @@
1
+ ---
2
+ createdAt: 2025-01-16
3
+ updatedAt: 2025-06-29
4
+ title: Najlepsze narzędzia do internacjonalizacji (i18n) dla Vue
5
+ description: Odkryj najlepsze rozwiązania Vue i18n, które pomogą sprostać wyzwaniom tłumaczeń, zwiększyć SEO i zapewnić płynne globalne doświadczenie w sieci.
6
+ keywords:
7
+ - Vue
8
+ - i18n
9
+ - wielojęzyczność
10
+ - SEO
11
+ - Internacjonalizacja
12
+ - Blog
13
+ - JavaScript
14
+ slugs:
15
+ - blog
16
+ - i18n-technologies
17
+ - frameworks
18
+ - vue
19
+ ---
20
+
21
+ # Eksploracja rozwiązań i18n do tłumaczenia Twojej strony Vue.js
22
+
23
+ W coraz bardziej zglobalizowanym cyfrowym świecie, rozszerzenie zasięgu Twojej strony Vue.js na użytkowników mówiących różnymi językami nie jest już „miłym dodatkiem”, lecz koniecznością konkurencyjną. Internacjonalizacja (i18n) umożliwia programistom zarządzanie tłumaczeniami oraz dostosowywanie aplikacji do różnych lokalizacji, jednocześnie zachowując wartość SEO, doświadczenie użytkownika oraz utrzymywalną strukturę kodu. W tym artykule przeanalizujemy różne podejścia — od dedykowanych bibliotek po rozwiązania kodowane na zamówienie — które pomogą Ci płynnie zintegrować i18n w Twoim projekcie Vue.js.
24
+
25
+ ---
26
+
27
+ ![ilustracja i18n](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18n.webp)
28
+
29
+ ## Czym jest internacjonalizacja (i18n)?
30
+
31
+ Internacjonalizacja (i18n) to praktyka przygotowywania aplikacji programowej (lub strony internetowej) do obsługi wielu języków i konwencji kulturowych. W ekosystemie Vue.js obejmuje to ustalenie, w jaki sposób tekst, daty, liczby, waluty oraz inne elementy podlegające lokalizacji mogą być dostosowane do różnych lokalizacji. Konfigurując i18n od samego początku, zapewniasz uporządkowaną, skalowalną strukturę do dodawania nowych języków oraz obsługi przyszłych potrzeb lokalizacyjnych.
32
+
33
+ Aby dowiedzieć się więcej o podstawach i18n, zapoznaj się z naszym materiałem: [Czym jest internacjonalizacja (i18n)? Definicja i wyzwania](https://github.com/aymericzip/intlayer/blob/main/docs/blog/pl/what_is_internationalization.md).
34
+
35
+ ---
36
+
37
+ ## Wyzwania tłumaczeniowe w aplikacjach Vue
38
+
39
+ Tłumaczenie aplikacji Vue.js wiąże się z własnym zestawem wyzwań:
40
+
41
+ - **Architektura oparta na komponentach:** Podobnie jak w React, pojedyncze pliki komponentów Vue (SFC) mogą zawierać tekst i ustawienia specyficzne dla lokalizacji. Konieczna będzie strategia centralizacji łańcuchów tłumaczeń.
42
+ - **Dynamiczna zawartość:** Dane pobierane z API lub modyfikowane w czasie rzeczywistym wymagają elastycznego podejścia do ładowania i stosowania tłumaczeń na bieżąco.
43
+ - **Aspekty SEO:** Przy renderowaniu po stronie serwera za pomocą Nuxt lub innych konfiguracji SSR, kluczowe jest zarządzanie lokalizowanymi adresami URL, meta tagami i mapami witryn, aby utrzymać silne SEO.
44
+ - **Stan i kontekst reaktywny:** Zapewnienie utrzymania bieżącej lokalizacji na trasach i komponentach, które reaktywnie aktualizują teksty i formaty, wymaga przemyślanego podejścia, zwłaszcza przy korzystaniu z Vuex lub Pinia do zarządzania stanem.
45
+ - **Nakład pracy przy rozwoju:** Utrzymanie plików tłumaczeń w porządku, spójności i aktualności może szybko stać się dużym zadaniem, jeśli nie jest odpowiednio zarządzane.
46
+
47
+ ---
48
+
49
+ ## Wiodące rozwiązania i18n dla Vue.js
50
+
51
+ Poniżej przedstawiono kilka popularnych bibliotek i podejść, które można wykorzystać do wdrożenia internacjonalizacji w aplikacjach Vue. Każde z nich ma na celu usprawnienie tłumaczeń, SEO oraz kwestii wydajności na różne sposoby.
52
+
53
+ ---
54
+
55
+ ### 1. Vue I18n
56
+
57
+ > Strona internetowa: [https://vue-i18n.intlify.dev/](https://vue-i18n.intlify.dev/)
58
+
59
+ **Przegląd**
60
+ **Vue I18n** to najczęściej używana biblioteka lokalizacyjna w ekosystemie Vue, oferująca prosty i bogaty w funkcje sposób obsługi tłumaczeń w projektach opartych na Vue 2, Vue 3 oraz Nuxt.
61
+
62
+ **Kluczowe funkcje**
63
+
64
+ - **Prosta konfiguracja**
65
+ Szybka konfiguracja zlokalizowanych komunikatów i zmiana lokalizacji za pomocą dobrze udokumentowanego API.
66
+ - **Reaktywność**
67
+ Zmiany lokalizacji natychmiast aktualizują tekst we wszystkich komponentach dzięki systemowi reaktywności Vue.
68
+ - **Pluralizacja i formatowanie dat/liczb**
69
+ Wbudowane metody obsługują typowe przypadki użycia, w tym formy mnogie, formatowanie dat/czasu, formatowanie liczb/walut i inne.
70
+ - **Wsparcie dla Nuxt.js**
71
+ Moduł Nuxt I18n rozszerza Vue I18n o automatyczne generowanie tras, przyjazne dla SEO adresy URL oraz mapy witryn dla każdej lokalizacji.
72
+ - **Wsparcie dla TypeScript**
73
+ Może być zintegrowany z aplikacjami Vue opartymi na TypeScript, choć autouzupełnianie kluczy tłumaczeń może wymagać dodatkowej konfiguracji.
74
+ - **SSR i dzielenie kodu**
75
+ Działa bezproblemowo z Nuxt w renderowaniu po stronie serwera oraz obsługuje dzielenie kodu dla plików tłumaczeń, aby zwiększyć wydajność.
76
+
77
+ **Uwagi**
78
+
79
+ - **Nakład konfiguracji**
80
+ Duże projekty lub projekty realizowane przez wiele zespołów mogą wymagać jasnej struktury folderów i konwencji nazewnictwa, aby efektywnie zarządzać plikami tłumaczeń.
81
+ - **Ekosystem wtyczek**
82
+ Mimo że jest solidny, może być konieczne staranne wybranie spośród wielu wtyczek lub modułów (Nuxt I18n, Vue I18n itp.), aby zbudować idealną konfigurację.
83
+
84
+ ---
85
+
86
+ ### 2. LinguiJS (Integracja z Vue)
87
+
88
+ > Strona internetowa: [https://lingui.js.org/](https://lingui.js.org/)
89
+
90
+ **Przegląd**
91
+ Początkowo znany z integracji z React, **LinguiJS** oferuje również wtyczkę do Vue, która koncentruje się na minimalnym narzucie w czasie działania oraz zautomatyzowanym procesie ekstrakcji komunikatów.
92
+
93
+ **Kluczowe funkcje**
94
+
95
+ - **Automatyczne wyodrębnianie wiadomości**
96
+ Użyj Lingui CLI do skanowania kodu Vue pod kątem tłumaczeń, co zmniejsza ręczne wprowadzanie identyfikatorów wiadomości.
97
+ - **Kompaktowy i wydajny**
98
+ Skompilowane tłumaczenia prowadzą do mniejszego zużycia zasobów w czasie działania, co jest kluczowe dla wysoko wydajnych aplikacji Vue.
99
+ - **TypeScript i autouzupełnianie**
100
+ Choć konfiguracja jest nieco bardziej manualna, typowane identyfikatory i katalogi mogą poprawić doświadczenie dewelopera w projektach Vue opartych na TypeScript.
101
+ - **Kompatybilność z Nuxt i SSR**
102
+ Może integrować się z konfiguracjami SSR, aby serwować w pełni zlokalizowane strony, poprawiając SEO i wydajność dla każdego obsługiwanego języka.
103
+ - **Pluralizacja i formatowanie**
104
+ Wbudowane wsparcie dla liczby mnogiej, formatowania liczb, dat i innych, zgodne ze standardami formatu wiadomości ICU.
105
+
106
+ **Uwagi**
107
+
108
+ - **Mniej dokumentacji specyficznej dla Vue**
109
+ Chociaż LinguiJS oficjalnie wspiera Vue, jego dokumentacja skupia się głównie na React; może być konieczne poleganie na przykładach społeczności.
110
+ - **Mniejsza społeczność**
111
+ W porównaniu do Vue I18n, ekosystem jest stosunkowo mniejszy. Oficjalnie utrzymywane wtyczki i dodatki firm trzecich mogą być bardziej ograniczone.
112
+
113
+ ---
114
+
115
+ ## Ostateczne przemyślenia
116
+
117
+ Przy wyborze rozwiązania i18n dla aplikacji Vue.js:
118
+
119
+ 1. **Oceń swoje wymagania**
120
+ Rozmiar projektu, umiejętności deweloperów oraz złożoność lokalizacji mają wpływ na Twój wybór.
121
+ 2. **Oceń kompatybilność z SSR**
122
+ Jeśli tworzysz aplikację Nuxt lub w inny sposób polegasz na SSR, upewnij się, że wybrane rozwiązanie obsługuje renderowanie po stronie serwera bez problemów.
123
+ 3. **TypeScript i autouzupełnianie**
124
+ Jeśli cenisz sobie dobre doświadczenie deweloperskie z minimalną liczbą literówek w kluczach tłumaczeń, upewnij się, że Twoje rozwiązanie oferuje typowane definicje lub może być z nimi zintegrowane.
125
+ 4. **Zarządzanie i skalowalność**
126
+ W miarę dodawania kolejnych lokalizacji lub rozbudowy aplikacji, kluczowa jest uporządkowana struktura plików tłumaczeń.
127
+ 5. **SEO i metadane**
128
+ Aby wielojęzyczne strony dobrze się pozycjonowały, Twoje rozwiązanie powinno upraszczać lokalizowane meta tagi, adresy URL, mapy witryn oraz pliki `robots.txt` dla każdej lokalizacji.
129
+
130
+ Niezależnie od tego, którą ścieżkę wybierzesz — Intlayer, Vue I18n, LinguiJS czy podejście własnoręcznie zakodowane — będziesz na dobrej drodze do dostarczenia aplikacji Vue.js przyjaznej dla użytkowników na całym świecie. Każde rozwiązanie oferuje różne kompromisy dotyczące wydajności, doświadczenia deweloperskiego oraz skalowalności. Dokładnie oceniając potrzeby swojego projektu, możesz z pewnością wybrać konfigurację i18n, która zapewni sukces Tobie i Twojej wielojęzycznej publiczności.