@intlayer/docs 6.1.5 → 6.1.6-canary.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 (53) hide show
  1. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +404 -173
  2. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +262 -113
  3. package/blog/en/intlayer_with_next-i18next.mdx +431 -0
  4. package/blog/en/intlayer_with_next-intl.mdx +335 -0
  5. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +403 -140
  6. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  7. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +185 -71
  8. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  9. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  10. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  11. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  12. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  13. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +36 -28
  14. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
  15. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +38 -28
  16. package/dist/cjs/generated/docs.entry.cjs +16 -0
  17. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  18. package/dist/esm/generated/docs.entry.mjs +16 -0
  19. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  20. package/dist/types/generated/docs.entry.d.ts +1 -0
  21. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  22. package/docs/ar/component_i18n.md +186 -0
  23. package/docs/ar/vs_code_extension.md +48 -109
  24. package/docs/de/component_i18n.md +186 -0
  25. package/docs/de/vs_code_extension.md +46 -107
  26. package/docs/en/component_i18n.md +186 -0
  27. package/docs/en/intlayer_with_nextjs_14.md +18 -1
  28. package/docs/en/intlayer_with_nextjs_15.md +18 -1
  29. package/docs/en/vs_code_extension.md +24 -114
  30. package/docs/en-GB/component_i18n.md +186 -0
  31. package/docs/en-GB/vs_code_extension.md +42 -103
  32. package/docs/es/component_i18n.md +182 -0
  33. package/docs/es/vs_code_extension.md +53 -114
  34. package/docs/fr/component_i18n.md +186 -0
  35. package/docs/fr/vs_code_extension.md +50 -111
  36. package/docs/hi/component_i18n.md +186 -0
  37. package/docs/hi/vs_code_extension.md +49 -110
  38. package/docs/it/component_i18n.md +186 -0
  39. package/docs/it/vs_code_extension.md +50 -111
  40. package/docs/ja/component_i18n.md +186 -0
  41. package/docs/ja/vs_code_extension.md +50 -111
  42. package/docs/ko/component_i18n.md +186 -0
  43. package/docs/ko/vs_code_extension.md +48 -109
  44. package/docs/pt/component_i18n.md +186 -0
  45. package/docs/pt/vs_code_extension.md +46 -107
  46. package/docs/ru/component_i18n.md +186 -0
  47. package/docs/ru/vs_code_extension.md +48 -109
  48. package/docs/tr/component_i18n.md +186 -0
  49. package/docs/tr/vs_code_extension.md +54 -115
  50. package/docs/zh/component_i18n.md +186 -0
  51. package/docs/zh/vs_code_extension.md +51 -105
  52. package/package.json +11 -11
  53. package/src/generated/docs.entry.ts +16 -0
