@intlayer/docs 9.2.0 → 9.3.1

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 (233) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/index.md +1 -1
  3. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  4. package/blog/de/index.md +1 -1
  5. package/blog/en/index.md +1 -1
  6. package/blog/en-GB/index.md +1 -1
  7. package/blog/es/index.md +1 -1
  8. package/blog/fr/index.md +1 -1
  9. package/blog/hi/index.md +1 -1
  10. package/blog/id/index.md +1 -1
  11. package/blog/it/index.md +1 -1
  12. package/blog/ja/index.md +1 -1
  13. package/blog/ko/index.md +1 -1
  14. package/blog/pl/index.md +1 -1
  15. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  16. package/blog/pt/index.md +1 -1
  17. package/blog/ru/index.md +1 -1
  18. package/blog/uk/index.md +1 -1
  19. package/blog/vi/index.md +1 -1
  20. package/blog/zh/index.md +1 -1
  21. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  22. package/dist/cjs/authors2.cjs +0 -1
  23. package/dist/cjs/common.cjs +24 -1
  24. package/dist/cjs/common.cjs.map +1 -1
  25. package/dist/cjs/generated/blog.entry.cjs +35 -6
  26. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  27. package/dist/cjs/generated/docs.entry.cjs +35 -6
  28. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  29. package/dist/cjs/generated/frequentQuestions.entry.cjs +35 -6
  30. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  31. package/dist/cjs/generated/legal.entry.cjs +35 -6
  32. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  33. package/dist/esm/common.mjs +24 -1
  34. package/dist/esm/common.mjs.map +1 -1
  35. package/dist/esm/generated/blog.entry.mjs +35 -6
  36. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  37. package/dist/esm/generated/docs.entry.mjs +35 -6
  38. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  39. package/dist/esm/generated/frequentQuestions.entry.mjs +35 -6
  40. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  41. package/dist/esm/generated/legal.entry.mjs +35 -6
  42. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  43. package/dist/types/common.d.ts.map +1 -1
  44. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  45. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  46. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  47. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  48. package/docs/ar/bundle_optimization.md +58 -25
  49. package/docs/ar/configuration.md +10 -10
  50. package/docs/ar/interest_of_intlayer.md +24 -22
  51. package/docs/ar/intlayer_with_express.md +1 -1
  52. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  53. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  54. package/docs/ar/intlayer_with_tanstack.md +5 -3
  55. package/docs/ar/live-sync.md +4 -0
  56. package/docs/ar/lsp.md +114 -175
  57. package/docs/ar/readme.md +25 -25
  58. package/docs/bn/bundle_optimization.md +58 -25
  59. package/docs/bn/configuration.md +10 -10
  60. package/docs/bn/interest_of_intlayer.md +24 -22
  61. package/docs/cs/bundle_optimization.md +58 -25
  62. package/docs/cs/configuration.md +10 -10
  63. package/docs/cs/interest_of_intlayer.md +24 -22
  64. package/docs/de/bundle_optimization.md +58 -25
  65. package/docs/de/configuration.md +10 -10
  66. package/docs/de/interest_of_intlayer.md +24 -22
  67. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  68. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  69. package/docs/de/intlayer_with_tanstack.md +5 -3
  70. package/docs/de/live-sync.md +4 -0
  71. package/docs/de/lsp.md +111 -172
  72. package/docs/de/readme.md +24 -24
  73. package/docs/en/bundle_optimization.md +51 -23
  74. package/docs/en/configuration.md +10 -10
  75. package/docs/en/interest_of_intlayer.md +24 -22
  76. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  77. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  78. package/docs/en/intlayer_with_tanstack.md +5 -3
  79. package/docs/en/live-sync.md +4 -0
  80. package/docs/en/lsp.md +109 -170
  81. package/docs/en/readme.md +24 -24
  82. package/docs/en-GB/bundle_optimization.md +58 -25
  83. package/docs/en-GB/configuration.md +10 -10
  84. package/docs/en-GB/interest_of_intlayer.md +24 -22
  85. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  86. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  87. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  88. package/docs/en-GB/live-sync.md +4 -0
  89. package/docs/en-GB/lsp.md +109 -170
  90. package/docs/en-GB/readme.md +24 -24
  91. package/docs/es/bundle_optimization.md +58 -25
  92. package/docs/es/configuration.md +10 -10
  93. package/docs/es/interest_of_intlayer.md +24 -22
  94. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  95. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  96. package/docs/es/intlayer_with_tanstack.md +5 -3
  97. package/docs/es/live-sync.md +4 -0
  98. package/docs/es/lsp.md +114 -175
  99. package/docs/es/readme.md +24 -24
  100. package/docs/fr/bundle_optimization.md +58 -25
  101. package/docs/fr/configuration.md +10 -10
  102. package/docs/fr/interest_of_intlayer.md +24 -22
  103. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  104. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  105. package/docs/fr/intlayer_with_tanstack.md +5 -3
  106. package/docs/fr/live-sync.md +4 -0
  107. package/docs/fr/lsp.md +110 -171
  108. package/docs/fr/readme.md +24 -24
  109. package/docs/hi/bundle_optimization.md +58 -25
  110. package/docs/hi/configuration.md +10 -10
  111. package/docs/hi/interest_of_intlayer.md +24 -22
  112. package/docs/hi/intlayer_with_express.md +1 -1
  113. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  114. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  115. package/docs/hi/intlayer_with_tanstack.md +5 -3
  116. package/docs/hi/live-sync.md +4 -0
  117. package/docs/hi/lsp.md +113 -174
  118. package/docs/hi/readme.md +24 -24
  119. package/docs/id/bundle_optimization.md +58 -25
  120. package/docs/id/configuration.md +10 -10
  121. package/docs/id/interest_of_intlayer.md +24 -22
  122. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  123. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  124. package/docs/id/intlayer_with_tanstack.md +5 -3
  125. package/docs/id/live-sync.md +4 -0
  126. package/docs/id/lsp.md +113 -174
  127. package/docs/id/readme.md +24 -24
  128. package/docs/it/bundle_optimization.md +58 -25
  129. package/docs/it/configuration.md +10 -10
  130. package/docs/it/interest_of_intlayer.md +24 -22
  131. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  132. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  133. package/docs/it/intlayer_with_tanstack.md +5 -3
  134. package/docs/it/live-sync.md +4 -0
  135. package/docs/it/lsp.md +115 -176
  136. package/docs/it/readme.md +24 -24
  137. package/docs/ja/bundle_optimization.md +58 -25
  138. package/docs/ja/configuration.md +10 -10
  139. package/docs/ja/interest_of_intlayer.md +24 -22
  140. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  141. package/docs/ja/intlayer_with_tanstack.md +5 -3
  142. package/docs/ja/live-sync.md +4 -0
  143. package/docs/ja/lsp.md +113 -174
  144. package/docs/ja/readme.md +24 -24
  145. package/docs/ko/bundle_optimization.md +58 -25
  146. package/docs/ko/configuration.md +10 -10
  147. package/docs/ko/interest_of_intlayer.md +24 -22
  148. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  149. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  150. package/docs/ko/intlayer_with_tanstack.md +5 -3
  151. package/docs/ko/live-sync.md +4 -0
  152. package/docs/ko/lsp.md +112 -173
  153. package/docs/ko/readme.md +24 -24
  154. package/docs/nl/bundle_optimization.md +58 -25
  155. package/docs/nl/configuration.md +10 -10
  156. package/docs/nl/interest_of_intlayer.md +24 -22
  157. package/docs/pl/bundle_optimization.md +58 -25
  158. package/docs/pl/configuration.md +10 -10
  159. package/docs/pl/interest_of_intlayer.md +4 -2
  160. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  161. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  162. package/docs/pl/intlayer_with_tanstack.md +5 -3
  163. package/docs/pl/live-sync.md +4 -0
  164. package/docs/pl/lsp.md +115 -176
  165. package/docs/pl/readme.md +24 -24
  166. package/docs/pt/bundle_optimization.md +58 -24
  167. package/docs/pt/configuration.md +10 -10
  168. package/docs/pt/interest_of_intlayer.md +24 -22
  169. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  170. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  171. package/docs/pt/intlayer_with_tanstack.md +5 -3
  172. package/docs/pt/live-sync.md +4 -0
  173. package/docs/pt/lsp.md +113 -174
  174. package/docs/pt/readme.md +24 -24
  175. package/docs/ru/bundle_optimization.md +58 -25
  176. package/docs/ru/configuration.md +10 -10
  177. package/docs/ru/interest_of_intlayer.md +24 -22
  178. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  179. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  180. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  181. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  182. package/docs/ru/intlayer_with_tanstack.md +5 -3
  183. package/docs/ru/live-sync.md +4 -0
  184. package/docs/ru/lsp.md +112 -173
  185. package/docs/ru/readme.md +24 -24
  186. package/docs/tr/bundle_optimization.md +58 -25
  187. package/docs/tr/configuration.md +10 -10
  188. package/docs/tr/interest_of_intlayer.md +24 -22
  189. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  190. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  191. package/docs/tr/intlayer_with_tanstack.md +5 -3
  192. package/docs/tr/live-sync.md +4 -0
  193. package/docs/tr/lsp.md +113 -174
  194. package/docs/tr/readme.md +24 -24
  195. package/docs/uk/bundle_optimization.md +58 -25
  196. package/docs/uk/configuration.md +10 -10
  197. package/docs/uk/interest_of_intlayer.md +4 -2
  198. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  199. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  200. package/docs/uk/intlayer_with_tanstack.md +5 -3
  201. package/docs/uk/live-sync.md +4 -0
  202. package/docs/uk/lsp.md +113 -174
  203. package/docs/uk/per_locale_file.md +1 -1
  204. package/docs/uk/readme.md +24 -24
  205. package/docs/ur/bundle_optimization.md +58 -25
  206. package/docs/ur/configuration.md +10 -10
  207. package/docs/ur/interest_of_intlayer.md +24 -22
  208. package/docs/vi/bundle_optimization.md +58 -25
  209. package/docs/vi/configuration.md +10 -10
  210. package/docs/vi/interest_of_intlayer.md +24 -22
  211. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  212. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  213. package/docs/vi/intlayer_with_tanstack.md +5 -3
  214. package/docs/vi/live-sync.md +4 -0
  215. package/docs/vi/lsp.md +115 -176
  216. package/docs/vi/readme.md +24 -24
  217. package/docs/zh/bundle_optimization.md +58 -25
  218. package/docs/zh/configuration.md +10 -10
  219. package/docs/zh/interest_of_intlayer.md +24 -22
  220. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  221. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  222. package/docs/zh/intlayer_with_tanstack.md +5 -3
  223. package/docs/zh/live-sync.md +4 -0
  224. package/docs/zh/lsp.md +113 -174
  225. package/docs/zh/readme.md +21 -21
  226. package/docs/zh-TW/bundle_optimization.md +58 -25
  227. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  228. package/package.json +7 -7
  229. package/src/common.ts +39 -2
  230. package/src/generated/blog.entry.ts +39 -7
  231. package/src/generated/docs.entry.ts +39 -7
  232. package/src/generated/frequentQuestions.entry.ts +39 -7
  233. package/src/generated/legal.entry.ts +39 -7
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-11-25
3
- updatedAt: 2026-06-07
3
+ updatedAt: 2026-08-09
4
4
  title: i18n बंडल साइज़ और परफॉरमेंस ऑप्टिमाइज़ेशन
