@intlayer/docs 7.5.11 → 7.5.12

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 (227) hide show
  1. package/blog/ar/intlayer_with_i18next.md +0 -2
  2. package/blog/ar/intlayer_with_next-i18next.md +0 -2
  3. package/blog/ar/intlayer_with_react-i18next.md +0 -2
  4. package/blog/de/intlayer_with_i18next.md +0 -45
  5. package/blog/de/intlayer_with_next-i18next.md +0 -46
  6. package/blog/de/intlayer_with_react-i18next.md +0 -2
  7. package/blog/en/intlayer_with_i18next.md +0 -46
  8. package/blog/en/intlayer_with_next-i18next.md +0 -48
  9. package/blog/en/intlayer_with_next-intl.md +0 -44
  10. package/blog/en/intlayer_with_react-i18next.md +0 -44
  11. package/blog/en/intlayer_with_react-intl.md +0 -42
  12. package/blog/en/intlayer_with_vue-i18n.md +0 -44
  13. package/blog/en-GB/intlayer_with_i18next.md +0 -45
  14. package/blog/en-GB/intlayer_with_next-i18next.md +0 -47
  15. package/blog/en-GB/intlayer_with_next-intl.md +0 -42
  16. package/blog/en-GB/intlayer_with_react-i18next.md +0 -43
  17. package/blog/en-GB/intlayer_with_react-intl.md +0 -42
  18. package/blog/en-GB/intlayer_with_vue-i18n.md +0 -46
  19. package/blog/es/intlayer_with_i18next.md +0 -45
  20. package/blog/es/intlayer_with_next-i18next.md +0 -47
  21. package/blog/es/intlayer_with_next-intl.md +0 -42
  22. package/blog/es/intlayer_with_react-i18next.md +0 -43
  23. package/blog/es/intlayer_with_react-intl.md +0 -42
  24. package/blog/es/intlayer_with_vue-i18n.md +0 -46
  25. package/blog/fr/intlayer_with_i18next.md +0 -45
  26. package/blog/fr/intlayer_with_next-i18next.md +0 -47
  27. package/blog/fr/intlayer_with_next-intl.md +0 -42
  28. package/blog/fr/intlayer_with_react-i18next.md +0 -43
  29. package/blog/fr/intlayer_with_react-intl.md +0 -42
  30. package/blog/fr/intlayer_with_vue-i18n.md +0 -46
  31. package/blog/hi/intlayer_with_i18next.md +0 -2
  32. package/blog/hi/intlayer_with_next-i18next.md +0 -2
  33. package/blog/hi/intlayer_with_react-i18next.md +0 -2
  34. package/blog/id/intlayer_with_i18next.md +0 -2
  35. package/blog/id/intlayer_with_next-i18next.md +0 -2
  36. package/blog/id/intlayer_with_react-i18next.md +0 -2
  37. package/blog/it/intlayer_with_i18next.md +0 -2
  38. package/blog/it/intlayer_with_next-i18next.md +0 -2
  39. package/blog/it/intlayer_with_react-i18next.md +0 -2
  40. package/blog/ja/intlayer_with_i18next.md +0 -45
  41. package/blog/ja/intlayer_with_next-i18next.md +0 -46
  42. package/blog/ja/intlayer_with_next-intl.md +0 -42
  43. package/blog/ja/intlayer_with_react-i18next.md +0 -42
  44. package/blog/ja/intlayer_with_react-intl.md +0 -42
  45. package/blog/ja/intlayer_with_vue-i18n.md +0 -46
  46. package/blog/ko/intlayer_with_i18next.md +0 -2
  47. package/blog/ko/intlayer_with_next-i18next.md +0 -2
  48. package/blog/ko/intlayer_with_react-i18next.md +0 -1
  49. package/blog/pl/intlayer_with_i18next.md +0 -45
  50. package/blog/pl/intlayer_with_next-i18next.md +0 -46
  51. package/blog/pl/intlayer_with_next-intl.md +0 -42
  52. package/blog/pl/intlayer_with_react-i18next.md +0 -43
  53. package/blog/pl/intlayer_with_react-intl.md +0 -42
  54. package/blog/pl/intlayer_with_vue-i18n.md +0 -46
  55. package/blog/pt/intlayer_with_i18next.md +0 -2
  56. package/blog/pt/intlayer_with_next-i18next.md +0 -2
  57. package/blog/pt/intlayer_with_react-i18next.md +0 -2
  58. package/blog/ru/intlayer_with_i18next.md +0 -45
  59. package/blog/ru/intlayer_with_next-i18next.md +0 -47
  60. package/blog/ru/intlayer_with_next-intl.md +0 -42
  61. package/blog/ru/intlayer_with_react-i18next.md +0 -43
  62. package/blog/ru/intlayer_with_react-intl.md +0 -42
  63. package/blog/ru/intlayer_with_vue-i18n.md +0 -46
  64. package/blog/tr/intlayer_with_i18next.md +0 -2
  65. package/blog/tr/intlayer_with_next-i18next.md +0 -1
  66. package/blog/tr/intlayer_with_react-i18next.md +0 -2
  67. package/blog/vi/intlayer_with_i18next.md +0 -2
  68. package/blog/vi/intlayer_with_next-i18next.md +0 -2
  69. package/blog/vi/intlayer_with_react-i18next.md +0 -2
  70. package/blog/zh/intlayer_with_i18next.md +0 -2
  71. package/blog/zh/intlayer_with_next-i18next.md +0 -2
  72. package/blog/zh/intlayer_with_react-i18next.md +0 -2
  73. package/blog/zh/intlayer_with_vue-i18n.md +0 -46
  74. package/dist/cjs/generated/blog.entry.cjs +58 -29
  75. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  76. package/dist/cjs/generated/docs.entry.cjs +218 -99
  77. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  78. package/dist/cjs/generated/frequentQuestions.entry.cjs +30 -15
  79. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  80. package/dist/cjs/generated/legal.entry.cjs +4 -2
  81. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  82. package/dist/esm/generated/blog.entry.mjs +58 -29
  83. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  84. package/dist/esm/generated/docs.entry.mjs +218 -99
  85. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  86. package/dist/esm/generated/frequentQuestions.entry.mjs +30 -15
  87. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  88. package/dist/esm/generated/legal.entry.mjs +4 -2
  89. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  90. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  91. package/dist/types/generated/docs.entry.d.ts +1 -0
  92. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  93. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  94. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  95. package/docs/ar/intlayer_with_next-i18next.md +0 -1
  96. package/docs/ar/intlayer_with_nextjs_14.md +28 -0
  97. package/docs/ar/intlayer_with_nextjs_15.md +28 -0
  98. package/docs/ar/intlayer_with_nextjs_16.md +28 -0
  99. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1159 -0
  100. package/docs/ar/plugins/sync-json.md +6 -2
  101. package/docs/de/intlayer_with_next-i18next.md +0 -1
  102. package/docs/de/intlayer_with_nextjs_14.md +28 -0
  103. package/docs/de/intlayer_with_nextjs_15.md +28 -0
  104. package/docs/de/intlayer_with_nextjs_16.md +28 -0
  105. package/docs/de/intlayer_with_nextjs_no_locale_path.md +1152 -0
  106. package/docs/de/plugins/sync-json.md +6 -2
  107. package/docs/en/intlayer_with_next-i18next.md +0 -1
  108. package/docs/en/intlayer_with_nextjs_14.md +28 -0
  109. package/docs/en/intlayer_with_nextjs_15.md +28 -0
  110. package/docs/en/intlayer_with_nextjs_16.md +31 -1
  111. package/docs/en/intlayer_with_nextjs_no_locale_path.md +1132 -0
  112. package/docs/en/plugins/sync-json.md +6 -2
  113. package/docs/en-GB/intlayer_with_next-i18next.md +0 -1
  114. package/docs/en-GB/intlayer_with_nextjs_14.md +28 -0
  115. package/docs/en-GB/intlayer_with_nextjs_15.md +28 -0
  116. package/docs/en-GB/intlayer_with_nextjs_16.md +28 -0
  117. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1154 -0
  118. package/docs/en-GB/plugins/sync-json.md +6 -2
  119. package/docs/es/intlayer_with_next-i18next.md +0 -1
  120. package/docs/es/intlayer_with_nextjs_14.md +28 -0
  121. package/docs/es/intlayer_with_nextjs_15.md +28 -0
  122. package/docs/es/intlayer_with_nextjs_16.md +28 -0
  123. package/docs/es/intlayer_with_nextjs_no_locale_path.md +1143 -0
  124. package/docs/es/plugins/sync-json.md +6 -2
  125. package/docs/fr/intlayer_with_next-i18next.md +0 -1
  126. package/docs/fr/intlayer_with_nextjs_14.md +28 -0
  127. package/docs/fr/intlayer_with_nextjs_15.md +28 -0
  128. package/docs/fr/intlayer_with_nextjs_16.md +28 -0
  129. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1174 -0
  130. package/docs/fr/plugins/sync-json.md +9 -5
  131. package/docs/hi/intlayer_with_next-i18next.md +0 -1
  132. package/docs/hi/intlayer_with_nextjs_14.md +28 -0
  133. package/docs/hi/intlayer_with_nextjs_15.md +28 -0
  134. package/docs/hi/intlayer_with_nextjs_16.md +28 -0
  135. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1151 -0
  136. package/docs/hi/plugins/sync-json.md +6 -2
  137. package/docs/id/intlayer_with_next-i18next.md +0 -1
  138. package/docs/id/intlayer_with_nextjs_14.md +28 -0
  139. package/docs/id/intlayer_with_nextjs_15.md +28 -0
  140. package/docs/id/intlayer_with_nextjs_16.md +28 -0
  141. package/docs/id/intlayer_with_nextjs_no_locale_path.md +1154 -0
  142. package/docs/id/plugins/sync-json.md +6 -2
  143. package/docs/it/intlayer_with_next-i18next.md +0 -1
  144. package/docs/it/intlayer_with_nextjs_14.md +28 -0
  145. package/docs/it/intlayer_with_nextjs_15.md +28 -0
  146. package/docs/it/intlayer_with_nextjs_16.md +28 -0
  147. package/docs/it/intlayer_with_nextjs_no_locale_path.md +1148 -0
  148. package/docs/it/plugins/sync-json.md +6 -2
  149. package/docs/ja/intlayer_with_next-i18next.md +0 -1
  150. package/docs/ja/intlayer_with_nextjs_14.md +28 -0
  151. package/docs/ja/intlayer_with_nextjs_15.md +28 -0
  152. package/docs/ja/intlayer_with_nextjs_16.md +28 -0
  153. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1222 -0
  154. package/docs/ja/plugins/sync-json.md +6 -2
  155. package/docs/ko/intlayer_with_next-i18next.md +0 -1
  156. package/docs/ko/intlayer_with_nextjs_14.md +28 -0
  157. package/docs/ko/intlayer_with_nextjs_15.md +28 -0
  158. package/docs/ko/intlayer_with_nextjs_16.md +28 -0
  159. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1205 -0
  160. package/docs/ko/plugins/sync-json.md +6 -2
  161. package/docs/pl/intlayer_with_next-i18next.md +0 -1
  162. package/docs/pl/intlayer_with_nextjs_14.md +28 -0
  163. package/docs/pl/intlayer_with_nextjs_15.md +28 -0
  164. package/docs/pl/intlayer_with_nextjs_16.md +28 -0
  165. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1149 -0
  166. package/docs/pl/plugins/sync-json.md +6 -2
  167. package/docs/pt/intlayer_with_next-i18next.md +0 -1
  168. package/docs/pt/intlayer_with_nextjs_14.md +28 -0
  169. package/docs/pt/intlayer_with_nextjs_15.md +28 -0
  170. package/docs/pt/intlayer_with_nextjs_16.md +28 -0
  171. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1152 -0
  172. package/docs/pt/plugins/sync-json.md +6 -2
  173. package/docs/ru/intlayer_with_next-i18next.md +0 -1
  174. package/docs/ru/intlayer_with_nextjs_14.md +28 -0
  175. package/docs/ru/intlayer_with_nextjs_15.md +28 -0
  176. package/docs/ru/intlayer_with_nextjs_16.md +28 -0
  177. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1204 -0
  178. package/docs/ru/plugins/sync-json.md +6 -2
  179. package/docs/tr/intlayer_with_next-i18next.md +0 -1
  180. package/docs/tr/intlayer_with_nextjs_14.md +28 -0
  181. package/docs/tr/intlayer_with_nextjs_15.md +28 -0
  182. package/docs/tr/intlayer_with_nextjs_16.md +28 -0
  183. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1159 -0
  184. package/docs/tr/plugins/sync-json.md +6 -2
  185. package/docs/uk/compiler.md +133 -0
  186. package/docs/uk/component_i18n.md +194 -0
  187. package/docs/uk/intlayer_with_nextjs_14.md +1646 -0
  188. package/docs/uk/intlayer_with_nextjs_15.md +1910 -0
  189. package/docs/uk/intlayer_with_nextjs_16.md +1763 -0
  190. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1159 -0
  191. package/docs/uk/intlayer_with_react_native+expo.md +715 -0
  192. package/docs/uk/packages/intlayer/getConfiguration.md +145 -0
  193. package/docs/uk/vs_code_extension.md +133 -0
  194. package/docs/vi/intlayer_with_next-i18next.md +0 -1
  195. package/docs/vi/intlayer_with_nextjs_14.md +28 -0
  196. package/docs/vi/intlayer_with_nextjs_15.md +28 -0
  197. package/docs/vi/intlayer_with_nextjs_16.md +28 -0
  198. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1151 -0
  199. package/docs/vi/plugins/sync-json.md +6 -2
  200. package/docs/zh/intlayer_with_next-i18next.md +0 -1
  201. package/docs/zh/intlayer_with_nextjs_14.md +28 -0
  202. package/docs/zh/intlayer_with_nextjs_15.md +28 -0
  203. package/docs/zh/intlayer_with_nextjs_16.md +28 -0
  204. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1206 -0
  205. package/docs/zh/plugins/sync-json.md +9 -5
  206. package/frequent_questions/ar/SSR_Next_no_[locale].md +1 -1
  207. package/frequent_questions/de/SSR_Next_no_[locale].md +1 -1
  208. package/frequent_questions/en/SSR_Next_no_[locale].md +1 -1
  209. package/frequent_questions/en-GB/SSR_Next_no_[locale].md +1 -1
  210. package/frequent_questions/es/SSR_Next_no_[locale].md +1 -1
  211. package/frequent_questions/fr/SSR_Next_no_[locale].md +1 -1
  212. package/frequent_questions/hi/SSR_Next_no_[locale].md +1 -1
  213. package/frequent_questions/id/SSR_Next_no_[locale].md +1 -1
  214. package/frequent_questions/it/SSR_Next_no_[locale].md +1 -1
  215. package/frequent_questions/ja/SSR_Next_no_[locale].md +1 -1
  216. package/frequent_questions/ko/SSR_Next_no_[locale].md +1 -1
  217. package/frequent_questions/pl/SSR_Next_no_[locale].md +1 -1
  218. package/frequent_questions/pt/SSR_Next_no_[locale].md +1 -1
  219. package/frequent_questions/ru/SSR_Next_no_[locale].md +1 -1
  220. package/frequent_questions/tr/SSR_Next_no_[locale].md +1 -1
  221. package/frequent_questions/vi/SSR_Next_no_[locale].md +1 -1
  222. package/frequent_questions/zh/SSR_Next_no_[locale].md +1 -1
  223. package/package.json +6 -6
  224. package/src/generated/blog.entry.ts +29 -0
  225. package/src/generated/docs.entry.ts +119 -0
  226. package/src/generated/frequentQuestions.entry.ts +15 -0
  227. package/src/generated/legal.entry.ts +2 -0