@@ -0,0 +1,186 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-09-30
4
+ title: React और Next.js में एक कंपोनेंट को बहुभाषी (i18n लाइब्रेरी) कैसे बनाएं
5
+ description: Intlayer के साथ एक बहुभाषी React या Next.js कंपोनेंट बनाने के लिए स्थानीयकृत सामग्री को घोषित और पुनः प्राप्त करना सीखें।
6
+ keywords:
7
+ - i18n
8
+ - component
9
+ - react
10
+ - multilingual
11
+ - next.js
12
+ - intlayer
13
+ slugs:
14
+ - doc
15
+ - component
16
+ - i18n
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
18
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
19
+ ---
20
+
21
+ # Intlayer के साथ एक कंपोनेंट को बहुभाषी (i18n) कैसे बनाएं
22
+
23
+ यह गाइड दो सामान्य सेटअप में एक UI कंपोनेंट को बहुभाषी बनाने के लिए न्यूनतम कदम दिखाता है:
24
+
25
+ - React (Vite/SPA)
26
+ - Next.js (App Router)
27
+
28
+ आप पहले अपनी सामग्री घोषित करेंगे, फिर इसे अपने कंपोनेंट में पुनः प्राप्त करेंगे।
29
+
30
+ ## 1) अपनी सामग्री घोषित करें (React और Next.js दोनों के लिए साझा)
31
+
32
+ अपने कंपोनेंट के पास एक सामग्री घोषणा फ़ाइल बनाएं। यह अनुवादों को उस स्थान के करीब रखता है जहाँ उनका उपयोग होता है और टाइप सुरक्षा सक्षम करता है।
33
+
34
+ ```ts fileName="component.content.ts"
35
+ import { t, type Dictionary } from "intlayer";
36
+
37
+ const componentContent = {
38
+ key: "component-example",
39
+ content: {
40
+ title: t({
41
+ en: "Hello",
42
+ fr: "Bonjour",
43
+ es: "Hola",
44
+ }),
45
+ description: t({
46
+ en: "A multilingual React component",
47
+ fr: "Un composant React multilingue",
48
+ es: "Un componente React multilingüe",
49
+ }),
50
+ },
51
+ } satisfies Dictionary;
52
+
53
+ export default componentContent;
54
+ ```
55
+
56
+ यदि आप कॉन्फ़िगरेशन फ़ाइलों को प्राथमिकता देते हैं तो JSON भी समर्थित है।
57
+
58
+ ```json fileName="component.content.json"
59
+ {
60
+ "$schema": "https://intlayer.org/schema.json",
61
+ "key": "component-example",
62
+ "content": {
63
+ "title": {
64
+ "nodeType": "translation",
65
+ "translation": { "en": "Hello", "fr": "Bonjour", "es": "Hola" }
66
+ },
67
+ "description": {
68
+ "nodeType": "translation",
69
+ "translation": {
70
+ "en": "A multilingual React component",
71
+ "fr": "Un composant React multilingue",
72
+ "es": "Un componente React multilingüe"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ## 2) अपनी सामग्री पुनः प्राप्त करें
80
+
81
+ ### केस A — React ऐप (Vite/SPA)
82
+
83
+ डिफ़ॉल्ट तरीका: कुंजी द्वारा पुनः प्राप्त करने के लिए `useIntlayer` का उपयोग करें। यह कंपोनेंट्स को हल्का और टाइप किया हुआ रखता है।
84
+
85
+ ```tsx fileName="ComponentExample.tsx"
86
+ import { useIntlayer } from "react-intlayer";
87
+
88
+ export function ComponentExample() {
89
+ const content = useIntlayer("component-example");
90
+ return (
91
+ <div>
92
+ <h1>{content.title}</h1>
93
+ <p>{content.description}</p>
94
+ </div>
95
+ );
96
+ }
97
+ ```
98
+
99
+ सर्वर-साइड रेंडरिंग या बाहरी प्रदाता: `react-intlayer/server` का उपयोग करें और आवश्यक होने पर स्पष्ट `locale` पास करें।
100
+
101
+ ```tsx fileName="ServerRenderedExample.tsx"
102
+ import { useIntlayer } from "react-intlayer/server";
103
+
104
+ export function ServerRenderedExample({ locale }: { locale: string }) {
105
+ const content = useIntlayer("component-example", locale);
106
+ return (
107
+ <>
108
+ <h1>{content.title}</h1>
109
+ <p>{content.description}</p>
110
+ </>
111
+ );
112
+ }
113
+ ```
114
+
115
+ वैकल्पिक: यदि आप कॉल साइट पर संरचना को एक साथ रखना पसंद करते हैं, तो `useDictionary` पूरी घोषित वस्तु पढ़ सकता है।
116
+
117
+ ```tsx fileName="ComponentWithDictionary.tsx"
118
+ import { useDictionary } from "react-intlayer";
119
+ import componentContent from "./component.content";
120
+
121
+ export function ComponentWithDictionary() {
122
+ const { title, description } = useDictionary(componentContent);
123
+ return (
124
+ <div>
125
+ <h1>{title}</h1>
126
+ <p>{description}</p>
127
+ </div>
128
+ );
129
+ }
130
+ ```
131
+
132
+ ### मामला बी — Next.js (ऐप राउटर)
133
+
134
+ डेटा सुरक्षा और प्रदर्शन के लिए सर्वर कंपोनेंट्स को प्राथमिकता दें। सर्वर फाइलों में `next-intlayer/server` से `useIntlayer` का उपयोग करें, और क्लाइंट कंपोनेंट्स में `next-intlayer` से `useIntlayer` का उपयोग करें।
135
+
136
+ ```tsx fileName="app/[locale]/example/ServerComponent.tsx"
137
+ import { useIntlayer } from "next-intlayer/server";
138
+
139
+ export default function ServerComponent() {
140
+ const content = useIntlayer("component-example");
141
+ return (
142
+ <>
143
+ <h1>{content.title}</h1>
144
+ <p>{content.description}</p>
145
+ </>
146
+ );
147
+ }
148
+ ```
149
+
150
+ ```tsx fileName="app/[locale]/example/ClientComponent.tsx"
151
+ "use client";
152
+
153
+ import { useIntlayer } from "next-intlayer";
154
+
155
+ export function ClientComponent() {
156
+ const content = useIntlayer("component-example");
157
+ return (
158
+ <div>
159
+ <h1>{content.title}</h1>
160
+ <p>{content.description}</p>
161
+ </div>
162
+ );
163
+ }
164
+ ```
165
+
166
+ टिप: पेज मेटाडेटा और SEO के लिए, आप `getIntlayer` का उपयोग करके कंटेंट भी प्राप्त कर सकते हैं और `getMultilingualUrls` के माध्यम से बहुभाषी URL जनरेट कर सकते हैं।
167
+
168
+ ## क्यों Intlayer का कंपोनेंट दृष्टिकोण सबसे अच्छा है
169
+
170
+ - **समीपता**: कंटेंट घोषणाएँ कंपोनेंट्स के पास रहती हैं, जिससे विचलन कम होता है और डिज़ाइन सिस्टम्स में पुन: उपयोग बेहतर होता है।
171
+ - **टाइप सुरक्षा**: कुंजियाँ और संरचनाएँ मजबूत प्रकारित होती हैं; गायब अनुवाद बिल्ड-टाइम पर ही सामने आते हैं, रनटाइम पर नहीं।
172
+ - **सर्वर-प्रथम**: बेहतर सुरक्षा और प्रदर्शन के लिए सर्वर कंपोनेंट्स में मूल रूप से काम करता है; क्लाइंट हुक्स सहज बने रहते हैं।
173
+ - **ट्री-शेकिंग**: केवल वही कंटेंट जो कंपोनेंट द्वारा उपयोग किया जाता है, उसे बंडल किया जाता है, जिससे बड़े ऐप्स में पेलोड छोटे रहते हैं।
174
+ - **डीएक्स और टूलिंग**: बिल्ट-इन मिडलवेयर, SEO हेल्पर्स, और वैकल्पिक विजुअल एडिटर/एआई अनुवाद रोज़मर्रा के काम को सरल बनाते हैं।
175
+
176
+ Next.js-केंद्रित राउंडअप में तुलना और पैटर्न देखें: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
177
+
178
+ ## संबंधित गाइड और संदर्भ
179
+
180
+ - React सेटअप (Vite): https://intlayer.org/doc/environment/vite-and-react
181
+ - React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
182
+ - TanStack स्टार्ट: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
183
+ - Next.js सेटअप: https://intlayer.org/doc/environment/nextjs
184
+ - क्यों Intlayer बनाम next-intl बनाम next-i18next: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
185
+
186
+ इन पृष्ठों में एंड-टू-एंड सेटअप, प्रोवाइडर्स, रूटिंग, और SEO हेल्पर्स शामिल हैं।
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-03-17
3
- updatedAt: 2025-09-22
3
+ updatedAt: 2025-09-30
4
4
  title: आधिकारिक VS कोड एक्सटेंशन
5
- description: अपने विकास वर्कफ़्लो को बेहतर बनाने के लिए VS कोड में Intlayer एक्सटेंशन का उपयोग करना सीखें। स्थानीयकृत सामग्री के बीच तेजी से नेविगेट करें और अपनी शब्दकोशों का कुशलतापूर्वक प्रबंधन करें।
5
+ description: अपने विकास वर्कफ़्लो को बेहतर बनाने के लिए VS कोड में Intlayer एक्सटेंशन का उपयोग कैसे करें, यह जानें। स्थानीयकृत सामग्री के बीच तेजी से नेविगेट करें और अपनी शब्दकोशों का कुशलतापूर्वक प्रबंधन करें।
6
6
  keywords:
7
7
  - VS कोड एक्सटेंशन
8
8
  - Intlayer
@@ -23,92 +23,36 @@ slugs:
23
23
 
24
24
  [**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) **Intlayer** के लिए आधिकारिक विजुअल स्टूडियो कोड एक्सटेंशन है, जिसे आपके प्रोजेक्ट्स में स्थानीयकृत सामग्री के साथ काम करते समय डेवलपर अनुभव को बेहतर बनाने के लिए डिज़ाइन किया गया है।
25
25
 
26
- ![Intlayer VS कोड एक्सटेंशन](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vs_code_extension_demo.gif)
26
+ ![Intlayer VS कोड एक्सटेंशन](https://github.com/aymericzip/intlayer/blob/main/docs/assets/vs_code_extension_demo.gif?raw=true)
27
27
 
28
28
  एक्सटेंशन लिंक: [https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension)
29
29
 
30
30
  ## विशेषताएँ
31
31
 
32
- ### त्वरित नेविगेशन
33
-
34
- **परिभाषा पर जाएं समर्थन** – `useIntlayer` कुंजी पर `⌘ + क्लिक` (Mac) या `Ctrl + क्लिक` (Windows/Linux) का उपयोग करें ताकि संबंधित सामग्री फ़ाइल तुरंत खुल जाए।
35
- **सहज एकीकरण** – **react-intlayer** और **next-intlayer** प्रोजेक्ट्स के साथ बिना किसी परेशानी के काम करता है।
36
- **बहुभाषी समर्थन** – विभिन्न भाषाओं में स्थानीयकृत सामग्री का समर्थन करता है।
37
- **VS कोड एकीकरण** – VS कोड के नेविगेशन और कमांड पैलेट के साथ सहजता से एकीकृत होता है।
38
-
39
- ### शब्दकोश प्रबंधन कमांड
40
-
41
- अपने कंटेंट शब्दकोशों का सीधे VS कोड से प्रबंधन करें:
42
-
43
- - **शब्दकोश बनाएँ** – अपने प्रोजेक्ट संरचना के आधार पर कंटेंट फ़ाइलें उत्पन्न करें।
44
- - **शब्दकोश पुश करें** – नवीनतम शब्दकोश सामग्री को अपने रिपॉजिटरी में अपलोड करें।
45
- - **शब्दकोश पुल करें** – अपने रिपॉजिटरी से नवीनतम शब्दकोश सामग्री को अपने स्थानीय पर्यावरण में सिंक करें।
46
- - **शब्दकोश भरें** – अपने प्रोजेक्ट से सामग्री के साथ शब्दकोशों को भरें।
47
- - **शब्दकोश परीक्षण करें** – गुम या अधूरी अनुवादों की पहचान करें।
32
+ ![शब्दकोश भरें](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_fill_active_dictionary.gif?raw=true)
48
33
 
49
- ### कंटेंट घोषणा जनरेटर
34
+ - **तत्काल नेविगेशन** – `useIntlayer` कुंजी पर क्लिक करने पर सही सामग्री फ़ाइल पर तेजी से जाएं।
35
+ - **शब्दकोश भरें** – अपने प्रोजेक्ट की सामग्री से शब्दकोश भरें।
50
36
 
51
- आसानी से विभिन्न प्रारूपों में संरचित शब्दकोश फ़ाइलें उत्पन्न करें:
37
+ ![कमांड सूची](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_list_commands.gif?raw=true)
52
38
 
53
- यदि आप वर्तमान में किसी कॉम्पोनेंट पर काम कर रहे हैं, तो यह आपके लिए `.content.{ts,tsx,js,jsx,mjs,cjs,json}` फ़ाइल उत्पन्न करेगा।
39
+ - **Intlayer कमांड्स तक आसान पहुँच** सामग्री शब्दकोशों को आसानी से बनाएं, पुश करें, पुल करें, भरें, और परीक्षण करें।
54
40
 
55
- कॉम्पोनेंट का उदाहरण:
41
+ ![सामग्री फ़ाइल बनाएँ](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_create_content_file.gif?raw=true)
56
42
 
57
- ```tsx fileName="src/components/MyComponent/index.tsx"
58
- const MyComponent = () => {
59
- const { myTranslatedContent } = useIntlayer("my-component");
43
+ - **सामग्री घोषणा जनरेटर** – विभिन्न स्वरूपों (`.ts`, `.esm`, `.cjs`, `.json`) में शब्दकोश सामग्री फ़ाइलें बनाएं।
60
44
 
61
- return <span>{myTranslatedContent}</span>;
62
- };
63
- ```
64
-
65
- TypeScript प्रारूप में उत्पन्न फ़ाइल:
66
-
67
- ```tsx fileName="src/components/MyComponent/index.content.ts"
68
- import { t, type Dictionary } from "intlayer";
45
+ ![शब्दकोशों का परीक्षण करें](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_test_missing_dictionary.gif?raw=true)
69
46
 
