@intlayer/docs 6.1.4 → 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.
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1366 -75
- package/blog/ar/nextjs-multilingual-seo-comparison.md +364 -0
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1288 -72
- package/blog/de/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/en/intlayer_with_next-i18next.mdx +431 -0
- package/blog/en/intlayer_with_next-intl.mdx +335 -0
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +583 -336
- package/blog/en/nextjs-multilingual-seo-comparison.md +360 -0
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1144 -37
- package/blog/en-GB/nextjs-multilingual-seo-comparison.md +360 -0
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1236 -64
- package/blog/es/nextjs-multilingual-seo-comparison.md +363 -0
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1142 -75
- package/blog/fr/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/hi/nextjs-multilingual-seo-comparison.md +363 -0
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1130 -55
- package/blog/it/nextjs-multilingual-seo-comparison.md +363 -0
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1150 -76
- package/blog/ja/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1139 -73
- package/blog/ko/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1143 -76
- package/blog/pt/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1150 -74
- package/blog/ru/nextjs-multilingual-seo-comparison.md +370 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +2 -0
- package/blog/tr/nextjs-multilingual-seo-comparison.md +362 -0
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1152 -75
- package/blog/zh/nextjs-multilingual-seo-comparison.md +394 -0
- package/dist/cjs/generated/blog.entry.cjs +16 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +16 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +16 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +16 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/component_i18n.md +186 -0
- package/docs/ar/vs_code_extension.md +48 -109
- package/docs/de/component_i18n.md +186 -0
- package/docs/de/vs_code_extension.md +46 -107
- package/docs/en/component_i18n.md +186 -0
- package/docs/en/interest_of_intlayer.md +2 -2
- package/docs/en/intlayer_with_nextjs_14.md +18 -1
- package/docs/en/intlayer_with_nextjs_15.md +18 -1
- package/docs/en/vs_code_extension.md +24 -114
- package/docs/en-GB/component_i18n.md +186 -0
- package/docs/en-GB/vs_code_extension.md +42 -103
- package/docs/es/component_i18n.md +182 -0
- package/docs/es/vs_code_extension.md +53 -114
- package/docs/fr/component_i18n.md +186 -0
- package/docs/fr/vs_code_extension.md +50 -111
- package/docs/hi/component_i18n.md +186 -0
- package/docs/hi/vs_code_extension.md +49 -110
- package/docs/it/component_i18n.md +186 -0
- package/docs/it/vs_code_extension.md +50 -111
- package/docs/ja/component_i18n.md +186 -0
- package/docs/ja/vs_code_extension.md +50 -111
- package/docs/ko/component_i18n.md +186 -0
- package/docs/ko/vs_code_extension.md +48 -109
- package/docs/pt/component_i18n.md +186 -0
- package/docs/pt/vs_code_extension.md +46 -107
- package/docs/ru/component_i18n.md +186 -0
- package/docs/ru/vs_code_extension.md +48 -109
- package/docs/tr/component_i18n.md +186 -0
- package/docs/tr/vs_code_extension.md +54 -115
- package/docs/zh/component_i18n.md +186 -0
- package/docs/zh/vs_code_extension.md +51 -105
- package/package.json +11 -11
- package/src/generated/blog.entry.ts +16 -0
- package/src/generated/docs.entry.ts +16 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-17
|
|
3
|
-
updatedAt: 2025-09-
|
|
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
|
-

|
|
26
|
+

|
|
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
|
+

|
|
48
33
|
|
|
49
|
-
|
|
34
|
+
- **तत्काल नेविगेशन** – `useIntlayer` कुंजी पर क्लिक करने पर सही सामग्री फ़ाइल पर तेजी से जाएं।
|
|
35
|
+
- **शब्दकोश भरें** – अपने प्रोजेक्ट की सामग्री से शब्दकोश भरें।
|
|
50
36
|
|
|
51
|
-
|
|
37
|
+