5
5
  description: अंतर्राष्ट्रीयकरण (i18n) कंटेंट को ऑप्टिमाइज़ करके अपने एप्लिकेशन के बंडल साइज़ को कम करें। जानें कि Intlayer के साथ डिक्शनरी के लिए ट्री शेकिंग (tree shaking) और लेज़ी लोडिंग (lazy loading) का उपयोग कैसे करें।
6
6
  keywords:
@@ -16,6 +16,12 @@ slugs:
16
16
  - concept
17
17
  - bundle-optimization
18
18
  history:
19
+ - version: 9.2.1
20
+ date: 2026-08-09
21
+ changes: "`purge` और `minify` अब `@intlayer/swc` के माध्यम से Next.js पर काम करते हैं — `babel.config.js` की आवश्यकता नहीं"
22
+ - version: 8.12.0
23
+ date: 2026-06-24
24
+ changes: "संदर्भ तालिकाओं में Babel प्लगइन्स को आवश्यक पाइपलाइन क्रम में सूचीबद्ध करें (extract → purge → minify → optimize)"
19
25
  - version: 8.12.0
20
26
  date: 2026-06-07
21
27
  changes: "Babel/Webpack के लिए `intlayerPurgeBabelPlugin` और `intlayerMinifyBabelPlugin` जोड़ा गया; प्लगइन पाइपलाइन को स्पष्ट किया गया"
