@intlayer/docs 7.0.7 → 7.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (726) hide show
  1. package/blog/ar/i18n_using_next-i18next.md +1068 -0
  2. package/blog/ar/i18n_using_next-intl.md +768 -0
  3. package/blog/ar/intlayer_with_react-intl.md +0 -4
  4. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +5 -4
  5. package/blog/de/i18n_using_next-i18next.md +1107 -0
  6. package/blog/de/i18n_using_next-intl.md +760 -0
  7. package/blog/de/intlayer_with_react-intl.md +0 -4
  8. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  9. package/blog/en/i18n_using_next-i18next.md +1073 -0
  10. package/blog/en/i18n_using_next-intl.md +757 -0
  11. package/blog/en/intlayer_with_i18next.md +71 -8
  12. package/blog/en/intlayer_with_next-i18next.md +71 -8
  13. package/blog/en/intlayer_with_next-intl.md +71 -8
  14. package/blog/en/intlayer_with_react-i18next.md +69 -8
  15. package/blog/en/intlayer_with_react-intl.md +68 -9
  16. package/blog/en/intlayer_with_vue-i18n.md +68 -7
  17. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  18. package/blog/en/vue-i18n_vs_intlayer.md +2 -0
  19. package/blog/en-GB/i18n_using_next-i18next.md +1074 -0
  20. package/blog/en-GB/i18n_using_next-intl.md +757 -0
  21. package/blog/en-GB/intlayer_with_i18next.md +15 -6
  22. package/blog/en-GB/intlayer_with_next-i18next.md +16 -6
  23. package/blog/en-GB/intlayer_with_next-intl.md +16 -6
  24. package/blog/en-GB/intlayer_with_react-i18next.md +16 -7
  25. package/blog/en-GB/intlayer_with_react-intl.md +14 -9
  26. package/blog/en-GB/intlayer_with_vue-i18n.md +16 -7
  27. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  28. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  29. package/blog/en-GB/vue-i18n_vs_intlayer.md +2 -0
  30. package/blog/es/i18n_using_next-i18next.md +1066 -0
  31. package/blog/es/i18n_using_next-intl.md +757 -0
  32. package/blog/es/intlayer_with_react-intl.md +0 -4
  33. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  34. package/blog/fr/i18n_using_next-i18next.md +1078 -0
  35. package/blog/fr/i18n_using_next-intl.md +759 -0
  36. package/blog/fr/intlayer_with_react-intl.md +0 -4
  37. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  38. package/blog/hi/i18n_using_next-i18next.md +1068 -0
  39. package/blog/hi/i18n_using_next-intl.md +758 -0
  40. package/blog/hi/intlayer_with_react-intl.md +0 -4
  41. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  42. package/blog/id/i18n_using_next-i18next.md +1078 -0
  43. package/blog/id/i18n_using_next-intl.md +757 -0
  44. package/blog/id/index.md +69 -0
  45. package/blog/id/internationalization_and_SEO.md +364 -0
  46. package/blog/id/intlayer_with_react-intl.md +0 -4
  47. package/blog/id/list_i18n_technologies/CMS/drupal.md +143 -0
  48. package/blog/id/list_i18n_technologies/CMS/wix.md +167 -0
  49. package/blog/id/list_i18n_technologies/CMS/wordpress.md +188 -0
  50. package/blog/id/list_i18n_technologies/frameworks/angular.md +125 -0
  51. package/blog/id/list_i18n_technologies/frameworks/flutter.md +150 -0
  52. package/blog/id/list_i18n_technologies/frameworks/react-native.md +217 -0
  53. package/blog/id/list_i18n_technologies/frameworks/react.md +155 -0
  54. package/blog/id/list_i18n_technologies/frameworks/svelte.md +131 -0
  55. package/blog/id/list_i18n_technologies/frameworks/vue.md +130 -0
  56. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1500 -0
  57. package/blog/id/nextjs-multilingual-seo-comparison.md +361 -0
  58. package/blog/id/rag_powered_documentation_assistant.md +288 -0
  59. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  60. package/blog/id/vue-i18n_vs_intlayer.md +278 -0
  61. package/blog/id/what_is_internationalization.md +166 -0
  62. package/blog/it/i18n_using_next-i18next.md +1078 -0
  63. package/blog/it/i18n_using_next-intl.md +758 -0
  64. package/blog/it/intlayer_with_react-intl.md +0 -4
  65. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +4 -0
  66. package/blog/it/vue-i18n_vs_intlayer.md +2 -0
  67. package/blog/ja/i18n_using_next-i18next.md +1078 -0
  68. package/blog/ja/i18n_using_next-intl.md +758 -0
  69. package/blog/ja/intlayer_with_react-intl.md +0 -4
  70. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  71. package/blog/ko/i18n_using_next-i18next.md +1075 -0
  72. package/blog/ko/i18n_using_next-intl.md +759 -0
  73. package/blog/ko/intlayer_with_react-intl.md +0 -4
  74. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  75. package/blog/pl/i18n_using_next-i18next.md +1078 -0
  76. package/blog/pl/i18n_using_next-intl.md +758 -0
  77. package/blog/pl/index.md +69 -0
  78. package/blog/pl/internationalization_and_SEO.md +363 -0
  79. package/blog/pl/intlayer_with_react-intl.md +0 -4
  80. package/blog/pl/list_i18n_technologies/CMS/drupal.md +143 -0
  81. package/blog/pl/list_i18n_technologies/CMS/wix.md +167 -0
  82. package/blog/pl/list_i18n_technologies/CMS/wordpress.md +196 -0
  83. package/blog/pl/list_i18n_technologies/frameworks/angular.md +125 -0
  84. package/blog/pl/list_i18n_technologies/frameworks/flutter.md +151 -0
  85. package/blog/pl/list_i18n_technologies/frameworks/react-native.md +217 -0
  86. package/blog/pl/list_i18n_technologies/frameworks/react.md +155 -0
  87. package/blog/pl/list_i18n_technologies/frameworks/svelte.md +131 -0
  88. package/blog/pl/list_i18n_technologies/frameworks/vue.md +130 -0
  89. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1501 -0
  90. package/blog/pl/nextjs-multilingual-seo-comparison.md +362 -0
  91. package/blog/pl/rag_powered_documentation_assistant.md +288 -0
  92. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  93. package/blog/pl/vue-i18n_vs_intlayer.md +278 -0
  94. package/blog/pl/what_is_internationalization.md +167 -0
  95. package/blog/pt/i18n_using_next-i18next.md +1067 -0
  96. package/blog/pt/i18n_using_next-intl.md +760 -0
  97. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  98. package/blog/ru/i18n_using_next-i18next.md +1106 -0
  99. package/blog/ru/i18n_using_next-intl.md +759 -0
  100. package/blog/ru/intlayer_with_react-intl.md +0 -4
  101. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  102. package/blog/tr/i18n_using_next-i18next.md +1078 -0
  103. package/blog/tr/i18n_using_next-intl.md +760 -0
  104. package/blog/tr/intlayer_with_react-intl.md +0 -4
  105. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  106. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  107. package/blog/tr/vue-i18n_vs_intlayer.md +2 -0
  108. package/blog/vi/i18n_using_next-i18next.md +1080 -0
  109. package/blog/vi/i18n_using_next-intl.md +758 -0
  110. package/blog/vi/index.md +69 -0
  111. package/blog/vi/internationalization_and_SEO.md +363 -0
  112. package/blog/vi/intlayer_with_react-intl.md +0 -4
  113. package/blog/vi/list_i18n_technologies/CMS/drupal.md +143 -0
  114. package/blog/vi/list_i18n_technologies/CMS/wix.md +167 -0
  115. package/blog/vi/list_i18n_technologies/CMS/wordpress.md +188 -0
  116. package/blog/vi/list_i18n_technologies/frameworks/angular.md +125 -0
  117. package/blog/vi/list_i18n_technologies/frameworks/flutter.md +150 -0
  118. package/blog/vi/list_i18n_technologies/frameworks/react-native.md +217 -0
  119. package/blog/vi/list_i18n_technologies/frameworks/react.md +155 -0
  120. package/blog/vi/list_i18n_technologies/frameworks/svelte.md +131 -0
  121. package/blog/vi/list_i18n_technologies/frameworks/vue.md +130 -0
  122. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1520 -0
  123. package/blog/vi/nextjs-multilingual-seo-comparison.md +362 -0
  124. package/blog/vi/rag_powered_documentation_assistant.md +288 -0
  125. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +164 -0
  126. package/blog/vi/vue-i18n_vs_intlayer.md +278 -0
  127. package/blog/vi/what_is_internationalization.md +168 -0
  128. package/blog/zh/i18n_using_next-i18next.md +1105 -0
  129. package/blog/zh/i18n_using_next-intl.md +758 -0
  130. package/blog/zh/intlayer_with_react-intl.md +0 -4
  131. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  132. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +2 -0
  133. package/dist/cjs/common.cjs +0 -4
  134. package/dist/cjs/common.cjs.map +1 -1
  135. package/dist/cjs/generated/blog.entry.cjs +38 -6
  136. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  137. package/dist/cjs/generated/docs.entry.cjs +0 -6
  138. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  139. package/dist/cjs/generated/frequentQuestions.entry.cjs +0 -6
  140. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  141. package/dist/cjs/generated/legal.entry.cjs +0 -6
  142. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  143. package/dist/esm/generated/blog.entry.mjs +38 -0
  144. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  145. package/dist/types/generated/blog.entry.d.ts +2 -0
  146. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  147. package/docs/ar/component_i18n.md +1 -1
  148. package/docs/ar/configuration.md +6 -0
  149. package/docs/ar/intlayer_cli.md +8 -3
  150. package/docs/ar/intlayer_with_next-i18next.md +619 -0
  151. package/docs/ar/intlayer_with_next-intl.md +446 -0
  152. package/docs/ar/intlayer_with_nextjs_16.md +21 -0
  153. package/docs/ar/intlayer_with_tanstack.md +4 -0
  154. package/docs/ar/intlayer_with_vite+react.md +4 -0
  155. package/docs/de/component_i18n.md +1 -1
  156. package/docs/de/configuration.md +6 -0
  157. package/docs/de/intlayer_cli.md +8 -3
  158. package/docs/de/intlayer_with_next-i18next.md +627 -0
  159. package/docs/de/intlayer_with_next-intl.md +451 -0
  160. package/docs/de/intlayer_with_nextjs_16.md +21 -0
  161. package/docs/de/intlayer_with_tanstack.md +4 -0
  162. package/docs/de/intlayer_with_vite+react.md +4 -0
  163. package/docs/en/component_i18n.md +1 -1
  164. package/docs/en/intlayer_cli.md +8 -1
  165. package/docs/en/intlayer_with_astro.md +10 -2
  166. package/docs/en/intlayer_with_create_react_app.md +8 -0
  167. package/docs/en/intlayer_with_lynx+react.md +8 -0
  168. package/docs/en/intlayer_with_nestjs.md +10 -0
  169. package/docs/en/intlayer_with_nextjs_14.md +10 -2
  170. package/docs/en/intlayer_with_nextjs_15.md +21 -4
  171. package/docs/en/intlayer_with_nextjs_16.md +17 -0
  172. package/docs/en/intlayer_with_nuxt.md +8 -0
  173. package/docs/en/intlayer_with_react_native+expo.md +10 -2
  174. package/docs/en/intlayer_with_react_router_v7.md +8 -0
  175. package/docs/en/intlayer_with_tanstack.md +10 -0
  176. package/docs/en/intlayer_with_vite+preact.md +10 -2
  177. package/docs/en/intlayer_with_vite+react.md +21 -4
  178. package/docs/en/intlayer_with_vite+vue.md +10 -2
  179. package/docs/en-GB/component_i18n.md +1 -1
  180. package/docs/en-GB/configuration.md +6 -0
  181. package/docs/en-GB/intlayer_cli.md +8 -3
  182. package/docs/en-GB/intlayer_with_angular.md +4 -4
  183. package/docs/en-GB/intlayer_with_express.md +4 -4
  184. package/docs/en-GB/intlayer_with_lynx+react.md +12 -12
  185. package/{blog/en/_intlayer_with_next-i18next.md → docs/en-GB/intlayer_with_next-i18next.md} +241 -42
  186. package/{blog/en/_intlayer_with_next-intl.md → docs/en-GB/intlayer_with_next-intl.md} +144 -29
  187. package/docs/en-GB/intlayer_with_nextjs_16.md +21 -0
  188. package/docs/en-GB/intlayer_with_tanstack.md +5 -1
  189. package/docs/en-GB/intlayer_with_vite+react.md +4 -0
  190. package/docs/en-GB/packages/next-intlayer/t.md +2 -2
  191. package/docs/es/component_i18n.md +1 -1
  192. package/docs/es/configuration.md +6 -0
  193. package/docs/es/intlayer_cli.md +8 -3
  194. package/docs/es/intlayer_with_next-i18next.md +628 -0
  195. package/docs/es/intlayer_with_next-intl.md +446 -0
  196. package/docs/es/intlayer_with_nextjs_16.md +21 -0
  197. package/docs/es/intlayer_with_tanstack.md +4 -0
  198. package/docs/es/intlayer_with_vite+react.md +4 -0
  199. package/docs/fr/configuration.md +6 -0
  200. package/docs/fr/intlayer_cli.md +8 -3
  201. package/docs/fr/intlayer_with_next-i18next.md +628 -0
  202. package/docs/fr/intlayer_with_next-intl.md +446 -0
  203. package/docs/fr/intlayer_with_nextjs_16.md +23 -2
  204. package/docs/fr/intlayer_with_tanstack.md +4 -0
  205. package/docs/fr/intlayer_with_vite+react.md +4 -0
  206. package/docs/hi/component_i18n.md +1 -1
  207. package/docs/hi/configuration.md +6 -0
  208. package/docs/hi/intlayer_cli.md +8 -0
  209. package/docs/hi/intlayer_with_next-i18next.md +628 -0
  210. package/docs/hi/intlayer_with_next-intl.md +446 -0
  211. package/docs/hi/intlayer_with_nextjs_16.md +21 -0
  212. package/docs/hi/intlayer_with_tanstack.md +4 -0
  213. package/docs/hi/intlayer_with_vite+react.md +4 -0
  214. package/docs/id/CI_CD.md +198 -0
  215. package/docs/id/autoFill.md +284 -0
  216. package/docs/id/component_i18n.md +186 -0
  217. package/docs/id/configuration.md +710 -0
  218. package/docs/id/dictionary/condition.md +231 -0
  219. package/docs/id/dictionary/content_file.md +1092 -0
  220. package/docs/id/dictionary/enumeration.md +245 -0
  221. package/docs/id/dictionary/file.md +237 -0
  222. package/docs/id/dictionary/function_fetching.md +214 -0
  223. package/docs/id/dictionary/gender.md +273 -0
  224. package/docs/id/dictionary/insertion.md +192 -0
  225. package/docs/id/dictionary/markdown.md +381 -0
  226. package/docs/id/dictionary/nesting.md +273 -0
  227. package/docs/id/dictionary/translation.md +310 -0
  228. package/docs/id/formatters.md +596 -0
  229. package/docs/id/how_works_intlayer.md +256 -0
  230. package/docs/id/index.md +176 -0
  231. package/docs/id/interest_of_intlayer.md +293 -0
  232. package/docs/id/intlayer_CMS.md +549 -0
  233. package/docs/id/intlayer_cli.md +850 -0
  234. package/docs/id/intlayer_visual_editor.md +288 -0
  235. package/docs/id/intlayer_with_angular.md +694 -0
  236. package/docs/id/intlayer_with_astro.md +252 -0
  237. package/docs/id/intlayer_with_create_react_app.md +1233 -0
  238. package/docs/id/intlayer_with_express.md +411 -0
  239. package/docs/id/intlayer_with_lynx+react.md +518 -0
  240. package/docs/id/intlayer_with_nestjs.md +272 -0
  241. package/docs/id/intlayer_with_next-i18next.md +628 -0
  242. package/docs/id/intlayer_with_next-intl.md +446 -0
  243. package/docs/id/intlayer_with_nextjs_14.md +1617 -0
  244. package/docs/id/intlayer_with_nextjs_15.md +1698 -0
  245. package/docs/id/intlayer_with_nextjs_16.md +21 -0
  246. package/docs/id/intlayer_with_nextjs_page_router.md +1478 -0
  247. package/docs/id/intlayer_with_nuxt.md +808 -0
  248. package/docs/id/intlayer_with_react_native+expo.md +699 -0
  249. package/docs/id/intlayer_with_react_router_v7.md +496 -0
  250. package/docs/id/intlayer_with_tanstack.md +564 -0
  251. package/docs/id/intlayer_with_vite+preact.md +1737 -0
  252. package/docs/id/intlayer_with_vite+react.md +1413 -0
  253. package/docs/id/intlayer_with_vite+solid.md +289 -0
  254. package/docs/id/intlayer_with_vite+svelte.md +289 -0
  255. package/docs/id/intlayer_with_vite+vue.md +1088 -0
  256. package/docs/id/introduction.md +218 -0
  257. package/docs/id/locale_mapper.md +242 -0
  258. package/docs/id/mcp_server.md +211 -0
  259. package/docs/id/packages/express-intlayer/t.md +458 -0
  260. package/docs/id/packages/intlayer/getConfiguration.md +145 -0
  261. package/docs/id/packages/intlayer/getEnumeration.md +159 -0
  262. package/docs/id/packages/intlayer/getHTMLTextDir.md +122 -0
  263. package/docs/id/packages/intlayer/getLocaleLang.md +81 -0
  264. package/docs/id/packages/intlayer/getLocaleName.md +119 -0
  265. package/docs/id/packages/intlayer/getLocalizedUrl.md +309 -0
  266. package/docs/id/packages/intlayer/getMultilingualUrls.md +223 -0
  267. package/docs/id/packages/intlayer/getPathWithoutLocale.md +75 -0
  268. package/docs/id/packages/intlayer/getTranslation.md +190 -0
  269. package/docs/id/packages/intlayer/getTranslationContent.md +188 -0
  270. package/docs/id/packages/next-intlayer/t.md +352 -0
  271. package/docs/id/packages/next-intlayer/useDictionary.md +271 -0
  272. package/docs/id/packages/next-intlayer/useIntlayer.md +264 -0
  273. package/docs/id/packages/next-intlayer/useLocale.md +166 -0
  274. package/docs/id/packages/react-intlayer/t.md +303 -0
  275. package/docs/id/packages/react-intlayer/useDictionary.md +287 -0
  276. package/docs/id/packages/react-intlayer/useI18n.md +267 -0
  277. package/docs/id/packages/react-intlayer/useIntlayer.md +254 -0
  278. package/docs/id/packages/react-intlayer/useLocale.md +210 -0
  279. package/docs/id/per_locale_file.md +323 -0
  280. package/docs/id/readme.md +261 -0
  281. package/docs/id/releases/v6.md +305 -0
  282. package/docs/id/roadmap.md +362 -0
  283. package/docs/id/testing.md +202 -0
  284. package/docs/id/vs_code_extension.md +126 -0
  285. package/docs/it/component_i18n.md +1 -1
  286. package/docs/it/configuration.md +6 -0
  287. package/docs/it/intlayer_cli.md +8 -3
  288. package/docs/it/intlayer_with_next-i18next.md +628 -0
  289. package/docs/it/intlayer_with_next-intl.md +446 -0
  290. package/docs/it/intlayer_with_nextjs_16.md +21 -0
  291. package/docs/it/intlayer_with_tanstack.md +4 -0
  292. package/docs/it/intlayer_with_vite+react.md +4 -0
  293. package/docs/ja/component_i18n.md +1 -1
  294. package/docs/ja/configuration.md +6 -0
  295. package/docs/ja/intlayer_cli.md +8 -3
  296. package/docs/ja/intlayer_with_next-i18next.md +627 -0
  297. package/docs/ja/intlayer_with_next-intl.md +446 -0
  298. package/docs/ja/intlayer_with_nextjs_16.md +21 -0
  299. package/docs/ja/intlayer_with_tanstack.md +4 -0
  300. package/docs/ja/intlayer_with_vite+react.md +4 -0
  301. package/docs/ko/configuration.md +6 -0
  302. package/docs/ko/intlayer_cli.md +8 -3
  303. package/docs/ko/intlayer_with_next-i18next.md +627 -0
  304. package/docs/ko/intlayer_with_next-intl.md +446 -0
  305. package/docs/ko/intlayer_with_nextjs_16.md +21 -0
  306. package/docs/ko/intlayer_with_tanstack.md +4 -0
  307. package/docs/ko/intlayer_with_vite+react.md +4 -0
  308. package/docs/pl/CI_CD.md +198 -0
  309. package/docs/pl/autoFill.md +284 -0
  310. package/docs/pl/component_i18n.md +186 -0
  311. package/docs/pl/configuration.md +710 -0
  312. package/docs/pl/dictionary/condition.md +232 -0
  313. package/docs/pl/dictionary/content_file.md +1130 -0
  314. package/docs/pl/dictionary/enumeration.md +245 -0
  315. package/docs/pl/dictionary/file.md +234 -0
  316. package/docs/pl/dictionary/function_fetching.md +214 -0
  317. package/docs/pl/dictionary/gender.md +276 -0
  318. package/docs/pl/dictionary/insertion.md +188 -0
  319. package/docs/pl/dictionary/markdown.md +408 -0
  320. package/docs/pl/dictionary/nesting.md +273 -0
  321. package/docs/pl/dictionary/translation.md +310 -0
  322. package/docs/pl/formatters.md +596 -0
  323. package/docs/pl/how_works_intlayer.md +256 -0
  324. package/docs/pl/index.md +176 -0
  325. package/docs/pl/interest_of_intlayer.md +291 -0
  326. package/docs/pl/intlayer_CMS.md +549 -0
  327. package/docs/pl/intlayer_cli.md +857 -0
  328. package/docs/pl/intlayer_visual_editor.md +288 -0
  329. package/docs/pl/intlayer_with_angular.md +690 -0
  330. package/docs/pl/intlayer_with_astro.md +280 -0
  331. package/docs/pl/intlayer_with_create_react_app.md +1235 -0
  332. package/docs/pl/intlayer_with_express.md +411 -0
  333. package/docs/pl/intlayer_with_lynx+react.md +518 -0
  334. package/docs/pl/intlayer_with_nestjs.md +272 -0
  335. package/docs/pl/intlayer_with_next-i18next.md +628 -0
  336. package/docs/pl/intlayer_with_next-intl.md +446 -0
  337. package/docs/pl/intlayer_with_nextjs_14.md +1594 -0
  338. package/docs/pl/intlayer_with_nextjs_15.md +1701 -0
  339. package/docs/pl/intlayer_with_nextjs_16.md +21 -0
  340. package/docs/pl/intlayer_with_nextjs_page_router.md +1513 -0
  341. package/docs/pl/intlayer_with_nuxt.md +885 -0
  342. package/docs/pl/intlayer_with_react_native+expo.md +698 -0
  343. package/docs/pl/intlayer_with_react_router_v7.md +503 -0
  344. package/docs/pl/intlayer_with_tanstack.md +562 -0
  345. package/docs/pl/intlayer_with_vite+preact.md +1736 -0
  346. package/docs/pl/intlayer_with_vite+react.md +1438 -0
  347. package/docs/pl/intlayer_with_vite+solid.md +290 -0
  348. package/docs/pl/intlayer_with_vite+svelte.md +289 -0
  349. package/docs/pl/intlayer_with_vite+vue.md +1116 -0
  350. package/docs/pl/introduction.md +209 -0
  351. package/docs/pl/locale_mapper.md +242 -0
  352. package/docs/pl/mcp_server.md +211 -0
  353. package/docs/pl/packages/express-intlayer/t.md +458 -0
  354. package/docs/pl/packages/intlayer/getConfiguration.md +146 -0
  355. package/docs/pl/packages/intlayer/getEnumeration.md +160 -0
  356. package/docs/pl/packages/intlayer/getHTMLTextDir.md +121 -0
  357. package/docs/pl/packages/intlayer/getLocaleLang.md +81 -0
  358. package/docs/pl/packages/intlayer/getLocaleName.md +118 -0
  359. package/docs/pl/packages/intlayer/getLocalizedUrl.md +300 -0
  360. package/docs/pl/packages/intlayer/getMultilingualUrls.md +221 -0
  361. package/docs/pl/packages/intlayer/getPathWithoutLocale.md +75 -0
  362. package/docs/pl/packages/intlayer/getTranslation.md +190 -0
  363. package/docs/pl/packages/intlayer/getTranslationContent.md +189 -0
  364. package/docs/pl/packages/next-intlayer/t.md +353 -0
  365. package/docs/pl/packages/next-intlayer/useDictionary.md +270 -0
  366. package/docs/pl/packages/next-intlayer/useIntlayer.md +263 -0
  367. package/docs/pl/packages/next-intlayer/useLocale.md +166 -0
  368. package/docs/pl/packages/react-intlayer/t.md +303 -0
  369. package/docs/pl/packages/react-intlayer/useDictionary.md +289 -0
  370. package/docs/pl/packages/react-intlayer/useI18n.md +249 -0
  371. package/docs/pl/packages/react-intlayer/useIntlayer.md +256 -0
  372. package/docs/pl/packages/react-intlayer/useLocale.md +210 -0
  373. package/docs/pl/per_locale_file.md +321 -0
  374. package/docs/pl/readme.md +261 -0
  375. package/docs/pl/releases/v6.md +305 -0
  376. package/docs/pl/roadmap.md +362 -0
  377. package/docs/pl/testing.md +202 -0
  378. package/docs/pl/vs_code_extension.md +126 -0
  379. package/docs/pt/component_i18n.md +1 -1
  380. package/docs/pt/configuration.md +6 -0
  381. package/docs/pt/intlayer_cli.md +8 -3
  382. package/docs/pt/intlayer_with_next-i18next.md +627 -0
  383. package/docs/pt/intlayer_with_next-intl.md +446 -0
  384. package/docs/pt/intlayer_with_nextjs_16.md +21 -0
  385. package/docs/pt/intlayer_with_tanstack.md +4 -0
  386. package/docs/pt/intlayer_with_vite+react.md +4 -0
  387. package/docs/ru/component_i18n.md +1 -1
  388. package/docs/ru/configuration.md +6 -0
  389. package/docs/ru/intlayer_cli.md +301 -22
  390. package/docs/ru/intlayer_with_next-i18next.md +629 -0
  391. package/docs/ru/intlayer_with_next-intl.md +448 -0
  392. package/docs/ru/intlayer_with_nextjs_16.md +21 -0
  393. package/docs/ru/intlayer_with_tanstack.md +4 -0
  394. package/docs/ru/intlayer_with_vite+react.md +4 -0
  395. package/docs/tr/component_i18n.md +1 -1
  396. package/docs/tr/configuration.md +6 -0
  397. package/docs/tr/intlayer_cli.md +8 -0
  398. package/docs/tr/intlayer_with_next-i18next.md +627 -0
  399. package/docs/tr/intlayer_with_next-intl.md +446 -0
  400. package/docs/tr/intlayer_with_nextjs_16.md +21 -0
  401. package/docs/tr/intlayer_with_tanstack.md +4 -0
  402. package/docs/tr/intlayer_with_vite+react.md +4 -0
  403. package/docs/vi/CI_CD.md +198 -0
  404. package/docs/vi/autoFill.md +284 -0
  405. package/docs/vi/component_i18n.md +186 -0
  406. package/docs/vi/configuration.md +710 -0
  407. package/docs/vi/dictionary/condition.md +237 -0
  408. package/docs/vi/dictionary/content_file.md +1115 -0
  409. package/docs/vi/dictionary/enumeration.md +255 -0
  410. package/docs/vi/dictionary/file.md +234 -0
  411. package/docs/vi/dictionary/function_fetching.md +212 -0
  412. package/docs/vi/dictionary/gender.md +275 -0
  413. package/docs/vi/dictionary/insertion.md +191 -0
  414. package/docs/vi/dictionary/markdown.md +381 -0
  415. package/docs/vi/dictionary/nesting.md +273 -0
  416. package/docs/vi/dictionary/translation.md +309 -0
  417. package/docs/vi/formatters.md +595 -0
  418. package/docs/vi/how_works_intlayer.md +256 -0
  419. package/docs/vi/index.md +174 -0
  420. package/docs/vi/interest_of_intlayer.md +292 -0
  421. package/docs/vi/intlayer_CMS.md +549 -0
  422. package/docs/vi/intlayer_cli.md +850 -0
  423. package/docs/vi/intlayer_visual_editor.md +288 -0
  424. package/docs/vi/intlayer_with_angular.md +692 -0
  425. package/docs/vi/intlayer_with_astro.md +252 -0
  426. package/docs/vi/intlayer_with_create_react_app.md +1230 -0
  427. package/docs/vi/intlayer_with_express.md +409 -0
  428. package/docs/vi/intlayer_with_lynx+react.md +520 -0
  429. package/docs/vi/intlayer_with_nestjs.md +272 -0
  430. package/docs/vi/intlayer_with_next-i18next.md +628 -0
  431. package/docs/vi/intlayer_with_next-intl.md +446 -0
  432. package/docs/vi/intlayer_with_nextjs_14.md +1584 -0
  433. package/docs/vi/intlayer_with_nextjs_15.md +1738 -0
  434. package/docs/vi/intlayer_with_nextjs_16.md +21 -0
  435. package/docs/vi/intlayer_with_nextjs_page_router.md +1504 -0
  436. package/docs/vi/intlayer_with_nuxt.md +821 -0
  437. package/docs/vi/intlayer_with_react_native+expo.md +700 -0
  438. package/docs/vi/intlayer_with_react_router_v7.md +498 -0
  439. package/docs/vi/intlayer_with_tanstack.md +562 -0
  440. package/docs/vi/intlayer_with_vite+preact.md +1722 -0
  441. package/docs/vi/intlayer_with_vite+react.md +1407 -0
  442. package/docs/vi/intlayer_with_vite+solid.md +287 -0
  443. package/docs/vi/intlayer_with_vite+svelte.md +289 -0
  444. package/docs/vi/intlayer_with_vite+vue.md +1071 -0
  445. package/docs/vi/introduction.md +215 -0
  446. package/docs/vi/locale_mapper.md +242 -0
  447. package/docs/vi/mcp_server.md +211 -0
  448. package/docs/vi/packages/express-intlayer/t.md +457 -0
  449. package/docs/vi/packages/intlayer/getConfiguration.md +145 -0
  450. package/docs/vi/packages/intlayer/getEnumeration.md +162 -0
  451. package/docs/vi/packages/intlayer/getHTMLTextDir.md +121 -0
  452. package/docs/vi/packages/intlayer/getLocaleLang.md +81 -0
  453. package/docs/vi/packages/intlayer/getLocaleName.md +129 -0
  454. package/docs/vi/packages/intlayer/getLocalizedUrl.md +309 -0
  455. package/docs/vi/packages/intlayer/getMultilingualUrls.md +221 -0
  456. package/docs/vi/packages/intlayer/getPathWithoutLocale.md +75 -0
  457. package/docs/vi/packages/intlayer/getTranslation.md +201 -0
  458. package/docs/vi/packages/intlayer/getTranslationContent.md +188 -0
  459. package/docs/vi/packages/next-intlayer/t.md +352 -0
  460. package/docs/vi/packages/next-intlayer/useDictionary.md +273 -0
  461. package/docs/vi/packages/next-intlayer/useIntlayer.md +264 -0
  462. package/docs/vi/packages/next-intlayer/useLocale.md +166 -0
  463. package/docs/vi/packages/react-intlayer/t.md +304 -0
  464. package/docs/vi/packages/react-intlayer/useDictionary.md +288 -0
  465. package/docs/vi/packages/react-intlayer/useI18n.md +295 -0
  466. package/docs/vi/packages/react-intlayer/useIntlayer.md +256 -0
  467. package/docs/vi/packages/react-intlayer/useLocale.md +210 -0
  468. package/docs/vi/per_locale_file.md +326 -0
  469. package/docs/vi/readme.md +261 -0
  470. package/docs/vi/releases/v6.md +305 -0
  471. package/docs/vi/roadmap.md +346 -0
  472. package/docs/vi/testing.md +202 -0
  473. package/docs/vi/vs_code_extension.md +126 -0
  474. package/docs/zh/configuration.md +6 -0
  475. package/docs/zh/intlayer_cli.md +8 -3
  476. package/docs/zh/intlayer_with_next-i18next.md +628 -0
  477. package/docs/zh/intlayer_with_next-intl.md +448 -0
  478. package/docs/zh/intlayer_with_nextjs_16.md +21 -0
  479. package/docs/zh/intlayer_with_tanstack.md +4 -0
  480. package/docs/zh/intlayer_with_vite+react.md +4 -0
  481. package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -2
  482. package/frequent_questions/ar/array_as_content_declaration.md +1 -2
  483. package/frequent_questions/ar/build_dictionaries.md +1 -2
  484. package/frequent_questions/ar/build_error_CI_CD.md +1 -2
  485. package/frequent_questions/ar/bun_set_up.md +1 -2
  486. package/frequent_questions/ar/customized_locale_list.md +1 -2
  487. package/frequent_questions/ar/domain_routing.md +1 -2
  488. package/frequent_questions/ar/esbuild_error.md +1 -2
  489. package/frequent_questions/ar/get_locale_cookie.md +1 -2
  490. package/frequent_questions/ar/intlayer_command_undefined.md +1 -2
  491. package/frequent_questions/ar/locale_incorect_in_url.md +1 -2
  492. package/frequent_questions/ar/static_rendering.md +1 -3
  493. package/frequent_questions/ar/translated_path_url.md +1 -2
  494. package/frequent_questions/ar/unknown_command.md +1 -2
  495. package/frequent_questions/de/SSR_Next_no_[locale].md +1 -2
  496. package/frequent_questions/de/array_as_content_declaration.md +1 -2
  497. package/frequent_questions/de/build_dictionaries.md +1 -2
  498. package/frequent_questions/de/build_error_CI_CD.md +1 -2
  499. package/frequent_questions/de/bun_set_up.md +1 -2
  500. package/frequent_questions/de/customized_locale_list.md +1 -2
  501. package/frequent_questions/de/domain_routing.md +1 -2
  502. package/frequent_questions/de/esbuild_error.md +1 -2
  503. package/frequent_questions/de/get_locale_cookie.md +1 -2
  504. package/frequent_questions/de/intlayer_command_undefined.md +1 -2
  505. package/frequent_questions/de/locale_incorect_in_url.md +1 -2
  506. package/frequent_questions/de/static_rendering.md +1 -3
  507. package/frequent_questions/de/translated_path_url.md +1 -2
  508. package/frequent_questions/de/unknown_command.md +1 -2
  509. package/frequent_questions/en/SSR_Next_no_[locale].md +1 -2
  510. package/frequent_questions/en/array_as_content_declaration.md +1 -2
  511. package/frequent_questions/en/build_dictionaries.md +1 -2
  512. package/frequent_questions/en/build_error_CI_CD.md +1 -2
  513. package/frequent_questions/en/bun_set_up.md +1 -2
  514. package/frequent_questions/en/customized_locale_list.md +1 -2
  515. package/frequent_questions/en/domain_routing.md +1 -2
  516. package/frequent_questions/en/esbuild_error.md +1 -2
  517. package/frequent_questions/en/get_locale_cookie.md +1 -2
  518. package/frequent_questions/en/intlayer_command_undefined.md +1 -2
  519. package/frequent_questions/en/locale_incorect_in_url.md +1 -2
  520. package/frequent_questions/en/static_rendering.md +1 -3
  521. package/frequent_questions/en/translated_path_url.md +1 -2
  522. package/frequent_questions/en/unknown_command.md +1 -2
  523. package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -2
  524. package/frequent_questions/en-GB/array_as_content_declaration.md +1 -2
  525. package/frequent_questions/en-GB/build_dictionaries.md +1 -2
  526. package/frequent_questions/en-GB/build_error_CI_CD.md +1 -2
  527. package/frequent_questions/en-GB/bun_set_up.md +1 -2
  528. package/frequent_questions/en-GB/customized_locale_list.md +1 -2
  529. package/frequent_questions/en-GB/domain_routing.md +1 -2
  530. package/frequent_questions/en-GB/esbuild_error.md +1 -2
  531. package/frequent_questions/en-GB/get_locale_cookie.md +1 -2
  532. package/frequent_questions/en-GB/intlayer_command_undefined.md +1 -2
  533. package/frequent_questions/en-GB/locale_incorect_in_url.md +1 -2
  534. package/frequent_questions/en-GB/static_rendering.md +1 -3
  535. package/frequent_questions/en-GB/translated_path_url.md +1 -2
  536. package/frequent_questions/en-GB/unknown_command.md +1 -2
  537. package/frequent_questions/es/SSR_Next_no_[locale].md +1 -2
  538. package/frequent_questions/es/array_as_content_declaration.md +1 -2
  539. package/frequent_questions/es/build_dictionaries.md +1 -2
  540. package/frequent_questions/es/build_error_CI_CD.md +1 -2
  541. package/frequent_questions/es/bun_set_up.md +1 -2
  542. package/frequent_questions/es/customized_locale_list.md +1 -2
  543. package/frequent_questions/es/domain_routing.md +1 -2
  544. package/frequent_questions/es/esbuild_error.md +1 -2
  545. package/frequent_questions/es/get_locale_cookie.md +1 -2
  546. package/frequent_questions/es/intlayer_command_undefined.md +1 -2
  547. package/frequent_questions/es/locale_incorect_in_url.md +1 -2
  548. package/frequent_questions/es/static_rendering.md +1 -3
  549. package/frequent_questions/es/translated_path_url.md +1 -2
  550. package/frequent_questions/es/unknown_command.md +1 -2
  551. package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -2
  552. package/frequent_questions/fr/array_as_content_declaration.md +1 -2
  553. package/frequent_questions/fr/build_dictionaries.md +1 -2
  554. package/frequent_questions/fr/build_error_CI_CD.md +1 -2
  555. package/frequent_questions/fr/bun_set_up.md +1 -2
  556. package/frequent_questions/fr/customized_locale_list.md +1 -2
  557. package/frequent_questions/fr/domain_routing.md +1 -2
  558. package/frequent_questions/fr/esbuild_error.md +1 -2
  559. package/frequent_questions/fr/get_locale_cookie.md +1 -2
  560. package/frequent_questions/fr/intlayer_command_undefined.md +1 -2
  561. package/frequent_questions/fr/locale_incorect_in_url.md +1 -2
  562. package/frequent_questions/fr/static_rendering.md +1 -3
  563. package/frequent_questions/fr/translated_path_url.md +1 -2
  564. package/frequent_questions/fr/unknown_command.md +1 -2
  565. package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -2
  566. package/frequent_questions/hi/array_as_content_declaration.md +1 -2
  567. package/frequent_questions/hi/build_dictionaries.md +1 -2
  568. package/frequent_questions/hi/build_error_CI_CD.md +1 -2
  569. package/frequent_questions/hi/bun_set_up.md +1 -2
  570. package/frequent_questions/hi/customized_locale_list.md +1 -2
  571. package/frequent_questions/hi/domain_routing.md +1 -2
  572. package/frequent_questions/hi/esbuild_error.md +1 -2
  573. package/frequent_questions/hi/get_locale_cookie.md +1 -2
  574. package/frequent_questions/hi/intlayer_command_undefined.md +1 -2
  575. package/frequent_questions/hi/locale_incorect_in_url.md +1 -2
  576. package/frequent_questions/hi/static_rendering.md +1 -3
  577. package/frequent_questions/hi/translated_path_url.md +1 -2
  578. package/frequent_questions/hi/unknown_command.md +1 -2
  579. package/frequent_questions/id/SSR_Next_no_[locale].md +104 -0
  580. package/frequent_questions/id/array_as_content_declaration.md +71 -0
  581. package/frequent_questions/id/build_dictionaries.md +58 -0
  582. package/frequent_questions/id/build_error_CI_CD.md +74 -0
  583. package/frequent_questions/id/bun_set_up.md +53 -0
  584. package/frequent_questions/id/customized_locale_list.md +64 -0
  585. package/frequent_questions/id/domain_routing.md +113 -0
  586. package/frequent_questions/id/esbuild_error.md +29 -0
  587. package/frequent_questions/id/get_locale_cookie.md +142 -0
  588. package/frequent_questions/id/intlayer_command_undefined.md +155 -0
  589. package/frequent_questions/id/locale_incorect_in_url.md +73 -0
  590. package/frequent_questions/id/static_rendering.md +44 -0
  591. package/frequent_questions/id/translated_path_url.md +55 -0
  592. package/frequent_questions/id/unknown_command.md +97 -0
  593. package/frequent_questions/it/SSR_Next_no_[locale].md +1 -2
  594. package/frequent_questions/it/array_as_content_declaration.md +1 -2
  595. package/frequent_questions/it/build_dictionaries.md +1 -2
  596. package/frequent_questions/it/build_error_CI_CD.md +1 -2
  597. package/frequent_questions/it/bun_set_up.md +1 -2
  598. package/frequent_questions/it/customized_locale_list.md +1 -2
  599. package/frequent_questions/it/domain_routing.md +1 -2
  600. package/frequent_questions/it/esbuild_error.md +1 -2
  601. package/frequent_questions/it/get_locale_cookie.md +1 -2
  602. package/frequent_questions/it/intlayer_command_undefined.md +1 -2
  603. package/frequent_questions/it/locale_incorect_in_url.md +1 -2
  604. package/frequent_questions/it/static_rendering.md +1 -3
  605. package/frequent_questions/it/translated_path_url.md +1 -2
  606. package/frequent_questions/it/unknown_command.md +1 -2
  607. package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -2
  608. package/frequent_questions/ja/array_as_content_declaration.md +1 -2
  609. package/frequent_questions/ja/build_dictionaries.md +1 -2
  610. package/frequent_questions/ja/build_error_CI_CD.md +1 -2
  611. package/frequent_questions/ja/bun_set_up.md +1 -2
  612. package/frequent_questions/ja/customized_locale_list.md +1 -2
  613. package/frequent_questions/ja/domain_routing.md +1 -2
  614. package/frequent_questions/ja/esbuild_error.md +1 -2
  615. package/frequent_questions/ja/get_locale_cookie.md +1 -2
  616. package/frequent_questions/ja/intlayer_command_undefined.md +1 -2
  617. package/frequent_questions/ja/locale_incorect_in_url.md +1 -2
  618. package/frequent_questions/ja/static_rendering.md +1 -3
  619. package/frequent_questions/ja/translated_path_url.md +1 -2
  620. package/frequent_questions/ja/unknown_command.md +1 -2
  621. package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -2
  622. package/frequent_questions/ko/array_as_content_declaration.md +1 -2
  623. package/frequent_questions/ko/build_dictionaries.md +1 -2
  624. package/frequent_questions/ko/build_error_CI_CD.md +1 -2
  625. package/frequent_questions/ko/bun_set_up.md +1 -2
  626. package/frequent_questions/ko/customized_locale_list.md +1 -2
  627. package/frequent_questions/ko/domain_routing.md +1 -2
  628. package/frequent_questions/ko/esbuild_error.md +1 -2
  629. package/frequent_questions/ko/get_locale_cookie.md +1 -2
  630. package/frequent_questions/ko/intlayer_command_undefined.md +1 -2
  631. package/frequent_questions/ko/locale_incorect_in_url.md +1 -2
  632. package/frequent_questions/ko/static_rendering.md +1 -3
  633. package/frequent_questions/ko/translated_path_url.md +1 -2
  634. package/frequent_questions/ko/unknown_command.md +1 -2
  635. package/frequent_questions/pl/SSR_Next_no_[locale].md +104 -0
  636. package/frequent_questions/pl/array_as_content_declaration.md +71 -0
  637. package/frequent_questions/pl/build_dictionaries.md +58 -0
  638. package/frequent_questions/pl/build_error_CI_CD.md +74 -0
  639. package/frequent_questions/pl/bun_set_up.md +54 -0
  640. package/frequent_questions/pl/customized_locale_list.md +64 -0
  641. package/frequent_questions/pl/domain_routing.md +113 -0
  642. package/frequent_questions/pl/esbuild_error.md +29 -0
  643. package/frequent_questions/pl/get_locale_cookie.md +142 -0
  644. package/frequent_questions/pl/intlayer_command_undefined.md +155 -0
  645. package/frequent_questions/pl/locale_incorect_in_url.md +73 -0
  646. package/frequent_questions/pl/static_rendering.md +44 -0
  647. package/frequent_questions/pl/translated_path_url.md +55 -0
  648. package/frequent_questions/pl/unknown_command.md +97 -0
  649. package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -2
  650. package/frequent_questions/pt/array_as_content_declaration.md +1 -2
  651. package/frequent_questions/pt/build_dictionaries.md +1 -2
  652. package/frequent_questions/pt/build_error_CI_CD.md +1 -2
  653. package/frequent_questions/pt/bun_set_up.md +1 -2
  654. package/frequent_questions/pt/customized_locale_list.md +1 -2
  655. package/frequent_questions/pt/domain_routing.md +1 -2
  656. package/frequent_questions/pt/esbuild_error.md +1 -2
  657. package/frequent_questions/pt/get_locale_cookie.md +1 -2
  658. package/frequent_questions/pt/intlayer_command_undefined.md +1 -2
  659. package/frequent_questions/pt/locale_incorect_in_url.md +1 -2
  660. package/frequent_questions/pt/static_rendering.md +1 -3
  661. package/frequent_questions/pt/translated_path_url.md +1 -2
  662. package/frequent_questions/pt/unknown_command.md +1 -2
  663. package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -2
  664. package/frequent_questions/ru/array_as_content_declaration.md +1 -2
  665. package/frequent_questions/ru/build_dictionaries.md +1 -2
  666. package/frequent_questions/ru/build_error_CI_CD.md +1 -2
  667. package/frequent_questions/ru/bun_set_up.md +1 -2
  668. package/frequent_questions/ru/customized_locale_list.md +1 -2
  669. package/frequent_questions/ru/domain_routing.md +1 -2
  670. package/frequent_questions/ru/esbuild_error.md +1 -2
  671. package/frequent_questions/ru/get_locale_cookie.md +1 -2
  672. package/frequent_questions/ru/intlayer_command_undefined.md +1 -2
  673. package/frequent_questions/ru/locale_incorect_in_url.md +1 -2
  674. package/frequent_questions/ru/static_rendering.md +1 -2
  675. package/frequent_questions/ru/translated_path_url.md +1 -2
  676. package/frequent_questions/ru/unknown_command.md +1 -2
  677. package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -2
  678. package/frequent_questions/tr/array_as_content_declaration.md +1 -2
  679. package/frequent_questions/tr/build_dictionaries.md +1 -2
  680. package/frequent_questions/tr/build_error_CI_CD.md +1 -2
  681. package/frequent_questions/tr/bun_set_up.md +1 -2
  682. package/frequent_questions/tr/customized_locale_list.md +1 -2
  683. package/frequent_questions/tr/domain_routing.md +1 -2
  684. package/frequent_questions/tr/esbuild_error.md +1 -2
  685. package/frequent_questions/tr/get_locale_cookie.md +1 -2
  686. package/frequent_questions/tr/intlayer_command_undefined.md +1 -2
  687. package/frequent_questions/tr/locale_incorect_in_url.md +1 -2
  688. package/frequent_questions/tr/static_rendering.md +1 -2
  689. package/frequent_questions/tr/translated_path_url.md +1 -2
  690. package/frequent_questions/tr/unknown_command.md +1 -2
  691. package/frequent_questions/vi/SSR_Next_no_[locale].md +106 -0
  692. package/frequent_questions/vi/array_as_content_declaration.md +71 -0
  693. package/frequent_questions/vi/build_dictionaries.md +58 -0
  694. package/frequent_questions/vi/build_error_CI_CD.md +74 -0
  695. package/frequent_questions/vi/bun_set_up.md +53 -0
  696. package/frequent_questions/vi/customized_locale_list.md +64 -0
  697. package/frequent_questions/vi/domain_routing.md +113 -0
  698. package/frequent_questions/vi/esbuild_error.md +29 -0
  699. package/frequent_questions/vi/get_locale_cookie.md +142 -0
  700. package/frequent_questions/vi/intlayer_command_undefined.md +155 -0
  701. package/frequent_questions/vi/locale_incorect_in_url.md +73 -0
  702. package/frequent_questions/vi/static_rendering.md +44 -0
  703. package/frequent_questions/vi/translated_path_url.md +55 -0
  704. package/frequent_questions/vi/unknown_command.md +97 -0
  705. package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -2
  706. package/frequent_questions/zh/array_as_content_declaration.md +1 -2
  707. package/frequent_questions/zh/build_dictionaries.md +1 -2
  708. package/frequent_questions/zh/build_error_CI_CD.md +1 -2
  709. package/frequent_questions/zh/bun_set_up.md +1 -2
  710. package/frequent_questions/zh/customized_locale_list.md +1 -2
  711. package/frequent_questions/zh/domain_routing.md +1 -2
  712. package/frequent_questions/zh/esbuild_error.md +1 -2
  713. package/frequent_questions/zh/get_locale_cookie.md +1 -2
  714. package/frequent_questions/zh/intlayer_command_undefined.md +1 -2
  715. package/frequent_questions/zh/locale_incorect_in_url.md +1 -2
  716. package/frequent_questions/zh/static_rendering.md +1 -3
  717. package/frequent_questions/zh/translated_path_url.md +1 -2
  718. package/frequent_questions/zh/unknown_command.md +1 -2
  719. package/legal/id/privacy_notice.md +83 -0
  720. package/legal/id/terms_of_service.md +55 -0
  721. package/legal/pl/privacy_notice.md +83 -0
  722. package/legal/pl/terms_of_service.md +55 -0
  723. package/legal/vi/privacy_notice.md +83 -0
  724. package/legal/vi/terms_of_service.md +55 -0
  725. package/package.json +19 -18
  726. package/src/generated/blog.entry.ts +38 -0