|
|
52
38
|
|
|
53
|
-
|
|
39
|
+
- **Intlayer कमांड्स तक आसान पहुँच** – सामग्री शब्दकोशों को आसानी से बनाएं, पुश करें, पुल करें, भरें, और परीक्षण करें।
|
|
54
40
|
|
|
55
|
-
|
|
41
|
+

|
|
56
42
|
|
|
57
|
-
|
|
58
|
-
const MyComponent = () => {
|
|
59
|
-
const { myTranslatedContent } = useIntlayer("my-component");
|
|
43
|
+
- **सामग्री घोषणा जनरेटर** – विभिन्न स्वरूपों (`.ts`, `.esm`, `.cjs`, `.json`) में शब्दकोश सामग्री फ़ाइलें बनाएं।
|
|
60
44
|
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
TypeScript प्रारूप में उत्पन्न फ़ाइल:
|
|
66
|
-
|
|
67
|
-
```tsx fileName="src/components/MyComponent/index.content.ts"
|
|
68
|
-
import { t, type Dictionary } from "intlayer";
|
|
45
|
+

|
|
69
46
|
|
|
70
|
-
|
|
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
|
+

|
|
85
50
|
|
|
86
|
-
-
|
|
87
|
-
- **ES मॉड्यूल (`.esm`)**
|
|
88
|
-
- **CommonJS (`.cjs`)**
|
|
89
|
-
- **JSON (`.json`)**
|
|
51
|
+
- **अपने शब्दकोशों को अद्यतित रखें** – अपने प्रोजेक्ट की नवीनतम सामग्री के साथ अपने शब्दकोशों को अद्यतित रखें।
|
|
90
52
|
|
|
91
|
-
|
|
53
|
+

|
|
92
54
|
|
|
93
|
-
|
|
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. कुंजी (
|
|
125
|
-
4. VS Code स्वचालित रूप से संबंधित शब्दकोश फ़ाइल
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
176
|
-
2. **Test Dictionaries** खोजें।
|
|
177
|
-
3. रिपोर्ट की गई समस्याओं की समीक्षा करें और आवश्यकतानुसार सुधार करें।
|
|
113
|
+
यदि आपकी `.env` फ़ाइलें वर्कस्पेस रूट के बाहर स्थित हैं, तो `Settings → Extensions → Intlayer` में **Base Directory** सेट करें। लोडर उस निर्देशिका के सापेक्ष `.env` फ़ाइलों को खोजेगा।
|
|
178
114
|
|
|
179
115
|
## दस्तावेज़ इतिहास
|
|
180
116
|
|
|
181
|
-
| संस्करण | तिथि | परिवर्तन
|
|
182
|
-
| ------- | ---------- |
|
|
183
|
-
|
|
|
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.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-03-17
|
|
3
|
-
updatedAt: 2025-09-
|
|
3
|
+
updatedAt: 2025-09-30
|
|
4
4
|
title: Estensione Ufficiale per VS Code
|
|
5
|
-
description: Scopri come utilizzare l'estensione Intlayer in VS Code per migliorare il tuo flusso di lavoro di sviluppo. Naviga rapidamente tra contenuti localizzati e gestisci i tuoi dizionari in modo efficiente.
|
|
5
|
+
description: Scopri come utilizzare l'estensione Intlayer in VS Code per migliorare il tuo flusso di lavoro di sviluppo. Naviga rapidamente tra i contenuti localizzati e gestisci i tuoi dizionari in modo efficiente.
|
|
6
6
|
keywords:
|
|
7
7
|
- Estensione VS Code
|
|
8
8
|
- Intlayer
|
|
@@ -23,96 +23,40 @@ slugs:
|
|
|
23
23
|
|
|
24
24
|
[**Intlayer**](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) è l'estensione ufficiale di Visual Studio Code per **Intlayer**, progettata per migliorare l'esperienza dello sviluppatore quando si lavora con contenuti localizzati nei tuoi progetti.
|
|
25
25
|
|
|
26
|
-

|
|
26
|
+

|
|
27
27
|
|
|
28
28
|
Link all'estensione: [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
|
## Funzionalità
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+

|
|
33
33
|
|
|
34
|
-
**
|
|
35
|
-
**
|
|
36
|
-
**Supporto Multilingue** – Supporta contenuti localizzati in diverse lingue.
|
|
37
|
-
**Integrazione con VS Code** – Si integra fluidamente con la navigazione e la palette dei comandi di VS Code.
|
|
34
|
+
- **Navigazione Istantanea** – Passa rapidamente al file di contenuto corretto cliccando su una chiave `useIntlayer`.
|
|
35
|
+
- **Riempi Dizionari** – Riempi i dizionari con i contenuti del tuo progetto.
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+

|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
- **Accesso facile ai comandi Intlayer** – Costruisci, invia, scarica, riempi, testa i dizionari di contenuti con facilità.
|
|
42
40
|
|
|
43
|
-
|
|
44
|
-
- **Carica Dizionari** – Carica l'ultimo contenuto del dizionario nel tuo repository.
|
|
45
|
-
- **Scarica Dizionari** – Sincronizza l'ultimo contenuto del dizionario dal tuo repository al tuo ambiente locale.
|
|
46
|
-
- **Riempi Dizionari** – Popola i dizionari con contenuti dal tuo progetto.
|
|
47
|
-
- **Testa Dizionari** – Identifica traduzioni mancanti o incomplete.
|
|
41
|
+

|
|
48
42
|
|
|
49
|
-
|
|
43
|
+
- **Generatore di dichiarazioni di contenuto** – Crea file di contenuto del dizionario in vari formati (`.ts`, `.esm`, `.cjs`, `.json`).
|
|
50
44
|
|
|
51
|
-
|
|
45
|
+

|
|
52
46
|
|
|
53
|
-
|
|
47
|
+
- **Test dizionari** – Testa i dizionari per traduzioni mancanti.
|
|
54
48
|
|
|
55
|
-
|
|
49
|
+

|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
const MyComponent = () => {
|
|
59
|
-
const { myTranslatedContent } = useIntlayer("my-component");
|
|
51
|
+
- **Mantieni i tuoi dizionari aggiornati** – Mantieni i tuoi dizionari aggiornati con i contenuti più recenti del tuo progetto.
|
|
60
52
|
|
|
61
|
-
|
|
62
|
-
};
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
File generato in formato TypeScript:
|
|
66
|
-
|
|
67
|
-
```tsx fileName="src/components/MyComponent/index.content.ts"
|
|
68
|
-
import { t, type Dictionary } from "intlayer";
|
|
69
|
-
|
|
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
|
-
```
|
|
83
|
-
|
|
84
|
-
Formati disponibili:
|
|
85
|
-
|
|
86
|
-
- **TypeScript (`.ts`)**
|
|
87
|
-
- **Modulo ES (`.esm`)**
|
|
88
|
-
- **CommonJS (`.cjs`)**
|
|
89
|
-
- **JSON (`.json`)**
|
|
90
|
-
|
|
91
|
-
### Scheda Intlayer (Barra delle Attività)
|
|
53
|
+

|
|
92
54
|
|
|
93
|
-
|
|
55
|
+
- **Scheda Intlayer (Barra attività)** – Naviga e cerca nei dizionari da una scheda laterale dedicata con barra degli strumenti e azioni contestuali (Costruisci, Scarica, Invia, Riempi, Aggiorna, Testa, Crea file).
|
|
94
56
|
|
|
95
|
-
|
|
96
|
-
- **Dizionari**: Una vista ad albero dei tuoi ambienti/progetti, delle chiavi del dizionario e dei file che contribuiscono con voci. Puoi:
|
|
97
|
-
- Cliccare su un file per aprirlo nell'editor.
|
|
98
|
-
- Usare la barra degli strumenti per eseguire azioni: Build, Pull, Push, Fill, Refresh, Test e Create Dictionary File.
|
|
99
|
-
- Usare il menu contestuale per azioni specifiche dell'elemento:
|
|
100
|
-
- Su un dizionario: Pull o Push
|
|
101
|
-
- Su un file: Fill Dictionary
|
|
102
|
-
- Quando cambi editor, l'albero rivelerà il file corrispondente se appartiene a un dizionario.
|
|
57
|
+
## Uso
|
|
103
58
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Puoi installare **Intlayer** direttamente dal Marketplace di VS Code:
|
|
107
|
-
|
|
108
|
-
1. Apri **VS Code**.
|
|
109
|
-
2. Vai al **Marketplace delle Estensioni**.
|
|
110
|
-
3. Cerca **"Intlayer"**.
|
|
111
|
-
4. Clicca su **Installa**.
|
|
112
|
-
|
|
113
|
-
## Utilizzo
|
|
114
|
-
|
|
115
|
-
### Navigazione Rapida
|
|
59
|
+
### Navigazione rapida
|
|
116
60
|
|
|
117
61
|
1. Apri un progetto che utilizza **react-intlayer**.
|
|
118
62
|
2. Individua una chiamata a `useIntlayer()`, come:
|
|
@@ -122,62 +66,57 @@ Puoi installare **Intlayer** direttamente dal Marketplace di VS Code:
|
|
|
122
66
|
```
|
|
123
67
|
|
|
124
68
|
3. **Command-click** (`⌘+Click` su macOS) o **Ctrl+Click** (su Windows/Linux) sulla chiave (ad esempio, `"app"`).
|
|
125
|
-
4. VS Code aprirà automaticamente il file
|
|
126
|
-
|
|
127
|
-
### Gestione dei Dizionari di Contenuto
|
|
69
|
+
4. VS Code aprirà automaticamente il file dizionario corrispondente, ad esempio, `src/app.content.ts`.
|
|
128
70
|
|
|
129
|
-
### Scheda Intlayer (Barra
|
|
71
|
+
### Scheda Intlayer (Barra attività)
|
|
130
72
|
|
|
131
73
|
Usa la scheda laterale per navigare e gestire i dizionari:
|
|
132
74
|
|
|
133
|
-
- Apri l'icona Intlayer nella Barra
|
|
134
|
-
- In **
|
|
135
|
-
- In **Dizionari**, esplora ambienti, dizionari e file. Usa la barra degli strumenti per
|
|
75
|
+
- Apri l'icona Intlayer nella Barra attività.
|
|
76
|
+
- In **Cerca**, digita per filtrare dizionari e voci in tempo reale.
|
|
77
|
+
- In **Dizionari**, esplora ambienti, dizionari e file. Usa la barra degli strumenti per Costruisci, Scarica, Invia, Riempi, Aggiorna, Testa e Crea file dizionario. Clic destro per azioni contestuali (Scarica/Invia sui dizionari, Riempi sui file). Il file attualmente aperto nell'editor si evidenzia automaticamente nell'albero quando applicabile.
|
|
136
78
|
|
|
137
|
-
|
|
79
|
+
### Accesso ai comandi
|
|
138
80
|
|
|
139
|
-
|
|
81
|
+
Puoi accedere ai comandi dalla **Command Palette**.
|
|
140
82
|
|
|
141
83
|
```sh
|
|
142
84
|
Cmd + Shift + P (macOS) / Ctrl + Shift + P (Windows/Linux)
|
|
143
85
|
```
|
|
144
86
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
1. Apri la **Palette dei Comandi**.
|
|
152
|
-
2. Cerca **Carica Dizionari**.
|
|
153
|
-
3. Seleziona i dizionari da caricare e conferma.
|
|
154
|
-
|
|
155
|
-
#### Scaricare Dizionari
|
|
87
|
+
- **Costruisci Dizionari**
|
|
88
|
+
- **Invia Dizionari**
|
|
89
|
+
- **Scarica Dizionari**
|
|
90
|
+
- **Riempi Dizionari**
|
|
91
|
+
- **Testa Dizionari**
|
|
92
|
+
- **Crea File Dizionario**
|
|
156
93
|
|
|
157
|
-
|
|
94
|
+
### Caricamento delle Variabili d'Ambiente
|
|
158
95
|
|
|
159
|
-
|
|
160
|
-
2. Cerca **Scarica Dizionari**.
|
|
161
|
-
3. Scegli i dizionari da scaricare.
|
|
96
|
+
Intlayer consiglia di memorizzare le chiavi API AI, così come l'ID client e il segreto di Intlayer, nelle variabili d'ambiente.
|
|
162
97
|
|
|
163
|
-
|
|
98
|
+
L'estensione può caricare le variabili d'ambiente dal tuo workspace per eseguire i comandi Intlayer con il contesto corretto.
|
|
164
99
|
|
|
165
|
-
|
|
100
|
+
- **Ordine di caricamento (per priorità)**: `.env.<env>.local` → `.env.<env>` → `.env.local` → `.env`
|
|
101
|
+
- **Non distruttivo**: i valori esistenti in `process.env` non vengono sovrascritti.
|
|
102
|
+
- **Ambito**: i file vengono risolti dalla directory base configurata (predefinita alla radice del workspace).
|
|
166
103
|
|
|
167
|
-
|
|
168
|
-
2. Cerca **Riempi Dizionari**.
|
|
169
|
-
3. Esegui il comando per popolare i dizionari.
|
|
104
|
+
#### Selezione dell'ambiente attivo
|
|
170
105
|
|
|
171
|
-
|
|
106
|
+
- **Palette dei Comandi**: apri la palette ed esegui `Intlayer: Select Environment`, quindi scegli l'ambiente (ad esempio, `development`, `staging`, `production`). L'estensione tenterà di caricare il primo file disponibile nella lista di priorità sopra indicata e mostrerà una notifica come “Caricato env da .env.<env>.local”.
|
|
107
|
+
- **Impostazioni**: vai su `Impostazioni → Estensioni → Intlayer`, e imposta:
|
|
108
|
+
- **Ambiente**: il nome dell'ambiente usato per risolvere i file `.env.<env>*`.
|
|
109
|
+
- (Opzionale) **File Env**: un percorso esplicito a un file `.env`. Quando fornito, ha la precedenza sulla lista dedotta.
|
|
172
110
|
|
|
173
|
-
|
|
111
|
+
#### Monorepo e directory personalizzate
|
|
174
112
|
|
|
175
|
-
|
|
176
|
-
2. Cerca **Testa Dizionari**.
|
|
177
|
-
3. Rivedi i problemi segnalati e correggili se necessario.
|
|
113
|
+
Se i tuoi file `.env` si trovano al di fuori della radice dello spazio di lavoro, imposta la **Directory Base** in `Impostazioni → Estensioni → Intlayer`. Il loader cercherà i file `.env` relativi a quella directory.
|
|
178
114
|
|
|
179
115
|
## Cronologia Documentazione
|
|
180
116
|
|
|
181
|
-
| Versione | Data | Modifiche
|
|
182
|
-
| -------- | ---------- |
|
|
183
|
-
|
|
|
117
|
+
| Versione | Data | Modifiche |
|
|
118
|
+
| -------- | ---------- | ----------------------------------- |
|
|
119
|
+
| 6.1.5 | 2025-09-30 | Aggiunta gif demo |
|
|
120
|
+
| 6.1.0 | 2025-09-24 | Aggiunta sezione selezione ambiente |
|
|
121
|
+
| 6.0.0 | 2025-09-22 | Comandi Intlayer Tab / Fill & Test |
|
|
122
|
+
| 5.5.10 | 2025-06-29 | Inizializzazione cronologia |
|