@intlayer/docs 5.7.8 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/blog/ar/intlayer_with_next-i18next.md +5 -6
  2. package/blog/ar/intlayer_with_next-intl.md +3 -4
  3. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  4. package/blog/ar/intlayer_with_react-intl.md +1 -1
  5. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +96 -219
  6. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +88 -129
  7. package/blog/ar/vue-i18n_vs_intlayer.md +268 -0
  8. package/blog/de/intlayer_with_next-i18next.md +5 -6
  9. package/blog/de/intlayer_with_react-intl.md +1 -1
  10. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  11. package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  12. package/blog/de/vue-i18n_vs_intlayer.md +268 -0
  13. package/blog/en/intlayer_with_next-i18next.md +5 -6
  14. package/blog/en/intlayer_with_next-intl.md +3 -4
  15. package/blog/en/intlayer_with_react-i18next.md +1 -1
  16. package/blog/en/intlayer_with_react-intl.md +1 -1
  17. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +89 -220
  18. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +85 -123
  19. package/blog/en/vue-i18n_vs_intlayer.md +268 -0
  20. package/blog/en-GB/intlayer_with_next-i18next.md +5 -6
  21. package/blog/en-GB/intlayer_with_next-intl.md +3 -4
  22. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  23. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  24. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +85 -218
  25. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +80 -130
  26. package/blog/en-GB/vue-i18n_vs_intlayer.md +258 -0
  27. package/blog/es/intlayer_with_next-i18next.md +5 -6
  28. package/blog/es/intlayer_with_next-intl.md +3 -4
  29. package/blog/es/intlayer_with_react-i18next.md +1 -1
  30. package/blog/es/intlayer_with_react-intl.md +1 -1
  31. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  32. package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  33. package/blog/es/vue-i18n_vs_intlayer.md +268 -0
  34. package/blog/fr/intlayer_with_next-i18next.md +5 -6
  35. package/blog/fr/intlayer_with_next-intl.md +3 -4
  36. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  37. package/blog/fr/intlayer_with_react-intl.md +1 -1
  38. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  39. package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  40. package/blog/fr/vue-i18n_vs_intlayer.md +269 -0
  41. package/blog/hi/intlayer_with_next-i18next.md +5 -6
  42. package/blog/hi/intlayer_with_next-intl.md +3 -4
  43. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  44. package/blog/hi/intlayer_with_react-intl.md +1 -1
  45. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +97 -220
  46. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  47. package/blog/hi/vue-i18n_vs_intlayer.md +268 -0
  48. package/blog/it/intlayer_with_next-i18next.md +5 -6
  49. package/blog/it/intlayer_with_next-intl.md +3 -4
  50. package/blog/it/intlayer_with_react-i18next.md +1 -1
  51. package/blog/it/intlayer_with_react-intl.md +1 -1
  52. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +91 -214
  53. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +86 -127
  54. package/blog/it/vue-i18n_vs_intlayer.md +268 -0
  55. package/blog/ja/intlayer_with_next-i18next.md +5 -6
  56. package/blog/ja/intlayer_with_next-intl.md +3 -4
  57. package/blog/ja/intlayer_with_react-intl.md +1 -1
  58. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  59. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  60. package/blog/ja/vue-i18n_vs_intlayer.md +268 -0
  61. package/blog/ko/intlayer_with_next-i18next.md +5 -6
  62. package/blog/ko/intlayer_with_next-intl.md +3 -4
  63. package/blog/ko/intlayer_with_react-intl.md +1 -1
  64. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +95 -217
  65. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +89 -130
  66. package/blog/ko/vue-i18n_vs_intlayer.md +268 -0
  67. package/blog/pt/intlayer_with_next-i18next.md +5 -6
  68. package/blog/pt/intlayer_with_next-intl.md +3 -4
  69. package/blog/pt/intlayer_with_react-intl.md +1 -1
  70. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  71. package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  72. package/blog/pt/vue-i18n_vs_intlayer.md +268 -0
  73. package/blog/ru/intlayer_with_next-i18next.md +5 -6
  74. package/blog/ru/intlayer_with_next-intl.md +3 -4
  75. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  76. package/blog/ru/intlayer_with_react-intl.md +1 -1
  77. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +94 -217
  78. package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  79. package/blog/ru/vue-i18n_vs_intlayer.md +268 -0
  80. package/blog/zh/intlayer_with_next-i18next.md +5 -6
  81. package/blog/zh/intlayer_with_next-intl.md +3 -4
  82. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  83. package/blog/zh/intlayer_with_react-intl.md +1 -1
  84. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +93 -216
  85. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +87 -128
  86. package/blog/zh/vue-i18n_vs_intlayer.md +269 -0
  87. package/dist/cjs/generated/blog.entry.cjs +41 -0
  88. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  89. package/dist/cjs/generated/docs.entry.cjs +41 -0
  90. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  91. package/dist/esm/generated/blog.entry.mjs +41 -0
  92. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  93. package/dist/esm/generated/docs.entry.mjs +41 -0
  94. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  95. package/dist/types/generated/blog.entry.d.ts +1 -0
  96. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  97. package/dist/types/generated/docs.entry.d.ts +1 -0
  98. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  99. package/docs/ar/formatters.md +625 -0
  100. package/docs/ar/how_works_intlayer.md +2 -4
  101. package/docs/ar/interest_of_intlayer.md +159 -49
  102. package/docs/ar/intlayer_CMS.md +2 -3
  103. package/docs/ar/intlayer_visual_editor.md +2 -3
  104. package/docs/ar/intlayer_with_tanstack.md +1 -1
  105. package/docs/ar/introduction.md +7 -7
  106. package/docs/ar/packages/intlayer/index.md +3 -3
  107. package/docs/ar/packages/next-intlayer/index.md +3 -3
  108. package/docs/de/formatters.md +649 -0
  109. package/docs/de/interest_of_intlayer.md +161 -47
  110. package/docs/de/introduction.md +5 -5
  111. package/docs/de/packages/intlayer/index.md +3 -3
  112. package/docs/de/packages/next-intlayer/index.md +3 -3
  113. package/docs/de/packages/react-intlayer/index.md +3 -3
  114. package/docs/en/dictionary/enumeration.md +2 -2
  115. package/docs/en/dictionary/function_fetching.md +2 -2
  116. package/docs/en/dictionary/get_started.md +2 -2
  117. package/docs/en/dictionary/translation.md +2 -2
  118. package/docs/en/formatters.md +618 -0
  119. package/docs/en/how_works_intlayer.md +2 -4
  120. package/docs/en/interest_of_intlayer.md +170 -46
  121. package/docs/en/intlayer_CMS.md +2 -3
  122. package/docs/en/intlayer_visual_editor.md +2 -3
  123. package/docs/en/intlayer_with_create_react_app.md +2 -2
  124. package/docs/en/intlayer_with_express.md +2 -2
  125. package/docs/en/intlayer_with_tanstack.md +1 -1
  126. package/docs/en/introduction.md +7 -7
  127. package/docs/en/packages/express-intlayer/index.md +2 -2
  128. package/docs/en/packages/intlayer/getConfiguration.md +2 -3
  129. package/docs/en/packages/intlayer/getEnumeration.md +2 -7
  130. package/docs/en/packages/intlayer/getHTMLTextDir.md +2 -4
  131. package/docs/en/packages/intlayer/getLocaleLang.md +2 -4
  132. package/docs/en/packages/intlayer/getLocaleName.md +2 -3
  133. package/docs/en/packages/intlayer/getLocalizedUrl.md +2 -8
  134. package/docs/en/packages/intlayer/getMultilingualUrls.md +2 -7
  135. package/docs/en/packages/intlayer/getPathWithoutLocale.md +2 -3
  136. package/docs/en/packages/intlayer/getTranslation.md +2 -4
  137. package/docs/en/packages/intlayer/index.md +5 -5
  138. package/docs/en/packages/next-intlayer/index.md +5 -5
  139. package/docs/en/packages/next-intlayer/t.md +2 -2
  140. package/docs/en/packages/next-intlayer/useDictionary.md +2 -2
  141. package/docs/en/packages/next-intlayer/useIntlayer.md +2 -2
  142. package/docs/en/packages/next-intlayer/useLocale.md +2 -2
  143. package/docs/en/packages/react-intlayer/index.md +5 -5
  144. package/docs/en/packages/react-intlayer/t.md +2 -2
  145. package/docs/en/packages/react-intlayer/useI18n.md +2 -2
  146. package/docs/en/packages/react-intlayer/useIntlayer.md +2 -2
  147. package/docs/en/packages/react-intlayer/useLocale.md +2 -2
  148. package/docs/en/packages/react-scripts-intlayer/index.md +2 -2
  149. package/docs/en/packages/solid-intlayer/index.md +2 -2
  150. package/docs/en/packages/vite-intlayer/index.md +2 -2
  151. package/docs/en-GB/formatters.md +625 -0
  152. package/docs/en-GB/how_works_intlayer.md +2 -4
  153. package/docs/en-GB/interest_of_intlayer.md +157 -53
  154. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  155. package/docs/en-GB/introduction.md +2 -2
  156. package/docs/en-GB/packages/intlayer/index.md +3 -3
  157. package/docs/en-GB/packages/next-intlayer/index.md +3 -3
  158. package/docs/en-GB/packages/react-intlayer/index.md +3 -3
  159. package/docs/es/formatters.md +649 -0
  160. package/docs/es/how_works_intlayer.md +2 -4
  161. package/docs/es/interest_of_intlayer.md +156 -47
  162. package/docs/es/intlayer_with_tanstack.md +1 -1
  163. package/docs/es/introduction.md +5 -5
  164. package/docs/es/packages/intlayer/index.md +3 -3
  165. package/docs/es/packages/next-intlayer/index.md +3 -3
  166. package/docs/fr/formatters.md +649 -0
  167. package/docs/fr/how_works_intlayer.md +2 -4
  168. package/docs/fr/interest_of_intlayer.md +157 -46
  169. package/docs/fr/intlayer_with_tanstack.md +1 -1
  170. package/docs/fr/introduction.md +5 -5
  171. package/docs/fr/packages/intlayer/index.md +3 -3
  172. package/docs/fr/packages/next-intlayer/index.md +3 -3
  173. package/docs/fr/packages/react-intlayer/index.md +3 -3
  174. package/docs/hi/formatters.md +630 -0
  175. package/docs/hi/how_works_intlayer.md +2 -4
  176. package/docs/hi/interest_of_intlayer.md +155 -42
  177. package/docs/hi/intlayer_with_tanstack.md +1 -1
  178. package/docs/hi/introduction.md +5 -5
  179. package/docs/hi/packages/intlayer/index.md +3 -3
  180. package/docs/hi/packages/next-intlayer/index.md +3 -3
  181. package/docs/hi/packages/react-intlayer/index.md +3 -3
  182. package/docs/it/formatters.md +647 -0
  183. package/docs/it/how_works_intlayer.md +2 -4
  184. package/docs/it/interest_of_intlayer.md +157 -46
  185. package/docs/it/intlayer_with_tanstack.md +1 -1
  186. package/docs/it/introduction.md +5 -5
  187. package/docs/it/packages/intlayer/index.md +3 -3
  188. package/docs/it/packages/next-intlayer/index.md +3 -3
  189. package/docs/it/packages/react-intlayer/index.md +3 -3
  190. package/docs/ja/formatters.md +649 -0
  191. package/docs/ja/how_works_intlayer.md +2 -4
  192. package/docs/ja/interest_of_intlayer.md +154 -48
  193. package/docs/ja/intlayer_with_tanstack.md +1 -1
  194. package/docs/ja/introduction.md +5 -5
  195. package/docs/ja/packages/intlayer/index.md +3 -3
  196. package/docs/ja/packages/next-intlayer/index.md +3 -3
  197. package/docs/ja/packages/react-intlayer/index.md +3 -3
  198. package/docs/ko/formatters.md +649 -0
  199. package/docs/ko/how_works_intlayer.md +2 -4
  200. package/docs/ko/interest_of_intlayer.md +157 -48
  201. package/docs/ko/intlayer_with_tanstack.md +1 -1
  202. package/docs/ko/introduction.md +5 -5
  203. package/docs/ko/packages/intlayer/index.md +3 -3
  204. package/docs/ko/packages/next-intlayer/index.md +3 -3
  205. package/docs/ko/packages/react-intlayer/index.md +3 -3
  206. package/docs/pt/formatters.md +625 -0
  207. package/docs/pt/how_works_intlayer.md +2 -4
  208. package/docs/pt/interest_of_intlayer.md +162 -47
  209. package/docs/pt/intlayer_with_tanstack.md +1 -1
  210. package/docs/pt/introduction.md +5 -5
  211. package/docs/pt/packages/intlayer/index.md +3 -3
  212. package/docs/pt/packages/next-intlayer/index.md +3 -3
  213. package/docs/pt/packages/react-intlayer/index.md +3 -3
  214. package/docs/ru/autoFill.md +2 -2
  215. package/docs/ru/configuration.md +1 -40
  216. package/docs/ru/formatters.md +649 -0
  217. package/docs/ru/how_works_intlayer.md +5 -7
  218. package/docs/ru/index.md +1 -1
  219. package/docs/ru/interest_of_intlayer.md +165 -50
  220. package/docs/ru/intlayer_CMS.md +7 -8
  221. package/docs/ru/intlayer_cli.md +4 -7
  222. package/docs/ru/intlayer_visual_editor.md +5 -6
  223. package/docs/ru/intlayer_with_angular.md +1 -1
  224. package/docs/ru/intlayer_with_create_react_app.md +5 -5
  225. package/docs/ru/intlayer_with_lynx+react.md +1 -1
  226. package/docs/ru/intlayer_with_nextjs_15.md +3 -3
  227. package/docs/ru/intlayer_with_nextjs_page_router.md +2 -2
  228. package/docs/ru/intlayer_with_nuxt.md +1 -1
  229. package/docs/ru/intlayer_with_react_native+expo.md +2 -2
  230. package/docs/ru/intlayer_with_tanstack.md +3 -3
  231. package/docs/ru/intlayer_with_vite+preact.md +3 -3
  232. package/docs/ru/intlayer_with_vite+react.md +3 -3
  233. package/docs/ru/intlayer_with_vite+solid.md +1 -1
  234. package/docs/ru/intlayer_with_vite+svelte.md +1 -1
  235. package/docs/ru/intlayer_with_vite+vue.md +2 -2
  236. package/docs/ru/introduction.md +8 -8
  237. package/docs/ru/locale_mapper.md +1 -1
  238. package/docs/ru/packages/@intlayer/api/index.md +2 -2
  239. package/docs/ru/packages/@intlayer/chokidar/index.md +1 -1
  240. package/docs/ru/packages/@intlayer/cli/index.md +2 -2
  241. package/docs/ru/packages/@intlayer/config/index.md +2 -2
  242. package/docs/ru/packages/@intlayer/core/index.md +2 -2
  243. package/docs/ru/packages/@intlayer/design-system/index.md +2 -2
  244. package/docs/ru/packages/@intlayer/dictionary-entry/index.md +2 -2
  245. package/docs/ru/packages/@intlayer/editor/index.md +1 -1
  246. package/docs/ru/packages/@intlayer/editor-react/index.md +1 -1
  247. package/docs/ru/packages/@intlayer/webpack/index.md +1 -1
  248. package/docs/ru/packages/angular-intlayer/index.md +1 -1
  249. package/docs/ru/packages/express-intlayer/index.md +3 -3
  250. package/docs/ru/packages/express-intlayer/t.md +1 -1
  251. package/docs/ru/packages/intlayer/getEnumeration.md +3 -8
  252. package/docs/ru/packages/intlayer/getTranslation.md +3 -5
  253. package/docs/ru/packages/intlayer/getTranslationContent.md +1 -3
  254. package/docs/ru/packages/intlayer/index.md +6 -6
  255. package/docs/ru/packages/intlayer-cli/index.md +1 -1
  256. package/docs/ru/packages/intlayer-editor/index.md +2 -2
  257. package/docs/ru/packages/lynx-intlayer/index.md +1 -1
  258. package/docs/ru/packages/next-intlayer/index.md +7 -7
  259. package/docs/ru/packages/next-intlayer/t.md +4 -4
  260. package/docs/ru/packages/next-intlayer/useLocale.md +3 -3
  261. package/docs/ru/packages/nuxt-intlayer/index.md +1 -1
  262. package/docs/ru/packages/preact-intlayer/index.md +1 -1
  263. package/docs/ru/packages/react-intlayer/index.md +7 -7
  264. package/docs/ru/packages/react-intlayer/t.md +4 -4
  265. package/docs/ru/packages/react-native-intlayer/index.md +1 -1
  266. package/docs/ru/packages/react-scripts-intlayer/index.md +3 -3
  267. package/docs/ru/packages/solid-intlayer/index.md +3 -3
  268. package/docs/ru/packages/svelte-intlayer/index.md +1 -1
  269. package/docs/ru/packages/vite-intlayer/index.md +3 -3
  270. package/docs/ru/packages/vue-intlayer/index.md +1 -1
  271. package/docs/ru/per_locale_file.md +1 -1
  272. package/docs/ru/roadmap.md +3 -5
  273. package/docs/ru/vs_code_extension.md +1 -1
  274. package/docs/zh/formatters.md +647 -0
  275. package/docs/zh/how_works_intlayer.md +2 -4
  276. package/docs/zh/interest_of_intlayer.md +155 -48
  277. package/docs/zh/intlayer_with_tanstack.md +1 -1
  278. package/docs/zh/introduction.md +5 -5
  279. package/docs/zh/packages/intlayer/index.md +3 -3
  280. package/docs/zh/packages/next-intlayer/index.md +3 -3
  281. package/docs/zh/packages/react-intlayer/index.md +3 -3
  282. package/frequent_questions/ar/domain_routing.md +1 -1
  283. package/frequent_questions/en/domain_routing.md +1 -1
  284. package/frequent_questions/en-GB/domain_routing.md +1 -1
  285. package/frequent_questions/es/domain_routing.md +1 -1
  286. package/frequent_questions/fr/domain_routing.md +1 -1
  287. package/frequent_questions/hi/domain_routing.md +1 -1
  288. package/frequent_questions/it/domain_routing.md +1 -1
  289. package/frequent_questions/ko/domain_routing.md +1 -1
  290. package/frequent_questions/pt/domain_routing.md +1 -1
  291. package/frequent_questions/ru/domain_routing.md +1 -1
  292. package/frequent_questions/ru/get_locale_cookie.md +4 -4
  293. package/frequent_questions/ru/static_rendering.md +1 -2
  294. package/frequent_questions/zh/domain_routing.md +1 -1
  295. package/package.json +11 -11
  296. package/src/generated/blog.entry.ts +41 -0
  297. package/src/generated/docs.entry.ts +41 -0
