@intlayer/docs 6.1.6-canary.0 → 6.1.6

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 (242) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +71 -80
  2. package/dist/cjs/generated/docs.entry.cjs +16 -0
  3. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  4. package/dist/esm/generated/docs.entry.mjs +16 -0
  5. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  6. package/dist/types/generated/docs.entry.d.ts +1 -0
  7. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  8. package/docs/ar/intlayer_with_angular.md +2 -2
  9. package/docs/ar/intlayer_with_astro.md +246 -0
  10. package/docs/ar/intlayer_with_create_react_app.md +3 -2
  11. package/docs/ar/intlayer_with_express.md +2 -2
  12. package/docs/ar/intlayer_with_nestjs.md +2 -2
  13. package/docs/ar/intlayer_with_nextjs_14.md +2 -2
  14. package/docs/ar/intlayer_with_nextjs_15.md +2 -2
  15. package/docs/ar/intlayer_with_nextjs_page_router.md +2 -2
  16. package/docs/ar/intlayer_with_nuxt.md +2 -2
  17. package/docs/ar/intlayer_with_react_native+expo.md +11 -20
  18. package/docs/ar/intlayer_with_react_router_v7.md +195 -241
  19. package/docs/ar/intlayer_with_tanstack.md +198 -272
  20. package/docs/ar/intlayer_with_vite+preact.md +9 -9
  21. package/docs/ar/intlayer_with_vite+react.md +7 -7
  22. package/docs/ar/intlayer_with_vite+vue.md +9 -9
  23. package/docs/de/intlayer_with_angular.md +2 -2
  24. package/docs/de/intlayer_with_astro.md +246 -0
  25. package/docs/de/intlayer_with_create_react_app.md +2 -2
  26. package/docs/de/intlayer_with_express.md +2 -2
  27. package/docs/de/intlayer_with_nestjs.md +2 -2
  28. package/docs/de/intlayer_with_nextjs_14.md +2 -2
  29. package/docs/de/intlayer_with_nextjs_15.md +2 -2
  30. package/docs/de/intlayer_with_nextjs_page_router.md +2 -2
  31. package/docs/de/intlayer_with_nuxt.md +2 -2
  32. package/docs/de/intlayer_with_react_native+expo.md +11 -20
  33. package/docs/de/intlayer_with_react_router_v7.md +193 -242
  34. package/docs/de/intlayer_with_tanstack.md +194 -266
  35. package/docs/de/intlayer_with_vite+preact.md +9 -9
  36. package/docs/de/intlayer_with_vite+react.md +9 -9
  37. package/docs/de/intlayer_with_vite+vue.md +11 -11
  38. package/docs/de/packages/vite-intlayer/index.md +3 -3
  39. package/docs/en/how_works_intlayer.md +1 -1
  40. package/docs/en/index.md +1 -1
  41. package/docs/en/intlayer_cli.md +1 -1
  42. package/docs/en/intlayer_with_angular.md +4 -4
  43. package/docs/en/intlayer_with_astro.md +246 -0
  44. package/docs/en/intlayer_with_create_react_app.md +4 -4
  45. package/docs/en/intlayer_with_express.md +3 -3
  46. package/docs/en/intlayer_with_lynx+react.md +1 -1
  47. package/docs/en/intlayer_with_nestjs.md +2 -2
  48. package/docs/en/intlayer_with_nextjs_14.md +13 -4
  49. package/docs/en/intlayer_with_nextjs_15.md +13 -4
  50. package/docs/en/intlayer_with_nextjs_page_router.md +5 -5
  51. package/docs/en/intlayer_with_nuxt.md +4 -4
  52. package/docs/en/intlayer_with_react_native+expo.md +46 -24
  53. package/docs/en/intlayer_with_react_router_v7.md +164 -211
  54. package/docs/en/intlayer_with_tanstack.md +166 -241
  55. package/docs/en/intlayer_with_vite+preact.md +12 -12
  56. package/docs/en/intlayer_with_vite+react.md +12 -12
  57. package/docs/en/intlayer_with_vite+solid.md +2 -2
  58. package/docs/en/intlayer_with_vite+svelte.md +2 -2
  59. package/docs/en/intlayer_with_vite+vue.md +12 -12
  60. package/docs/en/introduction.md +1 -1
  61. package/docs/en/packages/next-intlayer/useDictionary.md +1 -1
  62. package/docs/en/packages/next-intlayer/useIntlayer.md +1 -1
  63. package/docs/en/packages/react-intlayer/useDictionary.md +1 -1
  64. package/docs/en/packages/react-intlayer/useI18n.md +1 -1
  65. package/docs/en/packages/react-intlayer/useIntlayer.md +1 -1
  66. package/docs/en/releases/v6.md +1 -0
  67. package/docs/en/roadmap.md +1 -1
  68. package/docs/en-GB/intlayer_with_angular.md +3 -3
  69. package/docs/en-GB/intlayer_with_astro.md +246 -0
  70. package/docs/en-GB/intlayer_with_create_react_app.md +5 -4
  71. package/docs/en-GB/intlayer_with_express.md +2 -2
  72. package/docs/en-GB/intlayer_with_nestjs.md +2 -2
  73. package/docs/en-GB/intlayer_with_nextjs_14.md +4 -4
  74. package/docs/en-GB/intlayer_with_nextjs_15.md +2 -2
  75. package/docs/en-GB/intlayer_with_nextjs_page_router.md +2 -2
  76. package/docs/en-GB/intlayer_with_nuxt.md +2 -2
  77. package/docs/en-GB/intlayer_with_react_native+expo.md +11 -20
  78. package/docs/en-GB/intlayer_with_react_router_v7.md +171 -220
  79. package/docs/en-GB/intlayer_with_tanstack.md +174 -248
  80. package/docs/en-GB/intlayer_with_vite+preact.md +9 -9
  81. package/docs/en-GB/intlayer_with_vite+react.md +9 -9
  82. package/docs/en-GB/intlayer_with_vite+vue.md +11 -11
  83. package/docs/en-GB/packages/next-intlayer/useIntlayer.md +1 -1
  84. package/docs/en-GB/packages/react-intlayer/useIntlayer.md +1 -1
  85. package/docs/es/intlayer_with_angular.md +2 -2
  86. package/docs/es/intlayer_with_astro.md +246 -0
  87. package/docs/es/intlayer_with_create_react_app.md +3 -2
  88. package/docs/es/intlayer_with_express.md +2 -2
  89. package/docs/es/intlayer_with_nextjs_14.md +2 -2
  90. package/docs/es/intlayer_with_nextjs_15.md +2 -2
  91. package/docs/es/intlayer_with_react_native+expo.md +11 -20
  92. package/docs/es/intlayer_with_react_router_v7.md +188 -232
  93. package/docs/es/intlayer_with_tanstack.md +203 -273
  94. package/docs/es/intlayer_with_vite+preact.md +7 -7
  95. package/docs/es/intlayer_with_vite+react.md +7 -7
  96. package/docs/es/intlayer_with_vite+vue.md +9 -9
  97. package/docs/fr/intlayer_with_angular.md +2 -2
  98. package/docs/fr/intlayer_with_astro.md +246 -0
  99. package/docs/fr/intlayer_with_create_react_app.md +3 -2
  100. package/docs/fr/intlayer_with_express.md +2 -2
  101. package/docs/fr/intlayer_with_nestjs.md +2 -2
  102. package/docs/fr/intlayer_with_nextjs_14.md +2 -2
  103. package/docs/fr/intlayer_with_react_native+expo.md +11 -20
  104. package/docs/fr/intlayer_with_react_router_v7.md +188 -248
  105. package/docs/fr/intlayer_with_tanstack.md +192 -265
  106. package/docs/fr/intlayer_with_vite+preact.md +7 -7
  107. package/docs/fr/intlayer_with_vite+react.md +7 -7
  108. package/docs/fr/intlayer_with_vite+vue.md +9 -9
  109. package/docs/hi/intlayer_cli.md +1 -4
  110. package/docs/hi/intlayer_with_angular.md +2 -2
  111. package/docs/hi/intlayer_with_astro.md +246 -0
  112. package/docs/hi/intlayer_with_create_react_app.md +2 -2
  113. package/docs/hi/intlayer_with_express.md +2 -2
  114. package/docs/hi/intlayer_with_nestjs.md +2 -2
  115. package/docs/hi/intlayer_with_nextjs_14.md +2 -2
  116. package/docs/hi/intlayer_with_nextjs_15.md +2 -2
  117. package/docs/hi/intlayer_with_nextjs_page_router.md +2 -2
  118. package/docs/hi/intlayer_with_nuxt.md +2 -2
  119. package/docs/hi/intlayer_with_react_native+expo.md +11 -20
  120. package/docs/hi/intlayer_with_react_router_v7.md +199 -243
  121. package/docs/hi/intlayer_with_tanstack.md +210 -285
  122. package/docs/hi/intlayer_with_vite+preact.md +9 -9
  123. package/docs/hi/intlayer_with_vite+react.md +9 -9
  124. package/docs/hi/intlayer_with_vite+solid.md +1 -1
  125. package/docs/hi/intlayer_with_vite+vue.md +11 -11
  126. package/docs/it/intlayer_with_angular.md +2 -2
  127. package/docs/it/intlayer_with_astro.md +246 -0
  128. package/docs/it/intlayer_with_create_react_app.md +3 -2
  129. package/docs/it/intlayer_with_express.md +2 -2
  130. package/docs/it/intlayer_with_nestjs.md +2 -2
  131. package/docs/it/intlayer_with_nextjs_14.md +2 -2
  132. package/docs/it/intlayer_with_nextjs_15.md +2 -2
  133. package/docs/it/intlayer_with_nextjs_page_router.md +2 -2
  134. package/docs/it/intlayer_with_nuxt.md +2 -2
  135. package/docs/it/intlayer_with_react_native+expo.md +11 -21
  136. package/docs/it/intlayer_with_react_router_v7.md +195 -242
  137. package/docs/it/intlayer_with_tanstack.md +203 -267
  138. package/docs/it/intlayer_with_vite+preact.md +9 -9
  139. package/docs/it/intlayer_with_vite+react.md +13 -11
  140. package/docs/it/intlayer_with_vite+vue.md +11 -11
  141. package/docs/ja/intlayer_with_angular.md +2 -2
  142. package/docs/ja/intlayer_with_astro.md +246 -0
  143. package/docs/ja/intlayer_with_create_react_app.md +3 -2
  144. package/docs/ja/intlayer_with_express.md +2 -2
  145. package/docs/ja/intlayer_with_nestjs.md +2 -2
  146. package/docs/ja/intlayer_with_nextjs_14.md +2 -2
  147. package/docs/ja/intlayer_with_nextjs_15.md +2 -2
  148. package/docs/ja/intlayer_with_nextjs_page_router.md +2 -2
  149. package/docs/ja/intlayer_with_nuxt.md +2 -2
  150. package/docs/ja/intlayer_with_react_native+expo.md +18 -29
  151. package/docs/ja/intlayer_with_react_router_v7.md +204 -250
  152. package/docs/ja/intlayer_with_tanstack.md +218 -286
  153. package/docs/ja/intlayer_with_vite+preact.md +9 -9
  154. package/docs/ja/intlayer_with_vite+react.md +11 -11
  155. package/docs/ja/intlayer_with_vite+vue.md +11 -11
  156. package/docs/ko/intlayer_with_angular.md +2 -2
  157. package/docs/ko/intlayer_with_astro.md +246 -0
  158. package/docs/ko/intlayer_with_create_react_app.md +3 -2
  159. package/docs/ko/intlayer_with_express.md +2 -2
  160. package/docs/ko/intlayer_with_nestjs.md +2 -2
  161. package/docs/ko/intlayer_with_nextjs_14.md +2 -2
  162. package/docs/ko/intlayer_with_nextjs_15.md +2 -2
  163. package/docs/ko/intlayer_with_nextjs_page_router.md +2 -2
  164. package/docs/ko/intlayer_with_nuxt.md +2 -2
  165. package/docs/ko/intlayer_with_react_native+expo.md +19 -28
  166. package/docs/ko/intlayer_with_react_router_v7.md +190 -244
  167. package/docs/ko/intlayer_with_tanstack.md +200 -270
  168. package/docs/ko/intlayer_with_vite+preact.md +9 -9
  169. package/docs/ko/intlayer_with_vite+react.md +9 -9
  170. package/docs/ko/intlayer_with_vite+vue.md +11 -11
  171. package/docs/pt/intlayer_with_angular.md +2 -2
  172. package/docs/pt/intlayer_with_astro.md +246 -0
  173. package/docs/pt/intlayer_with_create_react_app.md +3 -2
  174. package/docs/pt/intlayer_with_express.md +2 -2
  175. package/docs/pt/intlayer_with_nestjs.md +2 -2
  176. package/docs/pt/intlayer_with_nextjs_14.md +2 -2
  177. package/docs/pt/intlayer_with_nextjs_15.md +2 -2
  178. package/docs/pt/intlayer_with_nextjs_page_router.md +2 -2
  179. package/docs/pt/intlayer_with_nuxt.md +2 -2
  180. package/docs/pt/intlayer_with_react_native+expo.md +11 -20
  181. package/docs/pt/intlayer_with_react_router_v7.md +7 -13
  182. package/docs/pt/intlayer_with_tanstack.md +183 -258
  183. package/docs/pt/intlayer_with_vite+preact.md +9 -9
  184. package/docs/pt/intlayer_with_vite+react.md +9 -9
  185. package/docs/pt/intlayer_with_vite+vue.md +9 -9
  186. package/docs/ru/intlayer_with_angular.md +2 -2
  187. package/docs/ru/intlayer_with_astro.md +246 -0
  188. package/docs/ru/intlayer_with_create_react_app.md +3 -2
  189. package/docs/ru/intlayer_with_express.md +2 -2
  190. package/docs/ru/intlayer_with_nestjs.md +2 -2
  191. package/docs/ru/intlayer_with_nextjs_14.md +2 -2
  192. package/docs/ru/intlayer_with_nextjs_15.md +2 -2
  193. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  194. package/docs/ru/intlayer_with_nuxt.md +2 -2
  195. package/docs/ru/intlayer_with_react_native+expo.md +11 -20
  196. package/docs/ru/intlayer_with_react_router_v7.md +192 -238
  197. package/docs/ru/intlayer_with_tanstack.md +197 -269
  198. package/docs/ru/intlayer_with_vite+preact.md +9 -9
  199. package/docs/ru/intlayer_with_vite+react.md +9 -9
  200. package/docs/ru/intlayer_with_vite+vue.md +11 -11
  201. package/docs/tr/how_works_intlayer.md +1 -1
  202. package/docs/tr/index.md +1 -1
  203. package/docs/tr/intlayer_cli.md +1 -1
  204. package/docs/tr/intlayer_with_angular.md +4 -4
  205. package/docs/tr/intlayer_with_astro.md +246 -0
  206. package/docs/tr/intlayer_with_create_react_app.md +4 -4
  207. package/docs/tr/intlayer_with_express.md +3 -3
  208. package/docs/tr/intlayer_with_lynx+react.md +1 -1
  209. package/docs/tr/intlayer_with_nestjs.md +2 -2
  210. package/docs/tr/intlayer_with_nextjs_14.md +2 -2
  211. package/docs/tr/intlayer_with_nextjs_15.md +4 -4
  212. package/docs/tr/intlayer_with_nextjs_page_router.md +5 -5
  213. package/docs/tr/intlayer_with_nuxt.md +4 -4
  214. package/docs/tr/intlayer_with_react_native+expo.md +12 -21
  215. package/docs/tr/intlayer_with_react_router_v7.md +222 -267
  216. package/docs/tr/intlayer_with_tanstack.md +400 -303
  217. package/docs/tr/intlayer_with_vite+preact.md +12 -12
  218. package/docs/tr/intlayer_with_vite+react.md +12 -12
  219. package/docs/tr/intlayer_with_vite+solid.md +2 -2
  220. package/docs/tr/intlayer_with_vite+svelte.md +2 -2
  221. package/docs/tr/intlayer_with_vite+vue.md +12 -12
  222. package/docs/tr/introduction.md +1 -1
  223. package/docs/tr/packages/react-intlayer/useDictionary.md +1 -1
  224. package/docs/tr/packages/react-intlayer/useI18n.md +1 -1
  225. package/docs/tr/roadmap.md +1 -1
  226. package/docs/zh/intlayer_with_angular.md +2 -2
  227. package/docs/zh/intlayer_with_astro.md +246 -0
  228. package/docs/zh/intlayer_with_create_react_app.md +3 -2
  229. package/docs/zh/intlayer_with_express.md +2 -2
  230. package/docs/zh/intlayer_with_nestjs.md +2 -2
  231. package/docs/zh/intlayer_with_nextjs_14.md +2 -2
  232. package/docs/zh/intlayer_with_nextjs_15.md +2 -2
  233. package/docs/zh/intlayer_with_nextjs_page_router.md +2 -2
  234. package/docs/zh/intlayer_with_nuxt.md +2 -2
  235. package/docs/zh/intlayer_with_react_native+expo.md +19 -28
  236. package/docs/zh/intlayer_with_react_router_v7.md +200 -248
  237. package/docs/zh/intlayer_with_tanstack.md +208 -283
  238. package/docs/zh/intlayer_with_vite+preact.md +9 -9
  239. package/docs/zh/intlayer_with_vite+react.md +9 -9
  240. package/docs/zh/intlayer_with_vite+vue.md +9 -9
  241. package/package.json +11 -11
  242. package/src/generated/docs.entry.ts +16 -0