@@ -108,18 +108,22 @@ syncJSON({
108
108
  source: ({ key, locale }) => string, // erforderlich
109
109
  location?: string, // optionales Label, Standard: "plugin"
110
110
  priority?: number, // optionale Priorität zur Konfliktlösung, Standard: 0
111
- format?: 'intlayer' | 'icu' | 'i18next', // optionaler Formatierer, Standard: 'intlayer'
111
+ format?: 'intlayer' | 'icu' | 'i18next', // optionaler Formatierer, verwendet für Intlayer-Runtime-Kompatibilität
112
112
  });
113
113
  ```
114
114
 
115
115
  #### `format` ('intlayer' | 'icu' | 'i18next')
116
116
 
117
- Gibt den Formatierer an, der für den Wörterbuchinhalt bei der Synchronisierung von JSON-Dateien verwendet werden soll. Dies ermöglicht die Verwendung verschiedener Nachrichtenformatierungssyntaxen, die mit verschiedenen i18n-Bibliotheken kompatibel sind.
117
+ Gibt den Formatierer an, der für den Wörterbuchinhalt bei der Synchronisierung von JSON-Dateien verwendet werden soll. Dies ermöglicht die Verwendung verschiedener Nachrichtenformatierungssyntaxen, die mit der Intlayer-Runtime kompatibel sind.
118
118
 
119
+ - `undefined`: Es wird kein Formatierer verwendet, der JSON-Inhalt wird unverändert verwendet.
119
120
  - `'intlayer'`: Der Standard-Intlayer-Formatierer (Standard).
120
121
  - `'icu'`: Verwendet ICU-Nachrichtenformatierung (kompatibel mit Bibliotheken wie react-intl, vue-i18n).
121
122
  - `'i18next'`: Verwendet i18next-Nachrichtenformatierung (kompatibel mit i18next, next-i18next, Solid-i18next).
122
123
 
124
+ > Beachten Sie, dass die Verwendung eines Formatierers Ihren JSON-Inhalt bei Ein- und Ausgabe transformiert. Bei komplexen JSON-Regeln wie ICU-Pluralen kann das Parsing keine 1-zu-1-Zuordnung zwischen Ein- und Ausgabe garantieren.
125
+ > Wenn Sie die Intlayer-Runtime nicht verwenden, sollten Sie möglicherweise keinen Formatierer festlegen.
126
+
123
127
  **Beispiel:**
124
128
 
125
129
  ```ts