70
- const componentContent = {
71
- key: "my-component",
72
- content: {
73
- myTranslatedContent: t({
74
- en: "Hello World",
75
- es: "Hola Mundo",
76
- fr: "Bonjour le monde",
77
- }),
78
- },
79
- };
80
-
81
- export default componentContent;
82
- ```
47
+ - **शब्दकोश परीक्षण** – लापता अनुवादों के लिए शब्दकोशों का परीक्षण करें।
83
48
 
84
- उपलब्ध प्रारूप:
49
+ ![शब्दकोश पुनर्निर्माण करें](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_rebuild_dictionary.gif?raw=true)
85
50
 
86
- - **TypeScript (`.ts`)**
87
- - **ES मॉड्यूल (`.esm`)**
88
- - **CommonJS (`.cjs`)**
89
- - **JSON (`.json`)**
51
+ - **अपने शब्दकोशों को अद्यतित रखें** – अपने प्रोजेक्ट की नवीनतम सामग्री के साथ अपने शब्दकोशों को अद्यतित रखें।
90
52
 
91
- ### Intlayer टैब (एक्टिविटी बार)
53
+ ![Intlayer टैब (गतिविधि बार)](https://github.com/aymericzip/intlayer-vs-code-extension/blob/master/assets/vscode_extention_search_dictionary.gif?raw=true)
92
54
 
93
- VS कोड एक्टिविटी बार में Intlayer आइकन पर क्लिक करके Intlayer टैब खोलें। इसमें दो दृश्य होते हैं:
94
-
95
- - **खोज**: एक लाइव खोज बार जो शब्दकोशों और उनके कंटेंट को जल्दी से फ़िल्टर करता है। टाइप करते ही परिणाम तुरंत अपडेट हो जाते हैं।
96
- - **शब्दकोश**: आपके एनवायरनमेंट/प्रोजेक्ट्स, शब्दकोश कुंजियों, और प्रविष्टियाँ देने वाली फ़ाइलों का एक ट्री व्यू। आप:
97
- - किसी फ़ाइल पर क्लिक करके उसे एडिटर में खोल सकते हैं।
98
- - टूलबार का उपयोग करके ये क्रियाएँ चला सकते हैं: Build, Pull, Push, Fill, Refresh, Test, और Create Dictionary File।
99
- - आइटम-विशिष्ट क्रियाओं के लिए संदर्भ मेनू का उपयोग करें:
100
- - किसी शब्दकोश पर: Pull या Push
101
- - किसी फ़ाइल पर: Fill Dictionary
102
- - जब आप एडिटर स्विच करते हैं, तो ट्री उस मेल खाने वाली फ़ाइल को दिखाएगा यदि वह किसी शब्दकोश से संबंधित हो।
103
-
104
- ## स्थापना
105
-
106
- आप सीधे VS Code मार्केटप्लेस से **Intlayer** इंस्टॉल कर सकते हैं:
107
-
108
- 1. **VS Code** खोलें।
109
- 2. **Extensions Marketplace** पर जाएं।
110
- 3. **"Intlayer"** खोजें।
111
- 4. **Install** पर क्लिक करें।
55
+ - **Intlayer टैब (गतिविधि बार)** समर्पित साइड टैब से टूलबार और संदर्भ क्रियाओं (बिल्ड, पुल, पुश, फिल, रिफ्रेश, टेस्ट, फ़ाइल बनाएँ) के साथ शब्दकोश ब्राउज़ और खोजें।
112
56
 
113
57
  ## उपयोग
114
58
 
@@ -121,63 +65,58 @@ VS कोड एक्टिविटी बार में Intlayer आइक
121
65
  const content = useIntlayer("app");
122
66
  ```