@@ -59,7 +59,7 @@ yarn add vite-intlayer --save-dev
59
59
 
60
60
  - **intlayer**
61
61
 
62
- The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
62
+ The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
63
63
 
64
64
  - **preact-intlayer**
65
65
  The package that integrates Intlayer with Preact application. It provides context providers and hooks for Preact internationalization.
@@ -374,7 +374,7 @@ module.exports = appContent;
374
374
 
375
375
  > Your content declarations can be defined anywhere in your application as soon they are included into the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
376
376
 
377
- > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
377
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
378
378
 
379
379
  > If your content file includes TSX code, you might need to import `import { h } from "preact";` or ensure your JSX pragma is correctly set for Preact.
380
380
 
@@ -1036,40 +1036,40 @@ const App = () => (
1036
1036
  module.exports = App;
1037
1037
  ```
1038
1038
 
1039
- In parallel, you can also use the `intlayerMiddlewarePlugin` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
1039
+ In parallel, you can also use the `intlayerMiddleware` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
1040
1040
 
1041
- > Note that to use the `intlayerMiddlewarePlugin` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
1041
+ > Note that to use the `intlayerMiddleware` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
1042
1042
 
1043
1043
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1044
1044
  import { defineConfig } from "vite";
1045
1045
  import preact from "@preact/preset-vite";
1046
- import { intlayer, intlayerMiddlewarePlugin } from "vite-intlayer";
1046
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
1047
1047
 
1048
1048
  // https://vitejs.dev/config/
1049
1049
  export default defineConfig({
1050
- plugins: [preact(), intlayer(), intlayerMiddlewarePlugin()],
1050
+ plugins: [preact(), intlayer(), intlayerMiddleware()],
1051
1051
  });
1052
1052
  ```
1053
1053
 
1054
1054
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1055
1055
  import { defineConfig } from "vite";
1056
1056
  import preact from "@preact/preset-vite";
1057
- import { intlayer, intlayerMiddlewarePlugin } from "vite-intlayer";
1057
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
1058
1058
 
1059
1059
  // https://vitejs.dev/config/
1060
1060
  export default defineConfig({
1061
- plugins: [preact(), intlayer(), intlayerMiddlewarePlugin()],
1061
+ plugins: [preact(), intlayer(), intlayerMiddleware()],
1062
1062
  });
1063
1063
  ```
1064
1064
 
1065
1065
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1066
1066
  const { defineConfig } = require("vite");
1067
1067
  const preact = require("@preact/preset-vite");
1068
- const { intlayer, intlayerMiddlewarePlugin } = require("vite-intlayer");
1068
+ const { intlayer, intlayerMiddleware } = require("vite-intlayer");
1069
1069
 
1070
1070
  // https://vitejs.dev/config/
1071
1071
  module.exports = defineConfig({
1072
- plugins: [preact(), intlayer(), intlayerMiddlewarePlugin()],
1072
+ plugins: [preact(), intlayer(), intlayerMiddleware()],
1073
1073
  });
1074
1074
  ```
1075
1075
 
@@ -1604,9 +1604,9 @@ module.exports = { LocalizedLink, checkIsExternalLink };
1604
1604
 
1605
1605
  Intlayer use module augmentation to get benefits of TypeScript and make your codebase stronger.
1606
1606
 
1607
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1607
+ ![Autocompletion](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
1608
1608
 
1609
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1609
+ ![Translation error](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
1610
1610
 
1611
1611
  Ensure your TypeScript configuration includes the autogenerated types.
1612
1612
 
@@ -61,7 +61,7 @@ yarn add vite-intlayer --save-dev
61
61
 
62
62
  - **intlayer**
63
63
 
64
- The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
64
+ The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
65
65
 
66
66
  - **react-intlayer**
67
67
  The package that integrates Intlayer with React application. It provides context providers and hooks for React internationalization.
@@ -406,7 +406,7 @@ module.exports = appContent;
406
406
 
407
407
  > Your content declarations can be defined anywhere in your application as soon they are included into the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
408
408
 
409
- > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
409
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
410
410
 
411
411
  > If your content file includes TSX code, you should consider importing `import React from "react";` in your content file.
412
412
 
@@ -1004,40 +1004,40 @@ const App = () => (
1004
1004
  );
1005
1005
  ```
1006
1006
 
1007
- In parallel, you can also use the `intlayerMiddlewarePlugin` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
1007
+ In parallel, you can also use the `intlayerMiddleware` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
1008
1008
 
1009
- > Note that to use the `intlayerMiddlewarePlugin` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
1009
+ > Note that to use the `intlayerMiddleware` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
1010
1010
 
1011
1011
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
1012
1012
  import { defineConfig } from "vite";
1013
1013
  import react from "@vitejs/plugin-react-swc";
1014
- import { intlayer, intlayerMiddlewarePlugin } from "vite-intlayer";
1014
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
1015
1015
 
1016
1016
  // https://vitejs.dev/config/
1017
1017
  export default defineConfig({
1018
- plugins: [react(), intlayer(), intlayerMiddlewarePlugin()],
1018
+ plugins: [react(), intlayer(), intlayerMiddleware()],
1019
1019
  });
1020
1020
  ```
1021
1021
 
1022
1022
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
1023
1023
  import { defineConfig } from "vite";
1024
1024
  import react from "@vitejs/plugin-react-swc";
1025
- import { intlayer, intlayerMiddlewarePlugin } from "vite-intlayer";
1025
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
1026
1026
 
1027
1027
  // https://vitejs.dev/config/
1028
1028
  export default defineConfig({
1029
- plugins: [react(), intlayer(), intlayerMiddlewarePlugin()],
1029
+ plugins: [react(), intlayer(), intlayerMiddleware()],
1030
1030
  });
1031
1031
  ```
1032
1032
 
1033
1033
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
1034
1034
  const { defineConfig } = require("vite");
1035
1035
  const react = require("@vitejs/plugin-react-swc");
1036
- const { intlayer, intlayerMiddlewarePlugin } = require("vite-intlayer");
1036
+ const { intlayer, intlayerMiddleware } = require("vite-intlayer");
1037
1037
 
1038
1038
  // https://vitejs.dev/config/
1039
1039
  module.exports = defineConfig({
1040
- plugins: [react(), intlayer(), intlayerMiddlewarePlugin()],
1040
+ plugins: [react(), intlayer(), intlayerMiddleware()],
1041
1041
  });
1042
1042
  ```
1043
1043
 
@@ -1571,9 +1571,9 @@ By integrating this `Link` component across your application, you maintain a coh
1571
1571
 
1572
1572
  Intlayer use module augmentation to get benefits of TypeScript and make your codebase stronger.
1573
1573
 
1574
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
1574
+ ![Autocompletion](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
1575
1575
 
1576
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
1576
+ ![Translation error](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
1577
1577
 
1578
1578
  Ensure your TypeScript configuration includes the autogenerated types.
1579
1579
 
@@ -59,7 +59,7 @@ yarn add vite-intlayer --save-dev
59
59
 
60
60
  - **intlayer**
61
61
 
62
- The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
62
+ The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
63
63
 
64
64
  - **solid-intlayer**
65
65
  The package that integrates Intlayer with Solid application. It provides context providers and hooks for Solid internationalization.
@@ -217,7 +217,7 @@ module.exports = appContent;
217
217
 
218
218
  > Your content declarations can be defined anywhere in your application as soon they are included into the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
219
219
 
220
- > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
220
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
221
221
 
222
222
  ### Step 5: Utilize Intlayer in Your Code
223
223
 
@@ -59,7 +59,7 @@ yarn add vite-intlayer --save-dev
59
59
 
60
60
  - **intlayer**
61
61
 
62
- The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
62
+ The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
63
63
 
64
64
  - **svelte-intlayer**
65
65
  The package that integrates Intlayer with Svelte application. It provides context providers and hooks for Svelte internationalization.
@@ -217,7 +217,7 @@ module.exports = appContent;
217
217
 
218
218
  > Your content declarations can be defined anywhere in your application as soon they are included into the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
219
219
 
220
- > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
220
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
221
221
 
222
222
  ### Step 5: Utilize Intlayer in Your Code
223
223
 
@@ -57,7 +57,7 @@ yarn add vite-intlayer --save-dev
57
57
 
58
58
  - **intlayer**
59
59
 
60
- The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
60
+ The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_cli.md).
61
61
 
62
62
  - **vue-intlayer**
63
63
  The package that integrates Intlayer with Vue application. It provides context providers and composables for Vue internationalization.
@@ -356,7 +356,7 @@ module.exports = appContent;
356
356
 
357
357
  > Your content declarations can be defined anywhere in your application as soon they are included into the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
358
358
 
359
- > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
359
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
360
360
 
361
361
  ### Step 5: Utilize Intlayer in Your Code
362
362
 
@@ -645,40 +645,40 @@ import LocaleSwitcher from "@components/LocaleSwitcher.vue";
645
645
  </template>
646
646
  ```
647
647
 
648
- In parallel, you can also use the `intlayerMiddlewarePlugin` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
648
+ In parallel, you can also use the `intlayerMiddleware` to add server-side routing to your application. This plugin will automatically detect the current locale based on the URL and set the appropriate locale cookie. If no locale is specified, the plugin will determine the most appropriate locale based on the user's browser language preferences. If no locale is detected, it will redirect to the default locale.
649
649
 
650
- > Note that to use the `intlayerMiddlewarePlugin` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
650
+ > Note that to use the `intlayerMiddleware` in production, you need to switch the `vite-intlayer` package from `devDependencies` to `dependencies`.
651
651
 
652
652
  ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
653
653
  import { defineConfig } from "vite";
654
654
  import vue from "@vitejs/plugin-vue";
655
- import { intlayer, intlayerMiddlewarePlugin } from "vite-intlayer";
655
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
656
656
 
657
657
  // https://vitejs.dev/config/
658
658
  export default defineConfig({
659
- plugins: [vue(), intlayer(), intlayerMiddlewarePlugin()],
659
+ plugins: [vue(), intlayer(), intlayerMiddleware()],
660
660
  });
661
661
  ```
662
662
 
663
663
  ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
664
664
  import { defineConfig } from "vite";
665
665
  import vue from "@vitejs/plugin-vue";
666
- import { intlayer, intlayerMiddlewarePlugin } from "vite-intlayer";
666
+ import { intlayer, intlayerMiddleware } from "vite-intlayer";
667
667
 
668
668
  // https://vitejs.dev/config/
669
669
  export default defineConfig({
670
- plugins: [vue(), intlayer(), intlayerMiddlewarePlugin()],
670
+ plugins: [vue(), intlayer(), intlayerMiddleware()],
671
671
  });
672
672
  ```
673
673
 
674
674
  ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
675
675
  const { defineConfig } = require("vite");
676
676
  const vue = require("@vitejs/plugin-vue");
677
- const { intlayer, intlayerMiddlewarePlugin } = require("vite-intlayer");
677
+ const { intlayer, intlayerMiddleware } = require("vite-intlayer");
678
678
 
679
679
  // https://vitejs.dev/config/
680
680
  module.exports = defineConfig({
681
- plugins: [vue(), intlayer(), intlayerMiddlewarePlugin()],
681
+ plugins: [vue(), intlayer(), intlayerMiddleware()],
682
682
  });
683
683
  ```
684
684
 
@@ -983,9 +983,9 @@ const { myMarkdownContent } = useIntlayer("my-component");
983
983
 
984
984
  Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
985
985
 
986
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
986
+ ![Autocompletion](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
987
987
 
988
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
988
+ ![Translation error](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
989
989
 
990
990
  Ensure your TypeScript configuration includes the autogenerated types.
991
991
 
@@ -152,7 +152,7 @@ Intlayer offers a variety of features tailored to meet the needs of modern web d
152
152
 
153
153
  Organize your multilingual content close to your code to keep everything consistent and maintainable.
154
154
 
155
- - **[Get Started](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md)**
155
+ - **[Get Started](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)**
156
156
  Learn the basics of declaring your content in Intlayer.
157
157
 
158
158
  - **[Translation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/translation.md)**
@@ -65,7 +65,7 @@ The hook accepts two parameters:
65
65
 
66
66
  ## Dictionary
67
67
 
68
- All dictionary objects should be declared in structured content files to ensure type safety and prevent runtime errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md). Here's an example of content declaration:
68
+ All dictionary objects should be declared in structured content files to ensure type safety and prevent runtime errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md). Here's an example of content declaration:
69
69
 
70
70
  ```typescript fileName="component.content.ts" codeFormat="typescript"
71
71
  import { t, type Dictionary } from "intlayer";
@@ -65,7 +65,7 @@ Depending on whether you're working on client-side or server-side components in
65
65
 
66
66
  It's crucial that all content keys are defined within content declaration files to prevent runtime errors and ensure type safety. This approach also facilitates TypeScript integration for compile-time validation.
67
67
 
68
- Instructions for setting up content declaration files are available [here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
68
+ Instructions for setting up content declaration files are available [here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
69
69
 
70
70
  ## Example Usage in Next.js
71
71
 
@@ -64,7 +64,7 @@ The hook accepts two parameters:
64
64
 
65
65
  ## Dictionary
66
66
 
67
- All dictionary objects should be declared in structured content files to ensure type safety and prevent runtime errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md). Here's an example of content declaration:
67
+ All dictionary objects should be declared in structured content files to ensure type safety and prevent runtime errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md). Here's an example of content declaration:
68
68
 
69
69
  ```typescript fileName="./component.content.ts" contentDeclarationFormat="typescript"
70
70
  import { t, type Dictionary } from "intlayer";
@@ -66,7 +66,7 @@ This hook accepts two parameters:
66
66
 
67
67
  ## Dictionary
68
68
 
69
- All dictionary keys must be declared within content declaration files to enhance type safety and prevent errors. [Configuration instructions can be found here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
69
+ All dictionary keys must be declared within content declaration files to enhance type safety and prevent errors. [Configuration instructions can be found here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
70
70
 
71
71
  ## Usage Examples in React
72
72
 
@@ -65,7 +65,7 @@ The hook accepts two parameters:
65
65
 
66
66
  ## Dictionary
67
67
 
68
- All dictionary keys must be declared within content declaration files to enhance type safety and avoid errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
68
+ All dictionary keys must be declared within content declaration files to enhance type safety and avoid errors. You can find the [setup instructions here](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
69
69
 
70
70
  ## Example Usage in React
71
71
 
@@ -277,6 +277,7 @@ To work around this, we dropped the `intlayer watch` command, using the `--with`
277
277
  - Prefer the new global `content.autoFill` option to generate missing translations at scale.
278
278
  - Use `npx intlayer content test` to gate PRs on missing translations.
279
279
  - For verbose diagnostics, set `log.mode = 'verbose'`.
280
+ - Use `intlayer` instead of `intlayerPlugin` and `intlayerMiddleware` instead of `intlayerMiddlewarePlugin` in your Vite configuration.
280
281
 
281
282
  ---
282
283
 
@@ -32,7 +32,7 @@ Intlayer is a content management and internationalization solution designed to s
32
32
 
33
33
  > Resources:
34
34
  >
35
- > - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md)
35
+ > - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
36
36
 
37
37
  ### 2. Internationalization
38
38
 
@@ -310,7 +310,7 @@ export default appContent;
310
310
 
311
311
  > Your content declarations can be defined anywhere in your application as soon they are included into the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
312
312
 
313
- > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/get_started.md).
313
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md).
314
314
 
315
315
  ### Step 5: Utilize Intlayer in Your Code
316
316
 
@@ -663,9 +663,9 @@ For more complex scenarios, you can create a pipe to safely render the HTML.
663
663
 
664
664
  Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
665
665
 
666
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png)
666
+ ![Autocompletion](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
667
667
 
668
- ![alt text](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png)
668
+ ![Translation error](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
669
669
 
670
670
  Ensure your TypeScript configuration includes the autogenerated types.
671
671
 
@@ -0,0 +1,246 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-10-03
4
+ title: Getting Started with Intlayer in Astro
5
+ description: Learn how to add internationalisation (i18n) to your Vite and React application using Intlayer. Follow this guide to make your app multilingual.
6
+ keywords:
7
+ - Internationalisation
8
+ - Documentation
9
+ - Intlayer
10
+ - Vite
11
+ - React
12
+ - i18n
13
+ - JavaScript
14
+ slugs:
15
+ - doc
16
+ - environment
17
+ - astro
18
+ applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
19
+ ---
20
+
21
+ # Getting Started Internationalising (i18n) with Intlayer and Astro
22
+
23
+ See [Application Template](https://github.com/aymericzip/intlayer-astro-template) on GitHub.
24
+
25
+ ## What is Intlayer?
26
+
27
+ **Intlayer** is an innovative, open-source internationalisation (i18n) library designed to simplify multilingual support in modern web applications.
28
+
29
+ With Intlayer, you can:
30
+
31
+ - **Easily manage translations** using declarative dictionaries at the component level.
32
+ - **Dynamically localise metadata**, routes, and content.
33
+ - **Ensure TypeScript support** with autogenerated types, improving autocompletion and error detection.
34
+ - **Benefit from advanced features**, like dynamic locale detection and switching.
35
+
36
+ ---
37
+
38
+ ## Step-by-Step Guide to Set Up Intlayer in Astro
39
+
40
+ ### Step 1: Install Dependencies
41
+
42
+ Install the necessary packages using your package manager:
43
+
44
+ ```bash packageManager="npm"
45
+ npm install intlayer astro-intlayer
46
+ # Optional: add React island support
47
+ npm install react react-dom react-intlayer @astrojs/react
48
+ ```
49
+
50
+ ```bash packageManager="pnpm"
51
+ pnpm add intlayer astro-intlayer
52
+ # Optional: add React island support
53
+ pnpm add react react-dom react-intlayer @astrojs/react
54
+ ```
55
+
56
+ ```bash packageManager="yarn"
57
+ yarn add intlayer astro-intlayer
58
+ # Optional: add React island support
59
+ yarn add react react-dom react-intlayer @astrojs/react
60
+ ```
61
+
62
+ - **intlayer**
63
+ The core package that provides internationalisation tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/dictionary/get_started.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_cli.md).
64
+
65
+ - **astro-intlayer**
66
+ Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), as well as middleware for detecting the user's preferred locale, managing cookies, and handling URL redirection.
67
+
68
+ ### Step 2: Configuration of your project
69
+
70
+ Create a config file to configure the languages of your application:
71
+
72
+ ```typescript fileName="intlayer.config.ts"
73
+ import { Locales, type IntlayerConfig } from "intlayer";
74
+
75
+ const config: IntlayerConfig = {
76
+ internationalization: {
77
+ locales: [
78
+ Locales.ENGLISH,
79
+ Locales.FRENCH,
80
+ Locales.SPANISH,
81
+ // Your other locales
82
+ ],
83
+ defaultLocale: Locales.ENGLISH,
84
+ },
85
+ };
86
+
87
+ export default config;
88
+ ```
89
+
90
+ > Through this configuration file, you can set up localised URLs, middleware redirection, cookie names, the location and extension of your content declarations, disable Intlayer logs in the console, and more. For a complete list of available parameters, refer to the [configuration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/configuration.md).
91
+
92
+ ### Step 3: Integrate Intlayer in Your Astro Configuration
93
+
94
+ Add the intlayer plugin into your configuration.
95
+
96
+ ```typescript fileName="astro.config.ts"
97
+ // @ts-check
98
+
99
+ import { intlayer } from "astro-intlayer";
100
+ import { defineConfig } from "astro/config";
101
+
102
+ // https://astro.build/config
103
+ export default defineConfig({
104
+ integrations: [intlayer()],
105
+ });
106
+ ```
107
+
108
+ > The `intlayer()` Astro integration plugin is used to integrate Intlayer with Astro. It ensures the building of content declaration files and monitors them in development mode. It defines Intlayer environment variables within the Astro application. Additionally, it provides aliases to optimise performance.
109
+
110
+ ### Step 4: Declare Your Content
111
+
112
+ Create and manage your content declarations to store translations:
113
+
114
+ ```tsx fileName="src/app.content.tsx"
115
+ import { t, type Dictionary } from "intlayer";
116
+ import type { ReactNode } from "react";
117
+
118
+ const appContent = {
119
+ key: "app",
120
+ content: {
121
+ title: t({
122
+ en: "Hello World",
123
+ fr: "Bonjour le monde",
124
+ es: "Hola mundo",
125
+ }),
126
+ },
127
+ } satisfies Dictionary;
128
+
129
+ export default appContent;
130
+ ```
131
+
132
+ > Your content declarations can be defined anywhere in your application as soon as they are included in the `contentDir` directory (by default, `./src`). And match the content declaration file extension (by default, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`).
133
+
134
+ > For more details, refer to the [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/dictionary/get_started.md).
135
+
136
+ ### Step 5: Use your content in Astro
137
+
138
+ You can consume dictionaries directly in `.astro` files using the core helpers exported by `intlayer`.
139
+
140
+ ```astro fileName="src/pages/index.astro"
141
+ <!-- astro -->
142
+ ---
143
+ import { getIntlayer } from "intlayer";
144
+ import appContent from "../app.content";
145
+
146
+ const { title } = getIntlayer('app');
147
+ ---
148
+
149
+ <html lang="en">
150
+ <head>
151
+ <meta charset="utf-8" />
152
+ <meta name="viewport" content="width=device-width" />
153
+ <title>{title}</title>
154
+ </head>
155
+ <body>
156
+ <h1>{title}</h1>
157
+ </body>
158
+ </html>
159
+ ```
160
+
161
+ ### Step 6: Localised routing
162
+
163
+ Create a dynamic route segment to serve localised pages, for example `src/pages/[locale]/index.astro`:
164
+
165
+ ```astro fileName="src/pages/[locale]/index.astro"
166
+ <!-- astro -->
167
+ ---
168
+ import { getIntlayer } from "intlayer";
169
+
170
+ const { title } = getIntlayer('app');
171
+ ---
172
+
173
+ <h1>{title}</h1>
174
+ ```
175
+
176
+ The Astro integration adds a Vite middleware during development that helps with locale-aware routing and environment definitions. You can still link between locales using your own logic, or utility functions like `getLocalizedUrl` from `intlayer`.
177
+
178
+ ### Step 7: Continue using your favourite framework
179
+
180
+ Continue using your favourite framework to build your application.
181
+
182
+ - Intlayer + React: [Intlayer with React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_with_vite+react.md)
183
+ - Intlayer + Vue: [Intlayer with Vue](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_with_vite+vue.md)
184
+ - Intlayer + Svelte: [Intlayer with Svelte](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_with_vite+svelte.md)
185
+ - Intlayer + Solid: [Intlayer with Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_with_vite+solid.md)
186
+ - Intlayer + Preact: [Intlayer with Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_with_vite+preact.md)
187
+
188
+ ### Configure TypeScript
189
+
190
+ Intlayer uses module augmentation to benefit from TypeScript and strengthen your codebase.
191
+
192
+ ![Autocompletion](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true)
193
+
194
+ ![Translation error](https://github.com/aymericzip/intlayer/blob/main/docs/assets/translation_error.png?raw=true)
195
+
196
+ Ensure your TypeScript configuration includes the autogenerated types.
197
+
198
+ ```json5 fileName="tsconfig.json"
199
+ {
200
+ // ... Your existing TypeScript configurations
201
+ "include": [
202
+ // ... Your existing TypeScript configurations
203
+ ".intlayer/**/*.ts", // Include the auto-generated types
204
+ ],
205
+ }
206
+ ```
207
+
208
+ ### Git Configuration
209
+
210
+ It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
211
+
212
+ To do this, you can add the following instructions to your `.gitignore` file:
213
+
214
+ ```plaintext
215
+ # Ignore the files generated by Intlayer
216
+ .intlayer
217
+ ```
218
+
219
+ ### VS Code Extension
220
+
221
+ To enhance your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
222
+
223
+ [Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
224
+
225
+ This extension provides:
226
+
227
+ - **Autocompletion** for translation keys.
228
+ - **Real-time error detection** for missing translations.
229
+ - **Inline previews** of translated content.
230
+ - **Quick actions** to easily create and update translations.
231
+
232
+ For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
233
+
234
+ ---
235
+
236
+ ### Go Further
237
+
238
+ To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_visual_editor.md) or externalise your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/intlayer_CMS.md).
239
+
240
+ ---
241
+
242
+ ## Doc History
243
+
244
+ | Version | Date | Changes |
245
+ | ------- | ---------- | -------------------------------------------- |
246
+ | 6.2.0 | 2025-10-03 | Refresh for Astro integration, config, usage |