@intlayer/docs 5.8.1 → 6.0.0-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 (378) hide show
  1. package/blog/ar/rag_powered_documentation_assistant.md +282 -0
  2. package/blog/de/rag_powered_documentation_assistant.md +282 -0
  3. package/blog/en/rag_powered_documentation_assistant.md +289 -0
  4. package/blog/en-GB/rag_powered_documentation_assistant.md +284 -0
  5. package/blog/es/rag_powered_documentation_assistant.md +308 -0
  6. package/blog/fr/rag_powered_documentation_assistant.md +308 -0
  7. package/blog/hi/rag_powered_documentation_assistant.md +284 -0
  8. package/blog/it/rag_powered_documentation_assistant.md +284 -0
  9. package/blog/ja/rag_powered_documentation_assistant.md +284 -0
  10. package/blog/ko/rag_powered_documentation_assistant.md +283 -0
  11. package/blog/pt/rag_powered_documentation_assistant.md +284 -0
  12. package/blog/ru/rag_powered_documentation_assistant.md +284 -0
  13. package/blog/tr/index.md +69 -0
  14. package/blog/tr/internationalization_and_SEO.md +273 -0
  15. package/blog/tr/intlayer_with_i18next.md +162 -0
  16. package/blog/tr/intlayer_with_next-i18next.md +367 -0
  17. package/blog/tr/intlayer_with_next-intl.md +392 -0
  18. package/blog/tr/intlayer_with_react-i18next.md +346 -0
  19. package/blog/tr/intlayer_with_react-intl.md +345 -0
  20. package/blog/tr/list_i18n_technologies/CMS/drupal.md +143 -0
  21. package/blog/tr/list_i18n_technologies/CMS/wix.md +167 -0
  22. package/blog/tr/list_i18n_technologies/CMS/wordpress.md +188 -0
  23. package/blog/tr/list_i18n_technologies/frameworks/angular.md +125 -0
  24. package/blog/tr/list_i18n_technologies/frameworks/flutter.md +150 -0
  25. package/blog/tr/list_i18n_technologies/frameworks/react-native.md +217 -0
  26. package/blog/tr/list_i18n_technologies/frameworks/react.md +155 -0
  27. package/blog/tr/list_i18n_technologies/frameworks/svelte.md +129 -0
  28. package/blog/tr/list_i18n_technologies/frameworks/vue.md +130 -0
  29. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +170 -0
  30. package/blog/tr/rag_powered_documentation_assistant.md +284 -0
  31. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +162 -0
  32. package/blog/tr/vue-i18n_vs_intlayer.md +276 -0
  33. package/blog/tr/what_is_internationalization.md +166 -0
  34. package/blog/zh/rag_powered_documentation_assistant.md +284 -0
  35. package/dist/cjs/generated/blog.entry.cjs +212 -0
  36. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  37. package/dist/cjs/generated/docs.entry.cjs +660 -132
  38. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  39. package/dist/cjs/generated/frequentQuestions.entry.cjs +84 -0
  40. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  41. package/dist/cjs/generated/legal.entry.cjs +6 -0
  42. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  43. package/dist/esm/generated/blog.entry.mjs +212 -0
  44. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  45. package/dist/esm/generated/docs.entry.mjs +660 -132
  46. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  47. package/dist/esm/generated/frequentQuestions.entry.mjs +84 -0
  48. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  49. package/dist/esm/generated/legal.entry.mjs +6 -0
  50. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  51. package/dist/types/generated/blog.entry.d.ts +1 -0
  52. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  53. package/dist/types/generated/docs.entry.d.ts +5 -2
  54. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  55. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  56. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  57. package/docs/ar/autoFill.md +41 -40
  58. package/docs/ar/configuration.md +202 -199
  59. package/docs/ar/dictionary/content_file.md +1059 -0
  60. package/docs/ar/intlayer_CMS.md +4 -4
  61. package/docs/ar/intlayer_with_nestjs.md +271 -0
  62. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  63. package/docs/ar/intlayer_with_react_router_v7.md +533 -0
  64. package/docs/ar/intlayer_with_tanstack.md +465 -299
  65. package/docs/ar/intlayer_with_vite+preact.md +7 -7
  66. package/docs/ar/intlayer_with_vite+react.md +7 -7
  67. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  68. package/docs/ar/packages/vite-intlayer/index.md +3 -3
  69. package/docs/ar/readme.md +261 -0
  70. package/docs/ar/testing.md +199 -0
  71. package/docs/de/autoFill.md +42 -19
  72. package/docs/de/configuration.md +155 -147
  73. package/docs/de/dictionary/content_file.md +1059 -0
  74. package/docs/de/intlayer_CMS.md +4 -5
  75. package/docs/de/intlayer_with_nestjs.md +270 -0
  76. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  77. package/docs/de/intlayer_with_react_router_v7.md +537 -0
  78. package/docs/de/intlayer_with_tanstack.md +469 -302
  79. package/docs/de/intlayer_with_vite+preact.md +7 -7
  80. package/docs/de/intlayer_with_vite+react.md +7 -7
  81. package/docs/de/intlayer_with_vite+vue.md +9 -9
  82. package/docs/de/packages/vite-intlayer/index.md +3 -3
  83. package/docs/de/readme.md +261 -0
  84. package/docs/de/testing.md +200 -0
  85. package/docs/en/CI_CD.md +4 -6
  86. package/docs/en/autoFill.md +25 -5
  87. package/docs/en/configuration.md +45 -54
  88. package/docs/en/dictionary/content_file.md +1054 -0
  89. package/docs/en/intlayer_CMS.md +8 -7
  90. package/docs/en/intlayer_cli.md +112 -5
  91. package/docs/en/intlayer_with_nestjs.md +268 -0
  92. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  93. package/docs/en/intlayer_with_react_router_v7.md +531 -0
  94. package/docs/en/intlayer_with_tanstack.md +463 -294
  95. package/docs/en/intlayer_with_vite+preact.md +8 -8
  96. package/docs/en/intlayer_with_vite+react.md +8 -8
  97. package/docs/en/intlayer_with_vite+vue.md +8 -8
  98. package/docs/en/packages/intlayer/getLocalizedUrl.md +102 -25
  99. package/docs/en/packages/vite-intlayer/index.md +3 -3
  100. package/docs/en/readme.md +261 -0
  101. package/docs/en/testing.md +200 -0
  102. package/docs/en-GB/autoFill.md +29 -6
  103. package/docs/en-GB/configuration.md +79 -71
  104. package/docs/en-GB/dictionary/content_file.md +1084 -0
  105. package/docs/en-GB/intlayer_CMS.md +4 -5
  106. package/docs/en-GB/intlayer_with_nestjs.md +268 -0
  107. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  108. package/docs/en-GB/intlayer_with_react_router_v7.md +533 -0
  109. package/docs/en-GB/intlayer_with_tanstack.md +466 -299
  110. package/docs/en-GB/intlayer_with_vite+preact.md +7 -7
  111. package/docs/en-GB/intlayer_with_vite+react.md +7 -7
  112. package/docs/en-GB/intlayer_with_vite+vue.md +9 -9
  113. package/docs/en-GB/packages/vite-intlayer/index.md +3 -3
  114. package/docs/en-GB/readme.md +261 -0
  115. package/docs/en-GB/testing.md +200 -0
  116. package/docs/es/autoFill.md +45 -23
  117. package/docs/es/configuration.md +171 -167
  118. package/docs/es/dictionary/content_file.md +1088 -0
  119. package/docs/es/intlayer_CMS.md +4 -5
  120. package/docs/es/intlayer_with_nestjs.md +268 -0
  121. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  122. package/docs/es/intlayer_with_react_router_v7.md +533 -0
  123. package/docs/es/intlayer_with_tanstack.md +469 -280
  124. package/docs/es/intlayer_with_vite+preact.md +7 -7
  125. package/docs/es/intlayer_with_vite+react.md +7 -7
  126. package/docs/es/intlayer_with_vite+vue.md +9 -9
  127. package/docs/es/packages/vite-intlayer/index.md +3 -3
  128. package/docs/es/readme.md +261 -0
  129. package/docs/es/testing.md +200 -0
  130. package/docs/fr/autoFill.md +47 -24
  131. package/docs/fr/configuration.md +213 -198
  132. package/docs/fr/dictionary/content_file.md +1054 -0
  133. package/docs/fr/intlayer_CMS.md +4 -5
  134. package/docs/fr/intlayer_with_nestjs.md +268 -0
  135. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  136. package/docs/fr/intlayer_with_react_router_v7.md +549 -0
  137. package/docs/fr/intlayer_with_tanstack.md +465 -279
  138. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  139. package/docs/fr/intlayer_with_vite+react.md +7 -7
  140. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  141. package/docs/fr/packages/vite-intlayer/index.md +3 -3
  142. package/docs/fr/readme.md +261 -0
  143. package/docs/fr/testing.md +200 -0
  144. package/docs/hi/autoFill.md +47 -25
  145. package/docs/hi/configuration.md +194 -189
  146. package/docs/hi/dictionary/content_file.md +1056 -0
  147. package/docs/hi/intlayer_CMS.md +4 -5
  148. package/docs/hi/intlayer_with_nestjs.md +269 -0
  149. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  150. package/docs/hi/intlayer_with_react_router_v7.md +533 -0
  151. package/docs/hi/intlayer_with_tanstack.md +467 -282
  152. package/docs/hi/intlayer_with_vite+preact.md +7 -7
  153. package/docs/hi/intlayer_with_vite+react.md +7 -7
  154. package/docs/hi/intlayer_with_vite+vue.md +9 -9
  155. package/docs/hi/packages/vite-intlayer/index.md +3 -3
  156. package/docs/hi/readme.md +261 -0
  157. package/docs/hi/testing.md +200 -0
  158. package/docs/it/autoFill.md +46 -24
  159. package/docs/it/configuration.md +169 -161
  160. package/docs/it/dictionary/content_file.md +1061 -0
  161. package/docs/it/intlayer_CMS.md +4 -5
  162. package/docs/it/intlayer_with_nestjs.md +268 -0
  163. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  164. package/docs/it/intlayer_with_react_router_v7.md +535 -0
  165. package/docs/it/intlayer_with_tanstack.md +467 -301
  166. package/docs/it/intlayer_with_vite+preact.md +7 -7
  167. package/docs/it/intlayer_with_vite+react.md +7 -7
  168. package/docs/it/intlayer_with_vite+vue.md +9 -9
  169. package/docs/it/packages/vite-intlayer/index.md +3 -3
  170. package/docs/it/readme.md +261 -0
  171. package/docs/it/testing.md +200 -0
  172. package/docs/ja/autoFill.md +45 -23
  173. package/docs/ja/configuration.md +243 -204
  174. package/docs/ja/dictionary/content_file.md +1064 -0
  175. package/docs/ja/intlayer_CMS.md +4 -5
  176. package/docs/ja/intlayer_with_nestjs.md +268 -0
  177. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  178. package/docs/ja/intlayer_with_react_router_v7.md +534 -0
  179. package/docs/ja/intlayer_with_tanstack.md +467 -303
  180. package/docs/ja/intlayer_with_vite+preact.md +7 -7
  181. package/docs/ja/intlayer_with_vite+react.md +7 -7
  182. package/docs/ja/intlayer_with_vite+vue.md +9 -9
  183. package/docs/ja/packages/vite-intlayer/index.md +3 -3
  184. package/docs/ja/readme.md +263 -0
  185. package/docs/ja/testing.md +200 -0
  186. package/docs/ko/autoFill.md +39 -16
  187. package/docs/ko/configuration.md +217 -197
  188. package/docs/ko/dictionary/content_file.md +1060 -0
  189. package/docs/ko/intlayer_CMS.md +4 -5
  190. package/docs/ko/intlayer_with_nestjs.md +268 -0
  191. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  192. package/docs/ko/intlayer_with_react_router_v7.md +540 -0
  193. package/docs/ko/intlayer_with_tanstack.md +466 -302
  194. package/docs/ko/intlayer_with_vite+preact.md +7 -7
  195. package/docs/ko/intlayer_with_vite+react.md +7 -7
  196. package/docs/ko/intlayer_with_vite+vue.md +9 -9
  197. package/docs/ko/packages/vite-intlayer/index.md +3 -3
  198. package/docs/ko/readme.md +261 -0
  199. package/docs/ko/testing.md +200 -0
  200. package/docs/pt/autoFill.md +39 -15
  201. package/docs/pt/configuration.md +165 -147
  202. package/docs/pt/dictionary/content_file.md +1062 -0
  203. package/docs/pt/intlayer_CMS.md +4 -5
  204. package/docs/pt/intlayer_with_nestjs.md +271 -0
  205. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  206. package/docs/pt/intlayer_with_react_router_v7.md +535 -0
  207. package/docs/pt/intlayer_with_tanstack.md +469 -300
  208. package/docs/pt/intlayer_with_vite+preact.md +7 -7
  209. package/docs/pt/intlayer_with_vite+react.md +7 -7
  210. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  211. package/docs/pt/packages/vite-intlayer/index.md +3 -3
  212. package/docs/pt/readme.md +261 -0
  213. package/docs/pt/testing.md +200 -0
  214. package/docs/ru/autoFill.md +52 -30
  215. package/docs/ru/configuration.md +164 -117
  216. package/docs/ru/dictionary/content_file.md +1064 -0
  217. package/docs/ru/intlayer_CMS.md +4 -4
  218. package/docs/ru/intlayer_with_nestjs.md +270 -0
  219. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  220. package/docs/ru/intlayer_with_react_router_v7.md +534 -0
  221. package/docs/ru/intlayer_with_tanstack.md +470 -305
  222. package/docs/ru/intlayer_with_vite+preact.md +7 -7
  223. package/docs/ru/intlayer_with_vite+react.md +7 -7
  224. package/docs/ru/intlayer_with_vite+vue.md +9 -9
  225. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  226. package/docs/ru/readme.md +261 -0
  227. package/docs/ru/testing.md +202 -0
  228. package/docs/tr/CI_CD.md +198 -0
  229. package/docs/tr/autoFill.md +201 -0
  230. package/docs/tr/configuration.md +585 -0
  231. package/docs/tr/dictionary/condition.md +243 -0
  232. package/docs/tr/dictionary/content_file.md +1055 -0
  233. package/docs/tr/dictionary/enumeration.md +251 -0
  234. package/docs/tr/dictionary/file.md +228 -0
  235. package/docs/tr/dictionary/function_fetching.md +218 -0
  236. package/docs/tr/dictionary/gender.md +279 -0
  237. package/docs/tr/dictionary/insertion.md +191 -0
  238. package/docs/tr/dictionary/markdown.md +385 -0
  239. package/docs/tr/dictionary/nesting.md +279 -0
  240. package/docs/tr/dictionary/translation.md +315 -0
  241. package/docs/tr/formatters.md +618 -0
  242. package/docs/tr/how_works_intlayer.md +254 -0
  243. package/docs/tr/index.md +168 -0
  244. package/docs/tr/interest_of_intlayer.md +288 -0
  245. package/docs/tr/intlayer_CMS.md +347 -0
  246. package/docs/tr/intlayer_cli.md +570 -0
  247. package/docs/tr/intlayer_visual_editor.md +269 -0
  248. package/docs/tr/intlayer_with_angular.md +694 -0
  249. package/docs/tr/intlayer_with_create_react_app.md +1218 -0
  250. package/docs/tr/intlayer_with_express.md +415 -0
  251. package/docs/tr/intlayer_with_lynx+react.md +511 -0
  252. package/docs/tr/intlayer_with_nestjs.md +268 -0
  253. package/docs/tr/intlayer_with_nextjs_14.md +1029 -0
  254. package/docs/tr/intlayer_with_nextjs_15.md +1506 -0
  255. package/docs/tr/intlayer_with_nextjs_page_router.md +1484 -0
  256. package/docs/tr/intlayer_with_nuxt.md +773 -0
  257. package/docs/tr/intlayer_with_react_native+expo.md +660 -0
  258. package/docs/tr/intlayer_with_react_router_v7.md +531 -0
  259. package/docs/tr/intlayer_with_tanstack.md +452 -0
  260. package/docs/tr/intlayer_with_vite+preact.md +1673 -0
  261. package/docs/tr/intlayer_with_vite+react.md +1632 -0
  262. package/docs/tr/intlayer_with_vite+solid.md +288 -0
  263. package/docs/tr/intlayer_with_vite+svelte.md +288 -0
  264. package/docs/tr/intlayer_with_vite+vue.md +1042 -0
  265. package/docs/tr/introduction.md +209 -0
  266. package/docs/tr/locale_mapper.md +244 -0
  267. package/docs/tr/mcp_server.md +207 -0
  268. package/docs/tr/packages/@intlayer/api/index.md +58 -0
  269. package/docs/tr/packages/@intlayer/chokidar/index.md +57 -0
  270. package/docs/tr/packages/@intlayer/cli/index.md +47 -0
  271. package/docs/tr/packages/@intlayer/config/index.md +142 -0
  272. package/docs/tr/packages/@intlayer/core/index.md +51 -0
  273. package/docs/tr/packages/@intlayer/design-system/index.md +47 -0
  274. package/docs/tr/packages/@intlayer/dictionary-entry/index.md +53 -0
  275. package/docs/tr/packages/@intlayer/editor/index.md +47 -0
  276. package/docs/tr/packages/@intlayer/editor-react/index.md +47 -0
  277. package/docs/tr/packages/@intlayer/webpack/index.md +61 -0
  278. package/docs/tr/packages/angular-intlayer/index.md +59 -0
  279. package/docs/tr/packages/express-intlayer/index.md +258 -0
  280. package/docs/tr/packages/express-intlayer/t.md +459 -0
  281. package/docs/tr/packages/intlayer/getConfiguration.md +151 -0
  282. package/docs/tr/packages/intlayer/getEnumeration.md +165 -0
  283. package/docs/tr/packages/intlayer/getHTMLTextDir.md +127 -0
  284. package/docs/tr/packages/intlayer/getLocaleLang.md +87 -0
  285. package/docs/tr/packages/intlayer/getLocaleName.md +124 -0
  286. package/docs/tr/packages/intlayer/getLocalizedUrl.md +324 -0
  287. package/docs/tr/packages/intlayer/getMultilingualUrls.md +225 -0
  288. package/docs/tr/packages/intlayer/getPathWithoutLocale.md +81 -0
  289. package/docs/tr/packages/intlayer/getTranslation.md +196 -0
  290. package/docs/tr/packages/intlayer/getTranslationContent.md +195 -0
  291. package/docs/tr/packages/intlayer/index.md +505 -0
  292. package/docs/tr/packages/intlayer-cli/index.md +71 -0
  293. package/docs/tr/packages/intlayer-editor/index.md +139 -0
  294. package/docs/tr/packages/lynx-intlayer/index.md +85 -0
  295. package/docs/tr/packages/next-intlayer/index.md +154 -0
  296. package/docs/tr/packages/next-intlayer/t.md +354 -0
  297. package/docs/tr/packages/next-intlayer/useDictionary.md +270 -0
  298. package/docs/tr/packages/next-intlayer/useIntlayer.md +265 -0
  299. package/docs/tr/packages/next-intlayer/useLocale.md +133 -0
  300. package/docs/tr/packages/nuxt-intlayer/index.md +59 -0
  301. package/docs/tr/packages/preact-intlayer/index.md +55 -0
  302. package/docs/tr/packages/react-intlayer/index.md +148 -0
  303. package/docs/tr/packages/react-intlayer/t.md +304 -0
  304. package/docs/tr/packages/react-intlayer/useDictionary.md +554 -0
  305. package/docs/tr/packages/react-intlayer/useI18n.md +478 -0
  306. package/docs/tr/packages/react-intlayer/useIntlayer.md +253 -0
  307. package/docs/tr/packages/react-intlayer/useLocale.md +212 -0
  308. package/docs/tr/packages/react-native-intlayer/index.md +85 -0
  309. package/docs/tr/packages/react-scripts-intlayer/index.md +82 -0
  310. package/docs/tr/packages/solid-intlayer/index.md +56 -0
  311. package/docs/tr/packages/svelte-intlayer/index.md +55 -0
  312. package/docs/tr/packages/vite-intlayer/index.md +82 -0
  313. package/docs/tr/packages/vue-intlayer/index.md +59 -0
  314. package/docs/tr/per_locale_file.md +321 -0
  315. package/docs/tr/readme.md +261 -0
  316. package/docs/tr/roadmap.md +338 -0
  317. package/docs/tr/testing.md +200 -0
  318. package/docs/tr/vs_code_extension.md +154 -0
  319. package/docs/zh/autoFill.md +40 -18
  320. package/docs/zh/configuration.md +245 -226
  321. package/docs/zh/dictionary/content_file.md +1064 -0
  322. package/docs/zh/intlayer_CMS.md +4 -5
  323. package/docs/zh/intlayer_with_nestjs.md +268 -0
  324. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  325. package/docs/zh/intlayer_with_react_router_v7.md +535 -0
  326. package/docs/zh/intlayer_with_tanstack.md +468 -278
  327. package/docs/zh/intlayer_with_vite+preact.md +7 -7
  328. package/docs/zh/intlayer_with_vite+react.md +7 -7
  329. package/docs/zh/intlayer_with_vite+vue.md +7 -7
  330. package/docs/zh/packages/vite-intlayer/index.md +3 -3
  331. package/docs/zh/readme.md +261 -0
  332. package/docs/zh/testing.md +198 -0
  333. package/frequent_questions/tr/SSR_Next_no_[locale].md +105 -0
  334. package/frequent_questions/tr/array_as_content_declaration.md +72 -0
  335. package/frequent_questions/tr/build_dictionaries.md +59 -0
  336. package/frequent_questions/tr/build_error_CI_CD.md +75 -0
  337. package/frequent_questions/tr/customized_locale_list.md +65 -0
  338. package/frequent_questions/tr/domain_routing.md +114 -0
  339. package/frequent_questions/tr/esbuild_error.md +30 -0
  340. package/frequent_questions/tr/get_locale_cookie.md +142 -0
  341. package/frequent_questions/tr/intlayer_command_undefined.md +156 -0
  342. package/frequent_questions/tr/locale_incorect_in_url.md +74 -0
  343. package/frequent_questions/tr/static_rendering.md +45 -0
  344. package/frequent_questions/tr/translated_path_url.md +56 -0
  345. package/frequent_questions/tr/unknown_command.md +98 -0
  346. package/legal/tr/privacy_notice.md +83 -0
  347. package/legal/tr/terms_of_service.md +55 -0
  348. package/package.json +12 -12
  349. package/src/generated/blog.entry.ts +212 -0
  350. package/src/generated/docs.entry.ts +663 -135
  351. package/src/generated/frequentQuestions.entry.ts +85 -1
  352. package/src/generated/legal.entry.ts +7 -1
  353. package/docs/ar/dictionary/content_extention_customization.md +0 -100
  354. package/docs/ar/dictionary/get_started.md +0 -527
  355. package/docs/de/dictionary/content_extention_customization.md +0 -100
  356. package/docs/de/dictionary/get_started.md +0 -531
  357. package/docs/en/dictionary/content_extention_customization.md +0 -102
  358. package/docs/en/dictionary/get_started.md +0 -529
  359. package/docs/en-GB/dictionary/content_extention_customization.md +0 -100
  360. package/docs/en-GB/dictionary/get_started.md +0 -591
  361. package/docs/es/dictionary/content_extention_customization.md +0 -100
  362. package/docs/es/dictionary/get_started.md +0 -527
  363. package/docs/fr/dictionary/content_extention_customization.md +0 -100
  364. package/docs/fr/dictionary/get_started.md +0 -527
  365. package/docs/hi/dictionary/content_extention_customization.md +0 -100
  366. package/docs/hi/dictionary/get_started.md +0 -527
  367. package/docs/it/dictionary/content_extention_customization.md +0 -113
  368. package/docs/it/dictionary/get_started.md +0 -573
  369. package/docs/ja/dictionary/content_extention_customization.md +0 -113
  370. package/docs/ja/dictionary/get_started.md +0 -576
  371. package/docs/ko/dictionary/content_extention_customization.md +0 -100
  372. package/docs/ko/dictionary/get_started.md +0 -530
  373. package/docs/pt/dictionary/content_extention_customization.md +0 -100
  374. package/docs/pt/dictionary/get_started.md +0 -532
  375. package/docs/ru/dictionary/content_extention_customization.md +0 -100
  376. package/docs/ru/dictionary/get_started.md +0 -575
  377. package/docs/zh/dictionary/content_extention_customization.md +0 -117
  378. package/docs/zh/dictionary/get_started.md +0 -533