@@ -592,7 +592,6 @@ const config: IntlayerConfig = {
592
592
  },
593
593
  plugins: [
594
594
  syncJSON({
595
- format: "i18next",
596
595
  source: ({ locale }) => `./locales/${locale}.json`,
597
596
  }),
598
597
  ],
@@ -105,6 +105,34 @@ bunx intlayer init
105
105
 
106
106
  ### Step 2: Configure Your Project
107
107
 
108
+ Here is the final structure that we will make:
109
+
110
+ ```bash
111
+ .
112
+ ├── src
113
+ │ ├── app
114
+ │ │ ├── [locale]
115
+ │ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
116
+ │ │ │ ├── page.content.ts
117
+ │ │ │ └── page.tsx
118
+ │ │ └── layout.tsx # Root layout for style and global providers
119
+ │ ├── components
120
+ │ │ ├── client-component-example.content.ts
121
+ │ │ ├── ClientComponentExample.tsx
122
+ │ │ ├── LocaleSwitcher
123
+ │ │ │ ├── localeSwitcher.content.ts
124
+ │ │ │ └── LocaleSwitcher.tsx
125
+ │ │ ├── server-component-example.content.ts
126
+ │ │ └── ServerComponentExample.tsx
127
+ │ └── middleware.ts
128
+ ├── intlayer.config.ts
129
+ ├── next.config.ts
130
+ ├── package.json
131
+ └── tsconfig.json
132
+ ```
133
+
134
+ > If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
135
+
108
136
  Create a config file to configure the languages of your application:
109
137
 
110
138
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -126,6 +126,34 @@ bunx intlayer init
126
126
 
127
127
  ### Step 2: Configure Your Project
128
128
 
129
+ Here is the final structure that we will make:
130
+
131
+ ```bash
132
+ .
133
+ ├── src
134
+ │ ├── app
135
+ │ │ ├── [locale]
136
+ │ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
137
+ │ │ │ ├── page.content.ts
138
+ │ │ │ └── page.tsx
139
+ │ │ └── layout.tsx # Root layout for style and global providers
140
+ │ ├── components
141
+ │ │ ├── client-component-example.content.ts
142
+ │ │ ├── ClientComponentExample.tsx
143
+ │ │ ├── LocaleSwitcher
144
+ │ │ │ ├── localeSwitcher.content.ts
145
+ │ │ │ └── LocaleSwitcher.tsx
146
+ │ │ ├── server-component-example.content.ts
147
+ │ │ └── ServerComponentExample.tsx
148
+ │ └── middleware.ts
149
+ ├── intlayer.config.ts
150
+ ├── next.config.ts
151
+ ├── package.json
152
+ └── tsconfig.json
153
+ ```
154
+
155
+ > If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
156
+
129
157
  Create a config file to configure the languages of your application:
130
158
 
131
159
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
@@ -67,7 +67,9 @@ With Intlayer, you can:
67
67
  - **Ensure TypeScript support** with autogenerated types, improving autocompletion and error detection.
