@intlayer/docs 9.0.0-canary.9 → 9.0.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 (1152) hide show
  1. package/blog/ar/internationalization_and_SEO.md +6 -0
  2. package/blog/ar/intlayer_with_i18next.md +8 -4
  3. package/blog/ar/intlayer_with_next-i18next.md +8 -4
  4. package/blog/ar/intlayer_with_next-intl.md +8 -4
  5. package/blog/ar/intlayer_with_react-i18next.md +8 -4
  6. package/blog/ar/intlayer_with_react-intl.md +8 -4
  7. package/blog/ar/intlayer_with_vue-i18n.md +8 -4
  8. package/blog/ar/nextjs-multilingual-seo-comparison.md +6 -0
  9. package/blog/de/internationalization_and_SEO.md +6 -0
  10. package/blog/de/intlayer_with_i18next.md +8 -4
  11. package/blog/de/intlayer_with_next-i18next.md +8 -4
  12. package/blog/de/intlayer_with_next-intl.md +8 -4
  13. package/blog/de/intlayer_with_react-i18next.md +8 -4
  14. package/blog/de/intlayer_with_react-intl.md +8 -4
  15. package/blog/de/intlayer_with_vue-i18n.md +8 -4
  16. package/blog/de/nextjs-multilingual-seo-comparison.md +6 -0
  17. package/blog/en/internationalization_and_SEO.md +6 -0
  18. package/blog/en/intlayer_with_i18next.md +8 -4
  19. package/blog/en/intlayer_with_next-i18next.md +8 -4
  20. package/blog/en/intlayer_with_next-intl.md +8 -4
  21. package/blog/en/intlayer_with_react-i18next.md +8 -4
  22. package/blog/en/intlayer_with_react-intl.md +8 -4
  23. package/blog/en/intlayer_with_vue-i18n.md +8 -4
  24. package/blog/en/nextjs-multilingual-seo-comparison.md +6 -0
  25. package/blog/en/rag_powered_documentation_assistant.md +6 -0
  26. package/blog/en-GB/internationalization_and_SEO.md +6 -0
  27. package/blog/en-GB/intlayer_with_i18next.md +8 -4
  28. package/blog/en-GB/intlayer_with_next-i18next.md +8 -4
  29. package/blog/en-GB/intlayer_with_next-intl.md +8 -4
  30. package/blog/en-GB/intlayer_with_react-i18next.md +8 -4
  31. package/blog/en-GB/intlayer_with_react-intl.md +8 -4
  32. package/blog/en-GB/intlayer_with_vue-i18n.md +8 -4
  33. package/blog/en-GB/nextjs-multilingual-seo-comparison.md +6 -0
  34. package/blog/es/internationalization_and_SEO.md +6 -0
  35. package/blog/es/intlayer_with_i18next.md +8 -4
  36. package/blog/es/intlayer_with_next-i18next.md +8 -4
  37. package/blog/es/intlayer_with_next-intl.md +8 -4
  38. package/blog/es/intlayer_with_react-i18next.md +8 -4
  39. package/blog/es/intlayer_with_react-intl.md +8 -4
  40. package/blog/es/intlayer_with_vue-i18n.md +8 -4
  41. package/blog/es/nextjs-multilingual-seo-comparison.md +6 -0
  42. package/blog/fr/internationalization_and_SEO.md +6 -0
  43. package/blog/fr/intlayer_with_i18next.md +8 -4
  44. package/blog/fr/intlayer_with_next-i18next.md +8 -4
  45. package/blog/fr/intlayer_with_next-intl.md +8 -4
  46. package/blog/fr/intlayer_with_react-i18next.md +8 -4
  47. package/blog/fr/intlayer_with_react-intl.md +8 -4
  48. package/blog/fr/intlayer_with_vue-i18n.md +8 -4
  49. package/blog/fr/nextjs-multilingual-seo-comparison.md +6 -0
  50. package/blog/hi/internationalization_and_SEO.md +6 -0
  51. package/blog/hi/intlayer_with_i18next.md +8 -4
  52. package/blog/hi/intlayer_with_next-i18next.md +8 -4
  53. package/blog/hi/intlayer_with_next-intl.md +8 -4
  54. package/blog/hi/intlayer_with_react-i18next.md +8 -4
  55. package/blog/hi/intlayer_with_react-intl.md +8 -4
  56. package/blog/hi/intlayer_with_vue-i18n.md +8 -4
  57. package/blog/hi/nextjs-multilingual-seo-comparison.md +6 -0
  58. package/blog/id/internationalization_and_SEO.md +6 -0
  59. package/blog/id/intlayer_with_i18next.md +8 -4
  60. package/blog/id/intlayer_with_next-i18next.md +8 -4
  61. package/blog/id/intlayer_with_next-intl.md +8 -4
  62. package/blog/id/intlayer_with_react-i18next.md +8 -4
  63. package/blog/id/intlayer_with_react-intl.md +8 -4
  64. package/blog/id/intlayer_with_vue-i18n.md +8 -4
  65. package/blog/id/nextjs-multilingual-seo-comparison.md +6 -0
  66. package/blog/it/internationalization_and_SEO.md +6 -0
  67. package/blog/it/intlayer_with_i18next.md +8 -4
  68. package/blog/it/intlayer_with_next-i18next.md +8 -4
  69. package/blog/it/intlayer_with_next-intl.md +8 -4
  70. package/blog/it/intlayer_with_react-i18next.md +8 -4
  71. package/blog/it/intlayer_with_react-intl.md +8 -4
  72. package/blog/it/intlayer_with_vue-i18n.md +8 -4
  73. package/blog/it/nextjs-multilingual-seo-comparison.md +6 -0
  74. package/blog/ja/internationalization_and_SEO.md +6 -0
  75. package/blog/ja/intlayer_with_i18next.md +8 -4
  76. package/blog/ja/intlayer_with_next-i18next.md +8 -4
  77. package/blog/ja/intlayer_with_next-intl.md +8 -4
  78. package/blog/ja/intlayer_with_react-i18next.md +8 -4
  79. package/blog/ja/intlayer_with_react-intl.md +8 -4
  80. package/blog/ja/intlayer_with_vue-i18n.md +8 -4
  81. package/blog/ja/nextjs-multilingual-seo-comparison.md +6 -0
  82. package/blog/ko/internationalization_and_SEO.md +6 -0
  83. package/blog/ko/intlayer_with_i18next.md +8 -4
  84. package/blog/ko/intlayer_with_next-i18next.md +8 -4
  85. package/blog/ko/intlayer_with_next-intl.md +8 -4
  86. package/blog/ko/intlayer_with_react-i18next.md +8 -4
  87. package/blog/ko/intlayer_with_react-intl.md +8 -4
  88. package/blog/ko/intlayer_with_vue-i18n.md +8 -4
  89. package/blog/ko/nextjs-multilingual-seo-comparison.md +6 -0
  90. package/blog/pl/internationalization_and_SEO.md +6 -0
  91. package/blog/pl/intlayer_with_i18next.md +8 -4
  92. package/blog/pl/intlayer_with_next-i18next.md +8 -4
  93. package/blog/pl/intlayer_with_next-intl.md +8 -4
  94. package/blog/pl/intlayer_with_react-i18next.md +8 -4
  95. package/blog/pl/intlayer_with_react-intl.md +8 -4
  96. package/blog/pl/intlayer_with_vue-i18n.md +8 -4
  97. package/blog/pl/nextjs-multilingual-seo-comparison.md +6 -0
  98. package/blog/pt/internationalization_and_SEO.md +6 -0
  99. package/blog/pt/intlayer_with_i18next.md +8 -4
  100. package/blog/pt/intlayer_with_next-i18next.md +8 -4
  101. package/blog/pt/intlayer_with_next-intl.md +8 -4
  102. package/blog/pt/intlayer_with_react-i18next.md +8 -4
  103. package/blog/pt/intlayer_with_react-intl.md +8 -4
  104. package/blog/pt/intlayer_with_vue-i18n.md +8 -4
  105. package/blog/pt/nextjs-multilingual-seo-comparison.md +6 -0
  106. package/blog/ru/internationalization_and_SEO.md +6 -0
  107. package/blog/ru/intlayer_with_i18next.md +8 -4
  108. package/blog/ru/intlayer_with_next-i18next.md +8 -4
  109. package/blog/ru/intlayer_with_next-intl.md +8 -4
  110. package/blog/ru/intlayer_with_react-i18next.md +8 -4
  111. package/blog/ru/intlayer_with_react-intl.md +8 -4
  112. package/blog/ru/intlayer_with_vue-i18n.md +8 -4
  113. package/blog/ru/nextjs-multilingual-seo-comparison.md +6 -0
  114. package/blog/tr/internationalization_and_SEO.md +6 -0
  115. package/blog/tr/intlayer_with_i18next.md +8 -4
  116. package/blog/tr/intlayer_with_next-i18next.md +8 -4
  117. package/blog/tr/intlayer_with_next-intl.md +8 -4
  118. package/blog/tr/intlayer_with_react-i18next.md +8 -4
  119. package/blog/tr/intlayer_with_react-intl.md +8 -4
  120. package/blog/tr/intlayer_with_vue-i18n.md +8 -4
  121. package/blog/tr/nextjs-multilingual-seo-comparison.md +6 -0
  122. package/blog/uk/internationalization_and_SEO.md +6 -0
  123. package/blog/uk/intlayer_with_i18next.md +8 -4
  124. package/blog/uk/intlayer_with_next-i18next.md +8 -4
  125. package/blog/uk/intlayer_with_next-intl.md +8 -4
  126. package/blog/uk/intlayer_with_react-i18next.md +8 -4
  127. package/blog/uk/intlayer_with_react-intl.md +8 -4
  128. package/blog/uk/intlayer_with_vue-i18n.md +8 -4
  129. package/blog/uk/nextjs-multilingual-seo-comparison.md +6 -0
  130. package/blog/vi/internationalization_and_SEO.md +6 -0
  131. package/blog/vi/intlayer_with_i18next.md +8 -4
  132. package/blog/vi/intlayer_with_next-i18next.md +8 -4
  133. package/blog/vi/intlayer_with_next-intl.md +8 -4
  134. package/blog/vi/intlayer_with_react-i18next.md +8 -4
  135. package/blog/vi/intlayer_with_react-intl.md +8 -4
  136. package/blog/vi/intlayer_with_vue-i18n.md +8 -4
  137. package/blog/vi/nextjs-multilingual-seo-comparison.md +6 -0
  138. package/blog/zh/internationalization_and_SEO.md +6 -0
  139. package/blog/zh/nextjs-multilingual-seo-comparison.md +6 -0
  140. package/dist/cjs/authors.cjs.map +1 -1
  141. package/dist/cjs/blog.cjs.map +1 -1
  142. package/dist/cjs/common.cjs +2 -1
  143. package/dist/cjs/common.cjs.map +1 -1
  144. package/dist/cjs/doc.cjs.map +1 -1
  145. package/dist/cjs/frequentQuestions.cjs.map +1 -1
  146. package/dist/cjs/generated/blog.entry.cjs +0 -1
  147. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  148. package/dist/cjs/generated/docs.entry.cjs +60 -1
  149. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  150. package/dist/cjs/generated/frequentQuestions.entry.cjs +0 -1
  151. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  152. package/dist/cjs/generated/legal.entry.cjs +0 -1
  153. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  154. package/dist/cjs/legal.cjs.map +1 -1
  155. package/dist/esm/authors.mjs.map +1 -1
  156. package/dist/esm/blog.mjs.map +1 -1
  157. package/dist/esm/common.mjs +2 -1
  158. package/dist/esm/common.mjs.map +1 -1
  159. package/dist/esm/doc.mjs.map +1 -1
  160. package/dist/esm/frequentQuestions.mjs.map +1 -1
  161. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  162. package/dist/esm/generated/docs.entry.mjs +60 -0
  163. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  164. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  165. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  166. package/dist/esm/legal.mjs.map +1 -1
  167. package/dist/types/authors.d.ts +16 -8
  168. package/dist/types/authors.d.ts.map +1 -1
  169. package/dist/types/blog.d.ts +0 -1
  170. package/dist/types/blog.d.ts.map +1 -1
  171. package/dist/types/common.d.ts +0 -1
  172. package/dist/types/common.d.ts.map +1 -1
  173. package/dist/types/doc.d.ts +0 -1
  174. package/dist/types/doc.d.ts.map +1 -1
  175. package/dist/types/frequentQuestions.d.ts +0 -1
  176. package/dist/types/frequentQuestions.d.ts.map +1 -1
  177. package/dist/types/generated/blog.entry.d.ts +0 -1
  178. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  179. package/dist/types/generated/docs.entry.d.ts +3 -1
  180. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  181. package/dist/types/generated/frequentQuestions.entry.d.ts +0 -1
  182. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  183. package/dist/types/generated/legal.entry.d.ts +0 -1
  184. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  185. package/dist/types/legal.d.ts +0 -1
  186. package/dist/types/legal.d.ts.map +1 -1
  187. package/docs/ar/bundle_optimization.md +16 -0
  188. package/docs/ar/cli/index.md +1 -1
  189. package/docs/ar/cli/scan.md +2 -2
  190. package/docs/ar/configuration.md +42 -1
  191. package/docs/ar/how_works_intlayer.md +2 -2
  192. package/docs/ar/intlayer_CMS.md +14 -122
  193. package/docs/ar/intlayer_with_adonisjs.md +8 -4
  194. package/docs/ar/intlayer_with_analog.md +8 -4
  195. package/docs/ar/intlayer_with_angular_19.md +8 -4
  196. package/docs/ar/intlayer_with_angular_21.md +8 -4
  197. package/docs/ar/intlayer_with_astro_lit.md +11 -7
  198. package/docs/ar/intlayer_with_astro_preact.md +8 -4
  199. package/docs/ar/intlayer_with_astro_react.md +8 -4
  200. package/docs/ar/intlayer_with_astro_solid.md +8 -4
  201. package/docs/ar/intlayer_with_astro_svelte.md +8 -4
  202. package/docs/ar/intlayer_with_astro_vanilla.md +8 -4
  203. package/docs/ar/intlayer_with_astro_vue.md +8 -4
  204. package/docs/ar/intlayer_with_create_react_app.md +8 -4
  205. package/docs/ar/intlayer_with_express.md +8 -4
  206. package/docs/ar/intlayer_with_fastify.md +8 -4
  207. package/docs/ar/intlayer_with_hono.md +8 -4
  208. package/docs/ar/intlayer_with_lynx+react.md +8 -4
  209. package/docs/ar/intlayer_with_nestjs.md +8 -4
  210. package/docs/ar/intlayer_with_next-i18next.md +8 -4
  211. package/docs/ar/intlayer_with_nextjs_14.md +8 -4
  212. package/docs/ar/intlayer_with_nextjs_15.md +10 -8
  213. package/docs/ar/intlayer_with_nextjs_16.md +10 -8
  214. package/docs/ar/intlayer_with_nextjs_compiler.md +9 -7
  215. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +10 -8
  216. package/docs/ar/intlayer_with_nextjs_page_router.md +8 -4
  217. package/docs/ar/intlayer_with_nuxt.md +9 -5
  218. package/docs/ar/intlayer_with_react_native+expo.md +8 -4
  219. package/docs/ar/intlayer_with_react_router_v7.md +9 -5
  220. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +9 -5
  221. package/docs/ar/intlayer_with_svelte_kit.md +8 -4
  222. package/docs/ar/intlayer_with_tanstack+solid.md +9 -5
  223. package/docs/ar/intlayer_with_tanstack.md +10 -7
  224. package/docs/ar/intlayer_with_vite+lit.md +8 -4
  225. package/docs/ar/intlayer_with_vite+preact.md +9 -5
  226. package/docs/ar/intlayer_with_vite+react.md +9 -5
  227. package/docs/ar/intlayer_with_vite+react_compiler.md +9 -5
  228. package/docs/ar/intlayer_with_vite+solid.md +9 -5
  229. package/docs/ar/intlayer_with_vite+svelte.md +8 -4
  230. package/docs/ar/intlayer_with_vite+vanilla.md +8 -4
  231. package/docs/ar/intlayer_with_vite+vue.md +9 -5
  232. package/docs/ar/live-sync.md +174 -0
  233. package/docs/ar/migration_from_i18next_to_intlayer.md +8 -4
  234. package/docs/ar/migration_from_next-i18next_to_intlayer.md +8 -4
  235. package/docs/ar/migration_from_next-intl_to_intlayer.md +9 -7
  236. package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  237. package/docs/ar/migration_from_react-i18next_to_intlayer.md +9 -7
  238. package/docs/ar/migration_from_vue-i18n_to_intlayer.md +8 -4
  239. package/docs/ar/releases/v9.md +128 -33
  240. package/docs/ar/self_hosting.md +350 -0
  241. package/docs/bn/bundle_optimization.md +16 -0
  242. package/docs/bn/cli/index.md +1 -1
  243. package/docs/bn/cli/scan.md +2 -2
  244. package/docs/bn/configuration.md +45 -1
  245. package/docs/bn/intlayer_CMS.md +570 -0
  246. package/docs/bn/intlayer_with_angular_21.md +8 -4
  247. package/docs/bn/intlayer_with_fastify.md +8 -4
  248. package/docs/bn/intlayer_with_hono.md +8 -4
  249. package/docs/bn/intlayer_with_vite+lit.md +8 -4
  250. package/docs/bn/intlayer_with_vite+vanilla.md +8 -4
  251. package/docs/bn/releases/v9.md +349 -0
  252. package/docs/cs/bundle_optimization.md +16 -0
  253. package/docs/cs/cli/index.md +1 -1
  254. package/docs/cs/cli/scan.md +2 -2
  255. package/docs/cs/configuration.md +45 -1
  256. package/docs/cs/intlayer_with_angular_21.md +8 -4
  257. package/docs/cs/intlayer_with_fastify.md +8 -4
  258. package/docs/cs/intlayer_with_hono.md +8 -4
  259. package/docs/cs/intlayer_with_vite+lit.md +8 -4
  260. package/docs/cs/intlayer_with_vite+vanilla.md +8 -4
  261. package/docs/cs/releases/v9.md +349 -0
  262. package/docs/de/bundle_optimization.md +16 -0
  263. package/docs/de/cli/index.md +1 -1
  264. package/docs/de/cli/scan.md +2 -2
  265. package/docs/de/configuration.md +42 -1
  266. package/docs/de/how_works_intlayer.md +2 -2
  267. package/docs/de/intlayer_CMS.md +86 -100
  268. package/docs/de/intlayer_with_adonisjs.md +8 -4
  269. package/docs/de/intlayer_with_analog.md +8 -4
  270. package/docs/de/intlayer_with_angular_19.md +8 -4
  271. package/docs/de/intlayer_with_angular_21.md +8 -4
  272. package/docs/de/intlayer_with_astro_lit.md +11 -7
  273. package/docs/de/intlayer_with_astro_preact.md +8 -4
  274. package/docs/de/intlayer_with_astro_react.md +8 -4
  275. package/docs/de/intlayer_with_astro_solid.md +8 -4
  276. package/docs/de/intlayer_with_astro_svelte.md +8 -4
  277. package/docs/de/intlayer_with_astro_vanilla.md +8 -4
  278. package/docs/de/intlayer_with_astro_vue.md +8 -4
  279. package/docs/de/intlayer_with_create_react_app.md +8 -4
  280. package/docs/de/intlayer_with_express.md +8 -4
  281. package/docs/de/intlayer_with_fastify.md +8 -4
  282. package/docs/de/intlayer_with_hono.md +8 -4
  283. package/docs/de/intlayer_with_lynx+react.md +8 -4
  284. package/docs/de/intlayer_with_nestjs.md +8 -4
  285. package/docs/de/intlayer_with_next-i18next.md +8 -4
  286. package/docs/de/intlayer_with_nextjs_14.md +8 -4
  287. package/docs/de/intlayer_with_nextjs_15.md +10 -8
  288. package/docs/de/intlayer_with_nextjs_16.md +10 -8
  289. package/docs/de/intlayer_with_nextjs_no_locale_path.md +10 -8
  290. package/docs/de/intlayer_with_nextjs_page_router.md +8 -4
  291. package/docs/de/intlayer_with_nuxt.md +9 -5
  292. package/docs/de/intlayer_with_react_native+expo.md +8 -4
  293. package/docs/de/intlayer_with_react_router_v7.md +9 -5
  294. package/docs/de/intlayer_with_svelte_kit.md +8 -4
  295. package/docs/de/intlayer_with_tanstack+solid.md +9 -5
  296. package/docs/de/intlayer_with_tanstack.md +10 -7
  297. package/docs/de/intlayer_with_vite+lit.md +8 -4
  298. package/docs/de/intlayer_with_vite+preact.md +9 -5
  299. package/docs/de/intlayer_with_vite+react.md +9 -5
  300. package/docs/de/intlayer_with_vite+react_compiler.md +9 -5
  301. package/docs/de/intlayer_with_vite+solid.md +9 -5
  302. package/docs/de/intlayer_with_vite+vanilla.md +8 -4
  303. package/docs/de/intlayer_with_vite+vue.md +9 -5
  304. package/docs/de/live-sync.md +174 -0
  305. package/docs/de/migration_from_i18next_to_intlayer.md +8 -4
  306. package/docs/de/migration_from_next-i18next_to_intlayer.md +8 -4
  307. package/docs/de/migration_from_next-intl_to_intlayer.md +9 -7
  308. package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  309. package/docs/de/migration_from_react-i18next_to_intlayer.md +9 -7
  310. package/docs/de/migration_from_vue-i18n_to_intlayer.md +8 -4
  311. package/docs/de/releases/v9.md +131 -33
  312. package/docs/de/self_hosting.md +350 -0
  313. package/docs/en/analytics.md +222 -0
  314. package/docs/en/bundle_optimization.md +16 -0
  315. package/docs/en/cli/index.md +1 -1
  316. package/docs/en/cli/scan.md +2 -2
  317. package/docs/en/configuration.md +42 -1
  318. package/docs/en/how_works_intlayer.md +2 -2
  319. package/docs/en/intlayer_CMS.md +143 -107
  320. package/docs/en/intlayer_with_adonisjs.md +8 -4
  321. package/docs/en/intlayer_with_analog.md +8 -4
  322. package/docs/en/intlayer_with_angular_19.md +8 -4
  323. package/docs/en/intlayer_with_angular_21.md +8 -4
  324. package/docs/en/intlayer_with_astro.md +8 -4
  325. package/docs/en/intlayer_with_astro_lit.md +11 -7
  326. package/docs/en/intlayer_with_astro_preact.md +8 -4
  327. package/docs/en/intlayer_with_astro_react.md +8 -4
  328. package/docs/en/intlayer_with_astro_solid.md +8 -4
  329. package/docs/en/intlayer_with_astro_svelte.md +8 -4
  330. package/docs/en/intlayer_with_astro_vanilla.md +8 -4
  331. package/docs/en/intlayer_with_astro_vue.md +8 -4
  332. package/docs/en/intlayer_with_create_react_app.md +8 -4
  333. package/docs/en/intlayer_with_express.md +8 -4
  334. package/docs/en/intlayer_with_fastify.md +8 -4
  335. package/docs/en/intlayer_with_hono.md +8 -4
  336. package/docs/en/intlayer_with_lynx+react.md +8 -4
  337. package/docs/en/intlayer_with_nestjs.md +8 -4
  338. package/docs/en/intlayer_with_next-i18next.md +8 -4
  339. package/docs/en/intlayer_with_nextjs_14.md +8 -4
  340. package/docs/en/intlayer_with_nextjs_15.md +9 -7
  341. package/docs/en/intlayer_with_nextjs_16.md +10 -8
  342. package/docs/en/intlayer_with_nextjs_compiler.md +10 -8
  343. package/docs/en/intlayer_with_nextjs_no_locale_path.md +10 -8
  344. package/docs/en/intlayer_with_nextjs_page_router.md +8 -4
  345. package/docs/en/intlayer_with_nuxt.md +9 -5
  346. package/docs/en/intlayer_with_react_native+expo.md +8 -4
  347. package/docs/en/intlayer_with_react_router_v7.md +9 -5
  348. package/docs/en/intlayer_with_svelte_kit.md +8 -4
  349. package/docs/en/intlayer_with_tanstack+solid.md +9 -5
  350. package/docs/en/intlayer_with_tanstack.md +10 -7
  351. package/docs/en/intlayer_with_vite+lit.md +8 -4
  352. package/docs/en/intlayer_with_vite+preact.md +9 -5
  353. package/docs/en/intlayer_with_vite+react.md +9 -5
  354. package/docs/en/intlayer_with_vite+react_compiler.md +9 -5
  355. package/docs/en/intlayer_with_vite+solid.md +9 -5
  356. package/docs/en/intlayer_with_vite+svelte.md +8 -4
  357. package/docs/en/intlayer_with_vite+vanilla.md +8 -4
  358. package/docs/en/intlayer_with_vite+vue.md +9 -5
  359. package/docs/en/live-sync.md +184 -0
  360. package/docs/en/migration_from_i18next_to_intlayer.md +8 -4
  361. package/docs/en/migration_from_next-i18next_to_intlayer.md +8 -4
  362. package/docs/en/migration_from_next-intl_to_intlayer.md +9 -7
  363. package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  364. package/docs/en/migration_from_react-i18next_to_intlayer.md +9 -7
  365. package/docs/en/migration_from_vue-i18n_to_intlayer.md +8 -4
  366. package/docs/en/releases/v9.md +124 -29
  367. package/docs/en/self_hosting.md +310 -0
  368. package/docs/en-GB/bundle_optimization.md +16 -0
  369. package/docs/en-GB/cli/index.md +1 -1
  370. package/docs/en-GB/cli/scan.md +2 -2
  371. package/docs/en-GB/configuration.md +42 -1
  372. package/docs/en-GB/how_works_intlayer.md +2 -2
  373. package/docs/en-GB/intlayer_CMS.md +14 -122
  374. package/docs/en-GB/intlayer_with_adonisjs.md +8 -4
  375. package/docs/en-GB/intlayer_with_analog.md +8 -4
  376. package/docs/en-GB/intlayer_with_angular_19.md +8 -4
  377. package/docs/en-GB/intlayer_with_angular_21.md +8 -4
  378. package/docs/en-GB/intlayer_with_astro_lit.md +11 -7
  379. package/docs/en-GB/intlayer_with_astro_preact.md +8 -4
  380. package/docs/en-GB/intlayer_with_astro_react.md +8 -4
  381. package/docs/en-GB/intlayer_with_astro_solid.md +8 -4
  382. package/docs/en-GB/intlayer_with_astro_svelte.md +8 -4
  383. package/docs/en-GB/intlayer_with_astro_vanilla.md +8 -4
  384. package/docs/en-GB/intlayer_with_astro_vue.md +8 -4
  385. package/docs/en-GB/intlayer_with_create_react_app.md +16 -8
  386. package/docs/en-GB/intlayer_with_express.md +8 -4
  387. package/docs/en-GB/intlayer_with_fastify.md +8 -4
  388. package/docs/en-GB/intlayer_with_hono.md +8 -4
  389. package/docs/en-GB/intlayer_with_lynx+react.md +16 -8
  390. package/docs/en-GB/intlayer_with_nestjs.md +8 -4
  391. package/docs/en-GB/intlayer_with_next-i18next.md +8 -4
  392. package/docs/en-GB/intlayer_with_nextjs_14.md +8 -4
  393. package/docs/en-GB/intlayer_with_nextjs_15.md +10 -8
  394. package/docs/en-GB/intlayer_with_nextjs_16.md +10 -8
  395. package/docs/en-GB/intlayer_with_nextjs_compiler.md +9 -7
  396. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +10 -8
  397. package/docs/en-GB/intlayer_with_nextjs_page_router.md +8 -4
  398. package/docs/en-GB/intlayer_with_nuxt.md +9 -5
  399. package/docs/en-GB/intlayer_with_react_native+expo.md +8 -4
  400. package/docs/en-GB/intlayer_with_react_router_v7.md +9 -5
  401. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +9 -5
  402. package/docs/en-GB/intlayer_with_svelte_kit.md +8 -4
  403. package/docs/en-GB/intlayer_with_tanstack+solid.md +9 -5
  404. package/docs/en-GB/intlayer_with_tanstack.md +10 -7
  405. package/docs/en-GB/intlayer_with_vite+lit.md +8 -4
  406. package/docs/en-GB/intlayer_with_vite+preact.md +9 -5
  407. package/docs/en-GB/intlayer_with_vite+react.md +9 -5
  408. package/docs/en-GB/intlayer_with_vite+react_compiler.md +9 -5
  409. package/docs/en-GB/intlayer_with_vite+solid.md +9 -5
  410. package/docs/en-GB/intlayer_with_vite+svelte.md +8 -4
  411. package/docs/en-GB/intlayer_with_vite+vanilla.md +8 -4
  412. package/docs/en-GB/intlayer_with_vite+vue.md +9 -5
  413. package/docs/en-GB/live-sync.md +173 -0
  414. package/docs/en-GB/migration_from_i18next_to_intlayer.md +8 -4
  415. package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +8 -4
  416. package/docs/en-GB/migration_from_next-intl_to_intlayer.md +9 -7
  417. package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  418. package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +9 -7
  419. package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +8 -4
  420. package/docs/en-GB/releases/v9.md +117 -26
  421. package/docs/en-GB/self_hosting.md +350 -0
  422. package/docs/es/bundle_optimization.md +16 -0
  423. package/docs/es/cli/index.md +1 -1
  424. package/docs/es/cli/scan.md +2 -2
  425. package/docs/es/configuration.md +42 -1
  426. package/docs/es/how_works_intlayer.md +2 -2
  427. package/docs/es/intlayer_CMS.md +85 -104
  428. package/docs/es/intlayer_with_adonisjs.md +8 -4
  429. package/docs/es/intlayer_with_analog.md +8 -4
  430. package/docs/es/intlayer_with_angular_19.md +8 -4
  431. package/docs/es/intlayer_with_angular_21.md +8 -4
  432. package/docs/es/intlayer_with_astro_lit.md +11 -7
  433. package/docs/es/intlayer_with_astro_preact.md +8 -4
  434. package/docs/es/intlayer_with_astro_react.md +8 -4
  435. package/docs/es/intlayer_with_astro_solid.md +8 -4
  436. package/docs/es/intlayer_with_astro_svelte.md +8 -4
  437. package/docs/es/intlayer_with_astro_vanilla.md +8 -4
  438. package/docs/es/intlayer_with_astro_vue.md +8 -4
  439. package/docs/es/intlayer_with_create_react_app.md +8 -4
  440. package/docs/es/intlayer_with_express.md +8 -4
  441. package/docs/es/intlayer_with_fastify.md +8 -4
  442. package/docs/es/intlayer_with_hono.md +8 -4
  443. package/docs/es/intlayer_with_lynx+react.md +8 -4
  444. package/docs/es/intlayer_with_nestjs.md +8 -4
  445. package/docs/es/intlayer_with_next-i18next.md +8 -4
  446. package/docs/es/intlayer_with_nextjs_14.md +8 -4
  447. package/docs/es/intlayer_with_nextjs_15.md +10 -8
  448. package/docs/es/intlayer_with_nextjs_16.md +10 -8
  449. package/docs/es/intlayer_with_nextjs_compiler.md +9 -7
  450. package/docs/es/intlayer_with_nextjs_no_locale_path.md +10 -8
  451. package/docs/es/intlayer_with_nextjs_page_router.md +8 -4
  452. package/docs/es/intlayer_with_nuxt.md +9 -5
  453. package/docs/es/intlayer_with_react_native+expo.md +8 -4
  454. package/docs/es/intlayer_with_react_router_v7.md +9 -5
  455. package/docs/es/intlayer_with_svelte_kit.md +8 -4
  456. package/docs/es/intlayer_with_tanstack+solid.md +9 -5
  457. package/docs/es/intlayer_with_tanstack.md +10 -7
  458. package/docs/es/intlayer_with_vite+lit.md +8 -4
  459. package/docs/es/intlayer_with_vite+preact.md +9 -5
  460. package/docs/es/intlayer_with_vite+react.md +9 -5
  461. package/docs/es/intlayer_with_vite+react_compiler.md +9 -5
  462. package/docs/es/intlayer_with_vite+solid.md +9 -5
  463. package/docs/es/intlayer_with_vite+svelte.md +8 -4
  464. package/docs/es/intlayer_with_vite+vanilla.md +8 -4
  465. package/docs/es/intlayer_with_vite+vue.md +9 -5
  466. package/docs/es/live-sync.md +176 -0
  467. package/docs/es/migration_from_i18next_to_intlayer.md +8 -4
  468. package/docs/es/migration_from_next-i18next_to_intlayer.md +8 -4
  469. package/docs/es/migration_from_next-intl_to_intlayer.md +9 -7
  470. package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  471. package/docs/es/migration_from_react-i18next_to_intlayer.md +9 -7
  472. package/docs/es/migration_from_vue-i18n_to_intlayer.md +8 -4
  473. package/docs/es/releases/v9.md +131 -33
  474. package/docs/es/self_hosting.md +350 -0
  475. package/docs/fr/bundle_optimization.md +16 -0
  476. package/docs/fr/cli/index.md +1 -1
  477. package/docs/fr/cli/scan.md +2 -2
  478. package/docs/fr/configuration.md +42 -1
  479. package/docs/fr/how_works_intlayer.md +2 -2
  480. package/docs/fr/intlayer_CMS.md +86 -100
  481. package/docs/fr/intlayer_with_adonisjs.md +8 -4
  482. package/docs/fr/intlayer_with_analog.md +8 -4
  483. package/docs/fr/intlayer_with_angular_19.md +8 -4
  484. package/docs/fr/intlayer_with_angular_21.md +8 -4
  485. package/docs/fr/intlayer_with_astro_lit.md +11 -7
  486. package/docs/fr/intlayer_with_astro_preact.md +8 -4
  487. package/docs/fr/intlayer_with_astro_react.md +8 -4
  488. package/docs/fr/intlayer_with_astro_solid.md +8 -4
  489. package/docs/fr/intlayer_with_astro_svelte.md +8 -4
  490. package/docs/fr/intlayer_with_astro_vanilla.md +8 -4
  491. package/docs/fr/intlayer_with_astro_vue.md +8 -4
  492. package/docs/fr/intlayer_with_create_react_app.md +8 -4
  493. package/docs/fr/intlayer_with_express.md +8 -4
  494. package/docs/fr/intlayer_with_fastify.md +8 -4
  495. package/docs/fr/intlayer_with_hono.md +8 -4
  496. package/docs/fr/intlayer_with_lynx+react.md +8 -4
  497. package/docs/fr/intlayer_with_nestjs.md +8 -4
  498. package/docs/fr/intlayer_with_next-i18next.md +8 -4
  499. package/docs/fr/intlayer_with_nextjs_14.md +8 -4
  500. package/docs/fr/intlayer_with_nextjs_15.md +10 -8
  501. package/docs/fr/intlayer_with_nextjs_16.md +10 -8
  502. package/docs/fr/intlayer_with_nextjs_compiler.md +9 -7
  503. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +10 -8
  504. package/docs/fr/intlayer_with_nextjs_page_router.md +8 -4
  505. package/docs/fr/intlayer_with_nuxt.md +9 -5
  506. package/docs/fr/intlayer_with_react_native+expo.md +8 -4
  507. package/docs/fr/intlayer_with_react_router_v7.md +9 -5
  508. package/docs/fr/intlayer_with_svelte_kit.md +8 -4
  509. package/docs/fr/intlayer_with_tanstack+solid.md +9 -5
  510. package/docs/fr/intlayer_with_tanstack.md +10 -7
  511. package/docs/fr/intlayer_with_vite+lit.md +8 -4
  512. package/docs/fr/intlayer_with_vite+preact.md +9 -5
  513. package/docs/fr/intlayer_with_vite+react.md +9 -5
  514. package/docs/fr/intlayer_with_vite+react_compiler.md +9 -5
  515. package/docs/fr/intlayer_with_vite+solid.md +9 -5
  516. package/docs/fr/intlayer_with_vite+svelte.md +8 -4
  517. package/docs/fr/intlayer_with_vite+vanilla.md +8 -4
  518. package/docs/fr/intlayer_with_vite+vue.md +9 -5
  519. package/docs/fr/live-sync.md +174 -0
  520. package/docs/fr/migration_from_i18next_to_intlayer.md +8 -4
  521. package/docs/fr/migration_from_next-i18next_to_intlayer.md +8 -4
  522. package/docs/fr/migration_from_next-intl_to_intlayer.md +9 -7
  523. package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  524. package/docs/fr/migration_from_react-i18next_to_intlayer.md +9 -7
  525. package/docs/fr/migration_from_vue-i18n_to_intlayer.md +8 -4
  526. package/docs/fr/releases/v9.md +131 -25
  527. package/docs/fr/self_hosting.md +350 -0
  528. package/docs/hi/bundle_optimization.md +16 -0
  529. package/docs/hi/cli/index.md +1 -1
  530. package/docs/hi/cli/scan.md +2 -2
  531. package/docs/hi/configuration.md +42 -1
  532. package/docs/hi/how_works_intlayer.md +2 -2
  533. package/docs/hi/intlayer_CMS.md +14 -122
  534. package/docs/hi/intlayer_with_adonisjs.md +8 -4
  535. package/docs/hi/intlayer_with_analog.md +8 -4
  536. package/docs/hi/intlayer_with_angular_19.md +8 -4
  537. package/docs/hi/intlayer_with_angular_21.md +8 -4
  538. package/docs/hi/intlayer_with_astro_vue.md +8 -4
  539. package/docs/hi/intlayer_with_create_react_app.md +8 -4
  540. package/docs/hi/intlayer_with_express.md +8 -4
  541. package/docs/hi/intlayer_with_fastify.md +8 -4
  542. package/docs/hi/intlayer_with_hono.md +8 -4
  543. package/docs/hi/intlayer_with_lynx+react.md +8 -4
  544. package/docs/hi/intlayer_with_nestjs.md +8 -4
  545. package/docs/hi/intlayer_with_next-i18next.md +8 -4
  546. package/docs/hi/intlayer_with_nextjs_14.md +8 -4
  547. package/docs/hi/intlayer_with_nextjs_15.md +10 -8
  548. package/docs/hi/intlayer_with_nextjs_16.md +10 -8
  549. package/docs/hi/intlayer_with_nextjs_compiler.md +8 -4
  550. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +10 -8
  551. package/docs/hi/intlayer_with_nextjs_page_router.md +8 -4
  552. package/docs/hi/intlayer_with_nuxt.md +9 -5
  553. package/docs/hi/intlayer_with_react_native+expo.md +8 -4
  554. package/docs/hi/intlayer_with_react_router_v7.md +9 -5
  555. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +9 -5
  556. package/docs/hi/intlayer_with_svelte_kit.md +8 -4
  557. package/docs/hi/intlayer_with_tanstack+solid.md +9 -5
  558. package/docs/hi/intlayer_with_tanstack.md +10 -7
  559. package/docs/hi/intlayer_with_vite+lit.md +8 -4
  560. package/docs/hi/intlayer_with_vite+preact.md +9 -5
  561. package/docs/hi/intlayer_with_vite+react.md +9 -5
  562. package/docs/hi/intlayer_with_vite+react_compiler.md +9 -5
  563. package/docs/hi/intlayer_with_vite+solid.md +9 -5
  564. package/docs/hi/intlayer_with_vite+svelte.md +8 -4
  565. package/docs/hi/intlayer_with_vite+vanilla.md +8 -4
  566. package/docs/hi/intlayer_with_vite+vue.md +9 -5
  567. package/docs/hi/live-sync.md +174 -0
  568. package/docs/hi/migration_from_i18next_to_intlayer.md +8 -4
  569. package/docs/hi/migration_from_next-i18next_to_intlayer.md +8 -4
  570. package/docs/hi/migration_from_next-intl_to_intlayer.md +9 -7
  571. package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  572. package/docs/hi/migration_from_react-i18next_to_intlayer.md +9 -7
  573. package/docs/hi/migration_from_vue-i18n_to_intlayer.md +8 -4
  574. package/docs/hi/packages/intlayer/index.md +8 -4
  575. package/docs/hi/releases/v9.md +129 -33
  576. package/docs/hi/self_hosting.md +350 -0
  577. package/docs/id/bundle_optimization.md +16 -0
  578. package/docs/id/cli/index.md +1 -1
  579. package/docs/id/cli/scan.md +2 -2
  580. package/docs/id/configuration.md +42 -1
  581. package/docs/id/how_works_intlayer.md +2 -2
  582. package/docs/id/intlayer_CMS.md +5 -139
  583. package/docs/id/intlayer_with_adonisjs.md +8 -4
  584. package/docs/id/intlayer_with_analog.md +8 -4
  585. package/docs/id/intlayer_with_angular_19.md +8 -4
  586. package/docs/id/intlayer_with_angular_21.md +8 -4
  587. package/docs/id/intlayer_with_astro_lit.md +11 -7
  588. package/docs/id/intlayer_with_astro_preact.md +8 -4
  589. package/docs/id/intlayer_with_astro_react.md +8 -4
  590. package/docs/id/intlayer_with_astro_solid.md +8 -4
  591. package/docs/id/intlayer_with_astro_svelte.md +8 -4
  592. package/docs/id/intlayer_with_astro_vanilla.md +8 -4
  593. package/docs/id/intlayer_with_astro_vue.md +8 -4
  594. package/docs/id/intlayer_with_create_react_app.md +8 -4
  595. package/docs/id/intlayer_with_express.md +8 -4
  596. package/docs/id/intlayer_with_fastify.md +8 -4
  597. package/docs/id/intlayer_with_hono.md +8 -4
  598. package/docs/id/intlayer_with_lynx+react.md +8 -4
  599. package/docs/id/intlayer_with_nestjs.md +8 -4
  600. package/docs/id/intlayer_with_next-i18next.md +8 -4
  601. package/docs/id/intlayer_with_nextjs_14.md +8 -4
  602. package/docs/id/intlayer_with_nextjs_15.md +9 -7
  603. package/docs/id/intlayer_with_nextjs_16.md +10 -8
  604. package/docs/id/intlayer_with_nextjs_compiler.md +8 -4
  605. package/docs/id/intlayer_with_nextjs_no_locale_path.md +10 -8
  606. package/docs/id/intlayer_with_nextjs_page_router.md +8 -4
  607. package/docs/id/intlayer_with_nuxt.md +9 -5
  608. package/docs/id/intlayer_with_react_native+expo.md +8 -4
  609. package/docs/id/intlayer_with_react_router_v7.md +9 -5
  610. package/docs/id/intlayer_with_svelte_kit.md +8 -4
  611. package/docs/id/intlayer_with_tanstack+solid.md +9 -5
  612. package/docs/id/intlayer_with_tanstack.md +10 -7
  613. package/docs/id/intlayer_with_vite+lit.md +8 -4
  614. package/docs/id/intlayer_with_vite+preact.md +9 -5
  615. package/docs/id/intlayer_with_vite+react.md +9 -5
  616. package/docs/id/intlayer_with_vite+react_compiler.md +9 -5
  617. package/docs/id/intlayer_with_vite+solid.md +9 -5
  618. package/docs/id/intlayer_with_vite+svelte.md +8 -4
  619. package/docs/id/intlayer_with_vite+vanilla.md +8 -4
  620. package/docs/id/intlayer_with_vite+vue.md +9 -5
  621. package/docs/id/live-sync.md +185 -0
  622. package/docs/id/migration_from_i18next_to_intlayer.md +8 -4
  623. package/docs/id/migration_from_next-i18next_to_intlayer.md +8 -4
  624. package/docs/id/migration_from_next-intl_to_intlayer.md +9 -7
  625. package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  626. package/docs/id/migration_from_react-i18next_to_intlayer.md +9 -7
  627. package/docs/id/migration_from_vue-i18n_to_intlayer.md +8 -4
  628. package/docs/id/releases/v9.md +101 -33
  629. package/docs/id/self_hosting.md +350 -0
  630. package/docs/it/bundle_optimization.md +16 -0
  631. package/docs/it/cli/index.md +1 -1
  632. package/docs/it/cli/scan.md +2 -2
  633. package/docs/it/configuration.md +42 -1
  634. package/docs/it/how_works_intlayer.md +2 -2
  635. package/docs/it/intlayer_CMS.md +87 -94
  636. package/docs/it/intlayer_with_adonisjs.md +8 -4
  637. package/docs/it/intlayer_with_analog.md +8 -4
  638. package/docs/it/intlayer_with_angular_19.md +8 -4
  639. package/docs/it/intlayer_with_angular_21.md +8 -4
  640. package/docs/it/intlayer_with_astro_lit.md +11 -7
  641. package/docs/it/intlayer_with_astro_preact.md +8 -4
  642. package/docs/it/intlayer_with_astro_react.md +8 -4
  643. package/docs/it/intlayer_with_astro_solid.md +8 -4
  644. package/docs/it/intlayer_with_astro_svelte.md +8 -4
  645. package/docs/it/intlayer_with_astro_vanilla.md +8 -4
  646. package/docs/it/intlayer_with_astro_vue.md +8 -4
  647. package/docs/it/intlayer_with_create_react_app.md +8 -4
  648. package/docs/it/intlayer_with_express.md +8 -4
  649. package/docs/it/intlayer_with_fastify.md +8 -4
  650. package/docs/it/intlayer_with_hono.md +8 -4
  651. package/docs/it/intlayer_with_lynx+react.md +8 -4
  652. package/docs/it/intlayer_with_nestjs.md +8 -4
  653. package/docs/it/intlayer_with_next-i18next.md +8 -4
  654. package/docs/it/intlayer_with_nextjs_14.md +8 -4
  655. package/docs/it/intlayer_with_nextjs_15.md +10 -8
  656. package/docs/it/intlayer_with_nextjs_16.md +10 -8
  657. package/docs/it/intlayer_with_nextjs_compiler.md +9 -7
  658. package/docs/it/intlayer_with_nextjs_no_locale_path.md +10 -8
  659. package/docs/it/intlayer_with_nextjs_page_router.md +8 -4
  660. package/docs/it/intlayer_with_nuxt.md +9 -5
  661. package/docs/it/intlayer_with_react_native+expo.md +8 -4
  662. package/docs/it/intlayer_with_react_router_v7.md +9 -5
  663. package/docs/it/intlayer_with_svelte_kit.md +8 -4
  664. package/docs/it/intlayer_with_tanstack+solid.md +9 -5
  665. package/docs/it/intlayer_with_tanstack.md +10 -7
  666. package/docs/it/intlayer_with_vite+lit.md +8 -4
  667. package/docs/it/intlayer_with_vite+preact.md +9 -5
  668. package/docs/it/intlayer_with_vite+react.md +10 -6
  669. package/docs/it/intlayer_with_vite+react_compiler.md +9 -5
  670. package/docs/it/intlayer_with_vite+solid.md +9 -5
  671. package/docs/it/intlayer_with_vite+svelte.md +8 -4
  672. package/docs/it/intlayer_with_vite+vanilla.md +8 -4
  673. package/docs/it/intlayer_with_vite+vue.md +9 -5
  674. package/docs/it/live-sync.md +174 -0
  675. package/docs/it/migration_from_i18next_to_intlayer.md +8 -4
  676. package/docs/it/migration_from_next-i18next_to_intlayer.md +8 -4
  677. package/docs/it/migration_from_next-intl_to_intlayer.md +8 -4
  678. package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  679. package/docs/it/migration_from_react-i18next_to_intlayer.md +9 -7
  680. package/docs/it/migration_from_vue-i18n_to_intlayer.md +8 -4
  681. package/docs/it/releases/v9.md +131 -33
  682. package/docs/it/self_hosting.md +350 -0
  683. package/docs/ja/bundle_optimization.md +16 -0
  684. package/docs/ja/cli/index.md +1 -1
  685. package/docs/ja/cli/scan.md +2 -2
  686. package/docs/ja/configuration.md +42 -1
  687. package/docs/ja/how_works_intlayer.md +2 -2
  688. package/docs/ja/intlayer_CMS.md +149 -102
  689. package/docs/ja/intlayer_with_adonisjs.md +8 -4
  690. package/docs/ja/intlayer_with_analog.md +8 -4
  691. package/docs/ja/intlayer_with_angular_19.md +8 -4
  692. package/docs/ja/intlayer_with_angular_21.md +8 -4
  693. package/docs/ja/intlayer_with_astro_lit.md +11 -7
  694. package/docs/ja/intlayer_with_astro_preact.md +8 -4
  695. package/docs/ja/intlayer_with_astro_react.md +8 -4
  696. package/docs/ja/intlayer_with_astro_solid.md +8 -4
  697. package/docs/ja/intlayer_with_astro_svelte.md +8 -4
  698. package/docs/ja/intlayer_with_astro_vanilla.md +8 -4
  699. package/docs/ja/intlayer_with_astro_vue.md +8 -4
  700. package/docs/ja/intlayer_with_create_react_app.md +8 -4
  701. package/docs/ja/intlayer_with_express.md +8 -4
  702. package/docs/ja/intlayer_with_fastify.md +8 -4
  703. package/docs/ja/intlayer_with_hono.md +8 -4
  704. package/docs/ja/intlayer_with_lynx+react.md +8 -4
  705. package/docs/ja/intlayer_with_nestjs.md +8 -4
  706. package/docs/ja/intlayer_with_next-i18next.md +8 -4
  707. package/docs/ja/intlayer_with_nextjs_14.md +8 -4
  708. package/docs/ja/intlayer_with_nextjs_15.md +10 -8
  709. package/docs/ja/intlayer_with_nextjs_16.md +10 -8
  710. package/docs/ja/intlayer_with_nextjs_compiler.md +8 -4
  711. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +10 -8
  712. package/docs/ja/intlayer_with_nextjs_page_router.md +8 -4
  713. package/docs/ja/intlayer_with_nuxt.md +9 -5
  714. package/docs/ja/intlayer_with_react_native+expo.md +8 -4
  715. package/docs/ja/intlayer_with_tanstack+solid.md +9 -5
  716. package/docs/ja/intlayer_with_tanstack.md +10 -7
  717. package/docs/ja/intlayer_with_vite+lit.md +8 -4
  718. package/docs/ja/intlayer_with_vite+preact.md +9 -5
  719. package/docs/ja/intlayer_with_vite+react_compiler.md +9 -5
  720. package/docs/ja/intlayer_with_vite+solid.md +9 -5
  721. package/docs/ja/intlayer_with_vite+svelte.md +8 -4
  722. package/docs/ja/intlayer_with_vite+vanilla.md +8 -4
  723. package/docs/ja/intlayer_with_vite+vue.md +9 -5
  724. package/docs/ja/live-sync.md +185 -0
  725. package/docs/ja/migration_from_i18next_to_intlayer.md +8 -4
  726. package/docs/ja/migration_from_next-i18next_to_intlayer.md +8 -4
  727. package/docs/ja/migration_from_next-intl_to_intlayer.md +9 -7
  728. package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  729. package/docs/ja/migration_from_react-i18next_to_intlayer.md +9 -7
  730. package/docs/ja/migration_from_vue-i18n_to_intlayer.md +8 -4
  731. package/docs/ja/releases/v9.md +101 -33
  732. package/docs/ja/self_hosting.md +350 -0
  733. package/docs/ko/bundle_optimization.md +16 -0
  734. package/docs/ko/cli/index.md +1 -1
  735. package/docs/ko/cli/scan.md +2 -2
  736. package/docs/ko/configuration.md +42 -1
  737. package/docs/ko/how_works_intlayer.md +2 -2
  738. package/docs/ko/intlayer_CMS.md +147 -100
  739. package/docs/ko/intlayer_with_adonisjs.md +8 -4
  740. package/docs/ko/intlayer_with_analog.md +8 -4
  741. package/docs/ko/intlayer_with_angular_19.md +8 -4
  742. package/docs/ko/intlayer_with_angular_21.md +8 -4
  743. package/docs/ko/intlayer_with_astro_vue.md +8 -4
  744. package/docs/ko/intlayer_with_create_react_app.md +8 -4
  745. package/docs/ko/intlayer_with_express.md +8 -4
  746. package/docs/ko/intlayer_with_fastify.md +8 -4
  747. package/docs/ko/intlayer_with_hono.md +8 -4
  748. package/docs/ko/intlayer_with_nestjs.md +8 -4
  749. package/docs/ko/intlayer_with_next-i18next.md +8 -4
  750. package/docs/ko/intlayer_with_nextjs_15.md +10 -8
  751. package/docs/ko/intlayer_with_nextjs_16.md +10 -8
  752. package/docs/ko/intlayer_with_nextjs_compiler.md +9 -7
  753. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +10 -8
  754. package/docs/ko/intlayer_with_nextjs_page_router.md +8 -4
  755. package/docs/ko/intlayer_with_nuxt.md +9 -5
  756. package/docs/ko/intlayer_with_react_native+expo.md +8 -4
  757. package/docs/ko/intlayer_with_react_router_v7.md +9 -5
  758. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +9 -5
  759. package/docs/ko/intlayer_with_svelte_kit.md +8 -4
  760. package/docs/ko/intlayer_with_tanstack+solid.md +9 -5
  761. package/docs/ko/intlayer_with_tanstack.md +10 -7
  762. package/docs/ko/intlayer_with_vite+lit.md +8 -4
  763. package/docs/ko/intlayer_with_vite+preact.md +9 -5
  764. package/docs/ko/intlayer_with_vite+react_compiler.md +9 -5
  765. package/docs/ko/intlayer_with_vite+solid.md +9 -5
  766. package/docs/ko/intlayer_with_vite+svelte.md +8 -4
  767. package/docs/ko/intlayer_with_vite+vanilla.md +8 -4
  768. package/docs/ko/intlayer_with_vite+vue.md +9 -5
  769. package/docs/ko/live-sync.md +187 -0
  770. package/docs/ko/migration_from_i18next_to_intlayer.md +8 -4
  771. package/docs/ko/migration_from_next-i18next_to_intlayer.md +8 -4
  772. package/docs/ko/migration_from_next-intl_to_intlayer.md +9 -7
  773. package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  774. package/docs/ko/migration_from_react-i18next_to_intlayer.md +9 -7
  775. package/docs/ko/migration_from_vue-i18n_to_intlayer.md +8 -4
  776. package/docs/ko/releases/v9.md +100 -33
  777. package/docs/ko/self_hosting.md +350 -0
  778. package/docs/nl/bundle_optimization.md +16 -0
  779. package/docs/nl/cli/index.md +1 -1
  780. package/docs/nl/cli/scan.md +2 -2
  781. package/docs/nl/configuration.md +45 -1
  782. package/docs/nl/intlayer_with_angular_21.md +8 -4
  783. package/docs/nl/intlayer_with_fastify.md +8 -4
  784. package/docs/nl/intlayer_with_hono.md +8 -4
  785. package/docs/nl/intlayer_with_vite+lit.md +8 -4
  786. package/docs/nl/intlayer_with_vite+vanilla.md +8 -4
  787. package/docs/nl/releases/v9.md +349 -0
  788. package/docs/pl/bundle_optimization.md +16 -0
  789. package/docs/pl/cli/index.md +1 -1
  790. package/docs/pl/cli/scan.md +2 -2
  791. package/docs/pl/configuration.md +45 -1
  792. package/docs/pl/how_works_intlayer.md +2 -2
  793. package/docs/pl/intlayer_CMS.md +14 -133
  794. package/docs/pl/intlayer_with_adonisjs.md +8 -4
  795. package/docs/pl/intlayer_with_analog.md +8 -4
  796. package/docs/pl/intlayer_with_angular_19.md +8 -4
  797. package/docs/pl/intlayer_with_angular_21.md +8 -4
  798. package/docs/pl/intlayer_with_astro_lit.md +11 -7
  799. package/docs/pl/intlayer_with_astro_preact.md +8 -4
  800. package/docs/pl/intlayer_with_astro_react.md +8 -4
  801. package/docs/pl/intlayer_with_astro_solid.md +8 -4
  802. package/docs/pl/intlayer_with_astro_svelte.md +8 -4
  803. package/docs/pl/intlayer_with_astro_vanilla.md +8 -4
  804. package/docs/pl/intlayer_with_astro_vue.md +8 -4
  805. package/docs/pl/intlayer_with_create_react_app.md +8 -4
  806. package/docs/pl/intlayer_with_express.md +8 -4
  807. package/docs/pl/intlayer_with_fastify.md +8 -4
  808. package/docs/pl/intlayer_with_hono.md +8 -4
  809. package/docs/pl/intlayer_with_lynx+react.md +8 -4
  810. package/docs/pl/intlayer_with_nestjs.md +8 -4
  811. package/docs/pl/intlayer_with_next-i18next.md +8 -4
  812. package/docs/pl/intlayer_with_nextjs_14.md +8 -4
  813. package/docs/pl/intlayer_with_nextjs_15.md +9 -7
  814. package/docs/pl/intlayer_with_nextjs_16.md +10 -8
  815. package/docs/pl/intlayer_with_nextjs_compiler.md +8 -4
  816. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +10 -8
  817. package/docs/pl/intlayer_with_nextjs_page_router.md +8 -4
  818. package/docs/pl/intlayer_with_nuxt.md +9 -5
  819. package/docs/pl/intlayer_with_react_native+expo.md +8 -4
  820. package/docs/pl/intlayer_with_react_router_v7.md +9 -5
  821. package/docs/pl/intlayer_with_svelte_kit.md +8 -4
  822. package/docs/pl/intlayer_with_tanstack+solid.md +9 -5
  823. package/docs/pl/intlayer_with_tanstack.md +10 -7
  824. package/docs/pl/intlayer_with_vite+lit.md +8 -4
  825. package/docs/pl/intlayer_with_vite+preact.md +9 -5
  826. package/docs/pl/intlayer_with_vite+react.md +9 -5
  827. package/docs/pl/intlayer_with_vite+react_compiler.md +9 -5
  828. package/docs/pl/intlayer_with_vite+solid.md +9 -5
  829. package/docs/pl/intlayer_with_vite+svelte.md +8 -4
  830. package/docs/pl/intlayer_with_vite+vanilla.md +8 -4
  831. package/docs/pl/intlayer_with_vite+vue.md +9 -5
  832. package/docs/pl/live-sync.md +185 -0
  833. package/docs/pl/migration_from_next-i18next_to_intlayer.md +8 -4
  834. package/docs/pl/migration_from_next-intl_to_intlayer.md +9 -7
  835. package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  836. package/docs/pl/migration_from_react-i18next_to_intlayer.md +9 -7
  837. package/docs/pl/releases/v9.md +128 -33
  838. package/docs/pl/self_hosting.md +350 -0
  839. package/docs/pt/bundle_optimization.md +16 -0
  840. package/docs/pt/cli/index.md +1 -1
  841. package/docs/pt/cli/scan.md +2 -2
  842. package/docs/pt/configuration.md +45 -1
  843. package/docs/pt/how_works_intlayer.md +2 -2
  844. package/docs/pt/intlayer_CMS.md +87 -109
  845. package/docs/pt/intlayer_with_adonisjs.md +8 -4
  846. package/docs/pt/intlayer_with_analog.md +8 -4
  847. package/docs/pt/intlayer_with_angular_19.md +8 -4
  848. package/docs/pt/intlayer_with_angular_21.md +8 -4
  849. package/docs/pt/intlayer_with_astro_lit.md +11 -7
  850. package/docs/pt/intlayer_with_astro_preact.md +8 -4
  851. package/docs/pt/intlayer_with_astro_react.md +8 -4
  852. package/docs/pt/intlayer_with_astro_solid.md +8 -4
  853. package/docs/pt/intlayer_with_astro_svelte.md +8 -4
  854. package/docs/pt/intlayer_with_astro_vanilla.md +8 -4
  855. package/docs/pt/intlayer_with_astro_vue.md +8 -4
  856. package/docs/pt/intlayer_with_create_react_app.md +8 -4
  857. package/docs/pt/intlayer_with_express.md +8 -4
  858. package/docs/pt/intlayer_with_fastify.md +8 -4
  859. package/docs/pt/intlayer_with_hono.md +8 -4
  860. package/docs/pt/intlayer_with_lynx+react.md +8 -4
  861. package/docs/pt/intlayer_with_nestjs.md +8 -4
  862. package/docs/pt/intlayer_with_next-i18next.md +8 -4
  863. package/docs/pt/intlayer_with_nextjs_14.md +8 -4
  864. package/docs/pt/intlayer_with_nextjs_15.md +10 -8
  865. package/docs/pt/intlayer_with_nextjs_16.md +10 -8
  866. package/docs/pt/intlayer_with_nextjs_compiler.md +9 -7
  867. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +10 -8
  868. package/docs/pt/intlayer_with_nextjs_page_router.md +8 -4
  869. package/docs/pt/intlayer_with_nuxt.md +9 -5
  870. package/docs/pt/intlayer_with_react_native+expo.md +8 -4
  871. package/docs/pt/intlayer_with_react_router_v7.md +9 -5
  872. package/docs/pt/intlayer_with_svelte_kit.md +8 -4
  873. package/docs/pt/intlayer_with_tanstack+solid.md +9 -5
  874. package/docs/pt/intlayer_with_tanstack.md +10 -7
  875. package/docs/pt/intlayer_with_vite+lit.md +8 -4
  876. package/docs/pt/intlayer_with_vite+preact.md +9 -5
  877. package/docs/pt/intlayer_with_vite+react.md +9 -5
  878. package/docs/pt/intlayer_with_vite+react_compiler.md +9 -5
  879. package/docs/pt/intlayer_with_vite+solid.md +9 -5
  880. package/docs/pt/intlayer_with_vite+svelte.md +8 -4
  881. package/docs/pt/intlayer_with_vite+vanilla.md +8 -4
  882. package/docs/pt/intlayer_with_vite+vue.md +9 -5
  883. package/docs/pt/live-sync.md +174 -0
  884. package/docs/pt/migration_from_i18next_to_intlayer.md +8 -4
  885. package/docs/pt/migration_from_next-i18next_to_intlayer.md +8 -4
  886. package/docs/pt/migration_from_next-intl_to_intlayer.md +9 -7
  887. package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  888. package/docs/pt/migration_from_react-i18next_to_intlayer.md +9 -7
  889. package/docs/pt/migration_from_vue-i18n_to_intlayer.md +8 -4
  890. package/docs/pt/releases/v9.md +131 -33
  891. package/docs/pt/self_hosting.md +350 -0
  892. package/docs/ru/bundle_optimization.md +16 -0
  893. package/docs/ru/cli/index.md +1 -1
  894. package/docs/ru/cli/scan.md +2 -2
  895. package/docs/ru/configuration.md +42 -1
  896. package/docs/ru/how_works_intlayer.md +2 -2
  897. package/docs/ru/intlayer_CMS.md +149 -102
  898. package/docs/ru/intlayer_with_adonisjs.md +8 -4
  899. package/docs/ru/intlayer_with_analog.md +8 -4
  900. package/docs/ru/intlayer_with_angular_19.md +8 -4
  901. package/docs/ru/intlayer_with_angular_21.md +8 -4
  902. package/docs/ru/intlayer_with_astro_vue.md +8 -4
  903. package/docs/ru/intlayer_with_create_react_app.md +8 -4
  904. package/docs/ru/intlayer_with_express.md +8 -4
  905. package/docs/ru/intlayer_with_fastify.md +8 -4
  906. package/docs/ru/intlayer_with_hono.md +8 -4
  907. package/docs/ru/intlayer_with_lynx+react.md +8 -4
  908. package/docs/ru/intlayer_with_nestjs.md +8 -4
  909. package/docs/ru/intlayer_with_next-i18next.md +8 -4
  910. package/docs/ru/intlayer_with_nextjs_14.md +8 -4
  911. package/docs/ru/intlayer_with_nextjs_15.md +10 -8
  912. package/docs/ru/intlayer_with_nextjs_16.md +10 -8
  913. package/docs/ru/intlayer_with_nextjs_compiler.md +9 -7
  914. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +10 -8
  915. package/docs/ru/intlayer_with_nextjs_page_router.md +8 -4
  916. package/docs/ru/intlayer_with_nuxt.md +9 -5
  917. package/docs/ru/intlayer_with_react_native+expo.md +8 -4
  918. package/docs/ru/intlayer_with_react_router_v7.md +9 -5
  919. package/docs/ru/intlayer_with_svelte_kit.md +8 -4
  920. package/docs/ru/intlayer_with_tanstack+solid.md +9 -5
  921. package/docs/ru/intlayer_with_tanstack.md +10 -7
  922. package/docs/ru/intlayer_with_vite+lit.md +8 -4
  923. package/docs/ru/intlayer_with_vite+preact.md +9 -5
  924. package/docs/ru/intlayer_with_vite+react.md +9 -5
  925. package/docs/ru/intlayer_with_vite+react_compiler.md +9 -5
  926. package/docs/ru/intlayer_with_vite+solid.md +9 -5
  927. package/docs/ru/intlayer_with_vite+svelte.md +8 -4
  928. package/docs/ru/intlayer_with_vite+vanilla.md +8 -4
  929. package/docs/ru/intlayer_with_vite+vue.md +9 -5
  930. package/docs/ru/live-sync.md +185 -0
  931. package/docs/ru/migration_from_i18next_to_intlayer.md +8 -4
  932. package/docs/ru/migration_from_next-i18next_to_intlayer.md +8 -4
  933. package/docs/ru/migration_from_next-intl_to_intlayer.md +9 -7
  934. package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  935. package/docs/ru/migration_from_react-i18next_to_intlayer.md +9 -7
  936. package/docs/ru/migration_from_vue-i18n_to_intlayer.md +8 -4
  937. package/docs/ru/releases/v9.md +129 -33
  938. package/docs/ru/self_hosting.md +350 -0
  939. package/docs/tr/bundle_optimization.md +16 -0
  940. package/docs/tr/cli/index.md +1 -1
  941. package/docs/tr/cli/scan.md +2 -2
  942. package/docs/tr/configuration.md +42 -1
  943. package/docs/tr/how_works_intlayer.md +2 -2
  944. package/docs/tr/intlayer_CMS.md +14 -121
  945. package/docs/tr/intlayer_with_adonisjs.md +8 -4
  946. package/docs/tr/intlayer_with_analog.md +8 -4
  947. package/docs/tr/intlayer_with_angular_19.md +8 -4
  948. package/docs/tr/intlayer_with_angular_21.md +8 -4
  949. package/docs/tr/intlayer_with_astro_lit.md +11 -7
  950. package/docs/tr/intlayer_with_astro_preact.md +8 -4
  951. package/docs/tr/intlayer_with_astro_react.md +8 -4
  952. package/docs/tr/intlayer_with_astro_solid.md +8 -4
  953. package/docs/tr/intlayer_with_astro_svelte.md +8 -4
  954. package/docs/tr/intlayer_with_astro_vanilla.md +8 -4
  955. package/docs/tr/intlayer_with_astro_vue.md +8 -4
  956. package/docs/tr/intlayer_with_create_react_app.md +8 -4
  957. package/docs/tr/intlayer_with_express.md +8 -4
  958. package/docs/tr/intlayer_with_fastify.md +8 -4
  959. package/docs/tr/intlayer_with_hono.md +8 -4
  960. package/docs/tr/intlayer_with_lynx+react.md +8 -4
  961. package/docs/tr/intlayer_with_nestjs.md +8 -4
  962. package/docs/tr/intlayer_with_next-i18next.md +8 -4
  963. package/docs/tr/intlayer_with_nextjs_14.md +8 -4
  964. package/docs/tr/intlayer_with_nextjs_15.md +10 -8
  965. package/docs/tr/intlayer_with_nextjs_16.md +10 -8
  966. package/docs/tr/intlayer_with_nextjs_compiler.md +8 -4
  967. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +10 -8
  968. package/docs/tr/intlayer_with_nextjs_page_router.md +8 -4
  969. package/docs/tr/intlayer_with_nuxt.md +9 -5
  970. package/docs/tr/intlayer_with_react_native+expo.md +8 -4
  971. package/docs/tr/intlayer_with_react_router_v7.md +9 -5
  972. package/docs/tr/intlayer_with_svelte_kit.md +8 -4
  973. package/docs/tr/intlayer_with_tanstack+solid.md +9 -5
  974. package/docs/tr/intlayer_with_tanstack.md +10 -7
  975. package/docs/tr/intlayer_with_vite+lit.md +8 -4
  976. package/docs/tr/intlayer_with_vite+preact.md +9 -5
  977. package/docs/tr/intlayer_with_vite+react.md +9 -5
  978. package/docs/tr/intlayer_with_vite+react_compiler.md +9 -5
  979. package/docs/tr/intlayer_with_vite+solid.md +9 -5
  980. package/docs/tr/intlayer_with_vite+svelte.md +8 -4
  981. package/docs/tr/intlayer_with_vite+vanilla.md +8 -4
  982. package/docs/tr/intlayer_with_vite+vue.md +9 -5
  983. package/docs/tr/live-sync.md +173 -0
  984. package/docs/tr/migration_from_i18next_to_intlayer.md +8 -4
  985. package/docs/tr/migration_from_next-i18next_to_intlayer.md +8 -4
  986. package/docs/tr/migration_from_next-intl_to_intlayer.md +9 -7
  987. package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  988. package/docs/tr/migration_from_react-i18next_to_intlayer.md +9 -7
  989. package/docs/tr/migration_from_vue-i18n_to_intlayer.md +8 -4
  990. package/docs/tr/releases/v9.md +116 -33
  991. package/docs/tr/self_hosting.md +350 -0
  992. package/docs/uk/bundle_optimization.md +16 -0
  993. package/docs/uk/cli/index.md +1 -1
  994. package/docs/uk/cli/scan.md +2 -2
  995. package/docs/uk/configuration.md +42 -1
  996. package/docs/uk/how_works_intlayer.md +2 -2
  997. package/docs/uk/intlayer_CMS.md +14 -133
  998. package/docs/uk/intlayer_with_adonisjs.md +8 -4
  999. package/docs/uk/intlayer_with_analog.md +8 -4
  1000. package/docs/uk/intlayer_with_angular_19.md +8 -4
  1001. package/docs/uk/intlayer_with_angular_21.md +8 -4
  1002. package/docs/uk/intlayer_with_astro_lit.md +11 -7
  1003. package/docs/uk/intlayer_with_astro_preact.md +8 -4
  1004. package/docs/uk/intlayer_with_astro_react.md +8 -4
  1005. package/docs/uk/intlayer_with_astro_solid.md +8 -4
  1006. package/docs/uk/intlayer_with_astro_svelte.md +8 -4
  1007. package/docs/uk/intlayer_with_astro_vanilla.md +8 -4
  1008. package/docs/uk/intlayer_with_astro_vue.md +8 -4
  1009. package/docs/uk/intlayer_with_create_react_app.md +8 -4
  1010. package/docs/uk/intlayer_with_express.md +8 -4
  1011. package/docs/uk/intlayer_with_fastify.md +8 -4
  1012. package/docs/uk/intlayer_with_hono.md +8 -4
  1013. package/docs/uk/intlayer_with_lynx+react.md +8 -4
  1014. package/docs/uk/intlayer_with_nestjs.md +8 -4
  1015. package/docs/uk/intlayer_with_next-i18next.md +8 -4
  1016. package/docs/uk/intlayer_with_nextjs_14.md +8 -4
  1017. package/docs/uk/intlayer_with_nextjs_15.md +10 -8
  1018. package/docs/uk/intlayer_with_nextjs_16.md +10 -8
  1019. package/docs/uk/intlayer_with_nextjs_compiler.md +8 -4
  1020. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +10 -8
  1021. package/docs/uk/intlayer_with_nextjs_page_router.md +8 -4
  1022. package/docs/uk/intlayer_with_nuxt.md +9 -5
  1023. package/docs/uk/intlayer_with_react_native+expo.md +8 -4
  1024. package/docs/uk/intlayer_with_react_router_v7.md +9 -5
  1025. package/docs/uk/intlayer_with_svelte_kit.md +8 -4
  1026. package/docs/uk/intlayer_with_tanstack+solid.md +9 -5
  1027. package/docs/uk/intlayer_with_tanstack.md +10 -7
  1028. package/docs/uk/intlayer_with_vite+lit.md +8 -4
  1029. package/docs/uk/intlayer_with_vite+preact.md +9 -5
  1030. package/docs/uk/intlayer_with_vite+react.md +9 -5
  1031. package/docs/uk/intlayer_with_vite+react_compiler.md +9 -5
  1032. package/docs/uk/intlayer_with_vite+solid.md +9 -5
  1033. package/docs/uk/intlayer_with_vite+svelte.md +8 -4
  1034. package/docs/uk/intlayer_with_vite+vanilla.md +8 -4
  1035. package/docs/uk/intlayer_with_vite+vue.md +9 -5
  1036. package/docs/uk/live-sync.md +185 -0
  1037. package/docs/uk/migration_from_i18next_to_intlayer.md +8 -4
  1038. package/docs/uk/migration_from_next-i18next_to_intlayer.md +8 -4
  1039. package/docs/uk/migration_from_next-intl_to_intlayer.md +9 -7
  1040. package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  1041. package/docs/uk/migration_from_react-i18next_to_intlayer.md +9 -7
  1042. package/docs/uk/migration_from_vue-i18n_to_intlayer.md +8 -4
  1043. package/docs/uk/releases/v9.md +128 -33
  1044. package/docs/uk/self_hosting.md +350 -0
  1045. package/docs/ur/bundle_optimization.md +16 -0
  1046. package/docs/ur/cli/index.md +1 -1
  1047. package/docs/ur/cli/scan.md +2 -2
  1048. package/docs/ur/configuration.md +45 -1
  1049. package/docs/ur/intlayer_with_angular_21.md +8 -4
  1050. package/docs/ur/intlayer_with_fastify.md +8 -4
  1051. package/docs/ur/intlayer_with_hono.md +8 -4
  1052. package/docs/ur/intlayer_with_vite+lit.md +8 -4
  1053. package/docs/ur/intlayer_with_vite+vanilla.md +8 -4
  1054. package/docs/vi/bundle_optimization.md +16 -0
  1055. package/docs/vi/cli/index.md +1 -1
  1056. package/docs/vi/cli/scan.md +2 -2
  1057. package/docs/vi/configuration.md +42 -1
  1058. package/docs/vi/how_works_intlayer.md +2 -2
  1059. package/docs/vi/intlayer_CMS.md +5 -139
  1060. package/docs/vi/intlayer_with_adonisjs.md +8 -4
  1061. package/docs/vi/intlayer_with_analog.md +8 -4
  1062. package/docs/vi/intlayer_with_angular_19.md +8 -4
  1063. package/docs/vi/intlayer_with_angular_21.md +8 -4
  1064. package/docs/vi/intlayer_with_astro_lit.md +11 -7
  1065. package/docs/vi/intlayer_with_astro_preact.md +8 -4
  1066. package/docs/vi/intlayer_with_astro_react.md +8 -4
  1067. package/docs/vi/intlayer_with_astro_solid.md +8 -4
  1068. package/docs/vi/intlayer_with_astro_svelte.md +8 -4
  1069. package/docs/vi/intlayer_with_astro_vanilla.md +8 -4
  1070. package/docs/vi/intlayer_with_astro_vue.md +8 -4
  1071. package/docs/vi/intlayer_with_create_react_app.md +8 -4
  1072. package/docs/vi/intlayer_with_express.md +8 -4
  1073. package/docs/vi/intlayer_with_fastify.md +8 -4
  1074. package/docs/vi/intlayer_with_hono.md +8 -4
  1075. package/docs/vi/intlayer_with_lynx+react.md +8 -4
  1076. package/docs/vi/intlayer_with_nestjs.md +8 -4
  1077. package/docs/vi/intlayer_with_next-i18next.md +8 -4
  1078. package/docs/vi/intlayer_with_nextjs_14.md +8 -4
  1079. package/docs/vi/intlayer_with_nextjs_15.md +9 -7
  1080. package/docs/vi/intlayer_with_nextjs_16.md +10 -8
  1081. package/docs/vi/intlayer_with_nextjs_compiler.md +8 -4
  1082. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +10 -8
  1083. package/docs/vi/intlayer_with_nextjs_page_router.md +8 -4
  1084. package/docs/vi/intlayer_with_nuxt.md +9 -5
  1085. package/docs/vi/intlayer_with_react_native+expo.md +8 -4
  1086. package/docs/vi/intlayer_with_react_router_v7.md +9 -5
  1087. package/docs/vi/intlayer_with_svelte_kit.md +8 -4
  1088. package/docs/vi/intlayer_with_tanstack+solid.md +9 -5
  1089. package/docs/vi/intlayer_with_tanstack.md +10 -7
  1090. package/docs/vi/intlayer_with_vite+lit.md +8 -4
  1091. package/docs/vi/intlayer_with_vite+preact.md +9 -5
  1092. package/docs/vi/intlayer_with_vite+react.md +9 -5
  1093. package/docs/vi/intlayer_with_vite+react_compiler.md +9 -5
  1094. package/docs/vi/intlayer_with_vite+solid.md +9 -5
  1095. package/docs/vi/intlayer_with_vite+svelte.md +8 -4
  1096. package/docs/vi/intlayer_with_vite+vanilla.md +8 -4
  1097. package/docs/vi/intlayer_with_vite+vue.md +9 -5
  1098. package/docs/vi/live-sync.md +185 -0
  1099. package/docs/vi/migration_from_i18next_to_intlayer.md +8 -4
  1100. package/docs/vi/migration_from_next-i18next_to_intlayer.md +8 -4
  1101. package/docs/vi/migration_from_next-intl_to_intlayer.md +9 -7
  1102. package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  1103. package/docs/vi/migration_from_react-i18next_to_intlayer.md +9 -7
  1104. package/docs/vi/migration_from_vue-i18n_to_intlayer.md +8 -4
  1105. package/docs/vi/releases/v9.md +101 -33
  1106. package/docs/vi/self_hosting.md +350 -0
  1107. package/docs/zh/bundle_optimization.md +16 -0
  1108. package/docs/zh/cli/index.md +1 -1
  1109. package/docs/zh/cli/scan.md +2 -2
  1110. package/docs/zh/configuration.md +42 -1
  1111. package/docs/zh/how_works_intlayer.md +2 -2
  1112. package/docs/zh/intlayer_CMS.md +5 -129
  1113. package/docs/zh/intlayer_with_adonisjs.md +8 -4
  1114. package/docs/zh/intlayer_with_angular_21.md +8 -4
  1115. package/docs/zh/intlayer_with_astro.md +8 -4
  1116. package/docs/zh/intlayer_with_astro_lit.md +11 -7
  1117. package/docs/zh/intlayer_with_astro_preact.md +8 -4
  1118. package/docs/zh/intlayer_with_astro_react.md +8 -4
  1119. package/docs/zh/intlayer_with_astro_solid.md +8 -4
  1120. package/docs/zh/intlayer_with_astro_svelte.md +8 -4
  1121. package/docs/zh/intlayer_with_astro_vanilla.md +8 -4
  1122. package/docs/zh/intlayer_with_astro_vue.md +8 -4
  1123. package/docs/zh/intlayer_with_create_react_app.md +8 -4
  1124. package/docs/zh/intlayer_with_express.md +8 -4
  1125. package/docs/zh/intlayer_with_fastify.md +8 -4
  1126. package/docs/zh/intlayer_with_hono.md +8 -4
  1127. package/docs/zh/intlayer_with_nestjs.md +8 -4
  1128. package/docs/zh/intlayer_with_next-i18next.md +8 -4
  1129. package/docs/zh/intlayer_with_nextjs_14.md +8 -4
  1130. package/docs/zh/intlayer_with_nextjs_15.md +10 -8
  1131. package/docs/zh/intlayer_with_nextjs_16.md +10 -8
  1132. package/docs/zh/intlayer_with_nextjs_compiler.md +9 -7
  1133. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +10 -8
  1134. package/docs/zh/intlayer_with_nextjs_page_router.md +8 -4
  1135. package/docs/zh/intlayer_with_react_native+expo.md +8 -4
  1136. package/docs/zh/intlayer_with_react_router_v7.md +9 -5
  1137. package/docs/zh/intlayer_with_vite+solid.md +9 -5
  1138. package/docs/zh/intlayer_with_vite+svelte.md +8 -4
  1139. package/docs/zh/intlayer_with_vite+vue.md +9 -5
  1140. package/docs/zh/live-sync.md +175 -0
  1141. package/docs/zh/migration_from_i18next_to_intlayer.md +8 -4
  1142. package/docs/zh/migration_from_next-i18next_to_intlayer.md +8 -4
  1143. package/docs/zh/migration_from_next-intl_to_intlayer.md +9 -7
  1144. package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +8 -4
  1145. package/docs/zh/migration_from_react-i18next_to_intlayer.md +9 -7
  1146. package/docs/zh/migration_from_vue-i18n_to_intlayer.md +8 -4
  1147. package/docs/zh/releases/v9.md +101 -25
  1148. package/docs/zh/self_hosting.md +350 -0
  1149. package/docs/zh-TW/bundle_optimization.md +16 -0
  1150. package/docs/zh-TW/intlayer_with_angular_21.md +8 -4
  1151. package/package.json +10 -10
  1152. package/src/generated/docs.entry.ts +60 -0