123
67
 
124
- 3. कुंजी (जैसे `"app"`) पर **Command-click** (`⌘+Click` macOS पर) या **Ctrl+Click** (Windows/Linux पर) करें।
125
- 4. VS Code स्वचालित रूप से संबंधित शब्दकोश फ़ाइल खोल देगा, जैसे `src/app.content.ts`।
126
-
127
- ### कंटेंट शब्दकोश प्रबंधन
68
+ 3. कुंजी (जैसे, `"app"`) पर **कमांड-क्लिक** (`⌘+Click` macOS पर) या **Ctrl+Click** (Windows/Linux पर) करें।
69
+ 4. VS Code स्वचालित रूप से संबंधित शब्दकोश फ़ाइल खोलेगा, जैसे `src/app.content.ts`।
128
70
 
129
- ### Intlayer टैब (एक्टिविटी बार)
71
+ ### Intlayer टैब (गतिविधि बार)
130
72
 
131
73
  शब्दकोशों को ब्राउज़ और प्रबंधित करने के लिए साइड टैब का उपयोग करें:
132
74
 
133
- - एक्टिविटी बार में Intlayer आइकन खोलें।
134
- - **Search** में, वास्तविक समय में शब्दकोश और प्रविष्टियों को फ़िल्टर करने के लिए टाइप करें।
135
- - **Dictionaries** में, पर्यावरण, शब्दकोश, और फ़ाइलों को ब्राउज़ करें। टूलबार का उपयोग करें Build, Pull, Push, Fill, Refresh, Test, और Create Dictionary File के लिए। संदर्भ क्रियाओं के लिए राइट-क्लिक करें (शब्दकोशों पर Pull/Push, फ़ाइलों पर Fill)। जब लागू हो, तो वर्तमान संपादक फ़ाइल स्वचालित रूप से ट्री में प्रकट होती है।
75
+ - गतिविधि बार में Intlayer आइकन खोलें।
76
+ - **Search** में, वास्तविक समय में शब्दकोशों और प्रविष्टियों को फ़िल्टर करने के लिए टाइप करें।
77
+ - **Dictionaries** में, पर्यावरण, शब्दकोश, और फ़ाइलों को ब्राउज़ करें। टूलबार का उपयोग करें जैसे Build, Pull, Push, Fill, Refresh, Test, और Create Dictionary File के लिए। संदर्भ क्रियाओं के लिए राइट-क्लिक करें (शब्दकोशों पर Pull/Push, फ़ाइलों पर Fill)। जब लागू हो, तो वर्तमान संपादक फ़ाइल स्वचालित रूप से पेड़ में प्रकट होती है।
136
78
 