68
68
  - **Benefit from advanced features**, like dynamic locale detection and switching.
69
69
 
70
- > Intlayer is compatible with Next.js 12, 13, 14, and 16. If you are using Next.js Page Router, you can refer to this [guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_page_router.md). For Next.js 12, 13, 14 with App Router, refer to this [guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_14.md).
70
+ > Intlayer is compatible with Next.js 12, 13, 14, and 16. If you are using Next.js Page Router, you can refer to this [guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_page_router.md).
71
+ > Locale routing is useful for SEO, bundle size, and performance. If you don't need it, you can refer to this [guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md).
72
+ > For Next.js 12, 13, 14 with App Router, refer to this [guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_14.md).
71
73
 
72
74
  ---
73
75
 
@@ -107,6 +109,34 @@ bunx intlayer init
107
109
 
108
110
  ### Step 2: Configure Your Project
109
111
 
112
+ Here is the final structure that we will make:
113
+
114
+ ```bash
115
+ .
116
+ ├── src
117
+ │ ├── app
118
+ │ │ ├── [locale]
119
+ │ │ │ ├── layout.tsx # Locale layout for the Intlayer provider
120
+ │ │ │ ├── page.content.ts
121
+ │ │ │ └── page.tsx
122
+ │ │ └── layout.tsx # Root layout for style and global providers
123
+ │ ├── components
124
+ │ │ ├── client-component-example.content.ts
125
+ │ │ ├── ClientComponentExample.tsx
126
+ │ │ ├── LocaleSwitcher
127
+ │ │ │ ├── localeSwitcher.content.ts
128
+ │ │ │ └── LocaleSwitcher.tsx
129
+ │ │ ├── server-component-example.content.ts
130
+ │ │ └── ServerComponentExample.tsx
131
+ │ └── proxy.ts
132
+ ├── intlayer.config.ts
133
+ ├── next.config.ts
134
+ ├── package.json
135
+ └── tsconfig.json
136
+ ```
137
+
138
+ > If you don't want locale routing, intlayer can be used as a simple provider / hook. See [this guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_no_locale_path.md) for more details.
139
+
110
140
  Create a config file to configure the languages of your application:
111
141
 
112
142
  ```typescript fileName="intlayer.config.ts" codeFormat="typescript"