@@ -191,12 +197,14 @@ Intlayer का बिल्ड ऑप्टिमाइज़ेशन कई
191
197
 
192
198
  इनका उपयोग सीधे तौर पर Webpack-आधारित सेटअप (Babel के साथ Next.js, CRA, कस्टम Webpack, आदि) के लिए `babel.config.js` में किया जाता है।
193
199
 
200
+ नीचे दी गई तालिका उन्हें आवश्यक पाइपलाइन क्रम में सूचीबद्ध करती है (वही क्रम जिसमें उन्हें `babel.config.js` में आना चाहिए):
201
+
194
202
  | प्लगइन | यह क्या करता है |
195
203
  | :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |
196
204
  | `intlayerExtractBabelPlugin` | `.content.ts` फ़ाइलों को स्कैन करता है और कंपाइल की गई डिक्शनरी को `.intlayer/` में लिखता है |
197
- | `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` को `useDictionary(hash)` में फिर से लिखता है (rewrite) और मिलान वाली डिक्शनरी का `import` इंजेक्ट करता है |
198
205
  | `intlayerPurgeBabelPlugin` | सभी स्रोत (source) फ़ाइलों को स्कैन करता है, संकलित (compiled) `.intlayer/**/*.json` डिक्शनरी फ़ाइलों से **अप्रयुक्त कंटेंट फ़ील्ड** को हटा देता है |
199
206
  | `intlayerMinifyBabelPlugin` | JSON फ़ाइलों और स्रोत कोड दोनों में **कंटेंट फ़ील्ड कीज़ (keys) का नाम बदलकर** छोटे अल्फाबेटिकल उपनाम (alias) कर देता है (जैसे `title` → `a`) |
207
+ | `intlayerOptimizeBabelPlugin` | `useIntlayer('key')` को `useDictionary(hash)` में फिर से लिखता है (rewrite) और मिलान वाली डिक्शनरी का `import` इंजेक्ट करता है |
200
208
 
201
209
  > **प्लगइन का क्रम महत्वपूर्ण है।** आपके `babel.config.js` में purge और minify प्लगइन ऑप्टिमाइज़ (optimize) प्लगइन से **पहले** आने चाहिए। ऑप्टिमाइज़ पास `useIntlayer('key')` को एक अपारदर्शी (opaque) `useDictionary(hash)` कॉल से बदल देता है, जिससे डिक्शनरी की-की (key) जानकारी मिट जाती है, जिसकी आवश्यकता purge और minify पास को यह पहचानने के लिए होती है कि किन फ़ील्ड्स का उपयोग किया जा रहा है।
202
210
 
@@ -205,9 +213,9 @@ Intlayer का बिल्ड ऑप्टिमाइज़ेशन कई
205
213
  | Options helper | किसके साथ उपयोग किया जाता है |
206
214
  | :--------------------------- | :---------------------------- |
207
215
  | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
208
- | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
209
216
  | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
210
217
  | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
218
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
211
219
 
212
220
  ### Vite प्लगइन्स (`vite-intlayer`)
213
221
 
@@ -220,6 +228,20 @@ Vite उपयोगकर्ता **इन्हें कभी भी सी
220
228
  | Dictionary minify | `intlayerMinifyBabelPlugin` के JSON राइट पास के समान |
221
229
  | Babel transform | `intlayerMinifyBabelPlugin` के स्रोत कोड का नाम बदलने और `intlayerOptimizeBabelPlugin` के समान |
222
230
 