137
- #### शब्दकोश बनाना
79
+ ### कमांड्स तक पहुँच
138
80
 
139
- सभी शब्दकोश सामग्री फ़ाइलें उत्पन्न करें:
81
+ आप **Command Palette** से कमांड्स तक पहुँच सकते हैं।
140
82
 
141
83
  ```sh
142
84
  Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
143
85
  ```
144
86
 
145
- **Build Dictionaries** खोजें और कमांड निष्पादित करें।
146
-
147
- #### शब्दकोश पुश करना
148
-
149
- नवीनतम शब्दकोश सामग्री अपलोड करें:
150
-
151
- 1. **Command Palette** खोलें।
152
- 2. **Push Dictionaries** खोजें।
153
- 3. पुश करने के लिए शब्दकोश चुनें और पुष्टि करें।
154
-
155
- #### शब्दकोश पुल करना
87
+ - **शब्दकोश बनाएं (Build Dictionaries)**
88
+ - **शब्दकोश पुश करें (Push Dictionaries)**
89
+ - **शब्दकोश पुल करें (Pull Dictionaries)**
90
+ - **शब्दकोश भरें (Fill Dictionaries)**
91
+ - **शब्दकोश परीक्षण करें (Test Dictionaries)**
92
+ - **शब्दकोश फ़ाइल बनाएँ (Create Dictionary File)**
156
93
 
