@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
package/docs/hi/readme.md CHANGED
@@ -46,27 +46,27 @@ Intlayer वेब और मोबाइल एप्लिकेशन के
46
46
 
47
47
  ## Intlayer के मुख्य लाभ:
48
48
 
49
- | विशेषता | विवरण |
50
- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **मल्टी-फ्रेमवर्क समर्थन**<br><br>Intlayer सभी प्रमुख फ्रेमवर्क और लाइब्रेरी के साथ संगत है, जिसमें Next.js, React, Vite, Vue.js, Nuxt, Preact, Express आदि शामिल हैं। |
52
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **जावास्क्रिप्ट-संचालित सामग्री प्रबंधन**<br><br>अपनी सामग्री को कुशलतापूर्वक परिभाषित और प्रबंधित करने के लिए जावास्क्रिप्ट के लचीलेपन का लाभ उठाएं। <br><br> - [सामग्री घोषणा](https://intlayer.org/doc/concept/content) |
53
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **प्रति-स्थानीय सामग्री घोषणा फ़ाइल**<br><br>ऑटो-जेनरेशन से पहले अपनी सामग्री को एक बार घोषित करके अपने विकास को तेज़ करें।<br><br> - [प्रति-स्थानीय सामग्री घोषणा फ़ाइल](https://intlayer.org/doc/concept/per-locale-file) |
54
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **कंपाइलर**<br><br>Intlayer कंपाइलर स्वचालित रूप से घटकों से सामग्री निकालता है और शब्दकोश फ़ाइलें बनाता है।<br><br> - [कंपाइलर](https://intlayer.org/doc/compiler) |
55
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **टाइप-सेफ वातावरण**<br><br>यह सुनिश्चित करने के लिए TypeScript का उपयोग करें कि आपकी सामग्री परिभाषाएं और कोड त्रुटि-मुक्त हैं, साथ ही IDE ऑटोकम्प्लीशन का लाभ भी उठाएं।<br><br> - [TypeScript कॉन्फ़िगरेशन](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **सरलीकृत सेटअप**<br><br>न्यूनतम कॉन्फ़िगरेशन के साथ जल्दी से शुरू करें। अंतरराष्ट्रीयकरण, रूटिंग, AI, बिल्ड और सामग्री प्रबंधन के लिए सेटिंग्स को आसानी से समायोजित करें। <br><br> - [Next.js एकीकरण का अन्वेषण करें](https://intlayer.org/doc/environment/nextjs) |
57
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **सरलीकृत सामग्री पुनर्प्राप्ति**<br><br>प्रत्येक सामग्री के लिए अपने `t` फ़ंक्शन को कॉल करने की आवश्यकता नहीं है। एक ही हुक का उपयोग करके अपनी सभी सामग्री सीधे प्राप्त करें।<br><br> - [React एकीकरण](https://intlayer.org/doc/environment/create-react-app) |
58
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **सुसंगत सर्वर घटक कार्यान्वयन**<br><br>Next.js सर्वर घटकों के लिए पूरी तरह से उपयुक्त, क्लाइंट और सर्वर घटकों दोनों के लिए एक ही कार्यान्वयन का उपयोग करें, प्रत्येक सर्वर घटक में अपना `t` फ़ंक्शन पास करने की आवश्यकता नहीं है। <br><br> - [सर्वर घटक](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **संगठित कोडबेस**<br><br>अपने कोडबेस को अधिक व्यवस्थित रखें: 1 घटक = उसी फ़ोल्डर में 1 शब्दकोश। अनुवाद अपने संबंधित घटकों के करीब होने से रखरखाव और स्पष्टता बढ़ती है। <br><br> - [Intlayer कैसे काम करता है](https://intlayer.org/doc/concept/how-works-intlayer) |
60
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **उन्नत रूटिंग**<br><br>ऐप रूटिंग के लिए पूर्ण समर्थन, Next.js, React, Vite, Vue.js आदि के लिए जटिल एप्लिकेशन संरचनाओं में सहजता से ढल जाता है।<br><br> - [Next.js एकीकरण का अन्वेषण करें](https://intlayer.org/doc/environment/nextjs) |
61
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **मार्कडाउन समर्थन**<br><br>गोपनीयता नीतियों, दस्तावेज़ों आदि जैसी बहुभाषी सामग्री के लिए स्थानीय फ़ाइलों और दूरस्थ मार्कडाउन को आयात और व्याख्या करें। मार्कडाउन मेटाडेटा को व्याख्यायित करें और इसे अपने कोड में सुलभ बनाएं।<br><br> - [सामग्री फ़ाइलें](https://intlayer.org/doc/concept/content/file) |
62
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **मुफ्त विज़ुअल एडिटर और CMS**<br><br>सामग्री लेखकों के लिए एक मुफ्त विज़ुअल एडिटर और CMS उपलब्ध है, जिससे स्थानीयकरण प्लेटफ़ॉर्म की आवश्यकता समाप्त हो जाती है। अपनी सामग्री को Git का उपयोग करके सिंक्रनाइज़ रखें, या इसे CMS के साथ पूरी तरह या आंशिक रूप से बाहरीकृत करें।<br><br> - [Intlayer एडिटर](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
63
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **ट्री-शेकेबल सामग्री**<br><br>ट्री-शेकेबल सामग्री, जो अंतिम बंडल के आकार को कम करती है। प्रति घटक सामग्री लोड करता है, आपके बंडल से किसी भी अप्रयुक्त सामग्री को बाहर रखता है। ऐप लोडिंग दक्षता बढ़ाने के लिए लेज़ी लोडिंग का समर्थन करता है। <br><br> - [ऐप बिल्ड ऑप्टिमाइज़ेशन](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **स्टैटिक रेंडरिंग**<br><br>स्टैटिक रेंडरिंग को ब्लॉक नहीं करता है। <br><br> - [Next.js एकीकरण](https://intlayer.org/doc/environment/nextjs) |
65
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **AI-संचालित अनुवाद**<br><br>Intlayer के उन्नत AI-संचालित अनुवाद टूल का उपयोग करके अपनी वेबसाइट को केवल एक क्लिक में 231 भाषाओं में बदलें, अपने स्वयं के AI प्रदाता / API कुंजी के साथ। <br><br> - [CI/CD एकीकरण](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [ऑटो-फ़िल](https://intlayer.org/doc/concept/auto-fill) |
66
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **MCP सर्वर एकीकरण**<br><br>IDE ऑटोमेशन के लिए एक MCP (मॉडल संदर्भ प्रोटोकॉल) सर्वर प्रदान करता है, जो सीधे आपके विकास वातावरण के भीतर सहज सामग्री प्रबंधन और i18n वर्कफ़्लो को सक्षम करता है। <br><br> - [MCP सर्वर](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/mcp_server.md) |
67
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **VSCode एक्सटेंशन**<br><br>Intlayer आपकी सामग्री और अनुवादों को प्रबंधित करने, आपके शब्दकोश बनाने, आपकी सामग्री का अनुवाद करने और बहुत कुछ करने में मदद करने के लिए एक VSCode एक्सटेंशन प्रदान करता है। <br><br> - [VSCode एक्सटेंशन](https://intlayer.org/doc/vs-code-extension) |
68
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **इंटरऑबरेबिलिटी**<br><br>react-i18next, next-i18next, next-intl, react-intl, vue-i18n के साथ इंटरऑपरेबिलिटी की अनुमति देता है। <br><br> - [Intlayer और react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer और next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer और next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer और vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
69
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **प्रदर्शन और बेंचमार्क**<br><br>प्रदर्शन को बढ़ावा देने और समाधान को यथासंभव हल्का रखने के लिए उन्नत ट्री-शेकिंग और डायनेमिक लोडिंग का उपयोग करता है। <br><br> - [प्रदर्शन और बेंचमार्क](https://intlayer.org/doc/benchmark) |
49
+ | विशेषता | विवरण |
50
+ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **मल्टी-फ्रेमवर्क समर्थन**<br><br>Intlayer सभी प्रमुख फ्रेमवर्क और लाइब्रेरी के साथ संगत है, जिसमें Next.js, React, Vite, Vue.js, Nuxt, Preact, Express आदि शामिल हैं। |
52
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **जावास्क्रिप्ट-संचालित सामग्री प्रबंधन**<br><br>अपनी सामग्री को कुशलतापूर्वक परिभाषित और प्रबंधित करने के लिए जावास्क्रिप्ट के लचीलेपन का लाभ उठाएं। <br><br> - [सामग्री घोषणा](https://intlayer.org/doc/concept/content) |
53
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **प्रति-स्थानीय सामग्री घोषणा फ़ाइल**<br><br>ऑटो-जेनरेशन से पहले अपनी सामग्री को एक बार घोषित करके अपने विकास को तेज़ करें।<br><br> - [प्रति-स्थानीय सामग्री घोषणा फ़ाइल](https://intlayer.org/doc/concept/per-locale-file) |
54
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **कंपाइलर**<br><br>Intlayer कंपाइलर स्वचालित रूप से घटकों से सामग्री निकालता है और शब्दकोश फ़ाइलें बनाता है।<br><br> - [कंपाइलर](https://intlayer.org/doc/compiler) |
55
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **टाइप-सेफ वातावरण**<br><br>यह सुनिश्चित करने के लिए TypeScript का उपयोग करें कि आपकी सामग्री परिभाषाएं और कोड त्रुटि-मुक्त हैं, साथ ही IDE ऑटोकम्प्लीशन का लाभ भी उठाएं।<br><br> - [TypeScript कॉन्फ़िगरेशन](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
56
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **सरलीकृत सेटअप**<br><br>न्यूनतम कॉन्फ़िगरेशन के साथ जल्दी से शुरू करें। अंतरराष्ट्रीयकरण, रूटिंग, AI, बिल्ड और सामग्री प्रबंधन के लिए सेटिंग्स को आसानी से समायोजित करें। <br><br> - [Next.js एकीकरण का अन्वेषण करें](https://intlayer.org/doc/environment/nextjs) |
57
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **सरलीकृत सामग्री पुनर्प्राप्ति**<br><br>प्रत्येक सामग्री के लिए अपने `t` फ़ंक्शन को कॉल करने की आवश्यकता नहीं है। एक ही हुक का उपयोग करके अपनी सभी सामग्री सीधे प्राप्त करें।<br><br> - [React एकीकरण](https://intlayer.org/doc/environment/create-react-app) |
58
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **सुसंगत सर्वर घटक कार्यान्वयन**<br><br>Next.js सर्वर घटकों के लिए पूरी तरह से उपयुक्त, क्लाइंट और सर्वर घटकों दोनों के लिए एक ही कार्यान्वयन का उपयोग करें, प्रत्येक सर्वर घटक में अपना `t` फ़ंक्शन पास करने की आवश्यकता नहीं है। <br><br> - [सर्वर घटक](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
59
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **संगठित कोडबेस**<br><br>अपने कोडबेस को अधिक व्यवस्थित रखें: 1 घटक = उसी फ़ोल्डर में 1 शब्दकोश। अनुवाद अपने संबंधित घटकों के करीब होने से रखरखाव और स्पष्टता बढ़ती है। <br><br> - [Intlayer कैसे काम करता है](https://intlayer.org/doc/concept/how-works-intlayer) |
60
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **उन्नत रूटिंग**<br><br>ऐप रूटिंग के लिए पूर्ण समर्थन, Next.js, React, Vite, Vue.js आदि के लिए जटिल एप्लिकेशन संरचनाओं में सहजता से ढल जाता है।<br><br> - [Next.js एकीकरण का अन्वेषण करें](https://intlayer.org/doc/environment/nextjs) |
61
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **मार्कडाउन समर्थन**<br><br>गोपनीयता नीतियों, दस्तावेज़ों आदि जैसी बहुभाषी सामग्री के लिए स्थानीय फ़ाइलों और दूरस्थ मार्कडाउन को आयात और व्याख्या करें। मार्कडाउन मेटाडेटा को व्याख्यायित करें और इसे अपने कोड में सुलभ बनाएं।<br><br> - [सामग्री फ़ाइलें](https://intlayer.org/doc/concept/content/file) |
62
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **मुफ्त विज़ुअल एडिटर और CMS**<br><br>सामग्री लेखकों के लिए एक मुफ्त विज़ुअल एडिटर और CMS उपलब्ध है, जिससे स्थानीयकरण प्लेटफ़ॉर्म की आवश्यकता समाप्त हो जाती है। अपनी सामग्री को Git का उपयोग करके सिंक्रनाइज़ रखें, या इसे CMS के साथ पूरी तरह या आंशिक रूप से बाहरीकृत करें।<br><br> - [Intlayer एडिटर](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
63
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **ट्री-शेकेबल सामग्री**<br><br>ट्री-शेकेबल सामग्री, जो अंतिम बंडल के आकार को कम करती है। प्रति घटक सामग्री लोड करता है, आपके बंडल से किसी भी अप्रयुक्त सामग्री को बाहर रखता है। ऐप लोडिंग दक्षता बढ़ाने के लिए लेज़ी लोडिंग का समर्थन करता है। <br><br> - [ऐप बिल्ड ऑप्टिमाइज़ेशन](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
64
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **स्टैटिक रेंडरिंग**<br><br>स्टैटिक रेंडरिंग को ब्लॉक नहीं करता है। <br><br> - [Next.js एकीकरण](https://intlayer.org/doc/environment/nextjs) |
65
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **AI-संचालित अनुवाद**<br><br>Intlayer के उन्नत AI-संचालित अनुवाद टूल का उपयोग करके अपनी वेबसाइट को केवल एक क्लिक में 231 भाषाओं में बदलें, अपने स्वयं के AI प्रदाता / API कुंजी के साथ। <br><br> - [CI/CD एकीकरण](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [ऑटो-फ़िल](https://intlayer.org/doc/concept/auto-fill) |
66
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **MCP सर्वर एकीकरण**<br><br>IDE ऑटोमेशन के लिए एक MCP (मॉडल संदर्भ प्रोटोकॉल) सर्वर प्रदान करता है, जो सीधे आपके विकास वातावरण के भीतर सहज सामग्री प्रबंधन और i18n वर्कफ़्लो को सक्षम करता है। <br><br> - [MCP सर्वर](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/mcp_server.md) |
67
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **VSCode एक्सटेंशन**<br><br>Intlayer आपकी सामग्री और अनुवादों को प्रबंधित करने, आपके शब्दकोश बनाने, आपकी सामग्री का अनुवाद करने और बहुत कुछ करने में मदद करने के लिए एक VSCode एक्सटेंशन प्रदान करता है। <br><br> - [VSCode एक्सटेंशन](https://intlayer.org/doc/vs-code-extension) |
68
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **इंटरऑबरेबिलिटी**<br><br>react-i18next, next-i18next, next-intl, react-intl, vue-i18n के साथ इंटरऑपरेबिलिटी की अनुमति देता है। <br><br> - [Intlayer और react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer और next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer और next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer और vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [Intlayer compat adapters](https://intlayer.org/doc/compatibility) |
69
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **प्रदर्शन और बेंचमार्क**<br><br>प्रदर्शन को बढ़ावा देने और समाधान को यथासंभव हल्का रखने के लिए उन्नत ट्री-शेकिंग और डायनेमिक लोडिंग का उपयोग करता है। <br><br> - [प्रदर्शन और बेंचमार्क](https://intlayer.org/doc/benchmark) |
70
70
 
71
71
  ---
72
72
 
@@ -173,7 +173,7 @@ Intlayer के साथ शुरुआत करने और इसे अ
173
173
  <li><a href="https://intlayer.org/doc/concept/cms" rel=''>Intlayer CMS</a></li>
174
174
  <li><a href="https://intlayer.org/doc/concept/content" rel=''>शब्दकोश</a>
175
175
  <ul>
176
- <li><a href="https://intlayer.org/doc/concept/content/per-locale-file" rel=''>प्रति-स्थानीय सामग्री घोषणा फ़ाइल</a></li>
176
+ <li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>प्रति-स्थानीय सामग्री घोषणा फ़ाइल</a></li>
177
177
  <li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>अनुवाद</a></li>
178
178
  <li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>सूचीकरण</a></li>
179
179
  <li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>शर्त</a></li>
@@ -194,7 +194,7 @@ Intlayer के साथ शुरुआत करने और इसे अ
194
194
  <ul>
195
195
  <li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
196
196
  <li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
197
- <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
197
+ <li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js Page Router</a></li>
198
198
  <li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>कंपाइलर के साथ Next.js</a></li>
199
199
  </ul>
200
200
  </li>
@@ -223,7 +223,7 @@ Intlayer के साथ शुरुआत करने और इसे अ
223
223
  <li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
224
224
  <li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
225
225
  <li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
226
- <li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
226
+ <li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
227
227
  <li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
228
228
  <li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
229
229
  <li>
@@ -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: Optimasi Ukuran Bundle & Performa i18n
5
5
  description: Kurangi ukuran bundle aplikasi Anda dengan mengoptimalkan konten internasionalisasi (i18n). Pelajari cara memanfaatkan tree shaking dan lazy loading untuk kamus menggunakan Intlayer.
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` dan `minify` kini bekerja di Next.js melalui `@intlayer/swc` — tidak perlu `babel.config.js`"
22
+ - version: 8.12.0
23
+ date: 2026-06-24
24
+ changes: "Mencantumkan plugin Babel dalam urutan pipeline yang diperlukan (extract → purge → minify → optimize) pada tabel referensi"
19
25
  - version: 8.12.0
20
26
  date: 2026-06-07
21
27
  changes: "Menambahkan `intlayerPurgeBabelPlugin` dan `intlayerMinifyBabelPlugin` untuk Babel/Webpack; menjelaskan pipeline plugin"
@@ -191,12 +197,14 @@ Optimasi build dari Intlayer terbagi menjadi beberapa plugin terpisah yang masin
191
197
 
192
198
  Plugin-plugin ini digunakan secara langsung di dalam `babel.config.js` untuk setup berbasis Webpack (Next.js dengan Babel, CRA, kustom Webpack, dll).
193
199
 
200
+ Tabel di bawah ini mencantumkannya dalam urutan pipeline yang diperlukan (urutan yang sama seperti yang harus muncul di `babel.config.js`):
201
+
194
202
  | Plugin | Apa yang dilakukannya |
195
203
  | :---------------------------- | :--------------------------------------------------------------------------------------------------------------------- |
196
204
  | `intlayerExtractBabelPlugin` | Memindai file `.content.ts` dan menulis kamus yang telah dikompilasi ke direktori `.intlayer/` |
197
- | `intlayerOptimizeBabelPlugin` | Menulis ulang `useIntlayer('key')` menjadi `useDictionary(hash)` dan menyuntikkan (injects) `import` kamus yang sesuai |
198
205
  | `intlayerPurgeBabelPlugin` | Memindai semua file source, menghapus **field konten yang tidak terpakai** dari file kamus `.intlayer/**/*.json` |
199
206
  | `intlayerMinifyBabelPlugin` | **Mengganti nama kunci (keys) konten** menjadi alias alfabet yang pendek (`title` → `a`) di file JSON maupun source |
207
+ | `intlayerOptimizeBabelPlugin` | Menulis ulang `useIntlayer('key')` menjadi `useDictionary(hash)` dan menyuntikkan (injects) `import` kamus yang sesuai |
200
208
 
201
209
  > **Urutan plugin sangat penting.** Di dalam `babel.config.js`, plugin purge dan minify harus ditempatkan **sebelum** plugin optimize. Langkah optimize menggantikan `useIntlayer('key')` dengan pemanggilan `useDictionary(hash)` yang menyembunyikan informasi 'key' dari kamus. Informasi 'key' ini sangat diperlukan oleh tahap purge dan minify untuk mengidentifikasi field mana yang dipakai.
202
210
 
@@ -205,9 +213,9 @@ Setiap plugin Babel memiliki "options helper" yang berhubungan untuk membaca `in
205
213
  | Options helper | Digunakan dengan |
206
214
  | :--------------------------- | :---------------------------- |
207
215
  | `getExtractPluginOptions()` | `intlayerExtractBabelPlugin` |
208
- | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
209
216
  | `getPurgePluginOptions()` | `intlayerPurgeBabelPlugin` |
210
217
  | `getMinifyPluginOptions()` | `intlayerMinifyBabelPlugin` |
218
+ | `getOptimizePluginOptions()` | `intlayerOptimizeBabelPlugin` |
211
219
 
212
220
  ### Plugin Vite (`vite-intlayer`)
213
221
 
@@ -220,6 +228,20 @@ Pengguna Vite **tidak pernah mengonfigurasi ini secara langsung**. Plugin ini te
220
228
  | Dictionary minify | Sama seperti pass penulisan JSON dari `intlayerMinifyBabelPlugin` |
221
229
  | Babel transform | Sama seperti penggantian nama kode dari `intlayerMinifyBabelPlugin` + `intlayerOptimizeBabelPlugin` |
222
230
 
231
+ ### Plugin SWC (`@intlayer/swc`)
232
+
233
+ Pengguna Next.js juga **tidak pernah mengonfigurasi ini secara langsung**. Sejak **v9.2.1**, `withIntlayer()` di `next.config.ts` menjalankan seluruh pipeline — purge, minify, dan penulisan ulang import — hanya berdasarkan flag `build.purge` dan `build.minify`.
234
+
235
+ Pekerjaan dibagi menjadi dua, karena plugin Wasm SWC mentransformasi satu berkas dalam satu waktu dan tidak memiliki akses ke sistem berkas:
236
+
237
+ | Tahap | Di mana dijalankan | Apa yang dilakukan |
238
+ | :---------------------------------------------- | :------------------------------ | :-------------------------------------------------------------------------------------------------------------- |
239
+ | Analisis penggunaan + purge/minify JSON | Node, di dalam `withIntlayer()` | Membaca setiap berkas sumber komponen, menulis ulang `.intlayer/**/*.json`, menghasilkan tabel penggantian nama |
240
+ | Penulisan ulang sumber (`content.title` → `.a`) | `@intlayer/swc` (Wasm) | Menerapkan tabel penggantian nama pada akses properti yang sesuai di kode Anda |
241
+ | Penulisan ulang import (`useIntlayer` → dict) | `@intlayer/swc` (Wasm) | Sama seperti `intlayerOptimizeBabelPlugin` |
242
+
243
+ Menentukan _bidang mana_ yang tidak terpakai dan _alias apa_ yang diterima masing-masing memerlukan status lintas berkas dan I/O berkas, sehingga separuh itu berjalan di Node; plugin SWC hanya menerima tabel hasilnya.
244
+
223
245
  ## Setup berdasarkan Platform
224
246
 
225
247
  <Tabs>
@@ -227,10 +249,12 @@ Pengguna Vite **tidak pernah mengonfigurasi ini secara langsung**. Plugin ini te
227
249
 
228
250
  ### Next.js
229
251
 
230
- Next.js memerlukan plugin `@intlayer/swc` untuk optimasi pass (menulis ulang import), karena Next.js menggunakan SWC untuk proses build-nya.
252
+ Next.js memerlukan plugin `@intlayer/swc`, karena Next.js menggunakan SWC untuk build. Sejak **v9.2.1**, satu paket ini mencakup seluruh pipeline — optimasi (penulisan ulang import), purge, dan minify.
231
253
 
232
254
  > Plugin ini tidak terpasang secara default karena plugin SWC masih berada pada tahap eksperimental untuk Next.js. Hal ini dapat berubah di masa yang akan datang.
233
255
 
256
+ > **Next.js 16.1.0 adalah versi minimum.** Ini adalah rilis pertama yang dibangun di atas ABI plugin Wasm SWC yang kompatibel ke depan; rilis sebelumnya menolak plugin tersebut. `withIntlayer` membaca versi Next.js proyek Anda dan tidak mendaftarkan plugin sama sekali di bawah 16.1.0 — build tersebut tetap berhasil, hanya saja berjalan tanpa optimasi bundle.
257
+
234
258
  <Tabs>
235
259
  <Tab value="npm">
236
260
 
@@ -265,33 +289,40 @@ intlayer-swc-plugin = "*"
265
289
 
266
290
  Setelah dipasang, Intlayer akan mendeteksi dan menggunakan plugin ini secara otomatis.
267
291
 
268
- Untuk langkah **purge dan minify** (menghapus field dan mengganti nama field), instal `@intlayer/babel` bersamanya dan tambahkan plugin Babel tersebut. Walaupun Next.js menggunakan SWC untuk proses transformasi namun ia tetap mengevaluasi `babel.config.js` untuk plugin config, jadi plugin Babel ini berjalan sebagai pra-langkah sebelum SWC dieksekusi.
292
+ Tahap **purge dan minify** (penghapusan dan penggantian nama bidang) tidak memerlukan paket tambahan maupun `babel.config.js`. Bungkus konfigurasi Anda dengan `withIntlayer` dan aktifkan flag di `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 = {/* konfigurasi Anda */};
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: menghapus field konten yang tidak digunakan dari .intlayer/**/*.json
286
- [intlayerPurgeBabelPlugin, getPurgePluginOptions()],
287
- // Minify: mengubah nama field konten di JSON + source code
288
- [intlayerMinifyBabelPlugin, getMinifyPluginOptions()],
289
- // Catatan: intlayerOptimizeBabelPlugin TIDAK DIBUTUHKAN di sini karena
290
- // @intlayer/swc yang menangani penggantian useIntlayer → useDictionary.
291
- ],
306
+ const config: IntlayerConfig = {
307
+ build: {
308
+ purge: true, // menghapus bidang konten yang tidak terpakai dari JSON yang dibundel
309
+ minify: true, // mengganti nama kunci bidang konten menjadi alias pendek
310
+ },
292
311
  };
312
+
313
+ export default config;
293
314
  ```
294
315
 
316
+ Selama `next build`, `withIntlayer` menganalisis sumber Anda, menulis ulang kamus yang telah dikompilasi, dan meneruskan tabel penggantian nama bidang yang dihasilkan ke `@intlayer/swc`, yang memperbarui akses properti yang sesuai di kode Anda.
317
+
318
+ > Gunakan `withIntlayer` yang asinkron, bukan `withIntlayerSync`. Varian sinkron tidak menjalankan pipeline analisis, jadi purge dan minify tidak berpengaruh dengannya.
319
+
320
+ > Purge dan minify hanya berjalan pada `next build` — pipeline optimasi dimatikan selama `next dev`.
321
+
322
+ > Keduanya juga dinonaktifkan ketika pemanggil adapter kompatibilitas dikonfigurasi (`swcExtraCallers`, disetel oleh paket kompatibilitas seperti `@intlayer/next-intl` atau `@intlayer/react-i18next`): titik panggilan tersebut tidak terlihat oleh penganalisis penggunaan, sehingga purge akan menghapus bidang yang masih dibaca oleh kode. Penulisan ulang import tetap aktif.
323
+
324
+ **Versi sebelumnya (sebelum 9.2.1)** memerlukan `@intlayer/babel` dan sebuah `babel.config.js` yang mendeklarasikan `intlayerPurgeBabelPlugin` dan `intlayerMinifyBabelPlugin`. Berkas itu tidak lagi diperlukan dan dapat dihapus.
325
+
295
326
  </Tab>
296
327
  <Tab value="vite">
297
328
 
@@ -447,6 +478,8 @@ export default config;
447
478
 
448
479
  > Minifikasi akan dilompati (skipped) bila `optimize` disetel menjadi `false` atau `editor.enabled` bernilai `true` (Visual editor sangat memerlukan nama field asli untuk mode pengeditan).
449
480
 
481
+ > Di Next.js, minifikasi juga dilewati ketika `@intlayer/swc` tidak terpasang atau tidak dapat dimuat (Next.js di bawah 16.1.0). Plugin inilah separuh yang menulis ulang akses di kode sumber, sehingga mengganti nama kamus tanpa plugin tersebut akan membuat kode Anda membaca nama bidang yang sudah tidak ada.
482
+
450
483
  > Proses minifikasi ini juga akan dihiraukan jika file kamus dipanggil lewat `importMode: 'fetch'` karena file JSON tersebut dikirim dari API terpencil menggunakan nama struktur kunci originalnya. Apabila client mencoba melakukan minifikasi maka jembatan kontrak server/client akan rusak.
451
484
 
452
485
  ### Purging (penghapusan field konten tak terpakai)
@@ -475,7 +508,7 @@ export default config;
475
508
  { "title": "…", "subtitle": "…" }
476
509
  ```
477
510
 
478
- > Purge akan dilompati ketika `optimize` bernilai `false` atau `editor.enabled` adalah `true`.
511
+ > Purge akan dilompati ketika `optimize` bernilai `false` atau `editor.enabled` adalah `true`. Di Next.js, ia juga dilewati ketika `@intlayer/swc` tidak tersedia dan ketika pemanggil adapter kompatibilitas dikonfigurasi.
479
512
 
480
513
  > Secara konservatif, proses purge tidak akan dilaksanakan jika file asal (source file) gagal dipindai, atau pemanggilan `useIntlayer` disimpan di variabel untuk lalu disebarluaskan di mana proses pindaian statik tak mampu melacak jejaknya (contoh lewat spread function atau pengiriman prop secara untuh). Jika skenario ini terjadi, file kamus tak akan disentuh.
481
514
 
@@ -404,7 +404,7 @@ const config: IntlayerConfig = {
404
404
  ai: {
405
405
  /**
406
406
  * Penyedia AI yang akan digunakan.
407
- * Opsi: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio'
407
+ * Opsi: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
408
408
  * Default: 'openai'
409
409
  */
410
410
  provider: "openai",
@@ -1032,15 +1032,15 @@ Intlayer mendukung berbagai penyedia AI untuk memastikan fleksibilitas maksimal.
1032
1032
  - **Together.ai**
1033
1033
  - **LM Studio**
1034
1034
 
1035
- | Bidang | Deskripsi | Tipe | Default | Contoh | Catatan |
1036
- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1037
- | `provider` | Penyedia yang akan digunakan untuk fitur AI Intlayer. | `'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'` | Penyedia yang berbeda memerlukan kunci API yang berbeda dan memiliki struktur harga yang berbeda pula. |
1038
- | `model` | Model AI yang akan digunakan dalam fitur AI. | `string` | Tidak ada | `'gpt-4o-2024-11-20'` | Model tertentu bergantung pada penyedia. |
1039
- | `temperature` | Mengontrol keacakan respons AI. | `number` | Tidak ada | `0.1` | Temperatur yang lebih tinggi = respons yang lebih kreatif tetapi kurang andal. |
1040
- | `apiKey` | Kunci API Anda untuk penyedia yang dipilih. | `string` | Tidak ada | `process.env.OPENAI_API_KEY` | Jaga kerahasiaannya; simpan dalam variabel lingkungan. |
1041
- | `applicationContext` | Konteks tambahan tentang aplikasi Anda untuk membantu AI menghasilkan terjemahan yang lebih akurat (domain, audiens target, nada, terminologi). | `string` | Tidak ada | `'mój własny kontekst aplikacji'` | Dapat digunakan untuk menambahkan aturan (misalnya: `"Anda tidak boleh menerjemahkan URL Anda"` ). |
1042
- | `baseURL` | URL dasar untuk AI API. | `string` | Tidak ada | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Dapat merujuk ke endpoint AI API lokal atau kustom. |
1043
- | `dataSerialization` | Format serialisasi data untuk fitur AI. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: default, andal; menggunakan lebih banyak token.<br/>• `'toon'`: lebih sedikit token, kurang stabil.<br/>• Meneruskan parameter tambahan ke model (upaya penalaran, dll.). |
1035
+ | Bidang | Deskripsi | Tipe | Default | Contoh | Catatan |
1036
+ | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1037
+ | `provider` | Penyedia yang akan digunakan untuk fitur AI Intlayer. | `'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'` | Penyedia yang berbeda memerlukan kunci API yang berbeda dan memiliki struktur harga yang berbeda pula. |
1038
+ | `model` | Model AI yang akan digunakan dalam fitur AI. | `string` | Tidak ada | `'gpt-4o-2024-11-20'` | Model tertentu bergantung pada penyedia. |
1039
+ | `temperature` | Mengontrol keacakan respons AI. | `number` | Tidak ada | `0.1` | Temperatur yang lebih tinggi = respons yang lebih kreatif tetapi kurang andal. |
1040
+ | `apiKey` | Kunci API Anda untuk penyedia yang dipilih. | `string` | Tidak ada | `process.env.OPENAI_API_KEY` | Jaga kerahasiaannya; simpan dalam variabel lingkungan. |
1041
+ | `applicationContext` | Konteks tambahan tentang aplikasi Anda untuk membantu AI menghasilkan terjemahan yang lebih akurat (domain, audiens target, nada, terminologi). | `string` | Tidak ada | `'mój własny kontekst aplikacji'` | Dapat digunakan untuk menambahkan aturan (misalnya: `"Anda tidak boleh menerjemahkan URL Anda"` ). |
1042
+ | `baseURL` | URL dasar untuk AI API. | `string` | Tidak ada | `'https://api.openai.com/v1'` <br/> `'http://localhost:5000'` | Dapat merujuk ke endpoint AI API lokal atau kustom. |
1043
+ | `dataSerialization` | Format serialisasi data untuk fitur AI. | `'json'` &#124; <br/> `'toon'` | `undefined` | `'toon'` | • `'json'`: default, andal; menggunakan lebih banyak token.<br/>• `'toon'`: lebih sedikit token, kurang stabil.<br/>• Meneruskan parameter tambahan ke model (upaya penalaran, dll.). |
1044
1044
 
1045
1045
  ---
1046
1046
 
@@ -210,7 +210,7 @@ export const ComponentExample = () => {
210
210
  Pendekatan ini memungkinkan Anda untuk:
211
211
 
212
212
  1. **Meningkatkan kecepatan pengembangan**
213
- - File `.content.{{ts|mjs|cjs|json}}` dapat dibuat menggunakan ekstensi VSCode
213
+ - File `.content.{ts|js|mjs|cjs|json|tsx|jsx|md|mdx|yaml|yml}` dapat dibuat menggunakan ekstensi VSCode
214
214
  - Alat AI autocompletion di IDE Anda (seperti GitHub Copilot) dapat membantu Anda mendeklarasikan konten Anda, mengurangi copy/paste
215
215
 
216
216
  2. **Membersihkan codebase Anda**
@@ -234,27 +234,27 @@ Pendekatan ini memungkinkan Anda untuk:
234
234
 
235
235
  ## Fitur Tambahan Intlayer
236
236
 
237
- | Feature | Description |
238
- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
239
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Dukungan Lintas Framework**<br><br>Intlayer kompatibel dengan semua framework dan library utama, termasuk Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, dan lainnya. |
240
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **Manajemen Konten Bertenaga JavaScript**<br><br>Manfaatkan fleksibilitas JavaScript untuk mendefinisikan dan mengelola konten Anda secara efisien. <br><br> - [Deklarasi konten](https://intlayer.org/doc/concept/content) |
241
- | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>Intlayer Compiler mengekstrak konten secara otomatis dari komponen dan menghasilkan file kamus.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
242
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **File Deklarasi Konten Per-Locale**<br><br>Percepat pengembangan Anda dengan mendeklarasikan konten Anda sekali, sebelum pembuatan otomatis.<br><br> - [File Deklarasi Konten Per-Locale](https://intlayer.org/doc/concept/per-locale-file) |
243
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Lingkungan Aman Tipe**<br><br>Manfaatkan TypeScript untuk memastikan definisi konten dan kode Anda bebas kesalahan, sambil juga menikmati autocompletion IDE.<br><br> - [Konfigurasi TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
244
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Penyiapan Disederhanakan**<br><br>Mulai dengan cepat dengan konfigurasi minimal. Sesuaikan pengaturan untuk internasionalisasi, routing, AI, build, dan penanganan konten dengan mudah. <br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
245
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Pengambilan Konten Disederhanakan**<br><br>Tidak perlu memanggil fungsi `t` Anda untuk setiap bagian konten. Ambil semua konten Anda secara langsung menggunakan satu hook.<br><br> - [Integrasi React](https://intlayer.org/doc/environment/create-react-app) |
246
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Implementasi Komponen Server Konsisten**<br><br>Sangat cocok untuk komponen server Next.js, gunakan implementasi yang sama untuk komponen klien dan server, tidak perlu melewatkan fungsi `t` Anda di setiap komponen server. <br><br> - [Komponen Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
247
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Codebase Terorganisir**<br><br>Jaga codebase Anda lebih terorganisir: 1 komponen = 1 kamus dalam folder yang sama. Terjemahan yang dekat dengan komponen mereka masing-masing meningkatkan kemudahan pemeliharaan dan kejelasan. <br><br> - [Cara Kerja Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
248
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Routing Ditingkatkan**<br><br>Dukungan lengkap routing aplikasi, beradaptasi dengan mulus dengan struktur aplikasi yang kompleks, untuk Next.js, React, Vite, Vue.js, dll.<br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
249
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Dukungan Markdown**<br><br>Impor dan interpretasikan file locale dan Markdown jarak jauh untuk konten multibahasa seperti kebijakan privasi, dokumentasi, dll. Interpretasikan dan buat metadata Markdown dapat diakses dalam kode Anda.<br><br> - [File konten](https://intlayer.org/doc/concept/content/file) |
250
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Editor Visual & CMS Gratis**<br><br>Editor visual dan CMS gratis tersedia untuk penulis konten, menghilangkan kebutuhan akan platform lokalisasi. Jaga konten Anda tetap tersinkronisasi menggunakan Git, atau eksternalisasi sepenuhnya atau sebagian dengan CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
251
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Konten Tree-shakable**<br><br>Konten tree-shakable, mengurangi ukuran bundle akhir. Memuat konten per komponen, mengecualikan konten yang tidak digunakan dari bundle Anda. Mendukung lazy loading untuk meningkatkan efisiensi loading aplikasi. <br><br> - [Optimasi build aplikasi](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
252
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Rendering Statis**<br><br>Tidak memblokir Rendering Statis. <br><br> - [Integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
253
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **Terjemahan Bertenaga AI**<br><br>Ubah situs web Anda menjadi 231 bahasa dengan hanya satu klik menggunakan alat terjemahan bertenaga AI Intlayer yang canggih menggunakan penyedia/kunci API AI Anda sendiri. <br><br> - [Integrasi CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Isi Otomatis](https://intlayer.org/doc/concept/auto-fill) |
254
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **Integrasi MCP Server**<br><br>Menyediakan server MCP (Model Context Protocol) untuk otomasi IDE, memungkinkan manajemen konten dan alur kerja i18n yang mulus langsung dalam lingkungan pengembangan Anda. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/mcp_server.md) |
255
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **Ekstensi VSCode**<br><br>Intlayer menyediakan ekstensi VSCode untuk membantu Anda mengelola konten dan terjemahan, membangun kamus Anda, menerjemahkan konten Anda, dan lainnya. <br><br> - [Ekstensi VSCode](https://intlayer.org/doc/vs-code-extension) |
256
- | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperabilitas**<br><br>Memungkinkan interoperabilitas dengan react-i18next, next-i18next, next-intl, dan react-intl. <br><br> - [Intlayer dan react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer dan next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer dan next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
257
- | Testing Missing Translations (CLI/CI) | ✅ CLI: npx intlayer content test (audit ramah-CI) |
237
+ | Feature | Description |
238
+ | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
239
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true) | **Dukungan Lintas Framework**<br><br>Intlayer kompatibel dengan semua framework dan library utama, termasuk Next.js, React, Vite, Vue.js, Nuxt, Preact, Express, dan lainnya. |
240
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true) | **Manajemen Konten Bertenaga JavaScript**<br><br>Manfaatkan fleksibilitas JavaScript untuk mendefinisikan dan mengelola konten Anda secara efisien. <br><br> - [Deklarasi konten](https://intlayer.org/doc/concept/content) |
241
+ | <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **Compiler**<br><br>Intlayer Compiler mengekstrak konten secara otomatis dari komponen dan menghasilkan file kamus.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
242
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true) | **File Deklarasi Konten Per-Locale**<br><br>Percepat pengembangan Anda dengan mendeklarasikan konten Anda sekali, sebelum pembuatan otomatis.<br><br> - [File Deklarasi Konten Per-Locale](https://intlayer.org/doc/concept/per-locale-file) |
243
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true) | **Lingkungan Aman Tipe**<br><br>Manfaatkan TypeScript untuk memastikan definisi konten dan kode Anda bebas kesalahan, sambil juga menikmati autocompletion IDE.<br><br> - [Konfigurasi TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
244
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true) | **Penyiapan Disederhanakan**<br><br>Mulai dengan cepat dengan konfigurasi minimal. Sesuaikan pengaturan untuk internasionalisasi, routing, AI, build, dan penanganan konten dengan mudah. <br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
245
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true) | **Pengambilan Konten Disederhanakan**<br><br>Tidak perlu memanggil fungsi `t` Anda untuk setiap bagian konten. Ambil semua konten Anda secara langsung menggunakan satu hook.<br><br> - [Integrasi React](https://intlayer.org/doc/environment/create-react-app) |
246
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true) | **Implementasi Komponen Server Konsisten**<br><br>Sangat cocok untuk komponen server Next.js, gunakan implementasi yang sama untuk komponen klien dan server, tidak perlu melewatkan fungsi `t` Anda di setiap komponen server. <br><br> - [Komponen Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
247
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true) | **Codebase Terorganisir**<br><br>Jaga codebase Anda lebih terorganisir: 1 komponen = 1 kamus dalam folder yang sama. Terjemahan yang dekat dengan komponen mereka masing-masing meningkatkan kemudahan pemeliharaan dan kejelasan. <br><br> - [Cara Kerja Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
248
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true) | **Routing Ditingkatkan**<br><br>Dukungan lengkap routing aplikasi, beradaptasi dengan mulus dengan struktur aplikasi yang kompleks, untuk Next.js, React, Vite, Vue.js, dll.<br><br> - [Jelajahi integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
249
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true) | **Dukungan Markdown**<br><br>Impor dan interpretasikan file locale dan Markdown jarak jauh untuk konten multibahasa seperti kebijakan privasi, dokumentasi, dll. Interpretasikan dan buat metadata Markdown dapat diakses dalam kode Anda.<br><br> - [File konten](https://intlayer.org/doc/concept/content/file) |
250
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true) | **Editor Visual & CMS Gratis**<br><br>Editor visual dan CMS gratis tersedia untuk penulis konten, menghilangkan kebutuhan akan platform lokalisasi. Jaga konten Anda tetap tersinkronisasi menggunakan Git, atau eksternalisasi sepenuhnya atau sebagian dengan CMS.<br><br> - [Intlayer Editor](https://intlayer.org/doc/concept/editor) <br> - [Intlayer CMS](https://intlayer.org/doc/concept/cms) |
251
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true) | **Konten Tree-shakable**<br><br>Konten tree-shakable, mengurangi ukuran bundle akhir. Memuat konten per komponen, mengecualikan konten yang tidak digunakan dari bundle Anda. Mendukung lazy loading untuk meningkatkan efisiensi loading aplikasi. <br><br> - [Optimasi build aplikasi](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
252
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true) | **Rendering Statis**<br><br>Tidak memblokir Rendering Statis. <br><br> - [Integrasi Next.js](https://intlayer.org/doc/environment/nextjs) |
253
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true) | **Terjemahan Bertenaga AI**<br><br>Ubah situs web Anda menjadi 231 bahasa dengan hanya satu klik menggunakan alat terjemahan bertenaga AI Intlayer yang canggih menggunakan penyedia/kunci API AI Anda sendiri. <br><br> - [Integrasi CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [Isi Otomatis](https://intlayer.org/doc/concept/auto-fill) |
254
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true) | **Integrasi MCP Server**<br><br>Menyediakan server MCP (Model Context Protocol) untuk otomasi IDE, memungkinkan manajemen konten dan alur kerja i18n yang mulus langsung dalam lingkungan pengembangan Anda. <br><br> - [MCP Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/id/mcp_server.md) |
255
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true) | **Ekstensi VSCode**<br><br>Intlayer menyediakan ekstensi VSCode untuk membantu Anda mengelola konten dan terjemahan, membangun kamus Anda, menerjemahkan konten Anda, dan lainnya. <br><br> - [Ekstensi VSCode](https://intlayer.org/doc/vs-code-extension) |
256
+ | ![Feature](https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true) | **Interoperabilitas**<br><br>Memungkinkan interoperabilitas dengan react-i18next, next-i18next, next-intl, dan react-intl. <br><br> - [Intlayer dan react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer dan next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer dan next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Compat adapter Intlayer](https://intlayer.org/doc/compatibility) |
257
+ | Testing Missing Translations (CLI/CI) | ✅ CLI: npx intlayer content test (audit ramah-CI) |
258
258
 
259
259
  ## Perbandingan Intlayer dengan solusi lain
260
260
 
@@ -293,3 +293,5 @@ Bintang GitHub adalah indikator kuat dari popularitas proyek, kepercayaan komuni
293
293
  `intlayer` juga dapat membantu mengelola namespace `react-intl`, `react-i18next`, `next-intl`, `next-i18next`, dan `vue-i18n` Anda.
294
294
 
295
295
  Menggunakan `intlayer`, Anda dapat mendeklarasikan konten dalam format pustaka i18n favorit Anda, dan intlayer akan menghasilkan namespace Anda di lokasi pilihan Anda (contoh: `/messages/{{locale}}/{{namespace}}.json`).
296
+
297
+ Jika Anda ingin tetap menggunakan API pustaka i18n Anda saat ini, `intlayer` juga menyediakan **compat adapter**: paket yang mengekspos API yang persis sama dengan `react-i18next`, `next-intl`, `react-intl`, `vue-i18n`, dan lainnya, tetapi dilayani oleh kamus Intlayer. Ini memungkinkan Anda bermigrasi secara bertahap tanpa menulis ulang kode Anda. Lihat [dokumentasi Compat Adapter](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/compat/index.md).
@@ -404,7 +404,7 @@ export const getLocale = (event: RequestEvent): Locale => {
404
404
  };
405
405
  ```
406
406
 
407
- > `getLocaleFromStorage` akan memeriksa locale dari header atau cookie tergantung pada konfigurasi Anda. Lihat [Configuration](https://intlayer.org/doc/configuration) untuk detail lebih lanjut.
407
+ > `getLocaleFromStorage` akan memeriksa locale dari header atau cookie tergantung pada konfigurasi Anda. Lihat [Configuration](https://intlayer.org/doc/concept/configuration) untuk detail lebih lanjut.
408
408
 
409
409
  > Fungsi `localeDetector` akan memproses header `Accept-Language` dan mengembalikan kecocokan terbaik.
410
410
 
@@ -253,19 +253,21 @@ import {
253
253
  HeadContent,
254
254
  Scripts,
255
255
  createRootRouteWithContext,
256
+ getRouteApi,
256
257
  } from "@tanstack/solid-router";
257
258
  import { HydrationScript } from "solid-js/web";
258
259
  import { Suspense, type ParentComponent } from "solid-js";
259
260
  import { IntlayerProvider } from "solid-intlayer";
260
261
  import { defaultLocale, getHTMLTextDir } from "intlayer";
261
- import { Route as LocaleRoute } from "./{-$locale}/route";
262
+
263
+ const localeRoute = getRouteApi("/{-$locale}");
262
264
 
263
265
  export const Route = createRootRouteWithContext()({
264
266
  shellComponent: RootComponent,
265
267
  });
266
268
 
267
269
  const RootComponent: ParentComponent = (props) => {
268
- const params = LocaleRoute.useParams();
270
+ const params = localeRoute.useParams();
269
271
  const locale = params()?.locale ?? defaultLocale;
270
272
 
271
273
  return (
@@ -550,7 +552,7 @@ Seperti yang terlihat pada Langkah 5, Anda dapat mengelola atribut `lang` dan `d
550
552
 
551
553
  ```tsx fileName="src/routes/__root.tsx"
552
554
  const RootComponent: ParentComponent = (props) => {
553
- const params = LocaleRoute.useParams();
555
+ const params = localeRoute.useParams();
554
556
  const locale = params()?.locale ?? defaultLocale;
555
557
 
556
558
  return (
@@ -270,13 +270,15 @@ Konfigurasikan layout root Anda untuk mendukung internasionalisasi dengan menggu
270
270
  ```tsx fileName="src/routes/__root.tsx"
271
271
  import {
272
272
  createRootRouteWithContext,
273
+ getRouteApi,
273
274
  HeadContent,
274
275
  Scripts,
275
276
  } from "@tanstack/react-router";
276
277
  import { defaultLocale, getHTMLTextDir } from "intlayer";
277
278
  import { type ReactNode } from "react";
278
279
  import { IntlayerProvider } from "react-intlayer";
279
- import { Route as LocaleRoute } from "./{-$locale}/route";
280
+
281
+ const localeRoute = getRouteApi("/{-$locale}");
280
282
 
281
283
  export const Route = createRootRouteWithContext<{}>()({
282
284
  head: () => ({
@@ -298,7 +300,7 @@ export const Route = createRootRouteWithContext<{}>()({
298
300
  });
299
301
 
300
302
  function RootDocument({ children }: { children: ReactNode }) {
301
- const params = LocaleRoute.useParams();
303
+ const params = localeRoute.useParams();
302
304
  const locale = params?.locale ?? defaultLocale;
303
305
 
304
306
  return (
@@ -631,7 +633,7 @@ Seperti yang terlihat pada Langkah 5, Anda dapat mengelola atribut `lang` dan `d
631
633
 
632
634
  ```tsx fileName="src/routes/__root.tsx"
633
635
  function RootDocument({ children }: { children: ReactNode }) {
634
- const params = LocaleRoute.useParams();
636
+ const params = localeRoute.useParams();
635
637
  const locale = params?.locale ?? defaultLocale;
636
638
 
637
639
  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