@@ -23,7 +23,6 @@ next-intl और Intlayer दोनों ओपन-सोर्स अंतर
23
23
  ये तीन मुख्य अवधारणाओं को साझा करते हैं:
24
24
 
25
25
  1. **सामग्री घोषणा**: आपकी एप्लिकेशन की अनुवादनीय सामग्री को परिभाषित करने की विधि।
26
-
27
26
  - Intlayer में इसे `सामग्री घोषणा फ़ाइल` कहा जाता है, जो JSON, JS, या TS फ़ाइल हो सकती है जो संरचित डेटा निर्यात करती है। अधिक जानकारी के लिए [Intlayer दस्तावेज़](https://intlayer.org/fr/doc/concept/content) देखें।
28
27
  - next-intl में इसे `messages` या `locale messages` कहा जाता है, जो आमतौर पर JSON फ़ाइलों में होती हैं। अधिक जानकारी के लिए [next-intl दस्तावेज़](https://github.com/amannn/next-intl) देखें।
29
28
 
@@ -170,8 +169,8 @@ const content = {
170
169
  content: {
171
170
  helloWorld: t({
172
171
  en: "Hello World",
173
- fr: "Bonjour le monde",
174
172
  es: "Hola Mundo",
173
+ fr: "Bonjour le monde",
175
174
  }),
176
175
  },
177
176
  } satisfies Dictionary;
@@ -188,8 +187,8 @@ const content = {
188
187
  content: {
189
188
  helloWorld: t({
190
189
  en: "Hello World",
191
- fr: "Bonjour le monde",
192
190
  es: "Hola Mundo",
191
+ fr: "Bonjour le monde",
193
192
  }),
194
193
  },
195
194
  };
@@ -205,8 +204,8 @@ module.exports = {
205
204
  content: {
206
205
  helloWorld: t({
207
206
  en: "Hello World",
208
- fr: "Bonjour le monde",
209
207
  es: "Hola Mundo",
208
+ fr: "Bonjour le monde",
210
209
  }),
211
210
  },
212
211
  };
@@ -247,8 +247,8 @@ const content = {
247
247
  // प्रत्येक "t" कॉल एक अलग अनुवाद नोड है
248
248
  heading: t({
249
249
  en: "Hello World",
250
- fr: "Bonjour le monde",
251
250
  es: "Hola Mundo",
251
+ fr: "Bonjour le monde",
252
252
  }),
253
253
  description: t({
254
254
  en: "My i18n description text...",
@@ -118,8 +118,8 @@ const content = {
118
118
  // t() का प्रत्येक कॉल एक अनुवाद योग्य फ़ील्ड घोषित करता है
119
119
  helloWorld: t({
120
120
  en: "Hello World",
121
- fr: "Bonjour le monde",
122
121
  es: "Hola Mundo",
122
+ fr: "Bonjour le monde",
123
123
  }),
124
124
  description: t({
125
125
  en: "This is a description",
@@ -1,285 +1,162 @@
1
1
  ---
2
- createdAt: 2024-08-11
3
- updatedAt: 2025-06-29
4
- title: next-i18next vs next-intl vs Intlayer
5
- description: Next.js एप्लिकेशन के लिए next-i18next के साथ next-intl और Intlayer के साथ एक नेटवर्क ऐप की अंतर्राष्ट्रीयकरण (i18n) की तुलना करें
2
+ createdAt: 2025-08-23
3
+ updatedAt: 2025-08-23
4
+ title: next-i18next बनाम next-intl बनाम Intlayer
5
+ description: Next.js ऐप के अंतरराष्ट्रीयकरण (i18n) के लिए next-i18next की तुलना next-intl और Intlayer के साथ करें
6
6
  keywords:
7
7
  - next-intl
8
8
  - next-i18next
9
9
  - Intlayer
10
- - अंतर्राष्ट्रीयकरण
11
- - दस्तावेज़ीकरण
10
+ - अंतरराष्ट्रीयकरण
11
+ - ब्लॉग
12
12
  - Next.js
13
- - JavaScript
14
- - React
13
+ - जावास्क्रिप्ट
14
+ - रिएक्ट
15
15
  slugs:
16
16
  - blog
17
17
  - next-i18next-vs-next-intl-vs-intlayer
18
18
  ---
19
19
 
20
- # next-i18next VS next-intl VS Intlayer | Next.js अंतर्राष्ट्रीयकरण (i18n)
20
+ # next-i18next बनाम next-intl बनाम intlayer | Next.js अंतरराष्ट्रीयकरण (i18n)
21
21
 
22
- नीचे **तीन लोकप्रिय पुस्तकालयों** की संक्षिप्त तुलना दी गई है जो Next.js एप्लिकेशन के अंतर्राष्ट्रीयकरण (i18n) के लिए हैं: **next-intl**, **next-i18next**, और **Intlayer**।
22
+ यह गाइड **Next.js** के लिए तीन व्यापक रूप से उपयोग किए जाने वाले i18n विकल्पों की तुलना करता है: **next-intl**, **next-i18next**, और **Intlayer**।
23
+ हम **Next.js 13+ App Router** (जिसमें **React Server Components** शामिल हैं) पर ध्यान केंद्रित करते हैं और मूल्यांकन करते हैं:
23
24
 
24
- यह दस्तावेज़ मुख्य मानदंडों पर प्रकाश डालता है:
25
+ 1. **आर्किटेक्चर और सामग्री संगठन**
26
+ 2. **TypeScript और सुरक्षा**
27
+ 3. **अनुवाद की कमी को संभालना**
28
+ 4. **रूटिंग और मिडलवेयर**
29
+ 5. **प्रदर्शन और लोडिंग व्यवहार**
30
+ 6. **डेवलपर अनुभव (DX), टूलिंग और रखरखाव**
31
+ 7. **SEO और बड़े प्रोजेक्ट की स्केलेबिलिटी**
25
32
 
26
- 1. **आर्किटेक्चर** (अनुवादों को उनके घटकों के करीब रखना)
27
- 2. **TypeScript समर्थन**
28
- 3. **गायब अनुवादों का प्रबंधन**
29
- 4. **सर्वर घटकों का समर्थन**
30
- 5. **Next.js के लिए उन्नत रूटिंग और मिडलवेयर**
31
- 6. **सेटअप की सादगी**
32
-
33
- यह मार्गदर्शिका **Intlayer** पर एक **गहन नज़र** भी प्रदान करती है, यह दिखाते हुए कि यह एक मजबूत विकल्प क्यों हो सकता है, विशेष रूप से Next.js 13+ के लिए, जिसमें **App Router** और **Server Components** शामिल हैं।
33
+ > **संक्षेप में**: ये सभी तीनों Next.js ऐप को स्थानीयकृत कर सकते हैं। यदि आप चाहते हैं **कंपोनेंट-स्कोप्ड कंटेंट**, **कठोर TypeScript प्रकार**, **बिल्ड-टाइम मिसिंग-की जांच**, **ट्री-शेक्ड डिक्शनरीज़**, और **फर्स्ट-क्लास App Router + SEO हेल्पर्स**, तो **Intlayer** सबसे पूर्ण, आधुनिक विकल्प है।
34
34
 
35
35
  ---
36
36
 
37
- ## प्रत्येक पुस्तकालय का अवलोकन
38
-
39
- ### 1. next-intl
37
+ ## उच्च स्तरीय स्थिति
40
38
 
41
- **मुख्य ध्यान**: स्थानीयकरण के लिए हल्के दृष्टिकोण के साथ त्वरित और आसान सेटअप।
39
+ - **next-intl** - हल्का, सरल संदेश स्वरूपण जो मजबूत Next.js समर्थन के साथ आता है। केंद्रीकृत कैटलॉग आम हैं; DX सरल है, लेकिन सुरक्षा और बड़े पैमाने पर रखरखाव मुख्य रूप से आपकी जिम्मेदारी बनी रहती है।
40
+ - **next-i18next** - Next.js के लिए i18next का रूप। परिपक्व इकोसिस्टम और प्लगइन्स (जैसे ICU) के माध्यम से फीचर्स, लेकिन कॉन्फ़िगरेशन लंबा हो सकता है और जैसे-जैसे प्रोजेक्ट बढ़ते हैं कैटलॉग केंद्रीकृत हो जाते हैं।
41
+ - **Intlayer** - Next.js के लिए कंपोनेंट-केंद्रित कंटेंट मॉडल, **कठोर TS टाइपिंग**, **बिल्ड-टाइम चेक्स**, **ट्री-शेकिंग**, **इन-बिल्ट मिडलवेयर और SEO हेल्पर्स**, वैकल्पिक **विज़ुअल एडिटर/CMS**, और **AI-सहायता प्राप्त अनुवाद**।
42
42
 
43
- - **आर्किटेक्चर**: एकल फ़ोल्डर (जैसे, `locales/`) में अनुवादों को सह-स्थान देने को प्रोत्साहित करता है लेकिन कई रणनीतियों की अनुमति भी देता है। "प्रत्येक घटक के लिए अनुवाद" आर्किटेक्चर को सख्ती से लागू नहीं करता है।
44
- - **TypeScript समर्थन**: आधारभूत TypeScript एकीकरण। कुछ प्रकार की श्रेष्ठताएँ मौजूद हैं, लेकिन ये आपके अनुवाद फ़ाइलों से TypeScript परिभाषाओं को स्वचालित रूप से उत्पन्न करने पर केंद्रित नहीं हैं।
45
- - **गायब अनुवाद**: आधारभूत फ़ॉलबैक तंत्र। डिफ़ॉल्ट रूप से, एक कुंजी या डिफ़ॉल्ट स्थानीयकरण स्ट्रिंग पर वापस जाता है। उन्नत गायब अनुवाद परीक्षणों के लिए किसी प्रकार का सुसंगत उपकरण नहीं है।
46
- - **सर्वर घटकों का समर्थन**: सामान्य तौर पर Next.js 13+ के साथ काम करता है, लेकिन पैटर्न गहरे सर्वर-साइट उपयोग के लिए कम विशेषज्ञ है (जैसे, जटिल गतिशील रूटिंग के साथ सर्वर घटक)।
47
- - **रूटिंग और मिडलवेयर**: मिडलवेयर समर्थन संभव है लेकिन सीमित। आमतौर पर Next.js `Middleware` पर स्थानीयकरण पहचान के लिए या स्थानीयकरण पथ को फिर से लिखने के लिए मैनुअल कॉन्फ़िगरेशन पर भरोसा करता है।
48
- - **सेटअप की सादगी**: बहुत सीधा है। न्यूनतम बॉयलरप्लेट की आवश्यकता है।
43
+ ---
49
44
 
50
- **का उपयोग करें जब**: आप एक सरल दृष्टिकोण चाहते हैं या अपने अनुवादों का प्रबंधन करने में आरामदायक हैं (जैसे कि एक फ़ोल्डर JSON फ़ाइलों के साथ)
45
+ ## साइड-बाय-साइड फीचर तुलना (Next.js केंद्रित)
46
+
47
+ | फीचर | `next-intlayer` (Intlayer) | `next-intl` | `next-i18next` |
48
+ | ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
49
+ | **कंपोनेंट के पास अनुवाद** | ✅ हाँ, प्रत्येक कंपोनेंट के साथ सामग्री सह-स्थित | ❌ नहीं | ❌ नहीं |
50
+ | **टाइपस्क्रिप्ट एकीकरण** | ✅ उन्नत, स्वचालित रूप से उत्पन्न सख्त प्रकार | ✅ अच्छा | ⚠️ बुनियादी |
51
+ | **अनुवाद की कमी का पता लगाना** | ✅ टाइपस्क्रिप्ट त्रुटि हाइलाइट और बिल्ड-टाइम त्रुटि/चेतावनी | ⚠️ रनटाइम फॉलबैक | ⚠️ रनटाइम फॉलबैक |
52
+ | **समृद्ध सामग्री (JSX/मार्कडाउन/कंपोनेंट्स)** | ✅ सीधे समर्थन | ❌ समृद्ध नोड्स के लिए डिज़ाइन नहीं किया गया | ⚠️ सीमित |
53
+ | **एआई-संचालित अनुवाद** | ✅ हाँ, कई एआई प्रदाताओं का समर्थन करता है। अपने स्वयं के API कुंजी का उपयोग करके उपयोग किया जा सकता है। आपके एप्लिकेशन और सामग्री के संदर्भ को ध्यान में रखता है | ❌ नहीं | ❌ नहीं |
54
+ | **विज़ुअल एडिटर** | ✅ हाँ, स्थानीय विज़ुअल एडिटर + वैकल्पिक CMS; कोडबेस सामग्री को बाहरी रूप से प्रबंधित कर सकता है; एम्बेड करने योग्य | ❌ नहीं / बाहरी स्थानीयकरण प्लेटफार्मों के माध्यम से उपलब्ध | ❌ नहीं / बाहरी स्थानीयकरण प्लेटफार्मों के माध्यम से उपलब्ध |
55
+ | **स्थानीयकृत रूटिंग** | ✅ हाँ, बॉक्स से बाहर स्थानीयकृत पथों का समर्थन करता है (Next.js और Vite के साथ काम करता है) | ✅ अंतर्निर्मित, ऐप राउटर `[locale]` सेगमेंट का समर्थन करता है | ✅ अंतर्निर्मित |
56
+ | **डायनामिक रूट जनरेशन** | ✅ हाँ | ✅ हाँ | ✅ हाँ |
57
+ | **बहुवचन** | ✅ एनेमरेशन-आधारित पैटर्न | ✅ अच्छा | ✅ अच्छा |
58
+ | **स्वरूपण (तिथियाँ, संख्याएँ, मुद्राएँ)** | ✅ अनुकूलित स्वरूपक (अंदर से Intl) | ✅ अच्छा (Intl सहायक) | ✅ अच्छा (Intl सहायक) |
59
+ | **सामग्री स्वरूप** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml WIP) | ✅ .json, .js, .ts | ⚠️ .json |
60
+ | **ICU समर्थन** | ⚠️ प्रगति पर | ✅ हाँ | ⚠️ प्लगइन के माध्यम से (`i18next-icu`) |
61
+ | **SEO सहायक (hreflang, साइटमैप)** | ✅ अंतर्निर्मित उपकरण: साइटमैप, robots.txt, मेटाडेटा के लिए सहायक | ✅ अच्छा | ✅ अच्छा |
62
+ | **इकोसिस्टम / समुदाय** | ⚠️ छोटा लेकिन तेजी से बढ़ रहा और प्रतिक्रियाशील | ✅ मध्यम आकार, Next.js-केंद्रित | ✅ मध्यम आकार, Next.js-केंद्रित |
63
+ | **सर्वर-साइड रेंडरिंग और सर्वर कंपोनेंट्स** | ✅ हाँ, SSR / React सर्वर कंपोनेंट्स के लिए सुव्यवस्थित | ⚠️ पेज स्तर पर समर्थित लेकिन चाइल्ड सर्वर कंपोनेंट्स के लिए कंपोनेंट ट्री में t-फंक्शंस पास करने की आवश्यकता है | ⚠️ पेज स्तर पर समर्थित लेकिन चाइल्ड सर्वर कंपोनेंट्स के लिए कंपोनेंट ट्री में t-फंक्शंस पास करने की आवश्यकता है |
64
+ | **ट्री-शेकिंग (केवल उपयोग किए गए कंटेंट को लोड करना)** | ✅ हाँ, Babel/SWC प्लगइन्स के माध्यम से बिल्ड समय पर प्रति-कंपोनेंट | ⚠️ आंशिक | ⚠️ आंशिक |
65
+ | **लेज़ी लोडिंग** | ✅ हाँ, प्रति-लोकल / प्रति-डिक्शनरी | ✅ हाँ (प्रति-रूट/प्रति-लोकल), नेमस्पेस प्रबंधन की आवश्यकता | ✅ हाँ (प्रति-रूट/प्रति-लोकल), नेमस्पेस प्रबंधन की आवश्यकता |
66
+ | **अप्रयुक्त कंटेंट को हटाना** | ✅ हाँ, बिल्ड समय पर प्रति-डिक्शनरी | ❌ नहीं, नेमस्पेस प्रबंधन के साथ मैन्युअली प्रबंधित किया जा सकता है | ❌ नहीं, नेमस्पेस प्रबंधन के साथ मैन्युअली प्रबंधित किया जा सकता है |
67
+ | **बड़े प्रोजेक्ट्स का प्रबंधन** | ✅ मॉड्यूलर को प्रोत्साहित करता है, डिज़ाइन-सिस्टम के लिए उपयुक्त | ✅ सेटअप के साथ मॉड्यूलर | ✅ सेटअप के साथ मॉड्यूलर |
51
68
 
52
69
  ---
53
70
 
54
- ### 2. next-i18next
71
+ ## गहराई से तुलना
55
72
 
56
- **मुख्य ध्यान**: `i18next` का उपयोग करने वाला एक समय-परीक्षणित समाधान, जो Next.js परियोजनाओं में व्यापक रूप से अपनाया गया है।
73
+ ### 1) आर्किटेक्चर और स्केलेबिलिटी
57
74
 
58
- - **आर्किटेक्चर**: अक्सर `public/locales` फ़ोल्डर में अनुवादों को व्यवस्थित करता है। विशेष रूप से अनुवादों को "निकट" रखने के लिए डिज़ाइन नहीं किया गया है, हालांकि आप मैन्युअल रूप से एक अलग ढाँचा अपना सकते हैं।
59
- - **TypeScript समर्थन**: उचित TypeScript कवरेज लेकिन टाइपेड अनुवादों और टाइपेड हुक के लिए कस्टम कॉन्फ़िगरेशन की आवश्यकता होती है।
60
- - **गायब अनुवाद**: i18next इंटरपोलेशन/फ़ॉलबैक प्रदान करता है। हालाँकि, गायब अनुवाद पहचान अक्सर अतिरिक्त सेटअप या थर्ड-पार्टी प्लगइन्स की आवश्यकता होती है।
61
- - **सर्वर घटकों का समर्थन**: Next.js 13 के साथ बुनियादी उपयोग का दस्तावेज़ है, लेकिन जटिल उपयोग (जैसे, सर्वर घटकों के साथ गहरे एकीकरण, गतिशील रूट जेनरेशन) कठिन हो सकता है।
62
- - **रूटिंग और मिडलवेयर**: स्थानीयकरण उपपथों के लिए Next.js `Middleware` और पुनर्लेखन पर भारी निर्भर करता है। अधिक जटिल सेटअप के लिए, आपको उन्नत i18next कॉन्फ़िगरेशन में गोताखोरी करने की आवश्यकता हो सकती है।
63
- - **सेटअप की सादगी**: i18next का उपयोग करने वाले लोगों के लिए परिचित दृष्टिकोण। हालाँकि, जब उन्नत i18n सुविधाओं (नेमस्पेस, कई फ़ॉलबैक स्थान) की आवश्यकता होती है, तो यह और अधिक बॉयलरप्लेट-गहन हो सकता है।
75
+ - **next-intl / next-i18next**: डिफ़ॉल्ट रूप से प्रति-लोकल **केंद्रीकृत कैटलॉग** (साथ ही i18next में **नेमस्पेस**) का उपयोग करता है। शुरू में यह ठीक काम करता है, लेकिन अक्सर बढ़ती कूप्लिंग और की चर्न के साथ एक बड़ा साझा सतह क्षेत्र बन जाता है।
76
+ - **Intlayer**: प्रत्येक घटक (या प्रत्येक फीचर) के लिए शब्दकोशों को प्रोत्साहित करता है जो उस कोड के साथ सह-स्थित होते हैं जिसे वे सेवा देते हैं। इससे संज्ञानात्मक भार कम होता है, UI के टुकड़ों की नकल/स्थानांतरण आसान होता है, और टीमों के बीच संघर्ष कम होता है। अप्रयुक्त सामग्री को स्वाभाविक रूप से पहचानना और हटाना आसान होता है।
64
77
 
65
- **का उपयोग करें जब**: आप पहले से ही `i18next` पारिस्थितिकी तंत्र के लिए प्रतिबद्ध हैं या आपके पास मौजूदा i18next-आधारित अनुवाद हैं।
78
+ **महत्व क्यों है:** बड़े कोडबेस या डिज़ाइन-सिस्टम सेटअप में, **मॉड्यूलर सामग्री** मोनोलिथिक कैटलॉग की तुलना में बेहतर स्केल करती है।
66
79
 
67
80
  ---
68
81
 
69
- ### 3. Intlayer
70
-
71
- **मुख्य ध्यान**: Next.js **App Router** (12, 13, 14, और 15) के लिए विशेष रूप से अनुकूलित एक आधुनिक, ओपन-सोर्स i18n पुस्तकालय जिसमें **Server Components** और **Turbopack** का अंतर्निहित समर्थन है।
82
+ ### 2) टाइपस्क्रिप्ट और सुरक्षा
72
83
 
73
- #### प्रमुख लाभ
84
+ - **next-intl**: मजबूत टाइपस्क्रिप्ट समर्थन, लेकिन **चाबियाँ डिफ़ॉल्ट रूप से सख्ती से टाइप नहीं होतीं**; आपको सुरक्षा पैटर्न मैन्युअली बनाए रखने होंगे।
85
+ - **next-i18next**: हुक्स के लिए बेस टाइपिंग; **सख्त कुंजी टाइपिंग के लिए अतिरिक्त टूलिंग/कॉन्फ़िग की आवश्यकता होती है**।
86
+ - **Intlayer**: आपके कंटेंट से **सख्त प्रकार (strict types)** उत्पन्न करता है। **IDE ऑटोकम्प्लीशन** और **कंपाइल-टाइम त्रुटियाँ** तैनाती से पहले टाइपो और गायब कुंजियों को पकड़ती हैं।
74
87
 
75
- 1. **आर्किटेक्चर**
88
+ **महत्व क्यों है:** मजबूत टाइपिंग विफलताओं को **बाएं** (CI/build) स्थानांतरित करती है बजाय इसके कि वे **दाएं** (runtime) हों।
76
89
 
77
- - **अनुवादों को उनके घटकों के ठीक बगल में रखने** को प्रोत्साहित करता है। प्रत्येक पृष्ठ या घटक में अपनी स्वयं की `.content.ts` (या JSON) फ़ाइल हो सकती है, अब विशाल अनुवाद फ़ोल्डर के माध्यम से बिखरकर खोजने की आवश्यकता नहीं है।
78
- - यह आपके कोड को अधिक **मॉड्यूलर और बनाए रखने योग्य** बनाता है, विशेष रूप से बड़े कोड बेस में।
79
-
80
- 2. **TypeScript समर्थन**
81
-
82
- - **स्वचालित रूप से उत्पन्न प्रकार की परिभाषाएँ**: जिस क्षण आप अपनी सामग्री को परिभाषित करते हैं, Intlayer उन प्रकारों को उत्पन्न करता है जो ऑटोकम्पलीट को पावर देते हैं और अनुवाद संबंधित त्रुटियों को पकड़ते हैं।
83
- - गायब कुंजियों जैसी रनटाइम में त्रुटियों को कम करता है और आपके IDE में सीधे उन्नत **ऑटोकम्पलीट** प्रदान करता है।
84
-
85
- 3. **गायब अनुवादों का प्रबंधन**
90
+ ---
86
91
 
87
- - निर्माण के दौरान, Intlayer **गायब अनुवाद कुंजियों का पता लगा सकता है** और चेतावनियाँ या त्रुटियाँ फेंक सकता है।
88
- - यह सुनिश्चित करता है कि आप कभी भी अनुवादों के बीच गायब पाठ के साथ शिप न करें।
92
+ ### 3) गायब अनुवाद प्रबंधन
89
93
 
90
- 4. **सर्वर घटकों के लिए ऑप्टिमाइज्ड**
94
+ - **next-intl / next-i18next**: **रनटाइम फॉलबैक** पर निर्भर करते हैं (जैसे, कुंजी या डिफ़ॉल्ट लोकल दिखाना)। बिल्ड विफल नहीं होता।
95
+ - **Intlayer**: **बिल्ड-टाइम डिटेक्शन** के साथ **चेतावनी/त्रुटियाँ** प्रदान करता है जब लोकल या कुंजी गायब हो।
91
96
 
92
- - Next.js **App Router** और नए **Server Components** पैराजाइम के साथ पूरी तरह से संगत।
93
- - **सर्वर संदर्भ** को **आइसोलेट** करने के लिए विशेषज्ञ प्रदाता (`IntlayerServerProvider`, `IntlayerClientProvider`) प्रदान करता है (Next.js 13+ के साथ काम करते समय महत्वपूर्ण)।
97
+ **महत्व क्यों है:** बिल्ड के दौरान अंतर पकड़ना उत्पादन में “रहस्यमय स्ट्रिंग्स” को रोकता है और सख्त रिलीज गेट्स के अनुरूप होता है।
94
98
 
95
- 5. **उन्नत रूटिंग और मिडलवेयर**
99
+ ---
96
100
 
97
- - [**`intlayerMiddleware`**](#) के लिए एक समर्पित फ़ाइल है जो **स्वचालित स्थानीयकरण पहचान** (कुकीज़ या ब्राउज़र हैडर के माध्यम से) और उन्नत रूट जेनरेशन करती है।
98
- - न्यूनतम कॉन्फ़िगरेशन के साथ स्थानीयकृत पथों को गतिशील रूप से संभालता है (जैसे, `/en-US/about` बनाम `/fr/about`)।
99
- - वैकल्पिक भाषा लिंक बनाने के लिए `getMultilingualUrls` जैसी सहायक विधियाँ प्रदान करता है (**SEO** के लिए शानदार)।
101
+ ### 4) रूटिंग, मिडलवेयर और URL रणनीति
100
102
 
101
- 6. **सरलीकृत सेटअप**
102
- - आपकी स्थानीयताओं, डिफ़ॉल्ट स्थानीयता, और एकीकरण प्राथमिकताओं को परिभाषित करने के लिए एकल कॉन्फ़िग फ़ाइल (`intlayer.config.ts`)।
103
- - एक रैपर प्लगइन `withIntlayer(nextConfig)` जो आपके सभी पर्यावरण चर और आपकी सामग्री के लिए वॉचर को **इंजेक्ट** करता है।
104
- - **कोई बड़ा फ़ॉलबैक कॉन्फ़िगरेशन नहीं**, सिस्टम को न्यूनतम घर्षण के साथ "बस काम करना" के लिए बनाया गया है।
103
+ - तीनों ही **Next.js स्थानीयकृत रूटिंग** के साथ App Router पर काम करते हैं।
104
+ - **Intlayer** आगे बढ़ता है **i18n मिडलवेयर** (हेडर/कुकीज़ के माध्यम से लोकल डिटेक्शन) और **हेल्पर्स** के साथ जो स्थानीयकृत URLs और `<link rel="alternate" hreflang="…">` टैग्स उत्पन्न करते हैं।
105
105
 
106
- > **निचोड़**: Intlayer एक आधुनिक समाधान है जो **सर्वश्रेष्ठ प्रथाओं को बढ़ावा देना चाहता है**: **प्रत्येक React घटक के पास अनुवादों को करीब रखते हुए**, और **शक्तिशाली TS समर्थन** और **आसान सर्वर-साइड** उपयोग प्रदान करना, जबकि **बॉयलरप्लेट को बड़े पैमाने पर कम करना**।
106
+ **महत्व क्यों है:** कम कस्टम ग्लू लेयर्स; **सुसंगत UX** और **साफ SEO** सभी लोकल्स में।
107
107
 
108
108
  ---
109
109
 
110
- ## साइड-बाय-साइड फीचर तुलना
111
-
112
- | **विशेषता** | **next-intl** | **next-i18next** | **Intlayer** |
113
- | ------------------------------ | ------------------------------------------- | ----------------------------------------------- | ------------------------------------------ |
114
- | **घटकों के निकट अनुवाद रखें** | आंशिक – सामान्यतः एक स्थानीयकरण फ़ोल्डर | डिफ़ॉल्ट नहीं – अक्सर `public/locales` | **हां – अनुशंसित और सरल** |
115
- | **TypeScript ऑटो उत्पन्न** | आधारभूत TS परिभाषाएँ | आधारभूत TS समर्थन | **हां – उन्नत बॉक्स से बाहर** |
116
- | **गायब अनुवादों का पता लगाना** | अधिकांशतः फ़ॉलबैक स्ट्रिंग | अधिकांशतः फ़ॉलबैक स्ट्रिंग | **हां – निर्माण के समय जांच** |
117
- | **सर्वर घटकों का समर्थन** | काम करता है लेकिन विशेषज्ञ नहीं | समर्थित लेकिन जटिल हो सकता है | **विशेषज्ञ प्रदाताओं के साथ पूर्ण समर्थन** |
118
- | **रूटिंग और मिडलवेयर** | Next मिडलवेयर के साथ मैन्युअल रूप से एकीकृत | पुनर्लेखन कॉन्फ़िग के माध्यम से प्रदान किया गया | **समर्पित i18n मिडलवेयर + उन्नत हुक** |
119
- | **सेटअप की जटिलता** | सरल, न्यूनतम कॉन्फ़िगरेशन | पारंपरिक, उन्नत उपयोग के लिए जटिल हो सकता है | **एक कॉन्फ़िग फ़ाइल और प्लगइन** |
120
-
121
- ---
110
+ ### 5) सर्वर कंपोनेंट्स (RSC) संरेखण
122
111
 
123
- ## Intlayer क्यों?
112
+ - **सभी** Next.js 13+ का समर्थन करते हैं।
113
+ - **Intlayer** **सर्वर/क्लाइंट सीमा** को एक सुसंगत API और RSC के लिए डिज़ाइन किए गए प्रोवाइडर्स के साथ सहज बनाता है, ताकि आप फॉर्मेटर्स या t-फंक्शंस को कंपोनेंट ट्रीज़ के माध्यम से शटल न करें।
124
114
 
125
- **Next.js App Router** (संस्करण 13, 14, या 15) पर आधारित टीमों के लिए जो **सर्वर घटकों** के साथ काम कर रही हैं, Intlayer प्रदान करता है:
115
+ **महत्व क्यों है:** साफ मानसिक मॉडल और हाइब्रिड ट्रीज़ में कम एज केस।
126
116
 
127
- 1. **एक सरलीकृत आर्किटेक्चर**
117
+ ---
128
118
 
129
- - प्रत्येक रूट या घटक अपने अनुवादों को रखता है। यह स्पष्टता और बनाए रखने की सुविधा को बढ़ावा देता है।
119
+ ### 6) प्रदर्शन और लोडिंग व्यवहार
130
120
 
131
- 2. **शक्तिशाली TypeScript एकीकरण**
121
+ - **next-intl / next-i18next**: आंशिक नियंत्रण **namespaces** और **route-level splits** के माध्यम से; अनुशासन में कमी होने पर अप्रयुक्त स्ट्रिंग्स के बंडलिंग का जोखिम।
122
+ - **Intlayer**: बिल्ड के समय **tree-shakes** करता है और **प्रत्येक शब्दकोश/लोकल के लिए lazy-loads** करता है। अप्रयुक्त सामग्री भेजी नहीं जाती।
132
123
 
133
- - आपको कम्पाइलर-स्तरीय सुरक्षा मिलती है, "टाइपो-भरे" या गायब अनुवाद कुंजियों से बचना।
124
+ **महत्व क्यों:** छोटे बंडल और तेज़ स्टार्टअप, विशेष रूप से मल्टी-लोकल साइट्स पर।
134
125
 
135
- 3. **वास्तविक गायब अनुवाद चेतावनियाँ**
126
+ ---
136
127
 
137
- - यदि आप एक कुंजी या भाषा के अनुवाद को भूल जाते हैं, तो आपको निर्माण के समय चेतावनी दी जाएगी (पूर्ण UI के साथ शिप करने के बजाय)।
128
+ ### 7) DX, टूलिंग और रखरखाव
138
129
 
139
- 4. **इन-बिल्ट उन्नत रूटिंग**
130
+ - **next-intl / next-i18next**: आप आमतौर पर अनुवाद और संपादकीय वर्कफ़्लोज़ के लिए बाहरी प्लेटफार्मों को जोड़ेंगे।
131
+ - **Intlayer**: एक **मुफ्त विज़ुअल एडिटर** और **वैकल्पिक CMS** (Git-फ्रेंडली या बाहरी) प्रदान करता है। साथ ही **VSCode एक्सटेंशन** सामग्री लेखन के लिए और **AI-सहायता प्राप्त अनुवाद** आपके अपने प्रदाता कुंजी का उपयोग करके।
140
132
 
141
- - स्वचालित स्थानीयकरण पहचान, गतिशील मार्ग निर्माण, और आसान स्थानीयकृत URL प्रबंधन शामिल हैं।
142
- - मानक `intlayerMiddleware` को गहरी कस्टम पुनर्लेखन की आवश्यकता नहीं होती है।
133
+ **यह क्यों महत्वपूर्ण है:** ऑपरेशंस की लागत कम करता है और डेवलपर्स और कंटेंट लेखकों के बीच लूप को छोटा करता है।
143
134
 
144
- 5. **एक-स्टॉप सेटअप**
135
+ ---
145
136
 
146
- - न्यूनतम बॉयलरप्लेट: बस अपने `intlayer.config.ts` को परिभाषित करें, `next.config` को `withIntlayer` के साथ लपेटें, और आधिकारिक मिडलवेयर जोड़ें।
147
- - दोनों **सर्वर** और **क्लाइंट** घटकों के लिए स्पष्ट, सीधी उपयोगिता `IntlayerServerProvider` और `IntlayerClientProvider` के माध्यम से।
137
+ ## कब किसे चुनें?
148
138
 
149
- 6. **SEO के अनुकूल**
150
- - अंतर्निहित सहायक (`getMultilingualUrls`, `hrefLang` गुण, आदि) SEO-अनुपालन पृष्ठों और साइटमैप बनाने को आसान बनाते हैं।
139
+ - **next-intl चुनें** यदि आप एक **न्यूनतम** समाधान चाहते हैं, आप केंद्रीकृत कैटलॉग्स के साथ सहज हैं, और आपका ऐप **छोटा से मध्यम आकार** का है।
140
+ - **next-i18next चुनें** यदि आपको **i18next के प्लगइन इकोसिस्टम** की आवश्यकता है (जैसे, प्लगइन्स के माध्यम से उन्नत ICU नियम) और आपकी टीम पहले से i18next जानती है, और आप **अधिक कॉन्फ़िगरेशन** को लचीलापन देने के लिए स्वीकार करते हैं।
141
+ - **Intlayer चुनें** यदि आप **कंपोनेंट-स्कोप्ड कंटेंट**, **सख्त TypeScript**, **बिल्ड-टाइम गारंटियां**, **tree-shaking**, और **बिल्ट-इन** रूटिंग/SEO/एडिटर टूलिंग को महत्व देते हैं - विशेष रूप से **Next.js App Router** और **बड़े, मॉड्यूलर कोडबेस** के लिए।
151
142
 
152
143
  ---
153
144
 
154
- ## उदाहरण: Intlayer कार्रवाई में
155
-
156
- नीचे Next.js 15 परियोजना में Intlayer का उपयोग करके एक _बहुत_ संक्षिप्त स्निपेट दर्शाया गया है। पूर्ण विवरण और कोड उदाहरणों के लिए, [पूर्ण Intlayer गाइड देखें](#)。
157
-
158
- <details>
159
- <summary>स्टेप-बाय-स्टेप उदाहरण</summary>
160
-
161
- 1. **स्थापना और कॉन्फ़िगर करें**
162
-
163
- ```bash
164
- npm install intlayer next-intlayer
165
- ```
166
-
167
- ```ts
168
- // intlayer.config.ts
169
- import { Locales, type IntlayerConfig } from "intlayer";
170
-
171
- const config: IntlayerConfig = {
172
- internationalization: {
173
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
174
- defaultLocale: Locales.ENGLISH,
175
- },
176
- };
177
- export default config;
178
- ```
179
-
180
- 2. **प्लगइन का उपयोग करें**
181
-
182
- ```ts
183
- // next.config.mjs
184
- import { withIntlayer } from "next-intlayer/server";
185
-
186
- /** @type {import('next').NextConfig} */
187
- const nextConfig = {};
188
-
189
- export default withIntlayer(nextConfig);
190
- ```
191
-
192
- 3. **मिडलवेयर जोड़ें**
193
-
194
- ```ts
195
- // src/middleware.ts
196
- export { intlayerMiddleware as middleware } from "next-intlayer/middleware";
197
-
198
- export const config = {
199
- matcher:
200
- "/((?!api|static|assets|robots|sitemap|sw|service-worker|manifest|.*\\..*|_next).*)",
201
- };
202
- ```
203
-
204
- 4. **एक स्थानीयकृत लेआउट बनाएँ**
205
-
206
- ```tsx
207
- // src/app/[locale]/layout.tsx
208
- import { getHTMLTextDir } from "intlayer";
209
- import { NextLayoutIntlayer } from "next-intlayer";
210
-
211
- const LocaleLayout: NextLayoutIntlayer = async ({ children, params }) => {
212
- const { locale } = params;
213
- return (
214
- <html lang={locale} dir={getHTMLTextDir(locale)}>
215
- <body>{children}</body>
216
- </html>
217
- );
218
- };
219
-
220
- export { generateStaticParams } from "next-intlayer";
221
- export default LocaleLayout;
222
- ```
223
-
224
- 5. **सामग्री की घोषणा और उपयोग करें**
225
-
226
- ```tsx
227
- // src/app/[locale]/page.content.ts
228
- import { t } from "intlayer";
229
-
230
- export default {
231
- key: "page",
232
- content: {
233
- getStarted: {
234
- main: t({
235
- en: "Get started by editing",
236
- fr: "Commencez par éditer",
237
- es: "Comience por editar",
238
- }),
239
- pageLink: "src/app/page.tsx",
240
- },
241
- },
242
- };
243
- ```
244
-
245
- ```tsx
246
- // src/app/[locale]/page.tsx
247
- import { IntlayerServerProvider } from "next-intlayer/server";
248
- import { IntlayerClientProvider, useIntlayer } from "next-intlayer";
249
-
250
- const PageContent = () => {
251
- const { content } = useIntlayer("page");
252
- return (
253
- <>
254
- <p>{content.getStarted.main}</p>
255
- <code>{content.getStarted.pageLink}</code>
256
- </>
257
- );
258
- };
259
-
260
- export default function Page({ params }) {
261
- return (
262
- <IntlayerServerProvider locale={params.locale}>
263
- <IntlayerClientProvider locale={params.locale}>
264
- <PageContent />
265
- </IntlayerClientProvider>
266
- </IntlayerServerProvider>
267
- );
268
- }
269
- ```
270
-
271
- </details>
145
+ ## व्यावहारिक माइग्रेशन नोट्स (next-intl / next-i18next → Intlayer)
146
+
147
+ - **प्रत्येक फीचर से शुरू करें**: एक बार में एक रूट या कंपोनेंट को **स्थानीय शब्दकोशों** में स्थानांतरित करें।
148
+ - **पुराने कैटलॉग्स को समानांतर रखें**: माइग्रेशन के दौरान पुल का काम करें; एक बड़ा बदलाव करने से बचें।
149
+ - **सख्त जांचें चालू करें**: बिल्ड-टाइम पर अंतराल जल्दी पता चलने दें।
150
+ - **मिडलवेयर और हेल्पर्स अपनाएं**: साइट-वाइड लोकल डिटेक्शन और SEO टैग्स को मानकीकृत करें।
151
+ - **बंडल्स को मापें**: जब अप्रयुक्त सामग्री हटाई जाती है तो **बंडल आकार में कमी** की उम्मीद करें।
272
152
 
273
153
  ---
274
154
 
275
155
  ## निष्कर्ष
276
156
 
277
- प्रत्येक समाधान, **next-intl**, **next-i18next**, और **Intlayer**, बहुभाषी Next.js परियोजनाओं के लिए प्रभावी साबित हुआ है। हालाँकि, **Intlayer** आगे बढ़ता है:
157
+ तीनों लाइब्रेरीज़ मूल स्थानीयकरण में सफल हैं। फर्क यह है कि **आपको कितना काम करना होगा** एक मजबूत, स्केलेबल सेटअप प्राप्त करने के लिए **आधुनिक Next.js** में:
278
158
 
279
- - **घटक-स्तरीय अनुवाद आर्किटेक्चर** को प्रोत्साहित करना
280
- - **Next.js 13+ और Server Components** के साथ सहज एकीकरण
281
- - **शक्तिशाली TypeScript** स्वचालित उत्पन्न सुरक्षा के लिए
282
- - निर्माण के समय **गायब अनुवादों** का प्रबंधन करना
283
- - उन्नत रूटिंग और मिडलवेयर के साथ **सरल, एकल कॉन्फ़िगरेशन** दृष्टिकोण प्रदान करना
159
+ - **Intlayer** के साथ, **मॉड्यूलर कंटेंट**, **सख्त TS**, **बिल्ड-टाइम सुरक्षा**, **ट्री-शेक्ड बंडल**, और **प्रथम श्रेणी का App Router + SEO टूलिंग** **डिफ़ॉल्ट** हैं, न कि बोझ।
160
+ - यदि आपकी टीम एक मल्टी-लोकल, कंपोनेंट-चालित ऐप में **रखरखाव और गति** को महत्व देती है, तो Intlayer आज सबसे **पूर्ण** अनुभव प्रदान करता है।
284
161
 
285
- यदि आप **आधुनिक** i18n सुविधाओं की तलाश कर रहे हैं जो Next.js App Router के लिए अनुकूलित हैं और एक **पूर्ण रूप से टाइप** अनुभव की तलाश कर रहे हैं बिना मैन्युअल रूप से फ़ॉलबैक लॉजिक, रूट पुनर्लेखन, या जटिल निर्माण चरणों को तैयार किए, तो **Intlayer** एक आकर्षक विकल्प है। यह न केवल आपके सेटअप के समय को कम करता है, बल्कि आपकी टीम के लिए अनुवादों के लिए एक अधिक बनाए रखने योग्य, स्केलेबल दृष्टिकोण सुनिश्चित करता है।
162
+ अधिक जानकारी के लिए ['Why Intlayer?' दस्तावेज़](https://intlayer.org/doc/why) देखें।