157
- नवीनतम शब्दकोश सामग्री सिंक करें:
94
+ ### पर्यावरण चर लोड करना
158
95
 
159
- 1. **Command Palette** खोलें।
160
- 2. **Pull Dictionaries** खोजें।
161
- 3. पुल करने के लिए शब्दकोश चुनें।
96
+ Intlayer सुझाव देता है कि आप अपने AI API कुंजी, साथ ही Intlayer क्लाइंट ID और सीक्रेट को पर्यावरण चर में संग्रहीत करें।
162
97
 
163
- #### शब्दकोश भरना
98
+ एक्सटेंशन आपके वर्कस्पेस से पर्यावरण चर लोड कर सकता है ताकि Intlayer कमांड सही संदर्भ के साथ चल सकें।
164
99
 
165
- अपने प्रोजेक्ट की सामग्री से शब्दकोश भरें:
100
+ - **लोड क्रम (प्राथमिकता के अनुसार)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
101
+ - **गैर-विनाशकारी**: मौजूदा `process.env` मानों को अधिलेखित नहीं किया जाता है।
102
+ - **स्कोप**: फ़ाइलें कॉन्फ़िगर किए गए बेस डायरेक्टरी से हल की जाती हैं (डिफ़ॉल्ट वर्कस्पेस रूट)।
166
103
 
167
- 1. **Command Palette** खोलें।
168
- 2. **Fill Dictionaries** खोजें।
169
- 3. शब्दकोश भरने के लिए कमांड चलाएं।
104
+ #### सक्रिय पर्यावरण का चयन करना
170
105
 
171
- #### शब्दकोश परीक्षण
106
+ - **कमांड पैलेट**: पैलेट खोलें और `Intlayer: Select Environment` चलाएं, फिर पर्यावरण चुनें (जैसे, `development`, `staging`, `production`)। एक्सटेंशन प्राथमिकता सूची में उपलब्ध पहली फ़ाइल लोड करने का प्रयास करेगा और “Loaded env from .env.<env>.local” जैसी सूचना दिखाएगा।
107
+ - **सेटिंग्स**: `Settings → Extensions → Intlayer` पर जाएं, और सेट करें:
108
+ - **पर्यावरण**: वह पर्यावरण नाम जिसका उपयोग `.env.<env>*` फ़ाइलों को हल करने के लिए किया जाता है।
109
+ - (वैकल्पिक) **Env फ़ाइल**: `.env` फ़ाइल का स्पष्ट पथ। जब प्रदान किया जाता है, तो यह अनुमानित सूची पर प्राथमिकता लेता है।
172
110
 
