@intlayer/docs 7.1.8 → 7.2.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/README.md +1 -0
- package/dist/cjs/generated/docs.entry.cjs +19 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +19 -0
- package/dist/esm/generated/docs.entry.mjs.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/intlayer_with_svelte_kit.md +730 -0
- package/docs/ar/intlayer_with_vite+svelte.md +288 -104
- package/docs/de/intlayer_with_svelte_kit.md +730 -0
- package/docs/de/intlayer_with_vite+svelte.md +302 -101
- package/docs/en/intlayer_with_svelte_kit.md +560 -0
- package/docs/en/intlayer_with_vite+svelte.md +153 -15
- package/docs/en/introduction.md +2 -0
- package/docs/en-GB/intlayer_with_svelte_kit.md +730 -0
- package/docs/en-GB/intlayer_with_vite+svelte.md +262 -84
- package/docs/es/intlayer_with_svelte_kit.md +730 -0
- package/docs/es/intlayer_with_vite+svelte.md +300 -107
- package/docs/fr/intlayer_with_svelte_kit.md +762 -0
- package/docs/fr/intlayer_with_vite+svelte.md +297 -101
- package/docs/hi/intlayer_with_svelte_kit.md +730 -0
- package/docs/hi/intlayer_with_vite+svelte.md +298 -108
- package/docs/id/intlayer_with_svelte_kit.md +730 -0
- package/docs/id/intlayer_with_vite+svelte.md +277 -99
- package/docs/it/intlayer_with_svelte_kit.md +762 -0
- package/docs/it/intlayer_with_vite+svelte.md +275 -99
- package/docs/ja/intlayer_with_svelte_kit.md +730 -0
- package/docs/ja/intlayer_with_vite+svelte.md +295 -110
- package/docs/ko/intlayer_with_svelte_kit.md +730 -0
- package/docs/ko/intlayer_with_vite+svelte.md +286 -199
- package/docs/pl/intlayer_with_svelte_kit.md +732 -0
- package/docs/pl/intlayer_with_vite+svelte.md +273 -101
- package/docs/pt/intlayer_with_svelte_kit.md +764 -0
- package/docs/pt/intlayer_with_vite+svelte.md +290 -96
- package/docs/ru/intlayer_with_svelte_kit.md +730 -0
- package/docs/ru/intlayer_with_vite+svelte.md +275 -99
- package/docs/tr/intlayer_with_svelte_kit.md +730 -0
- package/docs/tr/intlayer_with_vite+svelte.md +297 -119
- package/docs/vi/intlayer_with_svelte_kit.md +730 -0
- package/docs/vi/intlayer_with_vite+svelte.md +275 -102
- package/docs/zh/intlayer_with_svelte_kit.md +730 -0
- package/docs/zh/intlayer_with_vite+svelte.md +309 -107
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +19 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title:
|
|
3
|
+
updatedAt: 2025-11-19
|
|
4
|
+
title: अपने Vite और Svelte ऐप का अनुवाद कैसे करें – i18n गाइड 2025
|
|
5
5
|
description: जानें कि अपनी Vite और Svelte वेबसाइट को बहुभाषी कैसे बनाएं। अंतरराष्ट्रीयकरण (i18n) और अनुवाद के लिए दस्तावेज़ का पालन करें।
|
|
6
6
|
keywords:
|
|
7
7
|
- अंतरराष्ट्रीयकरण
|
|
8
|
-
-
|
|
8
|
+
- दस्तावेज़
|
|
9
9
|
- Intlayer
|
|
10
10
|
- Vite
|
|
11
11
|
- Svelte
|
|
@@ -14,35 +14,48 @@ slugs:
|
|
|
14
14
|
- doc
|
|
15
15
|
- environment
|
|
16
16
|
- vite-and-svelte
|
|
17
|
-
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-svelte-template
|
|
18
18
|
history:
|
|
19
|
+
- version: 5.5.11
|
|
20
|
+
date: 2025-11-19
|
|
21
|
+
changes: दस्तावेज़ अपडेट करें
|
|
19
22
|
- version: 5.5.10
|
|
20
23
|
date: 2025-06-29
|
|
21
|
-
changes:
|
|
24
|
+
changes: इतिहास प्रारंभ करें
|
|
22
25
|
---
|
|
23
26
|
|
|
24
|
-
# Intlayer
|
|
27
|
+
# Intlayer का उपयोग करके अपनी Vite और Svelte वेबसाइट का अनुवाद करें | अंतरराष्ट्रीयकरण (i18n)
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
## सामग्री तालिका
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
<TOC/>
|
|
29
32
|
|
|
30
33
|
## Intlayer क्या है?
|
|
31
34
|
|
|
32
|
-
**Intlayer** एक अभिनव, ओपन-सोर्स अंतरराष्ट्रीयकरण (i18n) लाइब्रेरी
|
|
35
|
+
**Intlayer** एक अभिनव, ओपन-सोर्स अंतरराष्ट्रीयकरण (i18n) लाइब्रेरी है, जिसे आधुनिक वेब एप्लिकेशन में बहुभाषी समर्थन को सरल बनाने के लिए डिज़ाइन किया गया है।
|
|
33
36
|
|
|
34
37
|
Intlayer के साथ, आप कर सकते हैं:
|
|
35
38
|
|
|
36
|
-
- **घोषणात्मक शब्दकोशों का उपयोग करके अनुवादों का आसानी से प्रबंधन करें** जो
|
|
39
|
+
- **घोषणात्मक शब्दकोशों का उपयोग करके अनुवादों का आसानी से प्रबंधन करें** जो कि कॉम्पोनेंट स्तर पर होते हैं।
|
|
37
40
|
- **मेटाडेटा, रूट्स, और सामग्री को गतिशील रूप से स्थानीयकृत करें**।
|
|
38
|
-
- **TypeScript समर्थन सुनिश्चित करें** ऑटो-जेनरेटेड टाइप्स के साथ, जो ऑटो-कम्प्लीशन और त्रुटि पहचान में सुधार
|
|
39
|
-
- **उन्नत
|
|
41
|
+
- **TypeScript समर्थन सुनिश्चित करें** ऑटो-जेनरेटेड टाइप्स के साथ, जो ऑटो-कम्प्लीशन और त्रुटि पहचान में सुधार करता है।
|
|
42
|
+
- **उन्नत फीचर्स का लाभ उठाएं**, जैसे गतिशील लोकल डिटेक्शन और स्विचिंग।
|
|
40
43
|
|
|
41
44
|
---
|
|
42
45
|
|
|
43
46
|
## Vite और Svelte एप्लिकेशन में Intlayer सेटअप करने के लिए चरण-दर-चरण मार्गदर्शिका
|
|
44
47
|
|
|
45
|
-
|
|
48
|
+
<iframe
|
|
49
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-vite-react-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
50
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
51
|
+
title="Demo CodeSandbox - Intlayer का उपयोग करके अपने एप्लिकेशन का अंतरराष्ट्रीयकरण कैसे करें"
|
|
52
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
53
|
+
loading="lazy"
|
|
54
|
+
/>
|
|
55
|
+
|
|
56
|
+
GitHub पर [एप्लिकेशन टेम्पलेट](https://github.com/aymericzip/intlayer-vite-svelte-template) देखें।
|
|
57
|
+
|
|
58
|
+
### चरण 1: Dependencies इंस्टॉल करें
|
|
46
59
|
|
|
47
60
|
npm का उपयोग करके आवश्यक पैकेज इंस्टॉल करें:
|
|
48
61
|
|
|
@@ -61,23 +74,27 @@ yarn add intlayer svelte-intlayer
|
|
|
61
74
|
yarn add vite-intlayer --save-dev
|
|
62
75
|
```
|
|
63
76
|
|
|
64
|
-
|
|
77
|
+
```bash packageManager="bun"
|
|
78
|
+
bun add intlayer svelte-intlayer
|
|
79
|
+
bun add vite-intlayer --save-dev
|
|
80
|
+
```
|
|
65
81
|
|
|
66
82
|
- **intlayer**
|
|
67
83
|
|
|
68
|
-
मुख्य पैकेज जो कॉन्फ़िगरेशन प्रबंधन, अनुवाद, [सामग्री घोषणा](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/
|
|
84
|
+
मुख्य पैकेज जो कॉन्फ़िगरेशन प्रबंधन, अनुवाद, [सामग्री घोषणा](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/content_file.md), ट्रांसपाइलेशन, और [CLI कमांड](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_cli.md) के लिए अंतरराष्ट्रीयकरण उपकरण प्रदान करता है।
|
|
69
85
|
|
|
70
86
|
- **svelte-intlayer**
|
|
71
|
-
|
|
87
|
+
- **svelte-intlayer**
|
|
88
|
+
वह पैकेज जो Intlayer को Svelte एप्लिकेशन के साथ एकीकृत करता है। यह Svelte अंतरराष्ट्रीयकरण के लिए context providers और hooks प्रदान करता है।
|
|
72
89
|
|
|
73
|
-
- **vite-intlayer**
|
|
74
|
-
Vite प्लगइन शामिल
|
|
90
|
+
- **vite-intlayer**
|
|
91
|
+
इसमें Vite प्लगइन शामिल है जो Intlayer को [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production) के साथ एकीकृत करता है, साथ ही उपयोगकर्ता की पसंदीदा locale का पता लगाने, कुकीज़ प्रबंधित करने, और URL पुनर्निर्देशन को संभालने के लिए middleware भी शामिल है।
|
|
75
92
|
|
|
76
93
|
### चरण 2: अपने प्रोजेक्ट का कॉन्फ़िगरेशन
|
|
77
94
|
|
|
78
|
-
अपने एप्लिकेशन की भाषाओं को कॉन्फ़िगर करने के लिए एक
|
|
95
|
+
अपने एप्लिकेशन की भाषाओं को कॉन्फ़िगर करने के लिए एक config फ़ाइल बनाएं:
|
|
79
96
|
|
|
80
|
-
```typescript fileName="intlayer.config.ts"
|
|
97
|
+
```typescript fileName="intlayer.config.ts"
|
|
81
98
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
82
99
|
|
|
83
100
|
const config: IntlayerConfig = {
|
|
@@ -95,51 +112,13 @@ const config: IntlayerConfig = {
|
|
|
95
112
|
export default config;
|
|
96
113
|
```
|
|
97
114
|
|
|
98
|
-
|
|
99
|
-
import { Locales } from "intlayer";
|
|
100
|
-
|
|
101
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
102
|
-
const config = {
|
|
103
|
-
internationalization: {
|
|
104
|
-
locales: [
|
|
105
|
-
Locales.ENGLISH,
|
|
106
|
-
Locales.FRENCH,
|
|
107
|
-
Locales.SPANISH,
|
|
108
|
-
// आपकी अन्य भाषाएँ
|
|
109
|
-
],
|
|
110
|
-
defaultLocale: Locales.ENGLISH,
|
|
111
|
-
},
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
export default config;
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
118
|
-
const { Locales } = require("intlayer");
|
|
119
|
-
|
|
120
|
-
/** @type {import('intlayer').IntlayerConfig} */
|
|
121
|
-
const config = {
|
|
122
|
-
internationalization: {
|
|
123
|
-
locales: [
|
|
124
|
-
Locales.ENGLISH,
|
|
125
|
-
Locales.FRENCH,
|
|
126
|
-
Locales.SPANISH,
|
|
127
|
-
// आपकी अन्य भाषाएँ
|
|
128
|
-
],
|
|
129
|
-
defaultLocale: Locales.ENGLISH,
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
module.exports = config;
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
> इस कॉन्फ़िगरेशन फ़ाइल के माध्यम से, आप स्थानीयकृत URLs, मिडलवेयर पुनर्निर्देशन, कुकी नाम, आपकी सामग्री घोषणाओं का स्थान और एक्सटेंशन, कंसोल में Intlayer लॉग को अक्षम करना, और भी बहुत कुछ सेट कर सकते हैं। उपलब्ध सभी पैरामीटरों की पूरी सूची के लिए, [कॉन्फ़िगरेशन दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md) देखें।
|
|
115
|
+
> इस कॉन्फ़िगरेशन फ़ाइल के माध्यम से, आप स्थानीयकृत URL, middleware पुनर्निर्देशन, कुकी नाम, अपनी सामग्री घोषणाओं का स्थान और एक्सटेंशन सेट कर सकते हैं, कंसोल में Intlayer लॉग को अक्षम कर सकते हैं, और भी बहुत कुछ। उपलब्ध सभी पैरामीटर की पूरी सूची के लिए, [कॉन्फ़िगरेशन दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md) देखें।
|
|
137
116
|
|
|
138
117
|
### चरण 3: अपने Vite कॉन्फ़िगरेशन में Intlayer को एकीकृत करें
|
|
139
118
|
|
|
140
119
|
अपने कॉन्फ़िगरेशन में intlayer प्लगइन जोड़ें।
|
|
141
120
|
|
|
142
|
-
```typescript fileName="vite.config.ts"
|
|
121
|
+
```typescript fileName="vite.config.ts"
|
|
143
122
|
import { defineConfig } from "vite";
|
|
144
123
|
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
145
124
|
import { intlayer } from "vite-intlayer";
|
|
@@ -150,33 +129,11 @@ export default defineConfig({
|
|
|
150
129
|
});
|
|
151
130
|
```
|
|
152
131
|
|
|
153
|
-
|
|
154
|
-
import { defineConfig } from "vite";
|
|
155
|
-
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
156
|
-
import { intlayer } from "vite-intlayer";
|
|
157
|
-
|
|
158
|
-
// https://vitejs.dev/config/
|
|
159
|
-
export default defineConfig({
|
|
160
|
-
plugins: [svelte(), intlayer()],
|
|
161
|
-
});
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
```javascript fileName="vite.config.cjs" codeFormat="commonjs"
|
|
165
|
-
const { defineConfig } = require("vite");
|
|
166
|
-
const react = require("@vitejs/plugin-react-swc");
|
|
167
|
-
const { intlayer } = require("vite-intlayer");
|
|
168
|
-
|
|
169
|
-
// https://vitejs.dev/config/
|
|
170
|
-
module.exports = defineConfig({
|
|
171
|
-
plugins: [react(), intlayer()],
|
|
172
|
-
});
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
> `intlayer()` Vite प्लगइन का उपयोग Intlayer को Vite के साथ एकीकृत करने के लिए किया जाता है। यह कंटेंट घोषणा फ़ाइलों के निर्माण को सुनिश्चित करता है और विकास मोड में उनकी निगरानी करता है। यह Vite एप्लिकेशन के भीतर Intlayer पर्यावरण चर को परिभाषित करता है। इसके अतिरिक्त, यह प्रदर्शन को अनुकूलित करने के लिए उपनाम प्रदान करता है।
|
|
132
|
+
> `intlayer()` Vite प्लगइन का उपयोग Intlayer को Vite के साथ एकीकृत करने के लिए किया जाता है। यह कंटेंट घोषणा फ़ाइलों के निर्माण को सुनिश्चित करता है और विकास मोड में उन्हें मॉनिटर करता है। यह Vite एप्लिकेशन के भीतर Intlayer पर्यावरण चर को परिभाषित करता है। इसके अतिरिक्त, यह प्रदर्शन को अनुकूलित करने के लिए उपनाम प्रदान करता है।
|
|
176
133
|
|
|
177
134
|
### चरण 4: अपनी सामग्री घोषित करें
|
|
178
135
|
|
|
179
|
-
अनुवाद संग्रहीत करने के लिए अपनी सामग्री घोषणाओं को
|
|
136
|
+
अनुवाद संग्रहीत करने के लिए अपनी सामग्री घोषणाओं को बनाएँ और प्रबंधित करें:
|
|
180
137
|
|
|
181
138
|
```tsx fileName="src/app.content.tsx" contentDeclarationFormat="typescript"
|
|
182
139
|
import { t, type Dictionary } from "intlayer";
|
|
@@ -199,11 +156,26 @@ export default appContent;
|
|
|
199
156
|
import { t } from "intlayer";
|
|
200
157
|
|
|
201
158
|
/** @type {import('intlayer').Dictionary} */
|
|
202
|
-
|
|
159
|
+
// appContent नामक सामग्री शब्दकोश घोषित करता है
|
|
160
|
+
const appContent = {
|
|
161
|
+
key: "app",
|
|
162
|
+
content: {
|
|
163
|
+
title: t({
|
|
164
|
+
en: "Hello World",
|
|
165
|
+
fr: "Bonjour le monde",
|
|
166
|
+
es: "Hola mundo",
|
|
167
|
+
}),
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export default appContent;
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
|
|
203
175
|
const { t } = require("intlayer");
|
|
204
176
|
|
|
205
177
|
/** @type {import('intlayer').Dictionary} */
|
|
206
|
-
//
|
|
178
|
+
// appContent नामक सामग्री शब्दकोश घोषित करता है
|
|
207
179
|
const appContent = {
|
|
208
180
|
key: "app",
|
|
209
181
|
content: {
|
|
@@ -235,39 +207,259 @@ module.exports = appContent;
|
|
|
235
207
|
}
|
|
236
208
|
```
|
|
237
209
|
|
|
238
|
-
> आपकी सामग्री घोषणाएँ
|
|
210
|
+
> आपकी सामग्री घोषणाएँ आपकी एप्लिकेशन में कहीं भी परिभाषित की जा सकती हैं जब तक कि वे `contentDir` निर्देशिका (डिफ़ॉल्ट रूप से, `./src`) में शामिल हों। और सामग्री घोषणा फ़ाइल एक्सटेंशन से मेल खाती हों (डिफ़ॉल्ट रूप से, `.content.{json,ts,tsx,js,jsx,mjs,mjx,cjs,cjx}`)।
|
|
239
211
|
|
|
240
|
-
> अधिक विवरण के लिए, [
|
|
212
|
+
> अधिक विवरण के लिए, [content declaration documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/dictionary/content_file.md) देखें।
|
|
241
213
|
|
|
242
214
|
### चरण 5: अपने कोड में Intlayer का उपयोग करें
|
|
243
215
|
|
|
244
|
-
|
|
216
|
+
```svelte fileName="src/App.svelte"
|
|
217
|
+
<script>
|
|
218
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
219
|
+
|
|
220
|
+
const content = useIntlayer("app");
|
|
221
|
+
</script>
|
|
222
|
+
|
|
223
|
+
<div>
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
<!-- सामग्री को सरल सामग्री के रूप में रेंडर करें -->
|
|
227
|
+
<h1>{$content.title}</h1>
|
|
228
|
+
<!-- संपादक का उपयोग करके सामग्री को संपादन योग्य रूप में रेंडर करने के लिए -->
|
|
229
|
+
<h1><svelte:component this={$content.title} /></h1>
|
|
230
|
+
<!-- सामग्री को स्ट्रिंग के रूप में रेंडर करने के लिए -->
|
|
231
|
+
<div aria-label={$content.title.value}></div>
|
|
232
|
+
```
|
|
245
233
|
|
|
246
234
|
### (वैकल्पिक) चरण 6: अपनी सामग्री की भाषा बदलें
|
|
247
235
|
|
|
248
|
-
|
|
236
|
+
```svelte fileName="src/App.svelte"
|
|
237
|
+
<script lang="ts">
|
|
238
|
+
import { getLocaleName } from 'intlayer';
|
|
239
|
+
import { useLocale } from 'svelte-intlayer';
|
|
240
|
+
|
|
241
|
+
// लोकल जानकारी और setLocale फ़ंक्शन प्राप्त करें
|
|
242
|
+
const { locale, availableLocales, setLocale } = useLocale();
|
|
243
|
+
|
|
244
|
+
// लोकल परिवर्तन को संभालें
|
|
245
|
+
const changeLocale = (event: Event) => {
|
|
246
|
+
const target = event.target as HTMLSelectElement;
|
|
247
|
+
const newLocale = target.value;
|
|
248
|
+
setLocale(newLocale);
|
|
249
|
+
};
|
|
250
|
+
</script>
|
|
251
|
+
|
|
252
|
+
<div>
|
|
253
|
+
<select value={$locale} on:change={changeLocale}>
|
|
254
|
+
{#each availableLocales ?? [] as loc}
|
|
255
|
+
<option value={loc}>
|
|
256
|
+
{getLocaleName(loc)}
|
|
257
|
+
</option>
|
|
258
|
+
{/each}
|
|
259
|
+
</select>
|
|
260
|
+
</div>
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### (वैकल्पिक) चरण 7: मार्कडाउन रेंडर करें
|
|
264
|
+
|
|
265
|
+
Intlayer सीधे आपके Svelte एप्लिकेशन में Markdown सामग्री को रेंडर करने का समर्थन करता है। डिफ़ॉल्ट रूप से, Markdown को सादा टेक्स्ट के रूप में माना जाता है। Markdown को समृद्ध HTML में बदलने के लिए, आप `@humanspeak/svelte-markdown` या किसी अन्य markdown पार्सर को एकीकृत कर सकते हैं।
|
|
266
|
+
|
|
267
|
+
> `intlayer` पैकेज का उपयोग करके markdown सामग्री को कैसे घोषित करें, यह देखने के लिए [markdown doc](https://github.com/aymericzip/intlayer/tree/main/docs/docs/hi/dictionary/markdown.md) देखें।
|
|
268
|
+
|
|
269
|
+
```svelte fileName="src/App.svelte"
|
|
270
|
+
<script>
|
|
271
|
+
import { setIntlayerMarkdown } from "svelte-intlayer";
|
|
272
|
+
|
|
273
|
+
setIntlayerMarkdown((markdown) =>
|
|
274
|
+
// मार्कडाउन सामग्री को एक स्ट्रिंग के रूप में रेंडर करें
|
|
275
|
+
return markdown;
|
|
276
|
+
);
|
|
277
|
+
</script>
|
|
249
278
|
|
|
250
|
-
|
|
279
|
+
<h1>{$content.markdownContent}</h1>
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
> आप अपने मार्कडाउन फ्रंट-मैटर डेटा को `content.markdownContent.metadata.xxx` प्रॉपर्टी का उपयोग करके भी एक्सेस कर सकते हैं।
|
|
283
|
+
|
|
284
|
+
### (वैकल्पिक) चरण 8: intlayer संपादक / CMS सेट करें
|
|
251
285
|
|
|
252
|
-
[
|
|
286
|
+
intlayer संपादक सेट करने के लिए, आपको [intlayer संपादक दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_visual_editor.md) का पालन करना होगा।
|
|
253
287
|
|
|
254
|
-
|
|
288
|
+
intlayer CMS सेट करने के लिए, आपको [intlayer CMS दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_CMS.md) का पालन करना होगा।
|
|
255
289
|
|
|
256
|
-
|
|
290
|
+
साथ ही, अपनी Svelte एप्लिकेशन में, आपको निम्नलिखित लाइन को किसी लेआउट में या अपनी एप्लिकेशन की रूट में जोड़ना होगा:
|
|
257
291
|
|
|
258
|
-
|
|
292
|
+
```svelte fileName="src/layout.svelte"
|
|
293
|
+
import { useIntlayerEditor } from "svelte-intlayer";
|
|
294
|
+
|
|
295
|
+
useIntlayerEditor();
|
|
296
|
+
```
|
|
259
297
|
|
|
260
|
-
|
|
298
|
+
### (वैकल्पिक) चरण 7: अपनी एप्लिकेशन में स्थानीयकृत रूटिंग जोड़ें
|
|
261
299
|
|
|
262
|
-
|
|
300
|
+
अपनी Svelte एप्लिकेशन में स्थानीयकृत रूटिंग को संभालने के लिए, आप `svelte-spa-router` का उपयोग Intlayer के `localeFlatMap` के साथ कर सकते हैं ताकि प्रत्येक लोकल के लिए रूट्स जनरेट किए जा सकें।
|
|
263
301
|
|
|
264
|
-
|
|
302
|
+
सबसे पहले, `svelte-spa-router` इंस्टॉल करें:
|
|
303
|
+
|
|
304
|
+
```bash packageManager="npm"
|
|
305
|
+
npm install svelte-spa-router
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
```bash packageManager="pnpm"
|
|
309
|
+
pnpm add svelte-spa-router
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
```bash packageManager="yarn"
|
|
313
|
+
yarn add svelte-spa-router
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
```bash packageManager="bun"
|
|
317
|
+
bun add svelte-spa-router
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
फिर, अपने रूट्स को परिभाषित करने के लिए एक `Router.svelte` फ़ाइल बनाएं:
|
|
321
|
+
|
|
322
|
+
```svelte fileName="src/Router.svelte"
|
|
323
|
+
<script lang="ts">
|
|
324
|
+
import { localeFlatMap } from "intlayer";
|
|
325
|
+
import Router from "svelte-spa-router";
|
|
326
|
+
import { wrap } from "svelte-spa-router/wrap";
|
|
327
|
+
import App from "./App.svelte";
|
|
328
|
+
|
|
329
|
+
const routes = Object.fromEntries(
|
|
330
|
+
localeFlatMap(({locale, urlPrefix}) => [
|
|
331
|
+
[
|
|
332
|
+
urlPrefix || '/',
|
|
333
|
+
wrap({
|
|
334
|
+
component: App as any,
|
|
335
|
+
props: {
|
|
336
|
+
locale,
|
|
337
|
+
},
|
|
338
|
+
}),
|
|
339
|
+
],
|
|
340
|
+
])
|
|
341
|
+
);
|
|
342
|
+
</script>
|
|
343
|
+
|
|
344
|
+
<Router {routes} />
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
अपने `main.ts` को अपडेट करें ताकि `App` के बजाय `Router` कंपोनेंट को माउंट किया जा सके:
|
|
348
|
+
|
|
349
|
+
```typescript fileName="src/main.ts"
|
|
350
|
+
import { mount } from "svelte";
|
|
351
|
+
import Router from "./Router.svelte";
|
|
352
|
+
|
|
353
|
+
const app = mount(Router, {
|
|
354
|
+
target: document.getElementById("app")!,
|
|
355
|
+
});
|
|
356
|
+
|
|
357
|
+
export default app;
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
अंत में, अपने `App.svelte` को अपडेट करें ताकि वह `locale` prop प्राप्त कर सके और इसे `useIntlayer` के साथ उपयोग कर सके:
|
|
361
|
+
|
|
362
|
+
```svelte fileName="src/App.svelte"
|
|
363
|
+
<script lang="ts">
|
|
364
|
+
import type { Locale } from 'intlayer';
|
|
365
|
+
import { useIntlayer } from 'svelte-intlayer';
|
|
366
|
+
import Counter from './lib/Counter.svelte';
|
|
367
|
+
import LocaleSwitcher from './lib/LocaleSwitcher.svelte';
|
|
368
|
+
|
|
369
|
+
export let locale: Locale;
|
|
370
|
+
|
|
371
|
+
$: content = useIntlayer('app', locale);
|
|
372
|
+
</script>
|
|
373
|
+
|
|
374
|
+
<main>
|
|
375
|
+
<div class="locale-switcher-container">
|
|
376
|
+
<LocaleSwitcher currentLocale={locale} />
|
|
377
|
+
</div>
|
|
378
|
+
|
|
379
|
+
<!-- ... आपके ऐप का बाकी हिस्सा ... -->
|
|
380
|
+
</main>
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
#### सर्वर-साइड रूटिंग कॉन्फ़िगर करें (वैकल्पिक)
|
|
384
|
+
|
|
385
|
+
साथ ही, आप अपने एप्लिकेशन में सर्वर-साइड रूटिंग जोड़ने के लिए `intlayerProxy` का भी उपयोग कर सकते हैं। यह प्लगइन URL के आधार पर वर्तमान locale को स्वचालित रूप से पहचान लेगा और उपयुक्त locale कुकी सेट करेगा। यदि कोई locale निर्दिष्ट नहीं है, तो प्लगइन उपयोगकर्ता के ब्राउज़र भाषा प्राथमिकताओं के आधार पर सबसे उपयुक्त locale निर्धारित करेगा। यदि कोई locale पता नहीं चलता है, तो यह डिफ़ॉल्ट locale पर पुनर्निर्देशित कर देगा।
|
|
386
|
+
|
|
387
|
+
> ध्यान दें कि उत्पादन में `intlayerProxy` का उपयोग करने के लिए, आपको `vite-intlayer` पैकेज को `devDependencies` से `dependencies` में स्विच करना होगा।
|
|
388
|
+
|
|
389
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
390
|
+
import { defineConfig } from "vite";
|
|
391
|
+
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
392
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
393
|
+
|
|
394
|
+
plugins: [svelte(), intlayer(), intlayerProxy()],
|
|
395
|
+
});
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
399
|
+
import { defineConfig } from "vite";
|
|
400
|
+
import { svelte } from "@sveltejs/vite-plugin-svelte";
|
|
401
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
402
|
+
|
|
403
|
+
// https://vitejs.dev/config/
|
|
404
|
+
export default defineConfig({
|
|
405
|
+
plugins: [svelte(), intlayer(), intlayerProxy()],
|
|
406
|
+
});
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
410
|
+
const { defineConfig } = require("vite");
|
|
411
|
+
const { svelte } = require("@sveltejs/vite-plugin-svelte");
|
|
412
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
413
|
+
|
|
414
|
+
// https://vitejs.dev/config/
|
|
415
|
+
module.exports = defineConfig({
|
|
416
|
+
plugins: [svelte(), intlayer(), intlayerProxy()],
|
|
417
|
+
});
|
|
418
|
+
plugins: [svelte(), intlayer(), intlayerProxy()],
|
|
419
|
+
});
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### (वैकल्पिक) चरण 8: जब locale बदलता है तो URL बदलें
|
|
423
|
+
|
|
424
|
+
उपयोगकर्ताओं को भाषाएँ बदलने और URL को उसके अनुसार अपडेट करने की अनुमति देने के लिए, आप एक `LocaleSwitcher` कॉम्पोनेंट बना सकते हैं। यह कॉम्पोनेंट `intlayer` से `getLocalizedUrl` और `svelte-spa-router` से `push` का उपयोग करेगा।
|
|
425
|
+
|
|
426
|
+
```svelte fileName="src/lib/LocaleSwitcher.svelte"
|
|
427
|
+
<script lang="ts">
|
|
428
|
+
import { getLocaleName, getLocalizedUrl } from "intlayer";
|
|
429
|
+
import { useLocale } from "svelte-intlayer";
|
|
430
|
+
import { push } from "svelte-spa-router";
|
|
431
|
+
|
|
432
|
+
export let currentLocale: string | undefined = undefined;
|
|
433
|
+
|
|
434
|
+
// locale जानकारी प्राप्त करें
|
|
435
|
+
const { locale, availableLocales } = useLocale();
|
|
436
|
+
|
|
437
|
+
// locale परिवर्तन को संभालें
|
|
438
|
+
const changeLocale = (event: Event) => {
|
|
439
|
+
const target = event.target as HTMLSelectElement;
|
|
440
|
+
const newLocale = target.value;
|
|
441
|
+
const currentUrl = window.location.pathname;
|
|
442
|
+
const url = getLocalizedUrl( currentUrl, newLocale);
|
|
443
|
+
push(url);
|
|
444
|
+
};
|
|
445
|
+
</script>
|
|
446
|
+
|
|
447
|
+
<div class="locale-switcher">
|
|
448
|
+
<select value={currentLocale ?? $locale} onchange={changeLocale}>
|
|
449
|
+
{#each availableLocales ?? [] as loc}
|
|
450
|
+
<option value={loc}>
|
|
451
|
+
{getLocaleName(loc)}
|
|
452
|
+
</option>
|
|
453
|
+
{/each}
|
|
454
|
+
</select>
|
|
455
|
+
</div>
|
|
456
|
+
```
|
|
265
457
|
|
|
266
458
|
### Git कॉन्फ़िगरेशन
|
|
267
459
|
|
|
268
|
-
|
|
460
|
+
यह अनुशंसा की जाती है कि Intlayer द्वारा उत्पन्न फ़ाइलों को अनदेखा किया जाए। इससे आप उन्हें अपने Git रिपॉजिटरी में कमिट करने से बच सकते हैं।
|
|
269
461
|
|
|
270
|
-
|
|
462
|
+
ऐसा करने के लिए, आप अपनी `.gitignore` फ़ाइल में निम्नलिखित निर्देश जोड़ सकते हैं:
|
|
271
463
|
|
|
272
464
|
```plaintext
|
|
273
465
|
# Intlayer द्वारा उत्पन्न फ़ाइलों को अनदेखा करें
|
|
@@ -276,23 +468,21 @@ module.exports = appContent;
|
|
|
276
468
|
|
|
277
469
|
### VS कोड एक्सटेंशन
|
|
278
470
|
|
|
279
|
-
|
|
471
|
+
अपने विकास अनुभव को बेहतर बनाने के लिए, आप आधिकारिक **Intlayer VS Code Extension** इंस्टॉल कर सकते हैं।
|
|
280
472
|
|
|
281
|
-
[VS
|
|
473
|
+
[VS Code Marketplace से इंस्टॉल करें](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
282
474
|
|
|
283
475
|
यह एक्सटेंशन प्रदान करता है:
|
|
284
476
|
|
|
285
477
|
- अनुवाद कुंजियों के लिए **ऑटोकंप्लीशन**।
|
|
286
|
-
- गायब अनुवादों के लिए **रीयल-टाइम त्रुटि
|
|
478
|
+
- गायब अनुवादों के लिए **रीयल-टाइम त्रुटि पता लगाना**।
|
|
287
479
|
- अनुवादित सामग्री के **इनलाइन पूर्वावलोकन**।
|
|
288
|
-
- अनुवादों को आसानी से बनाने और अपडेट करने के लिए **त्वरित
|
|
480
|
+
- अनुवादों को आसानी से बनाने और अपडेट करने के लिए **त्वरित क्रियाएं**।
|
|
289
481
|
|
|
290
|
-
एक्सटेंशन का उपयोग कैसे करें, इसके लिए अधिक जानकारी के लिए देखें [Intlayer VS
|
|
482
|
+
एक्सटेंशन का उपयोग कैसे करें, इसके लिए अधिक जानकारी के लिए देखें [Intlayer VS Code Extension दस्तावेज़](https://intlayer.org/doc/vs-code-extension)।
|
|
291
483
|
|
|
292
484
|
---
|
|
293
485
|
|
|
294
486
|
### आगे बढ़ें
|
|
295
487
|
|
|
296
|
-
आगे बढ़ने के लिए, आप [
|
|
297
|
-
|
|
298
|
-
---
|
|
488
|
+
आगे बढ़ने के लिए, आप [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_visual_editor.md) को लागू कर सकते हैं या अपनी सामग्री को [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_CMS.md) का उपयोग करके बाहरी रूप से प्रबंधित कर सकते हैं।
|