231
+ ### SWC प्लगइन (`@intlayer/swc`)
232
+
233
+ Next.js उपयोगकर्ता भी **इन्हें कभी सीधे कॉन्फ़िगर नहीं करते**। **v9.2.1** से, `next.config.ts` में `withIntlayer()` केवल `build.purge` और `build.minify` फ़्लैग्स के आधार पर पूरी पाइपलाइन चलाता है — purge, minify और import पुनर्लेखन।
234
+
235
+ काम दो हिस्सों में बँटा है, क्योंकि एक SWC Wasm प्लगइन एक बार में एक ही फ़ाइल रूपांतरित करता है और उसके पास फ़ाइल सिस्टम तक पहुँच नहीं होती:
236
+
237
+ | चरण | कहाँ चलता है | क्या करता है |
238
+ | :--------------------------------------- | :----------------------------- | :--------------------------------------------------------------------------------------------------------- |
239
+ | उपयोग विश्लेषण + JSON purge/minify | Node, `withIntlayer()` के भीतर | हर कंपोनेंट स्रोत फ़ाइल पढ़ता है, `.intlayer/**/*.json` को पुनः लिखता है, और पुनर्नामकरण तालिकाएँ बनाता है |
240
+ | स्रोत पुनर्लेखन (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | पुनर्नामकरण तालिकाओं को आपके कोड में संबंधित प्रॉपर्टी एक्सेस पर लागू करता है |
241
+ | Import पुनर्लेखन (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | `intlayerOptimizeBabelPlugin` के समान |
242
+
243
+ यह तय करना कि _कौन-से_ फ़ील्ड अप्रयुक्त हैं और प्रत्येक को _कौन-सा_ उपनाम मिलेगा, इसके लिए फ़ाइलों के बीच स्थिति और फ़ाइल I/O चाहिए; इसलिए वह आधा हिस्सा Node में चलता है और SWC प्लगइन को केवल परिणामी तालिकाएँ मिलती हैं।
244
+
223
245
  ## प्लेटफ़ॉर्म के अनुसार सेटअप
224
246
 
225
247
  <Tabs>
@@ -227,10 +249,12 @@ Vite उपयोगकर्ता **इन्हें कभी भी सी
227
249
 
228
250
  ### Next.js
229
251
 
230
- Next.js को ऑप्टिमाइज़ (import rewrite) पास के लिए `@intlayer/swc` प्लगइन की आवश्यकता होती है, क्योंकि Next.js बिल्ड के लिए SWC का उपयोग करता है।
252
+ Next.js को `@intlayer/swc` प्लगइन चाहिए, क्योंकि Next.js बिल्ड के लिए SWC का उपयोग करता है। **v9.2.1** से यह अकेला पैकेज पूरी पाइपलाइन को कवर करता है — ऑप्टिमाइज़ (import पुनर्लेखन), purge और minify।
231
253
 
232
254
  > यह प्लगइन डिफ़ॉल्ट रूप से इंस्टॉल नहीं होता है क्योंकि SWC प्लगइन्स अभी भी Next.js के लिए प्रायोगिक (experimental) हैं। भविष्य में यह बदल सकता है।
233
255
 
256
+ > **Next.js 16.1.0 न्यूनतम संस्करण है।** यह SWC के फ़ॉरवर्ड-संगत Wasm प्लगइन ABI पर बना पहला रिलीज़ है; इससे पुराने रिलीज़ प्लगइन को अस्वीकार कर देते हैं। `withIntlayer` आपके प्रोजेक्ट का Next.js संस्करण पढ़ता है और 16.1.0 से नीचे प्लगइन को पंजीकृत ही नहीं करता — वे बिल्ड फिर भी सफल होते हैं, बस बंडल ऑप्टिमाइज़ेशन के बिना चलते हैं।
257
+
234
258
  <Tabs>
235
259
  <Tab value="npm">
236
260
 
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
265
289
 
266
290
  एक बार इंस्टॉल हो जाने पर, Intlayer स्वचालित रूप से प्लगइन का पता लगाएगा और उसका उपयोग करेगा।
267
291
 
268
- **purge और minify** पास (फ़ील्ड हटाना और फ़ील्ड का नाम बदलना) के लिए, इसके साथ `@intlayer/babel` इंस्टॉल करें और Babel प्लगइन्स जोड़ें। क्योंकि Next.js ट्रांसफ़ॉर्मेशन के लिए SWC का उपयोग करता है लेकिन फिर भी प्लगइन कॉन्फ़िगरेशन के लिए `babel.config.js` का मूल्यांकन (evaluates) करता है, Babel प्लगइन्स SWC से पहले एक प्री-पास के रूप में चलते हैं।
292
+ **Purge और minify** चरणों (फ़ील्ड हटाना और फ़ील्ड का नाम बदलना) के लिए किसी अतिरिक्त पैकेज या `babel.config.js` की आवश्यकता नहीं है। अपने कॉन्फ़िग को `withIntlayer` से लपेटें और `intlayer.config.ts` में फ़्लैग्स चालू करें:
269
293
 
270
- ```bash packageManager="npm"
271
- npm install -D @intlayer/babel
294
+ ```typescript fileName="next.config.ts"
295
+ import { withIntlayer } from "next-intlayer/server";
296
+ import type { NextConfig } from "next";
297
+
298
+ const nextConfig: NextConfig = {/* आपका कॉन्फ़िग */};
299
+
300
+ export default withIntlayer(nextConfig);
272
301
  ```
273
302
 
274
- ```javascript fileName="babel.config.js"
275
- const {
276
- intlayerPurgeBabelPlugin,
277
- intlayerMinifyBabelPlugin,
278
- getPurgePluginOptions,
279
- getMinifyPluginOptions,
280
- } = require("@intlayer/babel");
303
+ ```typescript fileName="intlayer.config.ts"
304
+ import type { IntlayerConfig } from "intlayer";
281
305
 
282
- module.exports = {
283
- presets: ["next/babel"],
284
- plugins: [
285
- // Purge: .intlayer/**/*.json से अप्रयुक्त कंटेंट फ़ील्ड हटाएँ
286
- [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
287
- // Minify: JSON + स्रोत कोड में कंटेंट फ़ील्ड कीज़ (keys) का नाम बदलें
288
- [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
289
- // नोट: यहाँ intlayerOptimizeBabelPlugin की आवश्यकता नहीं है क्योंकि
290
- // @intlayer/swc ही useIntlayer → useDictionary रीराइट (rewrite) को संभालता है।
291
- ],
306
+ const config: IntlayerConfig = {
307
+ build: {
308
+ purge: true, // बंडल किए गए JSON से अप्रयुक्त कंटेंट फ़ील्ड हटाता है
309
+ minify: true, // कंटेंट फ़ील्ड कुंजियों का नाम छोटे उपनामों में बदलता है
310
+ },
292
311
  };
312
+
313
+ export default config;
293
314
  ```
294
315
 
316
+ `next build` के दौरान, `withIntlayer` आपके स्रोतों का विश्लेषण करता है, संकलित शब्दकोशों को पुनः लिखता है, और परिणामी फ़ील्ड-पुनर्नामकरण तालिकाएँ `@intlayer/swc` को भेजता है, जो आपके कोड में संबंधित प्रॉपर्टी एक्सेस को अपडेट करता है।
317
+
318
+ > `withIntlayerSync` नहीं, बल्कि एसिंक्रोनस `withIntlayer` का उपयोग करें। सिंक्रोनस संस्करण विश्लेषण पाइपलाइन नहीं चलाता, इसलिए उसके साथ purge और minify का कोई प्रभाव नहीं होता।
319
+
320
+ > Purge और minify केवल `next build` पर चलते हैं — ऑप्टिमाइज़ पाइपलाइन `next dev` के दौरान बंद रहती है।
321
+
322
+ > जब कम्पैट-अडैप्टर कॉलर्स कॉन्फ़िगर किए जाते हैं तब भी ये अक्षम हो जाते हैं (`swcExtraCallers`, जिन्हें `@intlayer/next-intl` या `@intlayer/react-i18next` जैसे कम्पैट पैकेज सेट करते हैं): वे कॉल साइट्स उपयोग विश्लेषक को दिखाई नहीं देतीं, इसलिए purge उन फ़ील्ड्स को हटा देगा जिन्हें कोड अब भी पढ़ता है। Import पुनर्लेखन सक्रिय रहता है।
323
+
324
+ **पुराने संस्करणों (9.2.1 से पहले)** में `@intlayer/babel` और एक `babel.config.js` की आवश्यकता होती थी जो `intlayerPurgeBabelPlugin` और `intlayerMinifyBabelPlugin` घोषित करे। अब उस फ़ाइल की आवश्यकता नहीं है और उसे हटाया जा सकता है।
325
+
295
326
  </Tab>
296
327
  <Tab value="vite">
297
328
 
@@ -447,6 +478,8 @@ export default config;
447
478
 
448
479
  > जब `optimize` `false` होता है या जब `editor.enabled` `true` होता है (विज़ुअल एडिटर को संपादन (editing) की अनुमति देने के लिए मूल फ़ील्ड नामों की आवश्यकता होती है) तो मिनिफिकेशन छोड़ दिया जाता है (skipped)।
449
480
 
481
+ > Next.js पर, minification तब भी छोड़ दिया जाता है जब `@intlayer/swc` इंस्टॉल न हो या लोड न हो सके (16.1.0 से नीचे का Next.js)। स्रोत एक्सेस को पुनः लिखने वाला आधा हिस्सा यही प्लगइन है, इसलिए इसके बिना शब्दकोशों का नाम बदलने पर आपका कोड ऐसे फ़ील्ड नाम पढ़ता रह जाएगा जो अब मौजूद नहीं हैं।
482
+
450
483
  > `importMode: 'fetch'` के माध्यम से लोड की गई डिक्शनरी के लिए भी मिनिफिकेशन छोड़ दिया जाता है क्योंकि उनका JSON मूल फ़ील्ड नामों का उपयोग करके रिमोट API से परोसा (served) जाता है — क्लाइंट-साइड कीज़ का नाम बदलने से सर्वर/क्लाइंट अनुबंध (contract) टूट जाएगा।
451
484
 
452
485
  ### Purging (अप्रयुक्त फ़ील्ड हटाना)
@@ -475,7 +508,7 @@ export default config;
475
508
  { "title": "…", "subtitle": "…" }
476
509
  ```
477
510
 
478
- > जब `optimize` `false` होता है या जब `editor.enabled` `true` होता है तो पर्ज (Purge) छोड़ दिया जाता है (skipped)।
511
+ > जब `optimize` `false` होता है या जब `editor.enabled` `true` होता है तो पर्ज (Purge) छोड़ दिया जाता है (skipped)। Next.js पर यह तब भी छोड़ दिया जाता है जब `@intlayer/swc` उपलब्ध न हो, और जब कम्पैट-अडैप्टर कॉलर्स कॉन्फ़िगर किए गए हों।
479
512
 
480
513
  > पर्ज (Purge) को उस समय भी सुरक्षित (conservatively) रूप से छोड़ दिया जाता है जब किसी स्रोत फ़ाइल को पार्स (parse) नहीं किया जा सकता है, या जब `useIntlayer` के परिणाम को किसी वेरिएबल को सौंपा (assigned) जाता है और उन तरीकों से पास किया जाता है जिन्हें स्टेटिक एनालाइज़र ट्रैक नहीं कर सकता है (जैसे किसी ऑब्जेक्ट में स्प्रेड (spread) करना, डिस्ट्रक्चरिंग के बिना प्रोप (prop) के रूप में पास करना)। उन मामलों में, पूरी डिक्शनरी सुरक्षित (preserved) रखी जाती है।
481
514
 
@@ -404,7 +404,7 @@ const config: IntlayerConfig = {
404
404
  ai: {
405
405
  /**
406
406
  * उपयोग किया गया AI प्रदाता।
407
- * विकल्प: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
407
+ * विकल्प: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
408
408
  * डिफ़ॉल्ट: 'openai'
409
409
  */
410
410
  provider: "openai",
@@ -1025,15 +1025,15 @@ Intlayer अधिकतम लचीलेपन के लिए कई AI प
1025
1025
  - **Together.ai**
1026
1026
  - **LM Studio**
1027
1027
 
1028
- | फ़ील्ड | विवरण | टाइप | डिफ़ॉल्ट | उदाहरण | टिप्पणी |
1029
- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1030
- | `provider` | Intlayer AI सुविधाओं के लिए उपयोग किया जाने वाला प्रदाता। | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` | `undefined` | `'anthropic'` | विभिन्न प्रदाताओं को विभिन्न API की की आवश्यकता होती है और उनकी कीमतें अलग होती हैं। |
1031
- | `model` | AI सुविधाओं के लिए उपयोग किया जाने वाला मॉडल। | `string` | कोई नहीं | `'gpt-4o-2024-11-20'` | विशिष्ट मॉडल प्रदाता पर निर्भर करता है। |
1032
- | `temperature` | AI प्रतिक्रियाओं की यादृच्छिकता (randomness) को नियंत्रित करता है। | `number` | कोई नहीं | `0.1` | उच्च तापमान = अधिक रचनात्मक और कम पूर्वानुमेय। |
1033
- | `apiKey` | चुने गए प्रदाता के लिए आपकी API की। | `string` | कोई नहीं | `process.env.OPENAI_API_KEY` | इसे गुप्त रखा जाना चाहिए; पर्यावरण चरों का उपयोग करें। |
1034
- | `applicationContext` | AI को अधिक सटीक अनुवाद उत्पन्न करने में मदद करने के लिए आपके एप्लिकेशन के बारे में अतिरिक्त संदर्भ (डोमेन, लक्षित दर्शक, टोन, शब्दावली)। | `string` | कोई नहीं | `'मेरा अपना एप्लिकेशन संदर्भ'` | नियम जोड़ने के लिए उपयोग किया जा सकता है (जैसे: `"आपको URL को रूपांतरित नहीं करना चाहिए"` )। |
1035
- | `baseURL` | AI API के लिए बेस URL। | `string` | कोई नहीं | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | स्थानीय या कस्टम AI API एंडपॉइंट की ओर इशारा कर सकता है। |
1036
- | `dataSerialization` | AI सुविधाओं के लिए डेटा सीरियलाइज़ेशन प्रारूप। | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: डिफ़ॉल्ट, विश्वसनीय; अधिक टोकन का उपयोग करता है।<br/>• `'toon'`: कम टोकन, कम स्थिर।<br/>• अतिरिक्त मापदंड संदर्भ के रूप में मॉडल को पास किए जाते हैं (तर्क प्रयास आदि)। |
1028
+ | फ़ील्ड | विवरण | टाइप | डिफ़ॉल्ट | उदाहरण | टिप्पणी |
1029
+ | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1030
+ | `provider` | Intlayer AI सुविधाओं के लिए उपयोग किया जाने वाला प्रदाता। | `'openai'` &#124; <br/> `'anthropic'` &#124; <br/> `'mistral'` &#124; <br/> `'deepseek'` &#124; <br/> `'gemini'` &#124; <br/> `'ollama'` &#124; <br/> `'openrouter'` &#124; <br/> `'alibaba'` &#124; <br/> `'fireworks'` &#124; <br/> `'groq'` &#124; <br/> `'huggingface'` &#124; <br/> `'bedrock'` &#124; <br/> `'googleaistudio'` &#124; <br/> `'googlevertex'` &#124; <br/> `'togetherai'` &#124; <br/> `'lmstudio'` &#124; <br/> `'moonshotai'` | `undefined` | `'anthropic'` | विभिन्न प्रदाताओं को विभिन्न API की की आवश्यकता होती है और उनकी कीमतें अलग होती हैं। |
1031
+ | `model` | AI सुविधाओं के लिए उपयोग किया जाने वाला मॉडल। | `string` | कोई नहीं | `'gpt-4o-2024-11-20'` | विशिष्ट मॉडल प्रदाता पर निर्भर करता है। |
1032
+ | `temperature` | AI प्रतिक्रियाओं की यादृच्छिकता (randomness) को नियंत्रित करता है। | `number` | कोई नहीं | `0.1` | उच्च तापमान = अधिक रचनात्मक और कम पूर्वानुमेय। |
1033
+ | `apiKey` | चुने गए प्रदाता के लिए आपकी API की। | `string` | कोई नहीं | `process.env.OPENAI_API_KEY` | इसे गुप्त रखा जाना चाहिए; पर्यावरण चरों का उपयोग करें। |
1034
+ | `applicationContext` | AI को अधिक सटीक अनुवाद उत्पन्न करने में मदद करने के लिए आपके एप्लिकेशन के बारे में अतिरिक्त संदर्भ (डोमेन, लक्षित दर्शक, टोन, शब्दावली)। | `string` | कोई नहीं | `'मेरा अपना एप्लिकेशन संदर्भ'` | नियम जोड़ने के लिए उपयोग किया जा सकता है (जैसे: `"आपको URL को रूपांतरित नहीं करना चाहिए"` )। |
1035
+ | `baseURL` | AI API के लिए बेस URL। | `string` | कोई नहीं | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | स्थानीय या कस्टम AI API एंडपॉइंट की ओर इशारा कर सकता है। |
1036
+ | `dataSerialization` | AI सुविधाओं के लिए डेटा सीरियलाइज़ेशन प्रारूप। | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: डिफ़ॉल्ट, विश्वसनीय; अधिक टोकन का उपयोग करता है।<br/>• `'toon'`: कम टोकन, कम स्थिर।<br/>• अतिरिक्त मापदंड संदर्भ के रूप में मॉडल को पास किए जाते हैं (तर्क प्रयास आदि)। |
1037
1037
 
1038
1038
  ---
1039
1039
 
@@ -192,7 +192,7 @@ export const ComponentExample = () => {
192
192
  यह approach आपको निम्नलिखित की अनुमति देता है:
193
193
 
194
194
  1. **Development की speed को बढ़ाएं**
195
- - `.content.{{ts|mjs|cjs|json}}` files को VSCode extension का उपयोग करके बनाया जा सकता है
195
+ - `.content.{ts|js|mjs|cjs|json|tsx|jsx|md|mdx|yaml|yml}` files को VSCode extension का उपयोग करके बनाया जा सकता है
196
196
  - आपके IDE में Autocompletion AI tools (जैसे GitHub Copilot) आपकी content को declare करने में मदद कर सकते हैं, copy/paste को कम कर सकते हैं
197
197
 
198
198
  2. **अपने codebase को साफ़ करें**
@@ -216,27 +216,27 @@ export const ComponentExample = () => {
216
216
 
217
217
  ## Intlayer की अतिरिक्त विशेषताएं
218
218
 
219
- | विशेषता | विवरण |
220
- | ------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
221
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Cross-Frameworks Support**<br><br>Intlayer सभी प्रमुख frameworks और libraries के साथ संगत है, जिसमें Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, और बहुत कुछ शामिल है। |
222
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **JavaScript-Powered Content Management**<br><br>अपनी content को कुशलतापूर्वक define और manage करने के लिए JavaScript की flexibility का लाभ उठाएं। <br><br> - [Content declaration](https://intlayer.org/doc/concept/content) |
223
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>Intlayer Compiler स्वचालित रूप से components से content निकालता है और dictionary files generate करता है।<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
224
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Per-Locale Content Declaration File**<br><br>Auto generation से पहले एक बार अपनी content declare करके अपने development को तेज़ करें।<br><br> - [Per-Locale Content Declaration File](https://intlayer.org/doc/concept/per-locale-file) |
225
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Type-Safe Environment**<br><br>अपनी content definitions और code को error-free रखने के लिए TypeScript का लाभ उठाएं, साथ ही IDE autocompletion का भी लाभ लें।<br><br> - [TypeScript configuration](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
226
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Simplified Setup**<br><br>न्यूनतम configuration के साथ तेजी से शुरुआत करें। Internationalization, routing, AI, build, और content handling के लिए settings को आसानी से adjust करें। <br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
227
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Simplified Content Retrieval**<br><br>प्रत्येक content के लिए अपने `t` function को call करने की आवश्यकता नहीं। एक single hook का उपयोग करके सीधे अपनी सभी content retrieve करें।<br><br> - [React integration](https://intlayer.org/doc/environment/create-react-app) |
228
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Consistent Server Component Implementation**<br><br>Next.js server components के लिए perfectly suited, client और server दोनों components के लिए एक ही implementation का उपयोग करें, अपने `t` function को प्रत्येक server component में pass करने की आवश्यकता नहीं। <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
229
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Organized Codebase**<br><br>अपने codebase को अधिक organized रखें: 1 component = 1 dictionary एक ही folder में। उनके respective components के करीब translations maintainability और clarity को बढ़ाते हैं। <br><br> - [How Intlayer works](https://intlayer.org/doc/concept/how-works-intlayer) |
230
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Enhanced Routing**<br><br>App routing का पूर्ण support, complex application structures को seamlessly adapt करता है, Next.js, React, Vite, Vue.js, आदि के लिए।<br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
231
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown Support**<br><br>Locale files और remote Markdown को import और interpret करें multilingual content जैसे privacy policies, documentation, आदि के लिए। Markdown metadata को interpret करें और अपने code में accessible बनाएं।<br><br> - [Content files](https://intlayer.org/doc/concept/content/file) |
232
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Free Visual Editor & CMS**<br><br>एक free visual editor और CMS content writers के लिए उपलब्ध हैं, localization platform की आवश्यकता को हटाते हुए। अपनी content को Git का उपयोग करके synchronized रखें, या इसे totally या partially externalize करें CMS के साथ।<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
233
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable Content**<br><br>Tree-shakable content, final bundle के size को reduce करता है। प्रत्येक component के लिए content load करता है, अपने bundle से किसी भी unused content को exclude करता है। Lazy loading को support करता है app loading efficiency को enhance करने के लिए। <br><br> - [App build optimization](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
234
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Static Rendering**<br><br>Static Rendering को block नहीं करता। <br><br> - [Next.js integration](https://intlayer.org/doc/environment/nextjs) |
235
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI-Powered Translation**<br><br>Intlayer के advanced AI-powered translation tools का उपयोग करके अपनी website को 231 languages में transform करें, अपने own AI provider/API key का उपयोग करके। <br><br> - [CI/CD integration](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Auto fill](https://intlayer.org/doc/concept/auto-fill) |
236
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP Server Integration**<br><br>एक MCP (Model Context Protocol) server provide करता है IDE automation के लिए, अपने development environment में directly seamless content management और i18n workflows को enable करता है। <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/mcp_server.md) |
237
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode Extension**<br><br>Intlayer एक VSCode extension provide करता है आपकी content और translations को manage करने में मदद करने के लिए, अपने dictionaries को build करना, अपनी content को translate करना, और बहुत कुछ। <br><br> - [VSCode Extension](https://intlayer.org/doc/vs-code-extension) |
238
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperability**<br><br>react-i18next, next-i18next, next-intl, और react-intl के साथ interoperability allow करता है। <br><br> - [Intlayer and react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer and next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer and next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
239
- | Testing Missing Translations (CLI/CI) | ✅ CLI: npx intlayer content test (CI-friendly audit) |
219
+ | विशेषता | विवरण |
220
+ | ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
221
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Cross-Frameworks Support**<br><br>Intlayer सभी प्रमुख frameworks और libraries के साथ संगत है, जिसमें Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, और बहुत कुछ शामिल है। |
222
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **JavaScript-Powered Content Management**<br><br>अपनी content को कुशलतापूर्वक define और manage करने के लिए JavaScript की flexibility का लाभ उठाएं। <br><br> - [Content declaration](https://intlayer.org/doc/concept/content) |
223
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>Intlayer Compiler स्वचालित रूप से components से content निकालता है और dictionary files generate करता है।<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
224
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **Per-Locale Content Declaration File**<br><br>Auto generation से पहले एक बार अपनी content declare करके अपने development को तेज़ करें।<br><br> - [Per-Locale Content Declaration File](https://intlayer.org/doc/concept/per-locale-file) |
225
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Type-Safe Environment**<br><br>अपनी content definitions और code को error-free रखने के लिए TypeScript का लाभ उठाएं, साथ ही IDE autocompletion का भी लाभ लें।<br><br> - [TypeScript configuration](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
226
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Simplified Setup**<br><br>न्यूनतम configuration के साथ तेजी से शुरुआत करें। Internationalization, routing, AI, build, और content handling के लिए settings को आसानी से adjust करें। <br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
227
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Simplified Content Retrieval**<br><br>प्रत्येक content के लिए अपने `t` function को call करने की आवश्यकता नहीं। एक single hook का उपयोग करके सीधे अपनी सभी content retrieve करें।<br><br> - [React integration](https://intlayer.org/doc/environment/create-react-app) |
228
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Consistent Server Component Implementation**<br><br>Next.js server components के लिए perfectly suited, client और server दोनों components के लिए एक ही implementation का उपयोग करें, अपने `t` function को प्रत्येक server component में pass करने की आवश्यकता नहीं। <br><br> - [Server Components](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
229
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Organized Codebase**<br><br>अपने codebase को अधिक organized रखें: 1 component = 1 dictionary एक ही folder में। उनके respective components के करीब translations maintainability और clarity को बढ़ाते हैं। <br><br> - [How Intlayer works](https://intlayer.org/doc/concept/how-works-intlayer) |
230
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Enhanced Routing**<br><br>App routing का पूर्ण support, complex application structures को seamlessly adapt करता है, Next.js, React, Vite, Vue.js, आदि के लिए।<br><br> - [Explore Next.js integration](https://intlayer.org/doc/environment/nextjs) |
231
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Markdown Support**<br><br>Locale files और remote Markdown को import और interpret करें multilingual content जैसे privacy policies, documentation, आदि के लिए। Markdown metadata को interpret करें और अपने code में accessible बनाएं।<br><br> - [Content files](https://intlayer.org/doc/concept/content/file) |
232
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Free Visual Editor & CMS**<br><br>एक free visual editor और CMS content writers के लिए उपलब्ध हैं, localization platform की आवश्यकता को हटाते हुए। अपनी content को Git का उपयोग करके synchronized रखें, या इसे totally या partially externalize करें CMS के साथ।<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
233
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Tree-shakable Content**<br><br>Tree-shakable content, final bundle के size को reduce करता है। प्रत्येक component के लिए content load करता है, अपने bundle से किसी भी unused content को exclude करता है। Lazy loading को support करता है app loading efficiency को enhance करने के लिए। <br><br> - [App build optimization](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
234
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Static Rendering**<br><br>Static Rendering को block नहीं करता। <br><br> - [Next.js integration](https://intlayer.org/doc/environment/nextjs) |
235
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **AI-Powered Translation**<br><br>Intlayer के advanced AI-powered translation tools का उपयोग करके अपनी website को 231 languages में transform करें, अपने own AI provider/API key का उपयोग करके। <br><br> - [CI/CD integration](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Auto fill](https://intlayer.org/doc/concept/auto-fill) |
236
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **MCP Server Integration**<br><br>एक MCP (Model Context Protocol) server provide करता है IDE automation के लिए, अपने development environment में directly seamless content management और i18n workflows को enable करता है। <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/mcp_server.md) |
237
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **VSCode Extension**<br><br>Intlayer एक VSCode extension provide करता है आपकी content और translations को manage करने में मदद करने के लिए, अपने dictionaries को build करना, अपनी content को translate करना, और बहुत कुछ। <br><br> - [VSCode Extension](https://intlayer.org/doc/vs-code-extension) |
238
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperability**<br><br>react-i18next, next-i18next, next-intl, और react-intl के साथ interoperability allow करता है। <br><br> - [Intlayer and react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer and next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer and next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer compat adapters](https://intlayer.org/doc/compatibility) |
239
+ | Testing Missing Translations (CLI/CI) | ✅ CLI: npx intlayer content test (CI-friendly audit) |
240
240
 
241
241
  ## Intlayer की अन्य समाधानों के साथ तुलना
242
242
 
@@ -275,3 +275,5 @@ GitHub सितारे किसी प्रोजेक्ट की लो
275
275
  `intlayer` आपके `react-intl`, `react-i18next`, `next-intl`, `next-i18next`, और `vue-i18n` नेमस्पेस को प्रबंधित करने में भी मदद कर सकता है।
276
276
 
277
277
  `intlayer` का उपयोग करके, आप अपनी पसंदीदा i18n लाइब्रेरी के प्रारूप में अपनी सामग्री घोषित कर सकते हैं, और intlayer आपकी पसंद के स्थान पर आपके नेमस्पेस उत्पन्न करेगा (उदाहरण: `/messages/{{locale}}/{{namespace}}.json)।
278
+
279
+ यदि आप अपनी वर्तमान i18n लाइब्रेरी का API उपयोग करना जारी रखना चाहते हैं, तो `intlayer` **compat adapters** भी प्रदान करता है: ऐसे पैकेज जो `react-i18next`, `next-intl`, `react-intl`, `vue-i18n` और अन्य के बिल्कुल समान API उपलब्ध कराते हैं, लेकिन सामग्री Intlayer डिक्शनरी से आती है। इससे आप अपना कोड दोबारा लिखे बिना क्रमिक रूप से माइग्रेट कर सकते हैं। देखें [Compat Adapters दस्तावेज़ीकरण](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md)।
@@ -277,7 +277,7 @@ export default config;
277
277
  - अनुवादित सामग्री के **इनलाइन पूर्वावलोकन**।
278
278
  - अनुवादों को आसानी से बनाने और अपडेट करने के लिए **त्वरित क्रियाएं**।
279
279
 
280
- एक्सटेंशन का उपयोग कैसे करें, इसके लिए देखें [Intlayer VS Code एक्सटेंशन दस्तावेज़](https://intlayer.org/doc/hi/vs-code-extension)।
280
+ एक्सटेंशन का उपयोग कैसे करें, इसके लिए देखें [Intlayer VS Code एक्सटेंशन दस्तावेज़](https://intlayer.org/hi/doc/vs-code-extension)।
281
281
 
282
282
  ### Git कॉन्फ़िगरेशन
283
283
 
@@ -387,7 +387,7 @@ export const getLocale = (event: RequestEvent): Locale => {
387
387
  };
388
388
  ```
389
389
 
390
- > `getLocaleFromStorage` आपके कॉन्फ़िगरेशन के अनुसार हेडर या कुकी से locale की जांच करेगा। अधिक जानकारी के लिए देखें [Configuration](https://intlayer.org/doc/configuration)।
390
+ > `getLocaleFromStorage` आपके कॉन्फ़िगरेशन के अनुसार हेडर या कुकी से locale की जांच करेगा। अधिक जानकारी के लिए देखें [Configuration](https://intlayer.org/doc/concept/configuration)।
391
391
 
392
392
  > `localeDetector` फ़ंक्शन `Accept-Language` हेडर को प्रोसेस करेगा और सबसे उपयुक्त मैच लौटाएगा।
393
393
 
@@ -236,19 +236,21 @@ import {
236
236
  HeadContent,
237
237
  Scripts,
238
238
  createRootRouteWithContext,
239
+ getRouteApi,
239
240
  } from "@tanstack/solid-router";
240
241
  import { HydrationScript } from "solid-js/web";
241
242
  import { Suspense, type ParentComponent } from "solid-js";
242
243
  import { IntlayerProvider } from "solid-intlayer";
243
244
  import { defaultLocale, getHTMLTextDir } from "intlayer";
244
- import { Route as LocaleRoute } from "./{-$locale}/route";
245
+
246
+ const localeRoute = getRouteApi("/{-$locale}");
245
247
 
246
248
  export const Route = createRootRouteWithContext()({
247
249
  shellComponent: RootComponent,
248
250
  });
249
251
 
250
252
  const RootComponent: ParentComponent = (props) => {
251
- const params = LocaleRoute.useParams();
253
+ const params = localeRoute.useParams();
252
254
  const locale = params()?.locale ?? defaultLocale;
253
255
 
254
256
  return (
@@ -533,7 +535,7 @@ export default LocaleSwitcher;
533
535
 
534
536
  ```tsx fileName="src/routes/__root.tsx"
535
537
  const RootComponent: ParentComponent = (props) => {
536
- const params = LocaleRoute.useParams();
538
+ const params = localeRoute.useParams();
537
539
  const locale = params()?.locale ?? defaultLocale;
538
540
 
539
541
  return (
@@ -253,13 +253,15 @@ export default config;
253
253
  ```tsx fileName="src/routes/__root.tsx"
254
254
  import {
255
255
  createRootRouteWithContext,
256
+ getRouteApi,
256
257
  HeadContent,
257
258
  Scripts,
258
259
  } from "@tanstack/react-router";
259
260
  import { defaultLocale, getHTMLTextDir } from "intlayer";
260
261
  import { type ReactNode } from "react";
261
262
  import { IntlayerProvider } from "react-intlayer";
262
- import { Route as LocaleRoute } from "./{-$locale}/route";
263
+
264
+ const localeRoute = getRouteApi("/{-$locale}");
263
265
 
264
266
  export const Route = createRootRouteWithContext<{}>()({
265
267
  head: () => ({
@@ -281,7 +283,7 @@ export const Route = createRootRouteWithContext<{}>()({
281
283
  });
282
284
 
283
285
  function RootDocument({ children }: { children: ReactNode }) {
284
- const params = LocaleRoute.useParams();
286
+ const params = localeRoute.useParams();
285
287
  const locale = params?.locale ?? defaultLocale;
286
288
 
287
289
  return (
@@ -614,7 +616,7 @@ export const LocaleSwitcher: FC = () => {
614
616
 
615
617
  ```tsx fileName="src/routes/__root.tsx"
616
618
  function RootDocument({ children }: { children: ReactNode }) {
617
- const params = LocaleRoute.useParams();
619
+ const params = localeRoute.useParams();
618
620
  const locale = params?.locale ?? defaultLocale;
619
621
 
620
622
  return (
@@ -13,6 +13,10 @@ keywords:
13
13
  - Intlayer
14
14
  - Next.js
15
15
  - Vite
16
+ slugs:
17
+ - doc
18
+ - concept
19
+ - live-sync
16
20
  history:
17
21
  - version: 9.0.0
18
22
  date: 2026-07-08