173
- शब्दकोशों को मान्य करें और गायब अनुवाद खोजें:
111
+ #### मोनोरिपोज़ और कस्टम निर्देशिकाएँ
174
112
 
175
- 1. **Command Palette** खोलें।
176
- 2. **Test Dictionaries** खोजें।
177
- 3. रिपोर्ट की गई समस्याओं की समीक्षा करें और आवश्यकतानुसार सुधार करें।
113
+ यदि आपकी `.env` फ़ाइलें वर्कस्पेस रूट के बाहर स्थित हैं, तो `Settings → Extensions → Intlayer` में **Base Directory** सेट करें। लोडर उस निर्देशिका के सापेक्ष `.env` फ़ाइलों को खोजेगा।
178
114
 
179
115
  ## दस्तावेज़ इतिहास
180
116
 
181
- | संस्करण | तिथि | परिवर्तन |
182
- | ------- | ---------- | -------------- |
183
- | 5.5.10 | 2025-06-29 | इतिहास प्रारंभ |
117
+ | संस्करण | तिथि | परिवर्तन |
118
+ | ------- | ---------- | ---------------------------------- |
119
+ | 6.1.5 | 2025-09-30 | डेमो GIF जोड़ा |
120
+ | 6.1.0 | 2025-09-24 | पर्यावरण चयन अनुभाग जोड़ा |
121
+ | 6.0.0 | 2025-09-22 | Intlayer टैब / Fill & Test कमांड्स |
122
+ | 5.5.10 | 2025-06-29 | प्रारंभिक इतिहास |
@@ -0,0 +1,186 @@
1
+ ---
2
+ createdAt: 2024-03-07
3
+ updatedAt: 2025-09-30
4
+ title: Rendere un componente multilingue (libreria i18n) in React e Next.js
5
+ description: Impara come dichiarare e recuperare contenuti localizzati per costruire un componente React o Next.js multilingue con Intlayer.
6
+ keywords:
7
+ - i18n
8
+ - componente
9
+ - react
10
+ - multilingue
11
+ - next.js
12
+ - intlayer
13
+ slugs:
14
+ - doc
15
+ - component
16
+ - i18n
17
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-react-template
18
+ youtubeVideo: https://www.youtube.com/watch?v=dS9L7uJeak4
19
+ ---
20
+
21
+ # Come rendere un componente multilingue (i18n) con Intlayer
22
+
23
+ Questa guida mostra i passaggi minimi per rendere un componente UI multilingue in due configurazioni comuni:
24
+
25
+ - React (Vite/SPA)
26
+ - Next.js (App Router)
27
+
28
+ Per prima cosa dichiarerai il tuo contenuto, poi lo recupererai nel tuo componente.
29
+
30
+ ## 1) Dichiara il tuo contenuto (condiviso per React e Next.js)
31
+
32
+ Crea un file di dichiarazione del contenuto vicino al tuo componente. Questo mantiene le traduzioni vicine al punto in cui vengono utilizzate e consente la sicurezza dei tipi.
33
+
34
+ ```ts fileName="component.content.ts"
35
+ import { t, type Dictionary } from "intlayer";
36
+
37
+ const componentContent = {
38
+ key: "component-example",
39
+ content: {
40
+ title: t({
41
+ en: "Hello",
42
+ fr: "Bonjour",
43
+ es: "Hola",
44
+ }),
45
+ description: t({
46
+ en: "A multilingual React component",
47
+ fr: "Un composant React multilingue",
48
+ es: "Un componente React multilingüe",
49
+ }),
50
+ },
51
+ } satisfies Dictionary;
52
+
53
+ export default componentContent;
54
+ ```
55
+
56
+ Anche JSON è supportato se preferisci i file di configurazione.
57
+
58
+ ```json fileName="component.content.json"
59
+ {
60
+ "$schema": "https://intlayer.org/schema.json",
61
+ "key": "component-example",
62
+ "content": {
63
+ "title": {
64
+ "nodeType": "translation",
65
+ "translation": { "en": "Hello", "fr": "Bonjour", "es": "Hola" }
66
+ },
67
+ "description": {
68
+ "nodeType": "translation",
69
+ "translation": {
70
+ "en": "A multilingual React component",
71
+ "fr": "Un composant React multilingue",
72
+ "es": "Un componente React multilingüe"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ## 2) Recupera il tuo contenuto
80
+
81
+ ### Caso A — App React (Vite/SPA)
82
+
83
+ Approccio predefinito: usa `useIntlayer` per recuperare tramite chiave. Questo mantiene i componenti leggeri e tipizzati.
84
+
85
+ ```tsx fileName="ComponentExample.tsx"
86
+ import { useIntlayer } from "react-intlayer";
87
+
88
+ export function ComponentExample() {
89
+ const content = useIntlayer("component-example");
90
+ return (
91
+ <div>
92
+ <h1>{content.title}</h1>
93
+ <p>{content.description}</p>
94
+ </div>
95
+ );
96
+ }
97
+ ```
98
+
99
+ Rendering lato server o fuori dal provider: usa `react-intlayer/server` e passa un `locale` esplicito quando necessario.
100
+
101
+ ```tsx fileName="ServerRenderedExample.tsx"
102
+ import { useIntlayer } from "react-intlayer/server";
103
+
104
+ export function ServerRenderedExample({ locale }: { locale: string }) {
105
+ const content = useIntlayer("component-example", locale);
106
+ return (
107
+ <>
108
+ <h1>{content.title}</h1>
109
+ <p>{content.description}</p>
110
+ </>
111
+ );
112
+ }
113
+ ```
114
+
115
+ Alternativa: `useDictionary` può leggere un intero oggetto dichiarato se preferisci collocare la struttura nel punto di chiamata.
116
+
117
+ ```tsx fileName="ComponentWithDictionary.tsx"
118
+ import { useDictionary } from "react-intlayer";
119
+ import componentContent from "./component.content";
120
+
121
+ export function ComponentWithDictionary() {
122
+ const { title, description } = useDictionary(componentContent);
123
+ return (
124
+ <div>
125
+ <h1>{title}</h1>
126
+ <p>{description}</p>
127
+ </div>
128
+ );
129
+ }
130
+ ```
131
+
132
+ ### Caso B — Next.js (App Router)
133
+
134
+ Preferisci i componenti server per sicurezza dei dati e prestazioni. Usa `useIntlayer` da `next-intlayer/server` nei file server, e `useIntlayer` da `next-intlayer` nei componenti client.
135
+
136
+ ```tsx fileName="app/[locale]/example/ServerComponent.tsx"
137
+ import { useIntlayer } from "next-intlayer/server";
138
+
139
+ export default function ServerComponent() {
140
+ const content = useIntlayer("component-example");
141
+ return (
142
+ <>
143
+ <h1>{content.title}</h1>
144
+ <p>{content.description}</p>
145
+ </>
146
+ );
147
+ }
148
+ ```
149
+
150
+ ```tsx fileName="app/[locale]/example/ClientComponent.tsx"
151
+ "use client";
152
+
153
+ import { useIntlayer } from "next-intlayer";
154
+
155
+ export function ClientComponent() {
156
+ const content = useIntlayer("component-example");
157
+ return (
158
+ <div>
159
+ <h1>{content.title}</h1>
160
+ <p>{content.description}</p>
161
+ </div>
162
+ );
163
+ }
164
+ ```
165
+
166
+ Suggerimento: Per i metadata della pagina e la SEO, puoi anche recuperare contenuti usando `getIntlayer` e generare URL multilingue tramite `getMultilingualUrls`.
167
+
168
+ ## Perché l’approccio a componenti di Intlayer è il migliore
169
+
170
+ - **Collocazione**: Le dichiarazioni di contenuto vivono vicino ai componenti, riducendo la deriva e migliorando il riutilizzo nei sistemi di design.
171
+ - **Sicurezza dei tipi**: Chiavi e strutture sono fortemente tipizzate; le traduzioni mancanti emergono in fase di build anziché a runtime.
172
+ - **Server-first**: Funziona nativamente nei componenti server per una migliore sicurezza e prestazioni; gli hook client rimangono ergonomici.
173
+ - **Tree-shaking**: Viene incluso solo il contenuto utilizzato dal componente, mantenendo i payload piccoli nelle grandi applicazioni.
174
+ - **DX e strumenti**: Middleware integrati, helper SEO e traduzioni opzionali con Visual Editor/AI semplificano il lavoro quotidiano.
175
+
176
+ Consulta i confronti e i modelli nel riepilogo focalizzato su Next.js: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
177
+
178
+ ## Guide e riferimenti correlati
179
+
180
+ - Configurazione React (Vite): https://intlayer.org/doc/environment/vite-and-react
181
+ - React Router v7: https://intlayer.org/doc/environment/vite-and-react/react-router-v7
182
+ - TanStack Start: https://intlayer.org/doc/environment/vite-and-react/tanstack-start
183
+ - Configurazione Next.js: https://intlayer.org/doc/environment/nextjs
184
+ - Perché Intlayer vs. next-intl vs. next-i18next: https://intlayer.org/blog/next-i18next-vs-next-intl-vs-intlayer
185
+
186
+ Queste pagine includono la configurazione end-to-end, i provider, il routing e gli helper SEO.