@@ -74,19 +74,23 @@ Intlayer пропонує багатий набір **розширених фу
74
74
  Встановіть необхідні пакети:
75
75
 
76
76
  ```bash packageManager="npm"
77
- npx intlayer-cli init --interactive
77
+ npx intlayer@canary init --interactive # v9
78
+ # npx intlayer init # v8
78
79
  ```
79
80
 
80
81
  ```bash packageManager="pnpm"
81
- pnpm dlx intlayer-cli init --interactive
82
+ pnpm dlx intlayer@canary init --interactive # v9
83
+ # pnpm dlx intlayer init # v8
82
84
  ```
83
85
 
84
86
  ```bash packageManager="yarn"
85
- yarn dlx intlayer-cli init --interactive
87
+ yarn dlx intlayer@canary init --interactive # v9
88
+ # yarn dlx intlayer init # v8
86
89
  ```
87
90
 
88
91
  ```bash packageManager="bun"
89
- bunx intlayer-cli init --interactive
92
+ bunx intlayer@canary init --interactive # v9
93
+ # bunx intlayer init # v8
90
94
  ```
91
95
 
92
96
  > прапорець `--interactive` не є обов'язковим. Використовуйте `intlayer-cli init`, якщо ви є ШІ-агентом.
@@ -76,19 +76,23 @@ Intlayer пропонує широкий набір **розширених мо
76
76
  Встановіть необхідні пакети, використовуючи бажаний пакетний менеджер:
77
77
 
78
78
  ```bash packageManager="npm"
79
- npx intlayer-cli init --interactive
79
+ npx intlayer@canary init --interactive # v9
80
+ # npx intlayer init # v8
80
81
  ```
81
82
 
82
83
  ```bash packageManager="pnpm"
83
- pnpm dlx intlayer-cli init --interactive
84
+ pnpm dlx intlayer@canary init --interactive # v9
85
+ # pnpm dlx intlayer init # v8
84
86
  ```
85
87
 
86
88
  ```bash packageManager="yarn"
87
- yarn dlx intlayer-cli init --interactive
89
+ yarn dlx intlayer@canary init --interactive # v9
90
+ # yarn dlx intlayer init # v8
88
91
  ```
89
92
 
90
93
  ```bash packageManager="bun"
91
- bunx intlayer-cli init --interactive
94
+ bunx intlayer@canary init --interactive # v9
95
+ # bunx intlayer init # v8
92
96
  ```
93
97
 
94
98
  > прапорець `--interactive` не є обов'язковим. Використовуйте `intlayer-cli init`, якщо ви є ШІ-агентом.
@@ -343,6 +343,12 @@ export default robots;
343
343
 
344
344
  ---
345
345
 
346
+ ## Перевірте свій веб-сайт за допомогою Intlayer SEO Scanner
347
+
348
+ Щоб переконатися, що ваш багатомовний додаток ідеально оптимізовано, ми рекомендуємо використовувати [Intlayer SEO Scanner](https://intlayer.org/i18n-seo-scanner). Це спеціалізований інструмент для перевірки багатомовних веб-сайтів, який допомагає виявити відсутні теги hreflang, непрацюючі посилання та інші проблеми SEO на всіх ваших локалізованих сторінках.
349
+
350
+ ---
351
+
346
352
  ## Висновок
347
353
 
348
354
  Правильна реалізація i18n у Next.js, це не просто переклад тексту, а забезпечення того, щоб пошукові системи та користувачі точно знали, яку версію вашого контенту показувати.
@@ -264,6 +264,12 @@ const LocaleSwitcher: FC = () => {
264
264
 
265
265
  ---
266
266
 
267
+ ## Kiểm tra trang web của bạn bằng Intlayer SEO Scanner
268
+
269
+ Để đảm bảo ứng dụng đa ngôn ngữ của bạn được tối ưu hóa hoàn hảo, chúng tôi khuyên bạn nên sử dụng [Intlayer SEO Scanner](https://intlayer.org/i18n-seo-scanner). Đây là một công cụ chuyên dụng để kiểm tra trang web đa ngôn ngữ, giúp bạn xác định các thẻ hreflang bị thiếu, liên kết bị hỏng và các vấn đề SEO khác trên tất cả các trang được bản địa hóa của bạn.
270
+
271
+ ---
272
+
267
273
  ## Kết Luận
268
274
 
269
275
  Việc làm cho trang web của bạn đa ngôn ngữ không chỉ đơn thuần là dịch văn bản. Nó còn liên quan đến việc cấu trúc URL một cách hiệu quả, sử dụng thẻ `hreflang` để giúp các công cụ tìm kiếm phục vụ phiên bản đúng, và cung cấp trải nghiệm người dùng xuất sắc với hình ảnh địa phương hóa, bộ chọn ngôn ngữ, và điều hướng nhất quán. Tuân theo những thực hành tốt nhất này sẽ giúp bạn thành công trên thị trường toàn cầu, tăng sự hài lòng của người dùng, và cuối cùng là mang lại kết quả SEO tốt hơn trên các khu vực khác nhau.
@@ -70,19 +70,23 @@ Hướng dẫn này sẽ chỉ cho bạn cách tận dụng hệ thống khai b
70
70
  Cài đặt các gói cần thiết:
71
71
 
72
72
  ```bash packageManager="npm"
73
- npx intlayer-cli init --interactive
73
+ npx intlayer@canary init --interactive # v9
74
+ # npx intlayer init # v8
74
75
  ```
75
76
 
76
77
  ```bash packageManager="pnpm"
77
- pnpm dlx intlayer-cli init --interactive
78
+ pnpm dlx intlayer@canary init --interactive # v9
79
+ # pnpm dlx intlayer init # v8
78
80
  ```
79
81
 
80
82
  ```bash packageManager="yarn"
81
- yarn dlx intlayer-cli init --interactive
83
+ yarn dlx intlayer@canary init --interactive # v9
84
+ # yarn dlx intlayer init # v8
82
85
  ```
83
86
 
84
87
  ```bash packageManager="bun"
85
- bunx intlayer-cli init --interactive
88
+ bunx intlayer@canary init --interactive # v9
89
+ # bunx intlayer init # v8
86
90
  ```
87
91
 
88
92
  > cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là tác nhân AI.
@@ -63,19 +63,23 @@ Hướng dẫn này sẽ chỉ cho bạn cách tận dụng hệ thống khai b
63
63
  Cài đặt các gói cần thiết bằng trình quản lý gói bạn ưa thích:
64
64
 
65
65
  ```bash packageManager="npm"
66
- npx intlayer-cli init --interactive
66
+ npx intlayer@canary init --interactive # v9
67
+ # npx intlayer init # v8
67
68
  ```
68
69
 
69
70
  ```bash packageManager="pnpm"
70
- pnpm dlx intlayer-cli init --interactive
71
+ pnpm dlx intlayer@canary init --interactive # v9
72
+ # pnpm dlx intlayer init # v8
71
73
  ```
72
74
 
73
75
  ```bash packageManager="yarn"
74
- yarn dlx intlayer-cli init --interactive
76
+ yarn dlx intlayer@canary init --interactive # v9
77
+ # yarn dlx intlayer init # v8
75
78
  ```
76
79
 
77
80
  ```bash packageManager="bun"
78
- bunx intlayer-cli init --interactive
81
+ bunx intlayer@canary init --interactive # v9
82
+ # bunx intlayer init # v8
79
83
  ```
80
84
 
81
85
  > cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là tác nhân AI.
@@ -65,19 +65,23 @@ Hướng dẫn này sẽ chỉ cho bạn cách tận dụng hệ thống khai b
65
65
  Cài đặt các gói cần thiết:
66
66
 
67
67
  ```bash packageManager="npm"
68
- npx intlayer-cli init --interactive
68
+ npx intlayer@canary init --interactive # v9
69
+ # npx intlayer init # v8
69
70
  ```
70
71
 
71
72
  ```bash packageManager="pnpm"
72
- pnpm dlx intlayer-cli init --interactive
73
+ pnpm dlx intlayer@canary init --interactive # v9
74
+ # pnpm dlx intlayer init # v8
73
75
  ```
74
76
 
75
77
  ```bash packageManager="yarn"
76
- yarn dlx intlayer-cli init --interactive
78
+ yarn dlx intlayer@canary init --interactive # v9
79
+ # yarn dlx intlayer init # v8
77
80
  ```
78
81
 
79
82
  ```bash packageManager="bun"
80
- bunx intlayer-cli init --interactive
83
+ bunx intlayer@canary init --interactive # v9
84
+ # bunx intlayer init # v8
81
85
  ```
82
86
 
83
87
  > cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là tác nhân AI.
@@ -64,19 +64,23 @@ Hướng dẫn này sẽ chỉ cho bạn cách tận dụng hệ thống khai b
64
64
  Cài đặt các gói cần thiết:
65
65
 
66
66
  ```bash packageManager="npm"
67
- npx intlayer-cli init --interactive
67
+ npx intlayer@canary init --interactive # v9
68
+ # npx intlayer init # v8
68
69
  ```
69
70
 
70
71
  ```bash packageManager="pnpm"
71
- pnpm dlx intlayer-cli init --interactive
72
+ pnpm dlx intlayer@canary init --interactive # v9
73
+ # pnpm dlx intlayer init # v8
72
74
  ```
73
75
 
74
76
  ```bash packageManager="yarn"
75
- yarn dlx intlayer-cli init --interactive
77
+ yarn dlx intlayer@canary init --interactive # v9
78
+ # yarn dlx intlayer init # v8
76
79
  ```
77
80
 
78
81
  ```bash packageManager="bun"
79
- bunx intlayer-cli init --interactive
82
+ bunx intlayer@canary init --interactive # v9
83
+ # bunx intlayer init # v8
80
84
  ```
81
85
 
82
86
  > cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là tác nhân AI.
@@ -62,19 +62,23 @@ Hướng dẫn này sẽ chỉ cho bạn cách tận dụng hệ thống khai b
62
62
  Cài đặt các gói cần thiết:
63
63
 
64
64
  ```bash packageManager="npm"
65
- npx intlayer-cli init --interactive
65
+ npx intlayer@canary init --interactive # v9
66
+ # npx intlayer init # v8
66
67
  ```
67
68
 
68
69
  ```bash packageManager="pnpm"
69
- pnpm dlx intlayer-cli init --interactive
70
+ pnpm dlx intlayer@canary init --interactive # v9
71
+ # pnpm dlx intlayer init # v8
70
72
  ```
71
73
 
72
74
  ```bash packageManager="yarn"
73
- yarn dlx intlayer-cli init --interactive
75
+ yarn dlx intlayer@canary init --interactive # v9
76
+ # yarn dlx intlayer init # v8
74
77
  ```
75
78
 
76
79
  ```bash packageManager="bun"
77
- bunx intlayer-cli init --interactive
80
+ bunx intlayer@canary init --interactive # v9
81
+ # bunx intlayer init # v8
78
82
  ```
79
83
 
80
84
  > cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là tác nhân AI.
@@ -64,19 +64,23 @@ Hướng dẫn này sẽ chỉ cho bạn cách tận dụng hệ thống khai b
64
64
  Cài đặt các gói cần thiết bằng trình quản lý gói bạn ưa thích:
65
65
 
66
66
  ```bash packageManager="npm"
67
- npx intlayer-cli init --interactive
67
+ npx intlayer@canary init --interactive # v9
68
+ # npx intlayer init # v8
68
69
  ```
69
70
 
70
71
  ```bash packageManager="pnpm"
71
- pnpm dlx intlayer-cli init --interactive
72
+ pnpm dlx intlayer@canary init --interactive # v9
73
+ # pnpm dlx intlayer init # v8
72
74
  ```
73
75
 
74
76
  ```bash packageManager="yarn"
75
- yarn dlx intlayer-cli init --interactive
77
+ yarn dlx intlayer@canary init --interactive # v9
78
+ # yarn dlx intlayer init # v8
76
79
  ```
77
80
 
78
81
  ```bash packageManager="bun"
79
- bunx intlayer-cli init --interactive
82
+ bunx intlayer@canary init --interactive # v9
83
+ # bunx intlayer init # v8
80
84
  ```
81
85
 
82
86
  > cờ `--interactive` là tùy chọn. Sử dụng `intlayer-cli init` nếu bạn là tác nhân AI.
@@ -345,6 +345,12 @@ export default robots;
345
345
 
346
346
  ---
347
347
 
348
+ ## Kiểm tra trang web của bạn bằng Intlayer SEO Scanner
349
+
350
+ Để đảm bảo ứng dụng đa ngôn ngữ của bạn được tối ưu hóa hoàn hảo, chúng tôi khuyên bạn nên sử dụng [Intlayer SEO Scanner](https://intlayer.org/i18n-seo-scanner). Đây là một công cụ chuyên dụng để kiểm tra trang web đa ngôn ngữ, giúp bạn xác định các thẻ hreflang bị thiếu, liên kết bị hỏng và các vấn đề SEO khác trên tất cả các trang được bản địa hóa của bạn.
351
+
352
+ ---
353
+
348
354
  ## Kết luận
349
355
 
350
356
  Việc làm i18n đúng trong Next.js không chỉ là dịch văn bản, mà còn là đảm bảo các công cụ tìm kiếm và người dùng biết chính xác phiên bản nội dung nào cần được phục vụ.
@@ -286,6 +286,12 @@ const LocaleSwitcher: FC = () => {
286
286
 
287
287
  ---
288
288
 
289
+ ## 使用 Intlayer SEO Scanner 审核您的网站
290
+
291
+ 为了确保您的多语言应用程序得到完美优化,我们建议使用 [Intlayer SEO Scanner](https://intlayer.org/i18n-seo-scanner)。这是一款专门用于多语言网站检查的工具,可帮助您识别所有本地化页面中缺失的 hreflang 标签、断开的链接以及其他 SEO 问题。
292
+
293
+ ---
294
+
289
295
  ## 总结
290
296
 
291
297
  让您的网站支持多语言不仅仅涉及翻译文本。它还关乎有效地构建 URL,使用 `hreflang` 标签帮助搜索引擎提供正确的版本,并提供卓越的用户体验, 包括本地化视觉内容、语言选择器和一致的导航。遵循这些最佳实践将使您在全球市场取得成功,提升用户满意度,并最终在各个地区改善 SEO 结果。
@@ -347,6 +347,12 @@ export default robots;
347
347
 
348
348
  ---
349
349
 
350
+ ## 使用 Intlayer SEO Scanner 审核您的网站
351
+
352
+ 为了确保您的多语言应用程序得到完美优化,我们建议使用 [Intlayer SEO Scanner](https://intlayer.org/i18n-seo-scanner)。这是一款专门用于多语言网站检查的工具,可帮助您识别所有本地化页面中缺失的 hreflang 标签、断开的链接以及其他 SEO 问题。
353
+
354
+ ---
355
+
350
356
  ## 结论
351
357
 
352
358
  在 Next.js 中正确处理国际化(i18n)不仅仅是翻译文本,更是确保搜索引擎和用户能够准确识别并访问您内容的正确版本。
@@ -1 +1 @@
1
- {"version":3,"file":"authors.cjs","names":["authorsData"],"sources":["../../src/authors.ts"],"sourcesContent":["import authorsData from '../authors.json' with { type: 'json' };\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type AuthorProfile = {\n /** Full display name */\n name: string;\n /** Schema.org Person @id URI (optional) */\n id?: string;\n /** Professional title */\n title?: string;\n /** Canonical URL for this person */\n url?: string;\n /** Profile image URL */\n image?: string;\n /** List of equivalent profile URLs (LinkedIn, Twitter/X, GitHub…) */\n socialMedias?: string[];\n /** Areas of expertise */\n knowsAbout?: string[];\n /** GitHub username/handle */\n github?: string;\n};\n\nexport type Authors = Record<string, AuthorProfile>;\n\n// ─── Loader (lazy singleton) ──────────────────────────────────────────────────\n\nconst loadAuthors = (): Authors => authorsData as Authors;\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Resolve a full author profile by GitHub handle.\n * Returns `undefined` if the handle is not found in `authors.json`.\n */\nexport const getAuthor = (github: string): AuthorProfile | undefined => {\n const profile = loadAuthors()[github];\n if (!profile) return undefined;\n return {\n ...profile,\n github,\n };\n};\n\nexport { loadAuthors as getAuthors };\n\n/**\n * Build a Schema.org Person node suitable for JSON-LD.\n * Undefined fields are omitted automatically by JSON.stringify.\n */\nexport const buildAuthorJsonLd = (\n profile?: AuthorProfile,\n fallbackName = 'Aymeric Pineau',\n fallbackUrl?: string\n) => ({\n '@type': 'Person' as const,\n '@id': profile?.id,\n name: profile?.name ?? fallbackName,\n url: profile?.url ?? fallbackUrl,\n jobTitle: profile?.title,\n image: profile?.image,\n sameAs: profile?.socialMedias?.length ? profile.socialMedias : undefined,\n knowsAbout: profile?.knowsAbout?.length ? profile.knowsAbout : undefined,\n});\n"],"mappings":";;;;AA2BA,MAAM,oBAA6BA;;;;;AAQnC,MAAa,aAAa,WAA8C;CACtE,MAAM,UAAU,aAAa,CAAC;AAC9B,KAAI,CAAC,QAAS,QAAO;AACrB,QAAO;EACL,GAAG;EACH;EACD;;;;;;AASH,MAAa,qBACX,SACA,eAAe,kBACf,iBACI;CACJ,SAAS;CACT,OAAO,SAAS;CAChB,MAAM,SAAS,QAAQ;CACvB,KAAK,SAAS,OAAO;CACrB,UAAU,SAAS;CACnB,OAAO,SAAS;CAChB,QAAQ,SAAS,cAAc,SAAS,QAAQ,eAAe;CAC/D,YAAY,SAAS,YAAY,SAAS,QAAQ,aAAa;CAChE"}
1
+ {"version":3,"file":"authors.cjs","names":["authorsData"],"sources":["../../src/authors.ts"],"sourcesContent":["import authorsData from '../authors.json' with { type: 'json' };\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type AuthorProfile = {\n /** Full display name */\n name: string;\n /** Schema.org Person @id URI (optional) */\n id?: string;\n /** Professional title */\n title?: string;\n /** Canonical URL for this person */\n url?: string;\n /** Profile image URL */\n image?: string;\n /** List of equivalent profile URLs (LinkedIn, Twitter/X, GitHub…) */\n socialMedias?: string[];\n /** Areas of expertise */\n knowsAbout?: string[];\n /** GitHub username/handle */\n github?: string;\n};\n\nexport type Authors = Record<string, AuthorProfile>;\n\n// ─── Loader (lazy singleton) ──────────────────────────────────────────────────\n\nconst loadAuthors = (): Authors => authorsData as Authors;\n\n// ─── Public API ───────────────────────────────────────────────────────────────\n\n/**\n * Resolve a full author profile by GitHub handle.\n * Returns `undefined` if the handle is not found in `authors.json`.\n */\nexport const getAuthor = (github: string): AuthorProfile | undefined => {\n const profile = loadAuthors()[github];\n if (!profile) return undefined;\n return {\n ...profile,\n github,\n };\n};\n\nexport { loadAuthors as getAuthors };\n\n/**\n * Build a Schema.org Person node suitable for JSON-LD.\n * Undefined fields are omitted automatically by JSON.stringify.\n */\nexport const buildAuthorJsonLd = (\n profile?: AuthorProfile,\n fallbackName = 'Aymeric Pineau',\n fallbackUrl?: string\n) => ({\n '@type': 'Person' as const,\n '@id': profile?.id,\n name: profile?.name ?? fallbackName,\n url: profile?.url ?? fallbackUrl,\n jobTitle: profile?.title,\n image: profile?.image,\n sameAs: profile?.socialMedias?.length ? profile.socialMedias : undefined,\n knowsAbout: profile?.knowsAbout?.length ? profile.knowsAbout : undefined,\n});\n"],"mappings":";;;;AA2BA,MAAM,oBAA6BA;;;;;AAQnC,MAAa,aAAa,WAA8C;CACtE,MAAM,UAAU,YAAY,CAAC,CAAC;CAC9B,IAAI,CAAC,SAAS,OAAO;CACrB,OAAO;EACL,GAAG;EACH;CACF;AACF;;;;;AAQA,MAAa,qBACX,SACA,eAAe,kBACf,iBACI;CACJ,SAAS;CACT,OAAO,SAAS;CAChB,MAAM,SAAS,QAAQ;CACvB,KAAK,SAAS,OAAO;CACrB,UAAU,SAAS;CACnB,OAAO,SAAS;CAChB,QAAQ,SAAS,cAAc,SAAS,QAAQ,eAAe;CAC/D,YAAY,SAAS,YAAY,SAAS,QAAQ,aAAa;AACjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"blog.cjs","names":["getKeys","blogEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/blog.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { blogEntry } from './generated/blog.entry';\n\nexport type BlogKey = keyof typeof blogEntry;\nexport type Blogs = Record<BlogKey, Record<LocalesValues, Promise<string>>>;\nexport type BlogMetadata = FileMetadata;\n\nexport const getBlogsKeys = (): (keyof typeof blogEntry)[] =>\n getKeys(blogEntry);\n\nexport const getBlogs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<BlogKey, string>> => await getFiles(blogEntry, locale);\n\nexport const getBlog = async <L extends LocalesValues = DeclaredLocales>(\n docName: BlogKey,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(blogEntry, docName, locale);\n\nexport const getBlogMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<BlogKey, FileMetadata>> =>\n await getFileMetadataRecord(blogEntry, locale);\n\nexport const getBlogMetadata = async <\n D extends BlogKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(blogEntry, docName, locale);\n\nexport const getBlogMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(blogEntry, slugs, locale, strict);\n\nexport const getBlogBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(blogEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,qBACXA,uBAAQC,uCAAU;AAEpB,MAAa,WAAW,OACtB,SAAYC,iCACyB,MAAMC,wBAASF,wCAAW,OAAO;AAExE,MAAa,UAAU,OACrB,SACA,SAAYC,iCACQ,MAAME,uBAAQH,wCAAW,SAAS,OAAO;AAE/D,MAAa,wBAAwB,OAGnC,SAAYC,iCAEZ,MAAMG,qCAAsBJ,wCAAW,OAAO;AAEhD,MAAa,kBAAkB,OAI7B,SACA,SAAYC,iCACc,MAAMI,+BAAgBL,wCAAW,SAAS,OAAO;AAE7E,MAAa,wBAAwB,OAGnC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,wCAAW,OAAO,QAAQ,OAAO;AAE/D,MAAa,gBAAgB,OAC3B,OACA,SAAYC,8BACZ,SAAS,UACa,MAAMM,6BAAcP,wCAAW,OAAO,QAAQ,OAAO"}
1
+ {"version":3,"file":"blog.cjs","names":["getKeys","blogEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/blog.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { blogEntry } from './generated/blog.entry';\n\nexport type BlogKey = keyof typeof blogEntry;\nexport type Blogs = Record<BlogKey, Record<LocalesValues, Promise<string>>>;\nexport type BlogMetadata = FileMetadata;\n\nexport const getBlogsKeys = (): (keyof typeof blogEntry)[] =>\n getKeys(blogEntry);\n\nexport const getBlogs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<BlogKey, string>> => await getFiles(blogEntry, locale);\n\nexport const getBlog = async <L extends LocalesValues = DeclaredLocales>(\n docName: BlogKey,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(blogEntry, docName, locale);\n\nexport const getBlogMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<BlogKey, FileMetadata>> =>\n await getFileMetadataRecord(blogEntry, locale);\n\nexport const getBlogMetadata = async <\n D extends BlogKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(blogEntry, docName, locale);\n\nexport const getBlogMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(blogEntry, slugs, locale, strict);\n\nexport const getBlogBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(blogEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,qBACXA,uBAAQC,sCAAS;AAEnB,MAAa,WAAW,OACtB,SAAYC,iCACyB,MAAMC,wBAASF,wCAAW,MAAM;AAEvE,MAAa,UAAU,OACrB,SACA,SAAYC,iCACQ,MAAME,uBAAQH,wCAAW,SAAS,MAAM;AAE9D,MAAa,wBAAwB,OAGnC,SAAYC,iCAEZ,MAAMG,qCAAsBJ,wCAAW,MAAM;AAE/C,MAAa,kBAAkB,OAI7B,SACA,SAAYC,iCACc,MAAMI,+BAAgBL,wCAAW,SAAS,MAAM;AAE5E,MAAa,wBAAwB,OAGnC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,wCAAW,OAAO,QAAQ,MAAM;AAE9D,MAAa,gBAAgB,OAC3B,OACA,SAAYC,8BACZ,SAAS,UACa,MAAMM,6BAAcP,wCAAW,OAAO,QAAQ,MAAM"}
@@ -45,7 +45,8 @@ const formatMetadata = (docKey, file, locale = defaultLocale) => {
45
45
  };
46
46
  };
47
47
  const getFileMetadata = async (files, docKey, locale = defaultLocale) => {
48
- return formatMetadata(docKey, await getFile(files, docKey, locale), locale);
48
+ const file = await getFile(files, docKey, locale);
49
+ return formatMetadata(docKey, file, locale);
49
50
  };
50
51
  const getFileMetadataRecord = async (files, locale = defaultLocale) => {
51
52
  const filesEntries = (await Promise.allSettled(Object.entries(files).map(async ([key]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"common.cjs","names":["Locales"],"sources":["../../src/common.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { getLocalizedUrl } from '@intlayer/core/localization';\nimport { getMarkdownMetadata } from '@intlayer/core/transpiler';\nimport * as Locales from '@intlayer/types/locales';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nexport const defaultLocale = Locales.ENGLISH;\n\nexport const GITHUB_URL_PREFIX =\n 'https://github.com/aymericzip/intlayer/blob/main/docs';\nexport const URL_PREFIX = 'https://intlayer.org/';\n\nexport const getKeys = <T extends Record<string, any>>(obj: T): (keyof T)[] =>\n Object.keys(obj) as (keyof T)[];\n\nexport const getFiles = async <\n F extends Record<`./${string}`, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n lang: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<string, string>> => {\n const filesEntries = await Promise.all(\n Object.entries(files)\n .map(([key, value]) => [key, value[lang as LocalesValues]])\n .map(async ([key, value]) => [key, await value])\n );\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult;\n};\n\nexport const getFile = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<string> => {\n const fileRecord = files[docKey];\n\n if (!fileRecord) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n const file = await files[docKey]?.[locale];\n\n if (!file) {\n const englishFile = await files[docKey]?.[defaultLocale as LocalesValues];\n\n if (!englishFile) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n return englishFile;\n }\n\n return file;\n};\n\nexport type FileMetadata = {\n docKey: string;\n url: string;\n relativeUrl: string;\n githubUrl: string;\n title: string;\n slugs: string[];\n description: string;\n keywords: string[];\n updatedAt: string;\n createdAt: string;\n author?: string;\n youtubeVideo?: string;\n applicationTemplate?: string;\n applicationShowcase?: string;\n history?: {\n version: string;\n date: string;\n changes: string;\n }[];\n};\n\nexport const formatMetadata = (\n docKey: string,\n file: string,\n locale: LocalesValues = defaultLocale as LocalesValues\n): FileMetadata => {\n const metadata = getMarkdownMetadata(file);\n\n const slugs = (metadata.slugs ?? []).map(String);\n const keywords = (metadata.keywords ?? []).map(String);\n\n const relativeUrl = join('/', ...slugs);\n\n const slicedDocKey = docKey.slice(1);\n\n // Normalise author: accept both a plain string handle (new format)\n // and a legacy object `{ github: '...' }` — always reduce to a plain string.\n const rawAuthor = metadata.author as\n | string\n | { name?: string; github?: string }\n | undefined;\n const author: string | undefined =\n typeof rawAuthor === 'string'\n ? rawAuthor || undefined\n : rawAuthor?.github || undefined;\n\n return {\n ...metadata,\n docKey,\n slugs,\n keywords,\n author,\n githubUrl: `${GITHUB_URL_PREFIX}${slicedDocKey}`.replace(\n '/en/',\n `/${locale}/`\n ),\n relativeUrl: getLocalizedUrl(relativeUrl, locale),\n url: getLocalizedUrl(join(URL_PREFIX, relativeUrl), locale),\n } as FileMetadata;\n};\n\nexport const getFileMetadata = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n R extends FileMetadata,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<R> => {\n const file = await getFile(files, docKey, locale);\n\n return formatMetadata(docKey as string, file, locale) as R;\n};\n\nexport const getFileMetadataRecord = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<keyof F, FileMetadata>> => {\n const results = await Promise.allSettled(\n Object.entries(files).map(async ([key]) => {\n const metadata = await getFileMetadata(files, key as keyof F, locale);\n return [key, metadata] as [string, FileMetadata];\n })\n );\n const filesEntries = results\n .filter(\n (r): r is PromiseFulfilledResult<[string, FileMetadata]> =>\n r.status === 'fulfilled'\n )\n .map((r) => r.value);\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult as Record<keyof F, FileMetadata>;\n};\n\nexport const getFileMetadataBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray: FileMetadata[] = Object.values(filesMetadata).filter(\n (fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n if (locale !== defaultLocale) {\n const localizedFileMetadata = await Promise.all(\n fileMetadataArray.map(\n async (fileMetadata) =>\n await getFileMetadata(files, fileMetadata.docKey, locale)\n )\n );\n\n return localizedFileMetadata;\n }\n\n return fileMetadataArray;\n};\n\nexport const getFileBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray = Object.values(filesMetadata).filter((fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n const fileList = await Promise.all(\n fileMetadataArray.map(async (fileMetadata) => {\n const file = await getFile(files, fileMetadata.docKey, locale);\n return file;\n })\n );\n\n return fileList;\n};\n"],"mappings":";;;;;;;;;AAMA,MAAa,gBAAgBA,wBAAQ;AAErC,MAAa,oBACX;AACF,MAAa,aAAa;AAE1B,MAAa,WAA0C,QACrD,OAAO,KAAK,IAAI;AAElB,MAAa,WAAW,OAGtB,OACA,OAAsB,kBACc;CACpC,MAAM,eAAe,MAAM,QAAQ,IACjC,OAAO,QAAQ,MAAM,CAClB,KAAK,CAAC,KAAK,WAAW,CAAC,KAAK,MAAM,MAAuB,CAAC,CAC1D,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC,KAAK,MAAM,MAAM,CAAC,CACnD;AAED,QADoB,OAAO,YAAY,aACrB;;AAGpB,MAAa,UAAU,OAGrB,OACA,QACA,SAAwB,kBACJ;AAGpB,KAAI,CAFe,MAAM,QAGvB,OAAM,IAAI,MAAM,QAAQ,OAAiB,YAAY;CAGvD,MAAM,OAAO,MAAM,MAAM,UAAU;AAEnC,KAAI,CAAC,MAAM;EACT,MAAM,cAAc,MAAM,MAAM,UAAU;AAE1C,MAAI,CAAC,YACH,OAAM,IAAI,MAAM,QAAQ,OAAiB,YAAY;AAGvD,SAAO;;AAGT,QAAO;;AAyBT,MAAa,kBACX,QACA,MACA,SAAwB,kBACP;CACjB,MAAM,8DAA+B,KAAK;CAE1C,MAAM,SAAS,SAAS,SAAS,EAAE,EAAE,IAAI,OAAO;CAChD,MAAM,YAAY,SAAS,YAAY,EAAE,EAAE,IAAI,OAAO;CAEtD,MAAM,kCAAmB,KAAK,GAAG,MAAM;CAEvC,MAAM,eAAe,OAAO,MAAM,EAAE;CAIpC,MAAM,YAAY,SAAS;CAI3B,MAAM,SACJ,OAAO,cAAc,WACjB,aAAa,SACb,WAAW,UAAU;AAE3B,QAAO;EACL,GAAG;EACH;EACA;EACA;EACA;EACA,WAAW,GAAG,oBAAoB,eAAe,QAC/C,QACA,IAAI,OAAO,GACZ;EACD,8DAA6B,aAAa,OAAO;EACjD,0EAA0B,YAAY,YAAY,EAAE,OAAO;EAC5D;;AAGH,MAAa,kBAAkB,OAI7B,OACA,QACA,SAAwB,kBACT;AAGf,QAAO,eAAe,QAAkB,MAFrB,QAAQ,OAAO,QAAQ,OAAO,EAEH,OAAO;;AAGvD,MAAa,wBAAwB,OAGnC,OACA,SAAwB,kBACmB;CAO3C,MAAM,gBAAe,MANC,QAAQ,WAC5B,OAAO,QAAQ,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS;AAEzC,SAAO,CAAC,KAAK,MADU,gBAAgB,OAAO,KAAgB,OAAO,CAC/C;GACtB,CACH,EAEE,QACE,MACC,EAAE,WAAW,YAChB,CACA,KAAK,MAAM,EAAE,MAAM;AAEtB,QADoB,OAAO,YAAY,aACrB;;AAGpB,MAAa,wBAAwB,OAGnC,OACA,OACA,SAAwB,eACxB,SAAS,UACN;CACH,MAAM,aAAa,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;CACzD,MAAM,gBAAgB,MAAM,sBAC1B,OACA,cACD;CAED,IAAI,oBAAoC,OAAO,OAAO,cAAc,CAAC,QAClE,iBACC,WAAW,OAAO,SAAS,aAAa,OAAO,SAAS,KAAK,CAAC,CACjE;AAED,KAAI,OACF,qBAAoB,kBAAkB,QACnC,iBAAiB,aAAa,MAAM,WAAW,WAAW,OAC5D;AAGH,KAAI,WAAW,cAQb,QAAO,MAP6B,QAAQ,IAC1C,kBAAkB,IAChB,OAAO,iBACL,MAAM,gBAAgB,OAAO,aAAa,QAAQ,OAAO,CAC5D,CACF;AAKH,QAAO;;AAGT,MAAa,gBAAgB,OAG3B,OACA,OACA,SAAwB,eACxB,SAAS,UACN;CACH,MAAM,aAAa,MAAM,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM;CACzD,MAAM,gBAAgB,MAAM,sBAC1B,OACA,cACD;CAED,IAAI,oBAAoB,OAAO,OAAO,cAAc,CAAC,QAAQ,iBAC3D,WAAW,OAAO,SAAS,aAAa,OAAO,SAAS,KAAK,CAAC,CAC/D;AAED,KAAI,OACF,qBAAoB,kBAAkB,QACnC,iBAAiB,aAAa,MAAM,WAAW,WAAW,OAC5D;AAUH,QAAO,MAPgB,QAAQ,IAC7B,kBAAkB,IAAI,OAAO,iBAAiB;AAE5C,SAAO,MADY,QAAQ,OAAO,aAAa,QAAQ,OAAO;GAE9D,CACH"}
1
+ {"version":3,"file":"common.cjs","names":["Locales"],"sources":["../../src/common.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { getLocalizedUrl } from '@intlayer/core/localization';\nimport { getMarkdownMetadata } from '@intlayer/core/transpiler';\nimport * as Locales from '@intlayer/types/locales';\nimport type { LocalesValues } from '@intlayer/types/module_augmentation';\n\nexport const defaultLocale = Locales.ENGLISH;\n\nexport const GITHUB_URL_PREFIX =\n 'https://github.com/aymericzip/intlayer/blob/main/docs';\nexport const URL_PREFIX = 'https://intlayer.org/';\n\nexport const getKeys = <T extends Record<string, any>>(obj: T): (keyof T)[] =>\n Object.keys(obj) as (keyof T)[];\n\nexport const getFiles = async <\n F extends Record<`./${string}`, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n lang: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<string, string>> => {\n const filesEntries = await Promise.all(\n Object.entries(files)\n .map(([key, value]) => [key, value[lang as LocalesValues]])\n .map(async ([key, value]) => [key, await value])\n );\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult;\n};\n\nexport const getFile = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<string> => {\n const fileRecord = files[docKey];\n\n if (!fileRecord) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n const file = await files[docKey]?.[locale];\n\n if (!file) {\n const englishFile = await files[docKey]?.[defaultLocale as LocalesValues];\n\n if (!englishFile) {\n throw new Error(`File ${docKey as string} not found`);\n }\n\n return englishFile;\n }\n\n return file;\n};\n\nexport type FileMetadata = {\n docKey: string;\n url: string;\n relativeUrl: string;\n githubUrl: string;\n title: string;\n slugs: string[];\n description: string;\n keywords: string[];\n updatedAt: string;\n createdAt: string;\n author?: string;\n youtubeVideo?: string;\n applicationTemplate?: string;\n applicationShowcase?: string;\n history?: {\n version: string;\n date: string;\n changes: string;\n }[];\n};\n\nexport const formatMetadata = (\n docKey: string,\n file: string,\n locale: LocalesValues = defaultLocale as LocalesValues\n): FileMetadata => {\n const metadata = getMarkdownMetadata(file);\n\n const slugs = (metadata.slugs ?? []).map(String);\n const keywords = (metadata.keywords ?? []).map(String);\n\n const relativeUrl = join('/', ...slugs);\n\n const slicedDocKey = docKey.slice(1);\n\n // Normalise author: accept both a plain string handle (new format)\n // and a legacy object `{ github: '...' }` — always reduce to a plain string.\n const rawAuthor = metadata.author as\n | string\n | { name?: string; github?: string }\n | undefined;\n const author: string | undefined =\n typeof rawAuthor === 'string'\n ? rawAuthor || undefined\n : rawAuthor?.github || undefined;\n\n return {\n ...metadata,\n docKey,\n slugs,\n keywords,\n author,\n githubUrl: `${GITHUB_URL_PREFIX}${slicedDocKey}`.replace(\n '/en/',\n `/${locale}/`\n ),\n relativeUrl: getLocalizedUrl(relativeUrl, locale),\n url: getLocalizedUrl(join(URL_PREFIX, relativeUrl), locale),\n } as FileMetadata;\n};\n\nexport const getFileMetadata = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n R extends FileMetadata,\n>(\n files: F,\n docKey: keyof F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<R> => {\n const file = await getFile(files, docKey, locale);\n\n return formatMetadata(docKey as string, file, locale) as R;\n};\n\nexport const getFileMetadataRecord = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n locale: LocalesValues = defaultLocale as LocalesValues\n): Promise<Record<keyof F, FileMetadata>> => {\n const results = await Promise.allSettled(\n Object.entries(files).map(async ([key]) => {\n const metadata = await getFileMetadata(files, key as keyof F, locale);\n return [key, metadata] as [string, FileMetadata];\n })\n );\n const filesEntries = results\n .filter(\n (r): r is PromiseFulfilledResult<[string, FileMetadata]> =>\n r.status === 'fulfilled'\n )\n .map((r) => r.value);\n const filesResult = Object.fromEntries(filesEntries);\n return filesResult as Record<keyof F, FileMetadata>;\n};\n\nexport const getFileMetadataBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray: FileMetadata[] = Object.values(filesMetadata).filter(\n (fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n if (locale !== defaultLocale) {\n const localizedFileMetadata = await Promise.all(\n fileMetadataArray.map(\n async (fileMetadata) =>\n await getFileMetadata(files, fileMetadata.docKey, locale)\n )\n );\n\n return localizedFileMetadata;\n }\n\n return fileMetadataArray;\n};\n\nexport const getFileBySlug = async <\n F extends Record<string, Record<LocalesValues, Promise<string>>>,\n>(\n files: F,\n slugs: string | string[],\n locale: LocalesValues = defaultLocale as LocalesValues,\n strict = false\n) => {\n const slugsArray = Array.isArray(slugs) ? slugs : [slugs];\n const filesMetadata = await getFileMetadataRecord(\n files,\n defaultLocale as LocalesValues\n );\n\n let fileMetadataArray = Object.values(filesMetadata).filter((fileMetadata) =>\n slugsArray.every((slug) => fileMetadata.slugs?.includes(slug))\n );\n\n if (strict) {\n fileMetadataArray = fileMetadataArray.filter(\n (fileMetadata) => fileMetadata.slugs.length === slugsArray.length\n );\n }\n\n const fileList = await Promise.all(\n fileMetadataArray.map(async (fileMetadata) => {\n const file = await getFile(files, fileMetadata.docKey, locale);\n return file;\n })\n );\n\n return fileList;\n};\n"],"mappings":";;;;;;;;;AAMA,MAAa,gBAAgBA,wBAAQ;AAErC,MAAa,oBACX;AACF,MAAa,aAAa;AAE1B,MAAa,WAA0C,QACrD,OAAO,KAAK,GAAG;AAEjB,MAAa,WAAW,OAGtB,OACA,OAAsB,kBACc;CACpC,MAAM,eAAe,MAAM,QAAQ,IACjC,OAAO,QAAQ,KAAK,CAAC,CAClB,KAAK,CAAC,KAAK,WAAW,CAAC,KAAK,MAAM,KAAsB,CAAC,CAAC,CAC1D,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC,KAAK,MAAM,KAAK,CAAC,CACnD;CAEA,OADoB,OAAO,YAAY,YACtB;AACnB;AAEA,MAAa,UAAU,OAGrB,OACA,QACA,SAAwB,kBACJ;CAGpB,IAAI,CAFe,MAAM,SAGvB,MAAM,IAAI,MAAM,QAAQ,OAAiB,WAAW;CAGtD,MAAM,OAAO,MAAM,MAAM,OAAO,GAAG;CAEnC,IAAI,CAAC,MAAM;EACT,MAAM,cAAc,MAAM,MAAM,OAAO,GAAG;EAE1C,IAAI,CAAC,aACH,MAAM,IAAI,MAAM,QAAQ,OAAiB,WAAW;EAGtD,OAAO;CACT;CAEA,OAAO;AACT;AAwBA,MAAa,kBACX,QACA,MACA,SAAwB,kBACP;CACjB,MAAM,8DAA+B,IAAI;CAEzC,MAAM,SAAS,SAAS,SAAS,CAAC,EAAC,CAAE,IAAI,MAAM;CAC/C,MAAM,YAAY,SAAS,YAAY,CAAC,EAAC,CAAE,IAAI,MAAM;CAErD,MAAM,kCAAmB,KAAK,GAAG,KAAK;CAEtC,MAAM,eAAe,OAAO,MAAM,CAAC;CAInC,MAAM,YAAY,SAAS;CAI3B,MAAM,SACJ,OAAO,cAAc,WACjB,aAAa,SACb,WAAW,UAAU;CAE3B,OAAO;EACL,GAAG;EACH;EACA;EACA;EACA;EACA,WAAW,GAAG,oBAAoB,eAAe,QAC/C,QACA,IAAI,OAAO,EACb;EACA,8DAA6B,aAAa,MAAM;EAChD,0EAA0B,YAAY,WAAW,GAAG,MAAM;CAC5D;AACF;AAEA,MAAa,kBAAkB,OAI7B,OACA,QACA,SAAwB,kBACT;CACf,MAAM,OAAO,MAAM,QAAQ,OAAO,QAAQ,MAAM;CAEhD,OAAO,eAAe,QAAkB,MAAM,MAAM;AACtD;AAEA,MAAa,wBAAwB,OAGnC,OACA,SAAwB,kBACmB;CAO3C,MAAM,gBAAe,MANC,QAAQ,WAC5B,OAAO,QAAQ,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,SAAS;EAEzC,OAAO,CAAC,KAAK,MADU,gBAAgB,OAAO,KAAgB,MAAM,CAC/C;CACvB,CAAC,CACH,EAC4B,CACzB,QACE,MACC,EAAE,WAAW,WACjB,CAAC,CACA,KAAK,MAAM,EAAE,KAAK;CAErB,OADoB,OAAO,YAAY,YACtB;AACnB;AAEA,MAAa,wBAAwB,OAGnC,OACA,OACA,SAAwB,eACxB,SAAS,UACN;CACH,MAAM,aAAa,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;CACxD,MAAM,gBAAgB,MAAM,sBAC1B,OACA,aACF;CAEA,IAAI,oBAAoC,OAAO,OAAO,aAAa,CAAC,CAAC,QAClE,iBACC,WAAW,OAAO,SAAS,aAAa,OAAO,SAAS,IAAI,CAAC,CACjE;CAEA,IAAI,QACF,oBAAoB,kBAAkB,QACnC,iBAAiB,aAAa,MAAM,WAAW,WAAW,MAC7D;CAGF,IAAI,WAAW,eAQb,OAAO,MAP6B,QAAQ,IAC1C,kBAAkB,IAChB,OAAO,iBACL,MAAM,gBAAgB,OAAO,aAAa,QAAQ,MAAM,CAC5D,CACF;CAKF,OAAO;AACT;AAEA,MAAa,gBAAgB,OAG3B,OACA,OACA,SAAwB,eACxB,SAAS,UACN;CACH,MAAM,aAAa,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;CACxD,MAAM,gBAAgB,MAAM,sBAC1B,OACA,aACF;CAEA,IAAI,oBAAoB,OAAO,OAAO,aAAa,CAAC,CAAC,QAAQ,iBAC3D,WAAW,OAAO,SAAS,aAAa,OAAO,SAAS,IAAI,CAAC,CAC/D;CAEA,IAAI,QACF,oBAAoB,kBAAkB,QACnC,iBAAiB,aAAa,MAAM,WAAW,WAAW,MAC7D;CAUF,OAAO,MAPgB,QAAQ,IAC7B,kBAAkB,IAAI,OAAO,iBAAiB;EAE5C,OAAO,MADY,QAAQ,OAAO,aAAa,QAAQ,MAAM;CAE/D,CAAC,CACH;AAGF"}
@@ -1 +1 @@
1
- {"version":3,"file":"doc.cjs","names":["getKeys","docsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/doc.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { docsEntry } from './generated/docs.entry';\n\nexport type DocKey = keyof typeof docsEntry;\nexport type Docs = Record<DocKey, Record<LocalesValues, Promise<string>>>;\nexport type DocMetadata = FileMetadata;\n\nexport const getDocsKeys = (): (keyof typeof docsEntry)[] => getKeys(docsEntry);\n\nexport const getDocs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, string>> => await getFiles(docsEntry, locale);\n\nexport const getDoc = async <L extends LocalesValues = DeclaredLocales>(\n docName: keyof typeof docsEntry,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(docsEntry, docName, locale);\n\nexport const getDocMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, FileMetadata>> =>\n await getFileMetadataRecord(docsEntry, locale);\n\nexport const getDocMetadata = async <\n D extends DocKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(docsEntry, docName, locale);\n\nexport const getDocMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(docsEntry, slugs, locale, strict);\n\nexport const getDocBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(docsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,oBAAgDA,uBAAQC,uCAAU;AAE/E,MAAa,UAAU,OACrB,SAAYC,iCACwB,MAAMC,wBAASF,wCAAW,OAAO;AAEvE,MAAa,SAAS,OACpB,SACA,SAAYC,iCACQ,MAAME,uBAAQH,wCAAW,SAAS,OAAO;AAE/D,MAAa,uBAAuB,OAGlC,SAAYC,iCAEZ,MAAMG,qCAAsBJ,wCAAW,OAAO;AAEhD,MAAa,iBAAiB,OAI5B,SACA,SAAYC,iCACc,MAAMI,+BAAgBL,wCAAW,SAAS,OAAO;AAE7E,MAAa,uBAAuB,OAGlC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,wCAAW,OAAO,QAAQ,OAAO;AAE/D,MAAa,eAAe,OAC1B,OACA,SAAYC,8BACZ,SAAS,UACa,MAAMM,6BAAcP,wCAAW,OAAO,QAAQ,OAAO"}
1
+ {"version":3,"file":"doc.cjs","names":["getKeys","docsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/doc.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { docsEntry } from './generated/docs.entry';\n\nexport type DocKey = keyof typeof docsEntry;\nexport type Docs = Record<DocKey, Record<LocalesValues, Promise<string>>>;\nexport type DocMetadata = FileMetadata;\n\nexport const getDocsKeys = (): (keyof typeof docsEntry)[] => getKeys(docsEntry);\n\nexport const getDocs = async <L extends LocalesValues = DeclaredLocales>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, string>> => await getFiles(docsEntry, locale);\n\nexport const getDoc = async <L extends LocalesValues = DeclaredLocales>(\n docName: keyof typeof docsEntry,\n locale: L = defaultLocale as L\n): Promise<string> => await getFile(docsEntry, docName, locale);\n\nexport const getDocMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<DocKey, FileMetadata>> =>\n await getFileMetadataRecord(docsEntry, locale);\n\nexport const getDocMetadata = async <\n D extends DocKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> => await getFileMetadata(docsEntry, docName, locale);\n\nexport const getDocMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(docsEntry, slugs, locale, strict);\n\nexport const getDocBySlug = async <L extends LocalesValues = DeclaredLocales>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> => await getFileBySlug(docsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAqBA,MAAa,oBAAgDA,uBAAQC,sCAAS;AAE9E,MAAa,UAAU,OACrB,SAAYC,iCACwB,MAAMC,wBAASF,wCAAW,MAAM;AAEtE,MAAa,SAAS,OACpB,SACA,SAAYC,iCACQ,MAAME,uBAAQH,wCAAW,SAAS,MAAM;AAE9D,MAAa,uBAAuB,OAGlC,SAAYC,iCAEZ,MAAMG,qCAAsBJ,wCAAW,MAAM;AAE/C,MAAa,iBAAiB,OAI5B,SACA,SAAYC,iCACc,MAAMI,+BAAgBL,wCAAW,SAAS,MAAM;AAE5E,MAAa,uBAAuB,OAGlC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,wCAAW,OAAO,QAAQ,MAAM;AAE9D,MAAa,eAAe,OAC1B,OACA,SAAYC,8BACZ,SAAS,UACa,MAAMM,6BAAcP,wCAAW,OAAO,QAAQ,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"frequentQuestions.cjs","names":["getKeys","frequentQuestionsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/frequentQuestions.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { frequentQuestionsEntry } from './generated/frequentQuestions.entry';\n\nexport type FrequentQuestionKey = keyof typeof frequentQuestionsEntry;\nexport type FrequentQuestions = Record<\n FrequentQuestionKey,\n Record<LocalesValues, Promise<string>>\n>;\nexport type FrequentQuestionMetadata = FileMetadata;\n\nexport const getFrequentQuestionsKeys =\n (): (keyof typeof frequentQuestionsEntry)[] =>\n getKeys(frequentQuestionsEntry);\n\nexport const getFrequentQuestions = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<FrequentQuestionKey, string>> =>\n getFiles(frequentQuestionsEntry, locale);\n\nexport const getFrequentQuestion = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: FrequentQuestionKey,\n locale: L = defaultLocale as L\n): Promise<string> => getFile(frequentQuestionsEntry, docName, locale);\n\nexport const getFrequentQuestionMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<FrequentQuestionKey, FileMetadata>> =>\n getFileMetadataRecord(frequentQuestionsEntry, locale);\n\nexport const getFrequentQuestionMetadata = async <\n D extends FrequentQuestionKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> =>\n getFileMetadata(frequentQuestionsEntry, docName, locale);\n\nexport const getFrequentQuestionMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(frequentQuestionsEntry, slugs, locale, strict);\n\nexport const getFrequentQuestionBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> =>\n await getFileBySlug(frequentQuestionsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAwBA,MAAa,iCAETA,uBAAQC,iEAAuB;AAEnC,MAAa,uBAAuB,OAGlC,SAAYC,iCAEZC,wBAASF,kEAAwB,OAAO;AAE1C,MAAa,sBAAsB,OAGjC,SACA,SAAYC,iCACQE,uBAAQH,kEAAwB,SAAS,OAAO;AAEtE,MAAa,oCAAoC,OAG/C,SAAYC,iCAEZG,qCAAsBJ,kEAAwB,OAAO;AAEvD,MAAa,8BAA8B,OAIzC,SACA,SAAYC,iCAEZI,+BAAgBL,kEAAwB,SAAS,OAAO;AAE1D,MAAa,oCAAoC,OAG/C,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,kEAAwB,OAAO,QAAQ,OAAO;AAE5E,MAAa,4BAA4B,OAGvC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMM,6BAAcP,kEAAwB,OAAO,QAAQ,OAAO"}
1
+ {"version":3,"file":"frequentQuestions.cjs","names":["getKeys","frequentQuestionsEntry","defaultLocale","getFiles","getFile","getFileMetadataRecord","getFileMetadata","getFileMetadataBySlug","getFileBySlug"],"sources":["../../src/frequentQuestions.ts"],"sourcesContent":["import type {\n DeclaredLocales,\n LocalesValues,\n} from '@intlayer/types/module_augmentation';\nimport {\n defaultLocale,\n type FileMetadata,\n getFile,\n getFileBySlug,\n getFileMetadata,\n getFileMetadataBySlug,\n getFileMetadataRecord,\n getFiles,\n getKeys,\n} from './common';\nimport { frequentQuestionsEntry } from './generated/frequentQuestions.entry';\n\nexport type FrequentQuestionKey = keyof typeof frequentQuestionsEntry;\nexport type FrequentQuestions = Record<\n FrequentQuestionKey,\n Record<LocalesValues, Promise<string>>\n>;\nexport type FrequentQuestionMetadata = FileMetadata;\n\nexport const getFrequentQuestionsKeys =\n (): (keyof typeof frequentQuestionsEntry)[] =>\n getKeys(frequentQuestionsEntry);\n\nexport const getFrequentQuestions = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<FrequentQuestionKey, string>> =>\n getFiles(frequentQuestionsEntry, locale);\n\nexport const getFrequentQuestion = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: FrequentQuestionKey,\n locale: L = defaultLocale as L\n): Promise<string> => getFile(frequentQuestionsEntry, docName, locale);\n\nexport const getFrequentQuestionMetadataRecord = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n locale: L = defaultLocale as L\n): Promise<Record<FrequentQuestionKey, FileMetadata>> =>\n getFileMetadataRecord(frequentQuestionsEntry, locale);\n\nexport const getFrequentQuestionMetadata = async <\n D extends FrequentQuestionKey,\n L extends LocalesValues = DeclaredLocales,\n>(\n docName: D,\n locale: L = defaultLocale as L\n): Promise<FileMetadata> =>\n getFileMetadata(frequentQuestionsEntry, docName, locale);\n\nexport const getFrequentQuestionMetadataBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<FileMetadata[]> =>\n await getFileMetadataBySlug(frequentQuestionsEntry, slugs, locale, strict);\n\nexport const getFrequentQuestionBySlug = async <\n L extends LocalesValues = DeclaredLocales,\n>(\n slugs: string | string[],\n locale: L = defaultLocale as L,\n strict = false\n): Promise<string[]> =>\n await getFileBySlug(frequentQuestionsEntry, slugs, locale, strict);\n"],"mappings":";;;;;AAwBA,MAAa,iCAETA,uBAAQC,gEAAsB;AAElC,MAAa,uBAAuB,OAGlC,SAAYC,iCAEZC,wBAASF,kEAAwB,MAAM;AAEzC,MAAa,sBAAsB,OAGjC,SACA,SAAYC,iCACQE,uBAAQH,kEAAwB,SAAS,MAAM;AAErE,MAAa,oCAAoC,OAG/C,SAAYC,iCAEZG,qCAAsBJ,kEAAwB,MAAM;AAEtD,MAAa,8BAA8B,OAIzC,SACA,SAAYC,iCAEZI,+BAAgBL,kEAAwB,SAAS,MAAM;AAEzD,MAAa,oCAAoC,OAG/C,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMK,qCAAsBN,kEAAwB,OAAO,QAAQ,MAAM;AAE3E,MAAa,4BAA4B,OAGvC,OACA,SAAYC,8BACZ,SAAS,UAET,MAAMM,6BAAcP,kEAAwB,OAAO,QAAQ,MAAM"}
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
3
2
  let node_path = require("node:path");
4
3
  let node_fs = require("node:fs");
5
4
  let node_fs_promises = require("node:fs/promises");