@@ -0,0 +1,1130 @@
1
+ ---
2
+ createdAt: 2025-02-07
3
+ updatedAt: 2025-09-20
4
+ title: Plik z Treścią
5
+ description: Dowiedz się, jak dostosować rozszerzenia dla plików deklaracji treści. Postępuj zgodnie z tą dokumentacją, aby efektywnie wdrażać warunki w swoim projekcie.
6
+ keywords:
7
+ - Plik z Treścią
8
+ - Dokumentacja
9
+ - Intlayer
10
+ slugs:
11
+ - doc
12
+ - concept
13
+ - content
14
+ history:
15
+ - version: 7.0.0
16
+ date: 2025-10-23
17
+ changes: Zmiana nazwy `autoFill` na `fill`
18
+ - version: 6.0.0
19
+ date: 2025-09-20
20
+ changes: Dodano dokumentację pól
21
+ - version: 5.5.10
22
+ date: 2025-06-29
23
+ changes: Inicjalizacja historii
24
+ ---
25
+
26
+ # Plik z Treścią
27
+
28
+ <iframe title="i18n, Markdown, JSON… jedno rozwiązanie do zarządzania wszystkim | Intlayer" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/1VHgSY_j9_I?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
29
+
30
+ ## Czym jest Plik z Treścią?
31
+
32
+ Plik z treścią w Intlayer to plik zawierający definicje słowników.
33
+ Te pliki deklarują tekstową zawartość Twojej aplikacji, tłumaczenia oraz zasoby.
34
+ Pliki z treścią są przetwarzane przez Intlayer w celu wygenerowania słowników.
35
+
36
+ Słowniki będą ostatecznym wynikiem, który Twoja aplikacja zaimportuje za pomocą hooka `useIntlayer`.
37
+
38
+ ### Kluczowe Pojęcia
39
+
40
+ #### Słownik
41
+
42
+ Słownik to uporządkowany zbiór treści zorganizowany według kluczy. Każdy słownik zawiera:
43
+
44
+ - **Key**: Unikalny identyfikator słownika
45
+ - **Content**: Rzeczywiste wartości treści (tekst, liczby, obiekty itp.)
46
+ - **Metadata**: Dodatkowe informacje, takie jak tytuł, opis, tagi itp.
47
+
48
+ #### Plik z Treścią
49
+
50
+ Przykład pliku z treścią:
51
+
52
+ ```tsx fileName="src/example.content.tsx" contentDeclarationFormat="typescript"
53
+ import { type ReactNode } from "react";
54
+ import {
55
+ t,
56
+ enu,
57
+ cond,
58
+ nest,
59
+ md,
60
+ insert,
61
+ file,
62
+ type Dictionary,
63
+ } from "intlayer";
64
+
65
+ interface Content {
66
+ imbricatedContent: {
67
+ imbricatedContent2: {
68
+ stringContent: string;
69
+ numberContent: number;
70
+ booleanContent: boolean;
71
+ javaScriptContent: string;
72
+ };
73
+ };
74
+ multilingualContent: string;
75
+ quantityContent: string;
76
+ conditionalContent: string;
77
+ markdownContent: never;
78
+ externalContent: string;
79
+ insertionContent: string;
80
+ nestedContent: string;
81
+ fileContent: string;
82
+ jsxContent: ReactNode;
83
+ }
84
+
85
+ export default {
86
+ key: "page",
87
+ content: {
88
+ imbricatedContent: {
89
+ imbricatedContent2: {
90
+ stringContent: "Hello World",
91
+ numberContent: 123,
92
+ booleanContent: true,
93
+ javaScriptContent: `${process.env.NODE_ENV}`,
94
+ },
95
+ },
96
+ multilingualContent: t({
97
+ en: "English content",
98
+ "en-GB": "English content (UK)",
99
+ fr: "French content",
100
+ es: "Spanish content",
101
+ }),
102
+ quantityContent: enu({
103
+ "<-1": "Mniej niż minus jeden samochód",
104
+ "-1": "Minus jeden samochód",
105
+ "0": "Brak samochodów",
106
+ "1": "Jeden samochód",
107
+ ">5": "Kilka samochodów",
108
+ ">19": "Wiele samochodów",
109
+ }),
110
+ conditionalContent: cond({
111
+ true: "Walidacja jest włączona",
112
+ false: "Walidacja jest wyłączona",
113
+ }),
114
+ insertionContent: insert("Witaj {{name}}!"),
115
+ nestedContent: nest(
116
+ "navbar", // Klucz słownika do zagnieżdżenia
117
+ "login.button" // [Opcjonalnie] Ścieżka do zawartości do zagnieżdżenia
118
+ ),
119
+ fileContent: file("./path/to/file.txt"),
120
+ externalContent: fetch("https://example.com").then((res) => res.json()),
121
+ markdownContent: md("# Przykład Markdown"),
122
+
123
+ /*
124
+ * Dostępne tylko przy użyciu `react-intlayer` lub `next-intlayer`
125
+ */
126
+ jsxContent: <h1>Mój tytuł</h1>,
127
+ },
128
+ } satisfies Dictionary<Content>; // [opcjonalnie] Dictionary jest generyczny i pozwala na wzmocnienie formatowania słownika
129
+ ```
130
+
131
+ ```javascript fileName="src/example.content.mjx" contentDeclarationFormat="esm"
132
+ import { t, enu, cond, nest, md, insert, file } from "intlayer";
133
+
134
+ /** @type {import('intlayer').Dictionary} */
135
+ export default {
136
+ key: "page",
137
+ content: {
138
+ imbricatedContent: {
139
+ imbricatedContent2: {
140
+ stringContent: "Witaj świecie", // Zawartość tekstowa
141
+ numberContent: 123, // Zawartość liczbowa
142
+ booleanContent: true, // Zawartość logiczna
143
+ javaScriptContent: `${process.env.NODE_ENV}`, // Zawartość JavaScript
144
+ },
145
+ imbricatedArray: [1, 2, 3], // Zagnieżdżona tablica
146
+ },
147
+ multilingualContent: t({
148
+ en: "English content",
149
+ "en-GB": "English content (UK)",
150
+ fr: "French content",
151
+ es: "Spanish content",
152
+ }),
153
+ quantityContent: enu({
154
+ "<-1": "Mniej niż minus jeden samochód",
155
+ "-1": "Minus jeden samochód",
156
+ "0": "Brak samochodów",
157
+ "1": "Jeden samochód",
158
+ ">5": "Kilka samochodów",
159
+ ">19": "Wiele samochodów",
160
+ }),
161
+ conditionalContent: cond({
162
+ true: "Walidacja jest włączona",
163
+ false: "Walidacja jest wyłączona",
164
+ }),
165
+ insertionContent: insert("Witaj {{name}}!"),
166
+ nestedContent: nest(
167
+ "navbar", // Klucz słownika do zagnieżdżenia
168
+ "login.button" // [Opcjonalnie] Ścieżka do zawartości do zagnieżdżenia
169
+ ),
170
+ markdownContent: md("# Przykład Markdown"),
171
+ fileContent: file("./path/to/file.txt"),
172
+ externalContent: fetch("https://example.com").then((res) => res.json())
173
+
174
+ // Dostępne tylko przy użyciu `react-intlayer` lub `next-intlayer`
175
+ jsxContent: <h1>Mój tytuł</h1>,
176
+ },
177
+ };
178
+ ```
179
+
180
+ ```javascript fileName="src/example.content.cjx" contentDeclarationFormat="commonjs"
181
+ const { t, enu, cond, nest, md, insert, file } = require("intlayer");
182
+
183
+ /** @type {import('intlayer').Dictionary} */
184
+ module.exports = {
185
+ key: "page",
186
+ content: {
187
+ imbricatedContent: {
188
+ imbricatedContent2: {
189
+ stringContent: "Hello World", // Zawartość tekstowa
190
+ numberContent: 123, // Zawartość liczbowa
191
+ booleanContent: true, // Zawartość logiczna
192
+ javaScriptContent: `${process.env.NODE_ENV}`, // Zawartość JavaScript
193
+ },
194
+ imbricatedArray: [1, 2, 3], // Zagnieżdżona tablica
195
+ },
196
+ multilingualContent: t({
197
+ en: "English content",
198
+ "en-GB": "English content (UK)",
199
+ fr: "French content",
200
+ es: "Spanish content",
201
+ }),
202
+ quantityContent: enu({
203
+ "<-1": "Mniej niż minus jeden samochód",
204
+ "-1": "Minus jeden samochód",
205
+ "0": "Brak samochodów",
206
+ "1": "Jeden samochód",
207
+ ">5": "Kilka samochodów",
208
+ ">19": "Wiele samochodów",
209
+ }),
210
+ conditionalContent: cond({
211
+ true: "Walidacja jest włączona",
212
+ false: "Walidacja jest wyłączona",
213
+ }),
214
+ insertionContent: insert("Witaj {{name}}!"),
215
+ nestedContent: nest(
216
+ "navbar", // Klucz słownika do zagnieżdżenia
217
+ "login.button" // [Opcjonalne] Ścieżka do zawartości do zagnieżdżenia
218
+ ),
219
+ markdownContent: md("# Przykład Markdown"),
220
+ fileContent: file("./path/to/file.txt"),
221
+ externalContent: fetch("https://example.com").then((res) => res.json())
222
+
223
+ // Dostępne tylko przy użyciu `react-intlayer` lub `next-intlayer`
224
+ jsxContent: <h1>Mój tytuł</h1>,
225
+ },
226
+ };
227
+ ```
228
+
229
+ ```json5 fileName="src/example.content.json" contentDeclarationFormat="json"
230
+ {
231
+ "$schema": "https://intlayer.org/schema.json",
232
+ "key": "page",
233
+ "content": {
234
+ "imbricatedContent": {
235
+ "imbricatedContent2": {
236
+ "stringContent": "Witaj świecie",
237
+ "numberContent": 123,
238
+ "booleanContent": true,
239
+ },
240
+ "imbricatedArray": [1, 2, 3],
241
+ },
242
+ "multilingualContent": {
243
+ "nodeType": "translation",
244
+ "translation": {
245
+ "en": "English content",
246
+ "en-GB": "English content (UK)",
247
+ "fr": "French content",
248
+ "es": "Spanish content",
249
+ },
250
+ },
251
+ "quantityContent": {
252
+ "nodeType": "enumeration",
253
+ "enumeration": {
254
+ "0": "Brak samochodów",
255
+ "1": "Jeden samochód",
256
+ "<-1": "Mniej niż minus jeden samochód",
257
+ "-1": "Minus jeden samochód",
258
+ ">5": "Kilka samochodów",
259
+ ">19": "Wiele samochodów",
260
+ },
261
+ },
262
+ "conditionalContent": {
263
+ "nodeType": "condition",
264
+ "condition": {
265
+ "true": "Walidacja jest włączona",
266
+ "false": "Walidacja jest wyłączona",
267
+ },
268
+ },
269
+ "insertionContent": {
270
+ "nodeType": "insertion",
271
+ "insertion": "Witaj {{name}}!",
272
+ },
273
+ "nestedContent": {
274
+ "nodeType": "nested",
275
+ "nested": { "dictionaryKey": "app" },
276
+ },
277
+ "markdownContent": {
278
+ "nodeType": "markdown",
279
+ "markdown": "# Przykład Markdown",
280
+ },
281
+ "fileContent": {
282
+ "nodeType": "file",
283
+ "file": "./path/to/file.txt",
284
+ },
285
+ "jsxContent": {
286
+ "type": "h1",
287
+ "key": null,
288
+ "ref": null,
289
+ "props": {
290
+ "children": ["Mój tytuł"],
291
+ },
292
+ },
293
+ },
294
+ }
295
+ ```
296
+
297
+ #### Węzły treści
298
+
299
+ Węzły treści są podstawowymi elementami zawartości słownika. Mogą to być:
300
+
301
+ - **Wartości prymitywne**: łańcuchy znaków, liczby, wartości logiczne, null, undefined
302
+ - **Węzły typowane**: Specjalne typy zawartości, takie jak tłumaczenia, warunki, markdown itp.
303
+ - **Funkcje**: Dynamiczna zawartość, która może być oceniana w czasie wykonywania [zobacz Pobieranie funkcji](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/function_fetching.md)
304
+ - **Zagnieżdżona zawartość**: Odwołania do innych słowników
305
+
306
+ #### Typy zawartości
307
+
308
+ Intlayer obsługuje różne typy zawartości poprzez węzły typowane:
309
+
310
+ - **Zawartość tłumaczenia**: Wielojęzyczny tekst z wartościami specyficznymi dla lokalizacji [zobacz Zawartość tłumaczenia](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/translation_content.md)
311
+ - **Zawartość warunkowa**: Zawartość warunkowa oparta na wyrażeniach logicznych [zobacz Zawartość warunkową](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/condition_content.md)
312
+ - **Zawartość enumeracji**: Zawartość zmieniająca się w zależności od wartości enumerowanych [zobacz Zawartość enumeracji](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/enumeration_content.md)
313
+ - **Zawartość wstawiania**: Zawartość, którą można wstawić do innej zawartości [zobacz Zawartość wstawiania](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/insertion_content.md)
314
+ - **Zawartość Markdown**: Zawartość tekstu sformatowanego w formacie Markdown [zobacz Zawartość Markdown](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/markdown_content.md)
315
+ - **Zagnieżdżona zawartość**: Odwołania do innych słowników [zobacz Zagnieżdżoną zawartość](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/nested_content.md)
316
+ - **Zawartość zależna od płci**: Zawartość zmieniająca się w zależności od płci [zobacz Zawartość zależną od płci](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/gender_content.md)
317
+ - **Zawartość plikowa**: Odwołania do plików zewnętrznych [zobacz Zawartość plikową](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/dictionary/file_content.md)
318
+
319
+ ## Struktura słownika
320
+
321
+ Słownik w Intlayer jest definiowany przez typ `Dictionary` i zawiera kilka właściwości, które kontrolują jego zachowanie:
322
+
323
+ ### Wymagane właściwości
324
+
325
+ #### `key` (string)
326
+
327
+ Identyfikator słownika. Jeśli wiele słowników ma ten sam klucz, Intlayer automatycznie je połączy.
328
+
329
+ > Używaj konwencji nazewnictwa kebab-case (np. `"about-page-meta"`).
330
+
331
+ #### Content (string | number | boolean | object | array | function)
332
+
333
+ Właściwość `content` zawiera rzeczywiste dane słownika i obsługuje:
334
+
335
+ - **Wartości prymitywne**: łańcuchy znaków, liczby, wartości logiczne, null, undefined
336
+ - **Typowane węzły**: Specjalne typy zawartości wykorzystujące funkcje pomocnicze Intlayer
337
+ - **Zagnieżdżone obiekty**: Złożone struktury danych
338
+ - **Tablice**: Kolekcje zawartości
339
+ - **Funkcje**: Dynamiczna ewaluacja zawartości
340
+
341
+ ### Właściwości opcjonalne
342
+
343
+ #### `title` (string)
344
+
345
+ Czytelny dla człowieka tytuł słownika, który pomaga go zidentyfikować w edytorach i systemach CMS. Jest to szczególnie przydatne podczas zarządzania dużą liczbą słowników lub pracy z interfejsami do zarządzania treścią.
346
+
347
+ **Przykład:**
348
+
349
+ ```typescript
350
+ {
351
+ key: "about-page-meta",
352
+ title: "Metadane strony O nas",
353
+ content: { /* ... */ }
354
+ }
355
+ ```
356
+
357
+ #### `description` (string)
358
+
359
+ Szczegółowy opis wyjaśniający cel słownika, zasady jego użycia oraz wszelkie specjalne uwagi. Ten opis jest również wykorzystywany jako kontekst dla generowania tłumaczeń wspomaganych przez AI, co jest cenne dla utrzymania jakości i spójności tłumaczeń.
360
+
361
+ **Przykład:**
362
+
363
+ ```typescript
364
+ {
365
+ key: "about-page-meta",
366
+ description: [
367
+ "Ten słownik zarządza metadanymi strony O nas",
368
+ "Rozważ dobre praktyki SEO:",
369
+ "- Tytuł powinien mieć od 50 do 60 znaków",
370
+ "- Opis powinien mieć od 150 do 160 znaków",
371
+ ].join('\n'),
372
+ content: { /* ... */ }
373
+ }
374
+ ```
375
+
376
+ #### `tags` (string[])
377
+
378
+ Tablica łańcuchów znaków służąca do kategoryzacji i organizacji słowników. Tagi dostarczają dodatkowego kontekstu i mogą być używane do filtrowania, wyszukiwania lub organizowania słowników w edytorach i systemach CMS.
379
+
380
+ **Przykład:**
381
+
382
+ ```typescript
383
+ {
384
+ key: "about-page-meta",
385
+ tags: ["metadata", "about-page", "seo"],
386
+ content: { /* ... */ }
387
+ }
388
+ ```
389
+
390
+ #### `locale` (LocalesValues)
391
+
392
+ Przekształca słownik w słownik per-lokalizacyjny, gdzie każde pole zadeklarowane w zawartości zostanie automatycznie przekształcone w węzeł tłumaczenia. Gdy ta właściwość jest ustawiona:
393
+
394
+ - Słownik jest traktowany jako słownik dla pojedynczego języka
395
+ - Każde pole staje się węzłem tłumaczenia dla tego konkretnego języka
396
+ - Nie należy używać węzłów tłumaczenia (`t()`) w zawartości podczas korzystania z tej właściwości
397
+ - Jeśli właściwość jest pominięta, słownik będzie traktowany jako wielojęzyczny
398
+
399
+ > Zobacz [Deklarację zawartości per-locale w Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/per_locale_file.md) po więcej informacji.
400
+
401
+ **Przykład:**
402
+
403
+ ```json
404
+ // Słownik per-locale
405
+ {
406
+ "key": "about-page",
407
+ "locale": "en",
408
+ "content": {
409
+ "title": "About Us", // To staje się węzłem tłumaczenia dla 'en'
410
+ "description": "Learn more about our company"
411
+ }
412
+ }
413
+ ```
414
+
415
+ #### `fill` (Fill)
416
+
417
+ Instrukcje dotyczące automatycznego wypełniania zawartości słownika z zewnętrznych źródeł. Można to skonfigurować globalnie w `intlayer.config.ts` lub dla poszczególnych słowników. Obsługuje wiele formatów:
418
+
419
+ - **`true`**: Włącz wypełnianie dla wszystkich lokalizacji
420
+ - **`false`**: Wyłącz wypełnianie dla wszystkich lokalizacji
421
+ - **`string`**: Ścieżka do pojedynczego pliku lub szablon z zmiennymi
422
+ - **`object`**: Ścieżki do plików dla poszczególnych lokalizacji
423
+
424
+ **Przykłady:**
425
+
426
+ ```json
427
+ // Wyłącz wypełnianie
428
+ {
429
+ "fill": false
430
+ }
431
+ // Pojedynczy plik
432
+ {
433
+ "fill": "./translations/aboutPage.content.json"
434
+ }
435
+ // Szablon ze zmiennymi
436
+ {
437
+ "fill": "/messages/{{locale}}/{{key}}/{{fileName}}.content.json"
438
+ }
439
+ // Szczegółowa konfiguracja per-locale
440
+ {
441
+ "fill": {
442
+ "en": "./translations/en/aboutPage.content.json",
443
+ "fr": "./translations/fr/aboutPage.content.json",
444
+ "es": "./translations/es/aboutPage.content.json"
445
+ }
446
+ }
447
+ ```
448
+
449
+ **Dostępne zmienne:**
450
+
451
+ - `{{locale}}` – Kod lokalizacji (np. `fr`, `es`)
452
+ - `{{fileName}}` – Nazwa pliku (np. `example`)
453
+ - `{{key}}` – Klucz słownika (np. `example`)
454
+
455
+ > Zobacz [Konfiguracja automatycznego wypełniania w Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pl/fill.md) po więcej informacji.
456
+
457
+ ##### `priority` (number)
458
+
459
+ Wskazuje priorytet słownika do rozwiązywania konfliktów. Gdy wiele słowników zawiera ten sam klucz, słownik z najwyższym numerem priorytetu nadpisze pozostałe. Jest to przydatne do zarządzania hierarchią treści i nadpisaniami.
460
+
461
+ **Przykład:**
462
+
463
+ ```typescript
464
+ // Słownik bazowy
465
+ {
466
+ key: "welcome-message",
467
+ priority: 1,
468
+ content: { message: "Welcome!" }
469
+ }
470
+
471
+ // Słownik nadpisujący
472
+ {
473
+ key: "welcome-message",
474
+ priority: 10,
475
+ content: { message: "Witamy w naszej usłudze premium!" }
476
+ }
477
+ // To nadpisze słownik bazowy
478
+ ```
479
+
480
+ ### Właściwości CMS
481
+
482
+ ##### `version` (string)
483
+
484
+ Identyfikator wersji dla zdalnych słowników. Pomaga śledzić, która wersja słownika jest aktualnie używana, co jest szczególnie przydatne podczas pracy z zdalnymi systemami zarządzania treścią.
485
+
486
+ ##### `live` (boolean)
487
+
488
+ Dla zdalnych słowników wskazuje, czy słownik powinien być pobierany na żywo podczas działania aplikacji. Gdy jest włączone:
489
+
490
+ - Wymaga ustawienia `importMode` na "live" w pliku `intlayer.config.ts`
491
+ - Wymaga uruchomionego serwera na żywo
492
+ - Słownik będzie pobierany w czasie działania za pomocą API synchronizacji na żywo
493
+ - Jeśli tryb live jest włączony, ale pobieranie się nie powiedzie, następuje powrót do wartości dynamicznej
494
+ - Jeśli nie jest na żywo, słownik jest przekształcany podczas budowania dla optymalnej wydajności
495
+
496
+ ### Właściwości systemowe (Generowane automatycznie)
497
+
498
+ Te właściwości są automatycznie generowane przez Intlayer i nie powinny być modyfikowane ręcznie:
499
+
500
+ ##### `$schema` (string)
501
+
502
+ Schemat JSON używany do walidacji struktury słownika. Automatycznie dodawany przez Intlayer, aby zapewnić integralność słownika.
503
+
504
+ ##### `id` (string)
505
+
506
+ Dla słowników zdalnych, jest to unikalny identyfikator słownika na zdalnym serwerze. Używany do pobierania i zarządzania zdalną zawartością.
507
+
508
+ ##### `projectIds` (string[])
509
+
510
+ Dla słowników zdalnych, ta tablica zawiera identyfikatory projektów, które mogą korzystać z tego słownika. Słownik zdalny może być współdzielony między wieloma projektami.
511
+
512
+ ##### `localId` (LocalDictionaryId)
513
+
514
+ Unikalny identyfikator dla lokalnych słowników. Automatycznie generowany przez Intlayer, aby pomóc zidentyfikować słownik oraz określić, czy jest lokalny czy zdalny, wraz z jego lokalizacją.
515
+
516
+ ##### `localIds` (LocalDictionaryId[])
517
+
518
+ Dla scalonych słowników, ta tablica zawiera identyfikatory wszystkich słowników, które zostały połączone. Przydatne do śledzenia źródła scalonej zawartości.
519
+
520
+ ##### `filePath` (string)
521
+
522
+ Ścieżka pliku lokalnego słownika, wskazująca, z którego pliku `.content` słownik został wygenerowany. Pomaga w debugowaniu i śledzeniu źródła.
523
+
524
+ ##### `versions` (string[])
525
+
526
+ Dla zdalnych słowników, ta tablica zawiera wszystkie dostępne wersje słownika. Pomaga śledzić, które wersje są dostępne do użycia.
527
+
528
+ ##### `filled` (true)
529
+
530
+ Wskazuje, czy słownik został automatycznie wypełniony z zewnętrznych źródeł. W przypadku konfliktów, słowniki bazowe mają pierwszeństwo nad automatycznie wypełnionymi słownikami.
531
+
532
+ ##### `location` ('distant' | 'locale')
533
+
534
+ Wskazuje lokalizację słownika:
535
+
536
+ - `'locale'`: Słownik lokalny (z plików zawartości)
537
+ - `'distant'`: Słownik zdalny (z zewnętrznego źródła)
538
+
539
+ ## Typy węzłów zawartości
540
+
541
+ Intlayer udostępnia kilka specjalizowanych typów węzłów zawartości, które rozszerzają podstawowe wartości prymitywne:
542
+
543
+ ### Zawartość tłumaczenia (`t`)
544
+
545
+ Wielojęzyczna zawartość zmieniająca się w zależności od lokalizacji:
546
+
547
+ ```typescript
548
+ import { t } from "intlayer";
549
+
550
+ // TypeScript/JavaScript
551
+ multilingualContent: t({
552
+ en: "Welcome to our website",
553
+ fr: "Bienvenue sur notre site web",
554
+ es: "Bienvenido a nuestro sitio web",
555
+ });
556
+ ```
557
+
558
+ ### Zawartość warunkowa (`cond`)
559
+
560
+ Treść, która zmienia się w zależności od warunków logicznych (boolean):
561
+
562
+ ```typescript
563
+ import { cond } from "intlayer";
564
+
565
+ conditionalContent: cond({
566
+ true: "Użytkownik jest zalogowany",
567
+ false: "Proszę się zalogować, aby kontynuować",
568
+ });
569
+ ```
570
+
571
+ ### Treść enumeracyjna (`enu`)
572
+
573
+ Treść, która zmienia się w zależności od wartości enumeracyjnych:
574
+
575
+ ```typescript
576
+ import { enu } from "intlayer";
577
+
578
+ statusContent: enu({
579
+ pending: "Twoje żądanie jest w toku",
580
+ approved: "Twoje żądanie zostało zatwierdzone",
581
+ rejected: "Twoje żądanie zostało odrzucone",
582
+ });
583
+ ```
584
+
585
+ ### Treść wstawiana (`insert`)
586
+
587
+ Treść, którą można wstawić do innej treści:
588
+
589
+ ```typescript
590
+ import { insert } from "intlayer";
591
+
592
+ insertionContent: insert("Ten tekst można wstawić w dowolne miejsce");
593
+ ```
594
+
595
+ ### Treść zagnieżdżona (`nest`)
596
+
597
+ Odniesienia do innych słowników:
598
+
599
+ ```typescript
600
+ import { nest } from "intlayer";
601
+
602
+ nestedContent: nest("about-page");
603
+ ```
604
+
605
+ ### Zawartość Markdown (`md`)
606
+
607
+ Treść sformatowana w Markdown:
608
+
609
+ ```typescript
610
+ import { md } from "intlayer";
611
+
612
+ markdownContent: md(
613
+ "# Witamy\n\nTo jest **pogrubiony** tekst z [linkami](https://example.com)"
614
+ );
615
+ ```
616
+
617
+ ### Zawartość według płci (`gender`)
618
+
619
+ Treść zmieniająca się w zależności od płci:
620
+
621
+ ```typescript
622
+ import { gender } from "intlayer";
623
+
624
+ genderContent: gender({
625
+ male: "On jest programistą",
626
+ female: "Ona jest programistką",
627
+ other: "Oni są programistami",
628
+ });
629
+ ```
630
+
631
+ ### Zawartość pliku (`file`)
632
+
633
+ Odniesienia do plików zewnętrznych:
634
+
635
+ ```typescript
636
+ import { file } from "intlayer";
637
+
638
+ fileContent: file("./path/to/content.txt");
639
+ ```
640
+
641
+ ## Tworzenie plików z zawartością
642
+
643
+ ### Podstawowa struktura pliku z zawartością
644
+
645
+ Plik z zawartością eksportuje domyślny obiekt spełniający typ `Dictionary`:
646
+
647
+ ```typescript
648
+ // example.content.ts
649
+ import { t, cond, nest, md, insert, file } from "intlayer";
650
+
651
+ export default {
652
+ key: "welcome-page",
653
+ title: "Zawartość strony powitalnej",
654
+ description:
655
+ "Zawartość głównej strony powitalnej, w tym sekcja hero i funkcje",
656
+ tags: ["page", "welcome", "homepage"],
657
+ content: {
658
+ hero: {
659
+ title: t({
660
+ en: "Welcome to Our Platform",
661
+ fr: "Bienvenue sur Notre Plateforme",
662
+ es: "Bienvenido a Nuestra Plataforma",
663
+ }),
664
+ subtitle: t({
665
+ en: "Build amazing applications with ease",
666
+ fr: "Construisez des applications incroyables avec facilité",
667
+ es: "Construye aplicaciones increíbles con facilidad",
668
+ }),
669
+ cta: cond({
670
+ true: t({
671
+ en: "Get Started",
672
+ fr: "Commencer",
673
+ es: "Comenzar",
674
+ }),
675
+ false: t({
676
+ en: "Sign Up",
677
+ fr: "S'inscrire",
678
+ es: "Registrarse",
679
+ }),
680
+ }),
681
+ },
682
+ features: [
683
+ {
684
+ title: t({
685
+ en: "Easy to Use",
686
+ fr: "Facile à Utiliser",
687
+ es: "Fácil de Usar",
688
+ }),
689
+ description: t({
690
+ en: "Intuitive interface for all skill levels",
691
+ fr: "Interface intuitive pour tous les niveaux",
692
+ es: "Interfaz intuitiva para todos los niveles",
693
+ }),
694
+ },
695
+ ],
696
+ documentation: nest("documentation"),
697
+ readme: file("./README.md"),
698
+ },
699
+ } satisfies Dictionary;
700
+ ```
701
+
702
+ ### Plik zawartości JSON
703
+
704
+ Możesz również tworzyć pliki zawartości w formacie JSON:
705
+
706
+ ```json
707
+ {
708
+ "key": "welcome-page",
709
+ "title": "Zawartość strony powitalnej",
710
+ "description": "Zawartość głównej strony powitalnej",
711
+ "tags": ["page", "welcome"],
712
+ "content": {
713
+ "hero": {
714
+ "title": {
715
+ "nodeType": "translation",
716
+ "translation": {
717
+ "en": "Welcome to Our Platform",
718
+ "fr": "Bienvenue sur Notre Plateforme"
719
+ }
720
+ },
721
+ "subtitle": {
722
+ "nodeType": "translation",
723
+ "translation": {
724
+ "en": "Build amazing applications with ease",
725
+ "fr": "Construisez des applications incroyables avec facilité"
726
+ }
727
+ }
728
+ }
729
+ }
730
+ }
731
+ ```
732
+
733
+ ### Pliki zawartości per-locale
734
+
735
+ Dla słowników per-locale określ właściwość `locale`:
736
+
737
+ Możesz również tworzyć pliki z zawartością w formacie JSON:
738
+
739
+ ```json
740
+ {
741
+ "key": "welcome-page",
742
+ "title": "Zawartość strony powitalnej",
743
+ "description": "Zawartość głównej strony powitalnej",
744
+ "tags": ["strona", "powitanie"],
745
+ "content": {
746
+ "hero": {
747
+ "title": {
748
+ "nodeType": "translation",
749
+ "translation": {
750
+ "en": "Welcome to Our Platform",
751
+ "fr": "Bienvenue sur Notre Plateforme"
752
+ }
753
+ },
754
+ "subtitle": {
755
+ "nodeType": "translation",
756
+ "translation": {
757
+ "en": "Build amazing applications with ease",
758
+ "fr": "Construisez des applications incroyables avec facilité"
759
+ }
760
+ }
761
+ }
762
+ }
763
+ }
764
+ ```
765
+
766
+ ### Pliki zawartości dla poszczególnych lokalizacji
767
+
768
+ Dla słowników specyficznych dla lokalizacji, określ właściwość `locale`:
769
+
770
+ ```typescript
771
+ typescript;
772
+ // welcome-page.en.content.ts
773
+ export default {
774
+ key: "welcome-page",
775
+ locale: "en",
776
+ content: {
777
+ hero: {
778
+ title: "Welcome to Our Platform",
779
+ subtitle: "Build amazing applications with ease",
780
+ },
781
+ },
782
+ } satisfies Dictionary;
783
+ ```
784
+
785
+ ```typescript
786
+ // welcome-page.fr.content.ts
787
+ export default {
788
+ key: "welcome-page",
789
+ locale: "fr",
790
+ content: {
791
+ hero: {
792
+ title: "Bienvenue sur Notre Plateforme",
793
+ subtitle: "Construisez des applications incroyables avec facilité",
794
+ },
795
+ },
796
+ } satisfies Dictionary;
797
+ ```
798
+
799
+ ## Rozszerzenia plików z zawartością
800
+
801
+ Intlayer pozwala na dostosowanie rozszerzeń plików deklarujących zawartość. Ta możliwość daje elastyczność w zarządzaniu dużymi projektami i pomaga unikać konfliktów z innymi modułami.
802
+
803
+ ### Domyślne rozszerzenia
804
+
805
+ Domyślnie Intlayer monitoruje wszystkie pliki o następujących rozszerzeniach dla deklaracji zawartości:
806
+
807
+ - `.content.json`
808
+ - `.content.ts`
809
+ - `.content.tsx`
810
+ - `.content.js`
811
+ - `.content.jsx`
812
+ - `.content.mjs`
813
+ - `.content.mjx`
814
+ - `.content.cjs`
815
+ - `.content.cjx`
816
+
817
+ Te domyślne rozszerzenia są odpowiednie dla większości aplikacji. Jednak gdy masz specyficzne potrzeby, możesz zdefiniować niestandardowe rozszerzenia, aby usprawnić proces budowania i zmniejszyć ryzyko konfliktów z innymi komponentami.
818
+
819
+ > Aby dostosować rozszerzenia plików, których Intlayer używa do identyfikacji plików deklaracji zawartości, możesz określić je w pliku konfiguracyjnym Intlayer. To podejście jest korzystne dla projektów na dużą skalę, gdzie ograniczenie zakresu procesu monitorowania poprawia wydajność budowania.
820
+
821
+ ## Zaawansowane Koncepcje
822
+
823
+ ### Scalanie słowników
824
+
825
+ Gdy wiele słowników ma ten sam klucz, Intlayer automatycznie je łączy. Zachowanie podczas łączenia zależy od kilku czynników:
826
+
827
+ - **Priorytet**: Słowniki z wyższą wartością `priority` nadpisują te z niższą
828
+ - **Auto-fill vs Base**: Słowniki bazowe nadpisują słowniki uzupełniane automatycznie
829
+ - **Lokalizacja**: Słowniki lokalne nadpisują słowniki zdalne (gdy priorytety są równe)
830
+
831
+ ### Bezpieczeństwo typów
832
+
833
+ Intlayer zapewnia pełne wsparcie TypeScript dla plików z zawartością:
834
+
835
+ ```typescript
836
+ // Definiuj swój typ zawartości
837
+ interface WelcomePageContent {
838
+ hero: {
839
+ title: string;
840
+ subtitle: string;
841
+ cta: string;
842
+ };
843
+ features: Array<{
844
+ title: string;
845
+ description: string;
846
+ }>;
847
+ }
848
+
849
+ // Użyj tego w swoim słowniku
850
+ export default {
851
+ key: "welcome-page",
852
+ content: {
853
+ // TypeScript zapewni autouzupełnianie i sprawdzanie typów
854
+ hero: {
855
+ title: "Witamy",
856
+ subtitle: "Twórz niesamowite aplikacje",
857
+ cta: "Zacznij",
858
+ },
859
+ },
860
+ } satisfies Dictionary<WelcomePageContent>;
861
+ ```
862
+
863
+ ### Zagnieżdżanie węzłów
864
+
865
+ Możesz bez problemu zagnieżdżać funkcje w innych funkcjach.
866
+
867
+ Przykład:
868
+
869
+ ```javascript fileName="src/example.content.tsx" contentDeclarationFormat="typescript"
870
+ import { t, enu, cond, nest, md, type Dictionary } from "intlayer";
871
+
872
+ const getName = async () => "John Doe";
873
+
874
+ export default {
875
+ key: "page",
876
+ content: {
877
+ // `getIntlayer('page','en').hiMessage` zwraca `['Hi', ' ', 'John Doe']`
878
+ hiMessage: [
879
+ t({
880
+ en: "Hi",
881
+ fr: "Salut",
882
+ es: "Hola",
883
+ }),
884
+ " ",
885
+ getName(),
886
+ ],
887
+ // Złożona zawartość łącząca warunek, enumerację i treść wielojęzyczną
888
+ // `getIntlayer('page','en').advancedContent(true)(10) zwraca 'Znaleziono wiele elementów'`
889
+ advancedContent: cond({
890
+ true: enu({
891
+ "0": t({
892
+ en: "No items found",
893
+ fr: "Aucun article trouvé",
894
+ es: "No se encontraron artículos",
895
+ }),
896
+ "1": t({
897
+ en: "One item found",
898
+ fr: "Un article trouvé",
899
+ es: "Se encontró un artículo",
900
+ }),
901
+ ">1": t({
902
+ en: "Multiple items found",
903
+ fr: "Plusieurs articles trouvés",
904
+ es: "Se encontraron múltiples artículos",
905
+ }),
906
+ }),
907
+ false: t({
908
+ en: "No valid data available",
909
+ fr: "Aucune donnée valide disponible",
910
+ es: "No hay datos válidos disponibles",
911
+ }),
912
+ }),
913
+ },
914
+ } satisfies Dictionary;
915
+ ```
916
+
917
+ ```javascript fileName="src/example.content.mjx" contentDeclarationFormat="esm"
918
+ import { t, enu, cond, nest, md } from "intlayer";
919
+
920
+ const getName = async () => "John Doe";
921
+
922
+ /** @type {import('intlayer').Dictionary} */
923
+ export default {
924
+ key: "page",
925
+ content: {
926
+ // `getIntlayer('page','pl').hiMessage` zwraca `['Cześć', ' ', 'John Doe']`
927
+ hiMessage: [
928
+ t({
929
+ en: "Hi",
930
+ fr: "Salut",
931
+ es: "Hola",
932
+ pl: "Cześć",
933
+ }),
934
+ " ",
935
+ getName(),
936
+ ],
937
+ // Złożona zawartość łącząca warunek, enumerację i treść wielojęzyczną
938
+ // `getIntlayer('page','pl').advancedContent(true)(10)` zwraca 'Znaleziono wiele elementów'
939
+ advancedContent: cond({
940
+ true: enu({
941
+ "0": t({
942
+ en: "No items found",
943
+ fr: "Aucun article trouvé",
944
+ es: "No se encontraron artículos",
945
+ pl: "Nie znaleziono elementów",
946
+ }),
947
+ "1": t({
948
+ en: "One item found",
949
+ fr: "Un article trouvé",
950
+ es: "Se encontró un artículo",
951
+ pl: "Znaleziono jeden element",
952
+ }),
953
+ ">1": t({
954
+ en: "Multiple items found",
955
+ fr: "Plusieurs articles trouvés",
956
+ es: "Se encontraron múltiples artículos",
957
+ pl: "Znaleziono wiele elementów",
958
+ }),
959
+ }),
960
+ false: t({
961
+ en: "No valid data available",
962
+ fr: "Aucune donnée valide disponible",
963
+ es: "No hay datos válidos disponibles",
964
+ pl: "Brak dostępnych prawidłowych danych",
965
+ }),
966
+ }),
967
+ },
968
+ };
969
+ ```
970
+
971
+ ```javascript fileName="src/example.content.cjx" contentDeclarationFormat="commonjs"
972
+ const { t, enu, cond, nest, md } = require("intlayer");
973
+
974
+ const getName = async () => "John Doe";
975
+
976
+ /** @type {import('intlayer').Dictionary} */
977
+ module.exports = {
978
+ key: "page",
979
+ content: {
980
+ // `getIntlayer('page','en').hiMessage` zwraca `['Hi', ' ', 'John Doe']`
981
+ hiMessage: [
982
+ t({
983
+ en: "Hi",
984
+ fr: "Salut",
985
+ es: "Hola",
986
+ }),
987
+ " ",
988
+ getName(),
989
+ ],
990
+ // Złożona zawartość łącząca warunek, enumerację i wielojęzyczną treść
991
+ // `getIntlayer('page','en').advancedContent(true)(10)` zwraca 'Multiple items found'
992
+ advancedContent: cond({
993
+ true: enu({
994
+ "0": t({
995
+ en: "No items found",
996
+ fr: "Aucun article trouvé",
997
+ es: "No se encontraron artículos",
998
+ }),
999
+ "1": t({
1000
+ en: "One item found",
1001
+ fr: "Un article trouvé",
1002
+ es: "Se encontró un artículo",
1003
+ }),
1004
+ ">1": t({
1005
+ en: "Multiple items found",
1006
+ fr: "Plusieurs articles trouvés",
1007
+ es: "Se encontraron múltiples artículos",
1008
+ }),
1009
+ }),
1010
+ false: t({
1011
+ en: "No valid data available",
1012
+ fr: "Aucune donnée valide disponible",
1013
+ es: "No hay datos válidos disponibles",
1014
+ }),
1015
+ }),
1016
+ },
1017
+ };
1018
+ ```
1019
+
1020
+ ```json5 fileName="src/example.content.json" contentDeclarationFormat="json"
1021
+ {
1022
+ "$schema": "https://intlayer.org/schema.json",
1023
+ "key": "page",
1024
+ "content": {
1025
+ "hiMessage": {
1026
+ "nodeType": "composite",
1027
+ "composite": [
1028
+ {
1029
+ "nodeType": "translation",
1030
+ "translation": {
1031
+ en: "Cześć",
1032
+ fr: "Salut",
1033
+ es: "Hola",
1034
+ },
1035
+ },
1036
+ " ",
1037
+ "John Doe",
1038
+ ],
1039
+ },
1040
+ "advancedContent": {
1041
+ "nodeType": "condition",
1042
+ "condition": {
1043
+ true: {
1044
+ "nodeType": "enumeration",
1045
+ "enumeration": {
1046
+ "0": {
1047
+ "nodeType": "translation",
1048
+ "translation": {
1049
+ en: "Nie znaleziono elementów",
1050
+ fr: "Aucun article trouvé",
1051
+ es: "No se encontraron artículos",
1052
+ },
1053
+ },
1054
+ "1": {
1055
+ "nodeType": "translation",
1056
+ "translation": {
1057
+ en: "Znaleziono jeden element",
1058
+ fr: "Un article trouvé",
1059
+ es: "Se encontró un artículo",
1060
+ },
1061
+ },
1062
+ ">1": {
1063
+ },
1064
+ },
1065
+ " ",
1066
+ "John Doe",
1067
+ ],
1068
+ },
1069
+ "advancedContent": {
1070
+ "nodeType": "condition",
1071
+ "condition": {
1072
+ "true": {
1073
+ "nodeType": "enumeration",
1074
+ "enumeration": {
1075
+ "0": {
1076
+ "nodeType": "translation",
1077
+ "translation": {
1078
+ en: "No items found", // Brak znalezionych elementów
1079
+ fr: "Aucun article trouvé",
1080
+ es: "No se encontraron artículos",
1081
+ },
1082
+ },
1083
+ "1": {
1084
+ "nodeType": "translation",
1085
+ "translation": {
1086
+ en: "One item found", // Znaleziono jeden element
1087
+ fr: "Un article trouvé",
1088
+ es: "Se encontró un artículo",
1089
+ },
1090
+ },
1091
+ ">1": {
1092
+ "nodeType": "translation",
1093
+ "translation": {
1094
+ "en": "Multiple items found",
1095
+ "fr": "Plusieurs articles trouvés",
1096
+ "es": "Se encontraron múltiples artículos",
1097
+ },
1098
+ },
1099
+ },
1100
+ },
1101
+ "false": {
1102
+ "nodeType": "translation",
1103
+ "translation": {
1104
+ "en": "No valid data available",
1105
+ "fr": "Aucune donnée valide disponible",
1106
+ "es": "No hay datos válidos disponibles",
1107
+ },
1108
+ },
1109
+ },
1110
+ },
1111
+ },
1112
+ }
1113
+ ```
1114
+
1115
+ ### Najlepsze praktyki
1116
+
1117
+ 1. **Konwencje nazewnictwa**:
1118
+ - Używaj kebab-case dla kluczy słownika (`"about-page-meta"`)
1119
+ - Grupuj powiązane treści pod tym samym prefiksem klucza
1120
+
1121
+ 2. **Organizacja treści**:
1122
+ - Trzymaj powiązane treści razem w tym samym słowniku
1123
+ - Używaj zagnieżdżonych obiektów do organizacji złożonych struktur treści
1124
+ - Wykorzystuj tagi do kategoryzacji
1125
+ - Używaj `fill` do automatycznego uzupełniania brakujących tłumaczeń
1126
+
1127
+ 3. **Wydajność**:
1128
+ - Dostosuj konfigurację treści, aby ograniczyć zakres obserwowanych plików
1129
+ - Używaj słowników na żywo tylko wtedy, gdy są potrzebne aktualizacje w czasie rzeczywistym (np. testy A/B itp.)
1130
+ - Upewnij się, że wtyczka transformacji podczas budowania (`@intlayer/swc` lub `@intlayer/babel`) jest włączona, aby zoptymalizować słownik podczas kompilacji