@@ -0,0 +1,261 @@
1
+ <p align="center">
2
+ <a href="https://intlayer.org">
3
+ <img src="https://raw.githubusercontent.com/aymericzip/intlayer/main/docs/assets/cover.png" width="60%" alt="Intlayer Logo" />
4
+ </a>
5
+ </p>
6
+
7
+ <h1 align="center">
8
+ <strong> Intlayer : an Open-source, flexible i18n toolkit with AI-powered translation & CMS.</strong>
9
+ </h1>
10
+
11
+ <br />
12
+
13
+ <p align="center">
14
+ <a href="https://intlayer.org/doc/concept/content">Docs</a> •
15
+ <a href="https://intlayer.org/doc/environment/nextjs">Next.js</a> •
16
+ <a href="https://intlayer.org/doc/environment/vite-and-react">React + Vite</a> •
17
+ <a href="https://intlayer.org/doc/concept/cms">CMS</a> •
18
+ <a href="https://discord.gg/7uxamYVeCk">Discord</a>
19
+ </p>
20
+ <p align="center" style="margin-top:15px;">
21
+ <a href="https://www.npmjs.com/package/intlayer" target="_blank"><img src="https://img.shields.io/npm/v/intlayer?style=for-the-badge&labelColor=FFFFFF&color=000000&logoColor=FFFFFF" alt="npm version" height="24"/>
22
+ </a>
23
+ <a href="https://github.com/aymericzip/intlayer/stargazers" target="_blank"><img src="https://img.shields.io/github/stars/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logo=github&logoColor=FFD700" alt="GitHub Stars" height="24"/>
24
+ </a>
25
+ <a href="https://www.npmjs.org/package/intlayer" target="_blank"><img src="https://img.shields.io/npm/dm/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000" alt="monthly downloads" height="24"/>
26
+ </a>
27
+ <a href="https://github.com/aymericzip/intlayer/blob/main/LICENSE"><img src="https://img.shields.io/github/license/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000" alt="license"/>
28
+ </a>
29
+ <a href="https://github.com/aymericzip/intlayer/commits/main"><img src="https://img.shields.io/github/last-commit/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000" alt="last commit"/>
30
+ </a>
31
+ </p>
32
+
33
+ ![Watch the video](https://github.com/aymericzip/intlayer/blob/main/docs/assets/demo_video.gif)
34
+
35
+ <a href="https://intlayer.org/doc/concept/content">
36
+ <img src="https://img.shields.io/badge/Get_Started-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
37
+ </a>
38
+
39
+ ## What is Intlayer?
40
+
41
+ Most i18n libraries are either too complex, too rigid, or not built for modern frameworks.
42
+
43
+ Intlayer is a **modern i18n solution** for web and mobile apps.
44
+ It’s framework-agnostic, **AI-powered**, and includes a free **CMS & visual editor**.
45
+
46
+ With **per-locale content files**, **TypeScript autocompletion**, **tree-shakable dictionaries**, and **CI/CD integration**, Intlayer makes internationalization **faster, cleaner, and smarter**.
47
+
48
+ ## Keys benefits of Intlayer:
49
+
50
+ | Feature | Description |
51
+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
52
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **Cross-Frameworks Support**<br><br>Intlayer is compatible with all major frameworks and libraries, including Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, and more. |
53
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.png?raw=true" alt="Feature" width="700"> | **JavaScript-Powered Content Management**<br><br>Harness the flexibility of JavaScript to define and manage your content efficiently. <br><br> - [Content declaration](https://intlayer.org/doc/concept/content) |
54
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **Per-Locale Content Declaration File**<br><br>Speed up your development by declaring your content once, before auto generation.<br><br> - [Per-Locale Content Declaration File](https://intlayer.org/doc/concept/per-locale-file) |
55
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **Type-Safe Environment**<br><br>Leverage TypeScript to ensure your content definitions and code are error-free, while also benefiting from IDE autocompletion.<br><br> - [TypeScript configuration](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **Simplified Setup**<br><br>Get up and running quickly with minimal configuration. Adjust settings for internationalization, routing, AI, build, and content handling with ease. <br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
57
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **Simplified Content Retrieval**<br><br>No need to call your `t` function for each piece of content. Retrieve all your content directly using a single hook.<br><br> - [React integration](https://intlayer.org/doc/environment/create-react-app) |
58
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **Consistent Server Component Implementation**<br><br>Perfectly suited for Next.js server components, use the same implementation for both client and server components, no need to pass your `t` function across each server component. <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **Organized Codebase**<br><br>Keep your codebase more organized: 1 component = 1 dictionary in the same folder. Translations close to their respective components, enhance maintainability and clarity. <br><br> - [How Intlayer works](https://intlayer.org/doc/concept/how-works-intlayer) |
60
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **Enhanced Routing**<br><br>Full support of app routing, adapting seamlessly to complex application structures, for Next.js, React, Vite, Vue.js, etc.<br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
61
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **Markdown Support**<br><br>Import and interpret, locale files and remote Markdown for multilingual content like privacy policies, documentation, etc. Interpret and make Markdown metadata accessible in your code.<br><br> - [Content files](https://intlayer.org/doc/concept/content/file) |
62
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **Free Visual Editor & CMS**<br><br>A free visual editor and CMS are available for content writers, removing the need for a localization platform. Keep your content synchronized using Git, or externalize it totally or partially with the CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
63
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **Tree-shakable Content**<br><br>Tree-shakable content, reducing the size of the final bundle. Loads content per component, excluding any unused content from your bundle. Supports lazy loading to enhance app loading efficiency. <br><br> - [App build optimization](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **Static Rendering**<br><br>Doesn't block Static Rendering. <br><br> - [Next.js integration](https://intlayer.org/doc/environment/nextjs) |
65
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **AI-Powered Translation**<br><br>Transform your website into 231 languages with just one click using Intlayer's advanced AI-powered translation tools using your own AI provider / API key. <br><br> - [CI/CD integration](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Auto fill](https://intlayer.org/doc/concept/auto-fill) |
66
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **MCP Server Integration**<br><br>Provides an MCP (Model Context Protocol) server for IDE automation, enabling seamless content management and i18n workflows directly within your development environment. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/mcp_server.md) |
67
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **VSCode Extension**<br><br>Intlayer provides a VSCode extension to help you manage your content and translations, builting your dictionaries, translating your content, and more. <br><br> - [VSCode Extension](https://intlayer.org/doc/vs-code-extension) |
68
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **Interoperability**<br><br>Allow interoperability with react-i18next, next-i18next, next-intl, and react-intl. <br><br> - [Intlayer and react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer and next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer and next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
69
+
70
+ ---
71
+
72
+ ## 📦 Installation
73
+
74
+ Start your journey with Intlayer today and experience a smoother, more powerful approach to internationalization.
75
+
76
+ <a href="https://intlayer.org/doc/concept/content">
77
+ <img src="https://img.shields.io/badge/Get_Started-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
78
+ </a>
79
+
80
+ ```bash
81
+ npm install intlayer react-intlayer
82
+ ```
83
+
84
+ ⚡ Quick Start (Next.js)
85
+
86
+ ```ts
87
+ // intlayer.config.ts
88
+ import { Locales, type IntlayerConfig } from "intlayer";
89
+
90
+ const config: IntlayerConfig = {
91
+ internationalization: {
92
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
93
+ defaultLocale: Locales.ENGLISH,
94
+ },
95
+ };
96
+
97
+ export default config;
98
+ ```
99
+
100
+ ```tsx
101
+ // app/page.tsx
102
+ import { useIntlayer } from "react-intlayer";
103
+
104
+ const Component = () => {
105
+ const { title } = useIntlayer("home");
106
+
107
+ return <h1>{title}</h1>;
108
+ };
109
+ ```
110
+
111
+ <a href="https://intlayer.org/doc/environment/nextjs"> Get the full guide → </a>
112
+
113
+ ## 🎥 Live tutorial on YouTube
114
+
115
+ [![How to Internationalize your application using Intlayer](https://i.ytimg.com/vi/e_PPG7PTqGU/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDtyJ4uYotEjl12nZ_gZKZ_kjEgOQ)](https://youtu.be/e_PPG7PTqGU?si=GyU_KpVhr61razRw)
116
+
117
+ <a href="https://intlayer.org/doc/concept/content">
118
+ <img src="https://img.shields.io/badge/Get_Started-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
119
+ </a>
120
+
121
+ ## Table of Contents
122
+
123
+ Explore our comprehensive documentation to get started with Intlayer and learn how to integrate it into your projects.
124
+
125
+ <details open>
126
+ <summary style="font-size:16px; font-weight:bold;">📘 Get Started</summary>
127
+ <ul>
128
+ <li><a href="https://intlayer.org/doc/why">Why Intlayer?</a></li>
129
+ <li><a href="https://intlayer.org/doc">Introduction</a></li>
130
+ </ul>
131
+ </details>
132
+
133
+ <details>
134
+ <summary style="font-size:16px; font-weight:bold;">⚙️ Concept</summary>
135
+ <ul>
136
+ <li><a href="https://intlayer.org/doc/concept/how-works-intlayer">How Intlayer Works</a></li>
137
+ <li><a href="https://intlayer.org/doc/concept/configuration">Configuration</a></li>
138
+ <li><a href="https://intlayer.org/doc/concept/ai">AI provider</a></li>
139
+ <li><a href="https://intlayer.org/doc/concept/cli">Intlayer CLI</a></li>
140
+ <li><a href="https://intlayer.org/doc/concept/editor">Intlayer Editor</a></li>
141
+ <li><a href="https://intlayer.org/doc/concept/cms">Intlayer CMS</a></li>
142
+ <li><a href="https://intlayer.org/doc/concept/content">Dictionary</a>
143
+ <ul>
144
+ <li><a href="https://intlayer.org/doc/concept/content/per-locale-file">Per-Locale Content Declaration File</a></li>
145
+ <li><a href="https://intlayer.org/doc/concept/content/translation">Translation</a></li>
146
+ <li><a href="https://intlayer.org/doc/concept/content/enumeration">Enumeration</a></li>
147
+ <li><a href="https://intlayer.org/doc/concept/content/condition">Condition</a></li>
148
+ <li><a href="https://intlayer.org/doc/concept/content/nesting">Nesting</a></li>
149
+ <li><a href="https://intlayer.org/doc/concept/content/markdown">Markdown</a></li>
150
+ <li><a href="https://intlayer.org/doc/concept/content/function-fetching">Function Fetching</a></li>
151
+ <li><a href="https://intlayer.org/doc/concept/content/insertion">Insertion</a></li>
152
+ <li><a href="https://intlayer.org/doc/concept/content/file">File</a></li>
153
+ </ul>
154
+ </li>
155
+ </ul>
156
+ </details>
157
+
158
+ <details open>
159
+ <summary style="font-size:16px; font-weight:bold;">🌐 Environment</summary>
160
+ <ul>
161
+ <li><a href="https://intlayer.org/doc/environment/nextjs">Intlayer with Next.js 15</a>
162
+ <ul>
163
+ <li><a href="https://intlayer.org/doc/environment/nextjs/14">Next.js 14 (App Router)</a></li>
164
+ <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router">Next.js Page Router</a></li>
165
+ </ul>
166
+ </li>
167
+ <li><a href="https://intlayer.org/doc/environment/create-react-app">React CRA</a></li>
168
+ <li><a href="https://intlayer.org/doc/environment/vite-and-react">Vite + React</a>
169
+ <ul>
170
+ <li><a href="https://intlayer.org/doc/environment/vite-and-react/react-router-v7">React-router-v7</a></li>
171
+ <li><a href="https://intlayer.org/doc/environment/vite-and-react/tanstack-start">Tanstack start</a></li>
172
+ </ul>
173
+ </li>
174
+ <li><a href="https://intlayer.org/doc/environment/react-native-and-expo">React Native</a></li>
175
+ <li><a href="https://intlayer.org/doc/environment/lynx-and-react">Lynx + React</a></li>
176
+ <li><a href="https://intlayer.org/doc/environment/vite-and-svelte">Vite + Svelte</a></li>
177
+ <li><a href="https://intlayer.org/doc/environment/vite-and-preact">Vite + Preact</a></li>
178
+ <li><a href="https://intlayer.org/doc/environment/vite-and-vue">Vite + Vue</a></li>
179
+ <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt">Vite + Nuxt</a></li>
180
+ <li><a href="https://intlayer.org/doc/environment/vite-and-solid">Vite + Solid</a></li>
181
+ <li><a href="https://intlayer.org/doc/environment/angular">Angular</a></li>
182
+ <li><a href="https://intlayer.org/doc/environment/express">Express</a></li>
183
+ <li><a href="https://intlayer.org/doc/environment/nest">NestJS</a></li>
184
+ </ul>
185
+ </details>
186
+
187
+ <details>
188
+ <summary style="font-size:16px; font-weight:bold;">📰 Blog</summary>
189
+ <ul>
190
+ <li><a href="https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/what_is_internationalization.md">What is i18n</a></li>
191
+ <li><a href="https://intlayer.org/blog/SEO-and-i18n">i18n and SEO</a></li>
192
+ <li><a href="https://intlayer.org/blog/intlayer-with-next-i18next">Intlayer and i18next</a></li>
193
+ <li><a href="https://intlayer.org/blog/intlayer-with-react-i18next">Intlayer and react-intl</a></li>
194
+ <li><a href="https://intlayer.org/blog/intlayer-with-next-intl">Intlayer and next-intl</a></li>
195
+ </ul>
196
+ </details>
197
+
198
+ ## 🌐 Readme in other languages
199
+
200
+ [English](https://github.com/aymericzip/intlayer/blob/main/readme.md) •
201
+ [简体中文](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/readme.md) •
202
+ [Русский](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/readme.md) •
203
+ [日本語](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/readme.md) •
204
+ [Français](https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/readme.md) •
205
+ [한국어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/readme.md) •
206
+ [Español](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/readme.md) •
207
+ [Deutsch](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/readme.md) •
208
+ [العربية](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/readme.md) •
209
+ [Italiano](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/readme.md) •
210
+ [English (UK)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/readme.md) •
211
+ [Português](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/readme.md) •
212
+ [हिन्दी](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/readme.md)
213
+ [Türkçe](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/readme.md)
214
+
215
+ ## 🤝 Community
216
+
217
+ Intlayer is built with and for the community and we’d love your input!
218
+
219
+ - Have a suggestion? [Open an issue](https://github.com/aymericzip/intlayer/issues)
220
+ - Found a bug or improvement? [Submit a PR](https://github.com/aymericzip/intlayer/pulls)
221
+ - Need help or want to connect? [Join our Discord](https://discord.gg/7uxamYVeCk)
222
+
223
+ You can also follow us on :
224
+
225
+ <div>
226
+ <br/>
227
+ <p align="center">
228
+ <a href="https://discord.gg/528mBV4N" target="blank"><img align="center"
229
+ src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white"
230
+ alt="Intlayer Discord" height="30"/></a>
231
+ <a href="https://www.linkedin.com/company/intlayerorg" target="blank"><img align="center"
232
+ src="https://img.shields.io/badge/linkedin-%231DA1F2.svg?style=for-the-badge&logo=linkedin&logoColor=white"
233
+ alt="Intlayer LinkedIn" height="30"/></a>
234
+ <a href="https://www.facebook.com/intlayer" target="blank"><img align="center"
235
+ src="https://img.shields.io/badge/facebook-4267B2.svg?style=for-the-badge&logo=facebook&logoColor=white"
236
+ alt="Intlayer Facebook" height="30"/></a>
237
+ <a href="https://www.instagram.com/intlayer/" target="blank"><img align="center"
238
+ src="https://img.shields.io/badge/instagram-%23E4405F.svg?style=for-the-badge&logo=Instagram&logoColor=white"
239
+ alt="Intlayer Instagram" height="30"/></a>
240
+ <a href="https://x.com/Intlayer183096" target="blank"><img align="center"
241
+ src="https://img.shields.io/badge/x-1DA1F2.svg?style=for-the-badge&logo=x&logoColor=white"
242
+ alt="Intlayer X" height="30"/></a>
243
+ <a href="https://www.youtube.com/@intlayer" target="blank"><img align="center"
244
+ src="https://img.shields.io/badge/youtube-FF0000.svg?style=for-the-badge&logo=youtube&logoColor=white"
245
+ alt="Intlayer YouTube" height="30"/></a>
246
+ <a href="https://www.tiktok.com/@intlayer" target="blank"><img align="center"
247
+ src="https://img.shields.io/badge/tiktok-000000.svg?style=for-the-badge&logo=tiktok&logoColor=white"
248
+ alt="Intlayer TikTok" height="30"/></a>
249
+ <br>
250
+ </p>
251
+ </div>
252
+
253
+ ### Contribution
254
+
255
+ For more detailed guidelines on contributing to this project, please refer to the [`CONTRIBUTING.md`](https://github.com/aymericzip/intlayer/blob/main/CONTRIBUTING.md) file. It contains essential information on our development process, commit message conventions, and release procedures. Your contributions are valuable to us, and we appreciate your efforts in making this project better!
256
+
257
+ ### Thank You for the Support
258
+
259
+ If you like Intlayer, give us a ⭐ on GitHub. It helps others discover the project!
260
+
261
+ [![Star History Chart](https://api.star-history.com/svg?repos=aymericzip/intlayer&type=Date)](https://star-history.com/#aymericzip/intlayer&Date)
@@ -0,0 +1,200 @@
1
+ ---
2
+ createdAt: 2025-03-01
3
+ updatedAt: 2025-09-20
4
+ title: Testing your content
5
+ description: Discover how to test your content with Intlayer.
6
+ keywords:
7
+ - Testing
8
+ - Intlayer
9
+ - Internationalization
10
+ - CMS
11
+ - Content Management System
12
+ - Visual Editor
13
+ slugs:
14
+ - doc
15
+ - testing
16
+ ---
17
+
18
+ # Testing your content
19
+
20
+ This guide shows how to automatically verify your dictionaries are complete, catch missing translations before shipping, and test localized UI in your app.
21
+
22
+ ---
23
+
24
+ ## What you can test
25
+
26
+ - **Missing translations**: fail CI if any required locales are missing for any dictionary.
27
+ - **Localized UI rendering**: render components with a specific locale provider and assert on visible text/attributes.
28
+ - **Build-time audits**: run a quick audit locally via CLI.
29
+
30
+ ---
31
+
32
+ ## Quick start: audit via CLI
33
+
34
+ Run the audit from your project root:
35
+
36
+ ```bash
37
+ npx intlayer content test
38
+ ```
39
+
40
+ Useful flags:
41
+
42
+ - `--env-file [path]`: load environment variables from a file.
43
+ - `-e, --env [name]`: select an environment profile.
44
+ - `--base-dir [path]`: set the app base directory for resolution.
45
+ - `--verbose`: show verbose logs.
46
+ - `--prefix [label]`: prefix log lines.
47
+
48
+ Note: the CLI prints a detailed report but does not exit non‑zero on failures. For CI gating, add a unit test (below) that asserts zero missing required locales.
49
+
50
+ ---
51
+
52
+ ## Programmatic test (Vitest/Jest)
53
+
54
+ Use the Intlayer CLI API to assert there are no missing translations for your required locales.
55
+
56
+ ```ts file=i18n.test.ts
57
+ /* @vitest-environment node */
58
+ import { listMissingTranslations } from "intlayer/cli";
59
+ import { describe, expect, it } from "vitest";
60
+
61
+ describe("translations", () => {
62
+ it("has no missing required locales", () => {
63
+ const result = listMissingTranslations();
64
+
65
+ if (result.missingRequiredLocales.length > 0) {
66
+ // Helpful when the test fails locally or in CI
67
+ console.log(result.missingTranslations);
68
+ }
69
+
70
+ expect(result.missingRequiredLocales).toHaveLength(0);
71
+ });
72
+ });
73
+ ```
74
+
75
+ Jest equivalent:
76
+
77
+ ```ts file=i18n.test.ts
78
+ import { listMissingTranslations } from "intlayer/cli";
79
+
80
+ test("has no missing required locales", () => {
81
+ const result = listMissingTranslations();
82
+
83
+ if (result.missingRequiredLocales.length > 0) {
84
+ // Helpful when the test fails locally or in CI
85
+ console.log(result.missingTranslations);
86
+ }
87
+
88
+ expect(result.missingRequiredLocales).toHaveLength(0);
89
+ });
90
+ ```
91
+
92
+ How it works:
93
+
94
+ - Intlayer reads your configuration (locales, requiredLocales) and declared dictionaries, then reports:
95
+ - `missingTranslations`: per‑key, which locales are missing and from which file.
96
+ - `missingLocales`: union of all missing locales.
97
+ - `missingRequiredLocales`: subset limited to `requiredLocales` (or all locales if `requiredLocales` is not set).
98
+
99
+ ---
100
+
101
+ ## Testing localized UI (React / Next.js)
102
+
103
+ Render components under an Intlayer provider and assert on visible content.
104
+
105
+ React example (Testing Library):
106
+
107
+ ```tsx
108
+ import { IntlayerProvider } from "react-intlayer/client";
109
+ import { render, screen } from "@testing-library/react";
110
+ import { MyComponent } from "./MyComponent";
111
+
112
+ test("renders localized title in English", () => {
113
+ render(
114
+ <IntlayerProvider locale="en-US">
115
+ <MyComponent />
116
+ </IntlayerProvider>
117
+ );
118
+
119
+ expect(screen.getByText("Expected English title")).toBeInTheDocument();
120
+ });
121
+ ```
122
+
123
+ Next.js (App Router) example: use the framework wrapper:
124
+
125
+ ```tsx
126
+ import { IntlayerClientProvider } from "next-intlayer/client";
127
+ import { render, screen } from "@testing-library/react";
128
+ import { MyPage } from "./MyPage";
129
+
130
+ test("renders localized heading in French", () => {
131
+ render(
132
+ <IntlayerClientProvider locale="fr-FR">
133
+ <MyPage />
134
+ </IntlayerClientProvider>
135
+ );
136
+ expect(
137
+ screen.getByRole("heading", { name: "Titre attendu" })
138
+ ).toBeInTheDocument();
139
+ });
140
+ ```
141
+
142
+ Tips:
143
+
144
+ - When you need raw string values for attributes (e.g., `aria-label`), access the `.value` field returned by `useIntlayer` in React.
145
+ - Keep dictionaries colocated with components for easier unit testing and cleanup.
146
+
147
+ ---
148
+
149
+ ## Continuous Integration
150
+
151
+ Add a test that fails the build when required translations are missing.
152
+
153
+ `package.json`:
154
+
155
+ ```json
156
+ {
157
+ "scripts": {
158
+ "test:i18n": "vitest run -c"
159
+ }
160
+ }
161
+ ```
162
+
163
+ GitHub Actions example:
164
+
165
+ ```yaml
166
+ name: CI
167
+ on: [push, pull_request]
168
+ jobs:
169
+ test:
170
+ runs-on: ubuntu-latest
171
+ steps:
172
+ - uses: actions/checkout@v4
173
+ - uses: actions/setup-node@v4
174
+ with:
175
+ node-version: 20
176
+ - run: npm ci
177
+ - run: npm run test:i18n
178
+ ```
179
+
180
+ Optional: run the CLI audit for a human-readable summary alongside tests:
181
+
182
+ ```bash
183
+ npx intlayer content test --verbose
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Troubleshooting
189
+
190
+ - Ensure your Intlayer configuration defines `locales` and (optionally) `requiredLocales`.
191
+ - If your app uses dynamic or remote dictionaries, run tests in an environment where the dictionaries are available.
192
+ - For mixed monorepos, use `--base-dir` to point the CLI at the correct application root.
193
+
194
+ ---
195
+
196
+ ## Doc History
197
+
198
+ | Version | Date | Changes |
199
+ | ------- | ---------- | ----------------------- |
200
+ | 6.0.0 | 2025-09-20 | Introduction of testing |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-03-13
3
- updatedAt: 2025-06-29
3
+ updatedAt: 2025-09-20
4
4
  title: Auto Fill
5
5
  description: Learn how to use auto fill functionality in Intlayer to automatically populate content based on predefined patterns. Follow this documentation to implement auto fill features efficiently in your project.
6
6
  keywords:
@@ -20,6 +20,7 @@ slugs:
20
20
  # Autofill Content Declaration File Translations
21
21
 
22
22
  **Autofill content declaration files** are a way to speed up your development workflow.
23
+
23
24
  The autofill mechanism works through a _master-slave_ relationship between content declaration files. When the main (master) file is updated, Intlayer will automatically apply those changes to the derived (autofilled) declaration files.
24
25
 
25
26
  ```ts fileName="src/components/example/example.content.ts"
@@ -55,7 +56,7 @@ Intlayer will automatically generate the derived declaration file at `src/compon
55
56
  "nodeType": "translation",
56
57
  "translation": {
57
58
  "fr": "Ceci est un exemple de contenu",
58
- "es": "Este es un ejemplo de contenido",
59
+ "es": "Este es un exemple de contenu",
59
60
  },
60
61
  },
61
62
  },
@@ -66,7 +67,7 @@ Afterwards, both declaration files will be merged into a single dictionary, acce
66
67
 
67
68
  ## Autofilled File Format
68
69
 
69
- The recommended format for autofilled declaration files is **JSON**, which helps avoid formatting constraints. However, Intlayer also supports `.ts`, `.js`, `.mjs`, `.cjs`, and other formats.
70
+ The recommended format for autofilled declaration files is **JSON**, which helps to avoid formatting constraints. However, Intlayer also supports `.ts`, `.js`, `.mjs`, `.cjs`, and other formats.
70
71
 
71
72
  ```ts fileName="src/components/example/example.content.ts"
72
73
  const exampleContent = {
@@ -111,7 +112,7 @@ This will generate the file at:
111
112
 
112
113
  ## Autogenerate Per-Locale Content Declaration Files
113
114
 
114
- The `autoFill` field also supports generation of **per-locale** content declaration files.
115
+ The `autoFill` field also supports the generation of **per-locale** content declaration files.
115
116
 
116
117
  ```ts fileName="src/components/example/example.content.ts"
117
118
  const exampleContent = {
@@ -131,6 +132,8 @@ This will generate two separate files:
131
132
  - `src/components/example/example.fr.content.json`
132
133
  - `src/components/example/example.es.content.json`
133
134
 
135
+ > In this case, if the object does not contain all locales, Intlayer skips the generation of the remaining locales.
136
+
134
137
  ## Filter Specific Locale Autofill
135
138
 
136
139
  Using an object for the `autoFill` field allows you to apply filters and generate only specific locale files.
@@ -156,9 +159,10 @@ You can use variables inside the `autoFill` path to dynamically resolve the targ
156
159
  **Available variables:**
157
160
 
158
161
  - `{{locale}}` – Locale code (e.g. `fr`, `es`)
162
+ - `{{fileName}}` – File name (e.g. `index`)
159
163
  - `{{key}}` – Dictionary key (e.g. `example`)
160
164
 
161
- ```ts fileName="src/components/example/example.content.ts"
165
+ ```ts fileName="src/components/example/index.content.ts"
162
166
  const exampleContent = {
163
167
  key: "example",
164
168
  autoFill: "/messages/{{locale}}/{{key}}.content.json",
@@ -173,6 +177,25 @@ This will generate:
173
177
  - `/messages/fr/example.content.json`
174
178
  - `/messages/es/example.content.json`
175
179
 
180
+ ```ts fileName="src/components/example/index.content.ts"
181
+ const exampleContent = {
182
+ key: "example",
183
+ autoFill: "./{{fileName}}.content.json",
184
+ content: {
185
+ // Your content
186
+ },
187
+ };
188
+ ```
189
+
190
+ This will generate:
191
+
192
+ - `./index.content.json`
193
+ - `./index.content.json`
194
+
176
195
  ## Doc History
177
196
 
178
- - 5.5.10 - 2025-06-29: Init history
197
+ | Version | Date | Changes |
198
+ | ------- | ---------- | --------------------------- |
199
+ | 6.0.0 | 2025-09-20 | Add global configuration |
200
+ | 6.0.0 | 2025-09-17 | Add `{{fileName}}` variable |
201
+ | 5.5.10 | 2025-06-29 | Initialise history |