@intlayer/docs 5.7.2 → 5.7.4
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/dist/cjs/generated/docs.entry.cjs +82 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +82 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/dictionary/gender.md +275 -0
- package/docs/ar/how_works_intlayer.md +1 -1
- package/docs/ar/locale_mapper.md +246 -0
- package/docs/de/dictionary/gender.md +316 -0
- package/docs/de/how_works_intlayer.md +1 -1
- package/docs/de/locale_mapper.md +244 -0
- package/docs/en/dictionary/gender.md +275 -0
- package/docs/en/how_works_intlayer.md +1 -1
- package/docs/en/index.md +3 -0
- package/docs/en/locale_mapper.md +244 -0
- package/docs/en-GB/dictionary/gender.md +275 -0
- package/docs/en-GB/how_works_intlayer.md +1 -1
- package/docs/en-GB/locale_mapper.md +244 -0
- package/docs/es/dictionary/gender.md +275 -0
- package/docs/es/how_works_intlayer.md +1 -1
- package/docs/es/locale_mapper.md +244 -0
- package/docs/fr/dictionary/gender.md +276 -0
- package/docs/fr/how_works_intlayer.md +1 -1
- package/docs/fr/locale_mapper.md +244 -0
- package/docs/hi/dictionary/gender.md +276 -0
- package/docs/hi/how_works_intlayer.md +1 -1
- package/docs/hi/locale_mapper.md +244 -0
- package/docs/it/dictionary/gender.md +275 -0
- package/docs/it/how_works_intlayer.md +1 -1
- package/docs/it/locale_mapper.md +244 -0
- package/docs/ja/dictionary/gender.md +275 -0
- package/docs/ja/how_works_intlayer.md +1 -1
- package/docs/ja/locale_mapper.md +244 -0
- package/docs/ko/dictionary/gender.md +275 -0
- package/docs/ko/how_works_intlayer.md +1 -1
- package/docs/ko/locale_mapper.md +244 -0
- package/docs/pt/dictionary/gender.md +275 -0
- package/docs/pt/how_works_intlayer.md +1 -1
- package/docs/pt/locale_mapper.md +244 -0
- package/docs/ru/dictionary/gender.md +275 -0
- package/docs/ru/how_works_intlayer.md +1 -1
- package/docs/ru/locale_mapper.md +244 -0
- package/docs/zh/dictionary/gender.md +275 -0
- package/docs/zh/how_works_intlayer.md +1 -1
- package/docs/zh/locale_mapper.md +244 -0
- package/package.json +11 -11
- package/src/generated/docs.entry.ts +82 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-07-27
|
|
3
|
+
updatedAt: 2025-07-27
|
|
4
|
+
title: लिंग-आधारित सामग्री
|
|
5
|
+
description: जानें कि Intlayer में लिंग-आधारित सामग्री का उपयोग कैसे करें ताकि लिंग के आधार पर सामग्री को गतिशील रूप से प्रदर्शित किया जा सके। इस दस्तावेज़ का पालन करें ताकि आप अपने प्रोजेक्ट में लिंग-विशिष्ट सामग्री को प्रभावी ढंग से लागू कर सकें।
|
|
6
|
+
keywords:
|
|
7
|
+
- लिंग-आधारित सामग्री
|
|
8
|
+
- गतिशील रेंडरिंग
|
|
9
|
+
- दस्तावेज़ीकरण
|
|
10
|
+
- Intlayer
|
|
11
|
+
- Next.js
|
|
12
|
+
- JavaScript
|
|
13
|
+
- React
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- concept
|
|
17
|
+
- content
|
|
18
|
+
- gender
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# लिंग-आधारित सामग्री / Intlayer में लिंग
|
|
22
|
+
|
|
23
|
+
## लिंग कैसे काम करता है
|
|
24
|
+
|
|
25
|
+
Intlayer में, लिंग-आधारित सामग्री `gender` फ़ंक्शन के माध्यम से प्राप्त की जाती है, जो विशिष्ट लिंग मानों ('male', 'female') को उनके संबंधित सामग्री से मैप करता है। यह तरीका आपको दिए गए लिंग के आधार पर सामग्री को गतिशील रूप से चुनने में सक्षम बनाता है। जब इसे React Intlayer या Next Intlayer के साथ एकीकृत किया जाता है, तो रनटाइम पर प्रदान किए गए लिंग के अनुसार उपयुक्त सामग्री स्वचालित रूप से चुनी जाती है।
|
|
26
|
+
|
|
27
|
+
## लिंग-आधारित सामग्री सेटअप करना
|
|
28
|
+
|
|
29
|
+
अपने Intlayer प्रोजेक्ट में लिंग-आधारित सामग्री सेटअप करने के लिए, एक सामग्री मॉड्यूल बनाएं जिसमें आपके लिंग-विशिष्ट परिभाषाएँ शामिल हों। नीचे विभिन्न प्रारूपों में उदाहरण दिए गए हैं।
|
|
30
|
+
|
|
31
|
+
```typescript fileName="**/*.content.ts" contentDeclarationFormat="typescript"
|
|
32
|
+
import { gender, type Dictionary } from "intlayer";
|
|
33
|
+
|
|
34
|
+
const myGenderContent = {
|
|
35
|
+
key: "my_key",
|
|
36
|
+
content: {
|
|
37
|
+
myGender: gender({
|
|
38
|
+
male: "पुरुष उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
39
|
+
female: "महिला उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
40
|
+
fallback: "जब लिंग निर्दिष्ट नहीं होता है तो मेरी सामग्री", // वैकल्पिक
|
|
41
|
+
}),
|
|
42
|
+
},
|
|
43
|
+
} satisfies Dictionary;
|
|
44
|
+
|
|
45
|
+
export default myGenderContent;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
```javascript fileName="**/*.content.mjs" contentDeclarationFormat="esm"
|
|
49
|
+
import { gender } from "intlayer";
|
|
50
|
+
|
|
51
|
+
/** @type {import('intlayer').Dictionary} */
|
|
52
|
+
const myGenderContent = {
|
|
53
|
+
key: "my_key",
|
|
54
|
+
content: {
|
|
55
|
+
myGender: gender({
|
|
56
|
+
male: "पुरुष उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
57
|
+
female: "महिला उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
58
|
+
fallback: "जब लिंग निर्दिष्ट नहीं होता है तो मेरी सामग्री", // वैकल्पिक
|
|
59
|
+
}),
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export default myGenderContent;
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```javascript fileName="**/*.content.cjs" contentDeclarationFormat="commonjs"
|
|
67
|
+
const { gender } = require("intlayer");
|
|
68
|
+
|
|
69
|
+
/** @type {import('intlayer').Dictionary} */
|
|
70
|
+
const myGenderContent = {
|
|
71
|
+
key: "my_key",
|
|
72
|
+
content: {
|
|
73
|
+
myGender: gender({
|
|
74
|
+
male: "पुरुष उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
75
|
+
female: "महिला उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
76
|
+
fallback: "जब लिंग निर्दिष्ट नहीं होता है तो मेरी सामग्री", // वैकल्पिक
|
|
77
|
+
}),
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
module.exports = myGenderContent;
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```json5 fileName="**/*.content.json" contentDeclarationFormat="json"
|
|
85
|
+
{
|
|
86
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
87
|
+
"key": "my_key",
|
|
88
|
+
"content": {
|
|
89
|
+
"myGender": {
|
|
90
|
+
"nodeType": "gender",
|
|
91
|
+
"gender": {
|
|
92
|
+
"male": "पुरुष उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
93
|
+
"female": "महिला उपयोगकर्ताओं के लिए मेरी सामग्री",
|
|
94
|
+
"fallback": "जब लिंग निर्दिष्ट नहीं होता है तो मेरी सामग्री", // वैकल्पिक
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
> यदि कोई फॉलबैक घोषित नहीं किया गया है, तो अंतिम घोषित कुंजी को फॉलबैक के रूप में लिया जाएगा यदि लिंग निर्दिष्ट नहीं है या किसी परिभाषित लिंग से मेल नहीं खाता है।
|
|
102
|
+
|
|
103
|
+
## React Intlayer के साथ लिंग-आधारित सामग्री का उपयोग करना
|
|
104
|
+
|
|
105
|
+
React घटक के भीतर लिंग-आधारित सामग्री का उपयोग करने के लिए, `react-intlayer` पैकेज से `useIntlayer` हुक को आयात करें और उपयोग करें। यह हुक निर्दिष्ट कुंजी के लिए सामग्री प्राप्त करता है और आपको उपयुक्त आउटपुट चुनने के लिए लिंग पास करने की अनुमति देता है।
|
|
106
|
+
|
|
107
|
+
```tsx fileName="**/*.tsx" codeFormat="typescript"
|
|
108
|
+
import type { FC } from "react";
|
|
109
|
+
import { useIntlayer } from "react-intlayer";
|
|
110
|
+
|
|
111
|
+
const GenderComponent: FC = () => {
|
|
112
|
+
const { myGender } = useIntlayer("my_key");
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<div>
|
|
116
|
+
<p>
|
|
117
|
+
{
|
|
118
|
+
/* आउटपुट: पुरुष उपयोगकर्ताओं के लिए मेरी सामग्री */
|
|
119
|
+
myGender("male")
|
|
120
|
+
}
|
|
121
|
+
</p>
|
|
122
|
+
<p>
|
|
123
|
+
{
|
|
124
|
+
/* आउटपुट: मेरे महिला उपयोगकर्ताओं के लिए सामग्री */
|
|
125
|
+
myGender("female")
|
|
126
|
+
}
|
|
127
|
+
</p>
|
|
128
|
+
<p>
|
|
129
|
+
{
|
|
130
|
+
/* आउटपुट: मेरे पुरुष उपयोगकर्ताओं के लिए सामग्री */
|
|
131
|
+
myGender("m")
|
|
132
|
+
}
|
|
133
|
+
</p>
|
|
134
|
+
<p>
|
|
135
|
+
{
|
|
136
|
+
/* आउटपुट: मेरे महिला उपयोगकर्ताओं के लिए सामग्री */
|
|
137
|
+
myGender("f")
|
|
138
|
+
}
|
|
139
|
+
</p>
|
|
140
|
+
<p>
|
|
141
|
+
{
|
|
142
|
+
/* आउटपुट: जब लिंग निर्दिष्ट नहीं होता है तब मेरी सामग्री */
|
|
143
|
+
myGender("")
|
|
144
|
+
}
|
|
145
|
+
</p>
|
|
146
|
+
<p>
|
|
147
|
+
{
|
|
148
|
+
/* आउटपुट: जब लिंग निर्दिष्ट नहीं होता है तब मेरी सामग्री */
|
|
149
|
+
myGender(undefined)
|
|
150
|
+
}
|
|
151
|
+
</p>
|
|
152
|
+
</div>
|
|
153
|
+
);
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export default GenderComponent;
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
```javascript fileName="**/*.mjx" codeFormat="esm"
|
|
160
|
+
import { useIntlayer } from "react-intlayer";
|
|
161
|
+
|
|
162
|
+
const GenderComponent = () => {
|
|
163
|
+
const { myGender } = useIntlayer("my_key");
|
|
164
|
+
|
|
165
|
+
return (
|
|
166
|
+
<div>
|
|
167
|
+
<p>
|
|
168
|
+
{
|
|
169
|
+
/* आउटपुट: मेरे पुरुष उपयोगकर्ताओं के लिए सामग्री */
|
|
170
|
+
myGender("male")
|
|
171
|
+
}
|
|
172
|
+
</p>
|
|
173
|
+
<p>
|
|
174
|
+
{
|
|
175
|
+
/* आउटपुट: मेरे महिला उपयोगकर्ताओं के लिए सामग्री */
|
|
176
|
+
myGender("female")
|
|
177
|
+
}
|
|
178
|
+
</p>
|
|
179
|
+
<p>
|
|
180
|
+
{
|
|
181
|
+
/* आउटपुट: मेरे पुरुष उपयोगकर्ताओं के लिए सामग्री */
|
|
182
|
+
myGender("m")
|
|
183
|
+
}
|
|
184
|
+
</p>
|
|
185
|
+
<p>
|
|
186
|
+
{
|
|
187
|
+
/* आउटपुट: मेरे महिला उपयोगकर्ताओं के लिए सामग्री */
|
|
188
|
+
myGender("f")
|
|
189
|
+
}
|
|
190
|
+
</p>
|
|
191
|
+
<p>
|
|
192
|
+
{
|
|
193
|
+
/* आउटपुट: जब लिंग निर्दिष्ट नहीं होता है तब मेरी सामग्री */
|
|
194
|
+
myGender("")
|
|
195
|
+
}
|
|
196
|
+
</p>
|
|
197
|
+
<p>
|
|
198
|
+
{
|
|
199
|
+
/* आउटपुट: जब लिंग निर्दिष्ट नहीं होता है तब मेरी सामग्री */
|
|
200
|
+
/* आउटपुट: मेरे पुरुष उपयोगकर्ताओं के लिए सामग्री */
|
|
201
|
+
myGender(undefined)
|
|
202
|
+
}
|
|
203
|
+
</p>
|
|
204
|
+
</div>
|
|
205
|
+
);
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
export default GenderComponent;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
```javascript fileName="**/*.cjs" codeFormat="commonjs"
|
|
212
|
+
const { useIntlayer } = require("react-intlayer");
|
|
213
|
+
|
|
214
|
+
const GenderComponent = () => {
|
|
215
|
+
const { myGender } = useIntlayer("my_key");
|
|
216
|
+
|
|
217
|
+
return (
|
|
218
|
+
<div>
|
|
219
|
+
<p>
|
|
220
|
+
{
|
|
221
|
+
/* आउटपुट: मेरे पुरुष उपयोगकर्ताओं के लिए सामग्री */
|
|
222
|
+
myGender("male")
|
|
223
|
+
}
|
|
224
|
+
</p>
|
|
225
|
+
<p>
|
|
226
|
+
{
|
|
227
|
+
/* आउटपुट: मेरी महिला उपयोगकर्ताओं के लिए सामग्री */
|
|
228
|
+
myGender("female")
|
|
229
|
+
}
|
|
230
|
+
</p>
|
|
231
|
+
<p>
|
|
232
|
+
{
|
|
233
|
+
/* आउटपुट: मेरे पुरुष उपयोगकर्ताओं के लिए सामग्री */
|
|
234
|
+
myGender("m")
|
|
235
|
+
}
|
|
236
|
+
</p>
|
|
237
|
+
<p>
|
|
238
|
+
{
|
|
239
|
+
/* आउटपुट: मेरी महिला उपयोगकर्ताओं के लिए सामग्री */
|
|
240
|
+
myGender("f")
|
|
241
|
+
}
|
|
242
|
+
</p>
|
|
243
|
+
<p>
|
|
244
|
+
{
|
|
245
|
+
/* आउटपुट: जब लिंग निर्दिष्ट नहीं किया गया हो तो मेरी सामग्री */
|
|
246
|
+
myGender("")
|
|
247
|
+
}
|
|
248
|
+
</p>
|
|
249
|
+
<p>
|
|
250
|
+
{
|
|
251
|
+
/* आउटपुट: जब लिंग निर्दिष्ट नहीं किया गया हो तो मेरी सामग्री */
|
|
252
|
+
myGender(undefined)
|
|
253
|
+
}
|
|
254
|
+
</p>
|
|
255
|
+
</div>
|
|
256
|
+
);
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
module.exports = GenderComponent;
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## अतिरिक्त संसाधन
|
|
263
|
+
|
|
264
|
+
कॉन्फ़िगरेशन और उपयोग के बारे में अधिक विस्तृत जानकारी के लिए, निम्नलिखित संसाधनों को देखें:
|
|
265
|
+
|
|
266
|
+
- [Intlayer CLI दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_cli.md)
|
|
267
|
+
- [React Intlayer दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_with_create_react_app.md)
|
|
268
|
+
- [Next Intlayer दस्तावेज़](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_with_nextjs_15.md)
|
|
269
|
+
|
|
270
|
+
ये संसाधन विभिन्न वातावरणों और फ्रेमवर्क्स में Intlayer की सेटअप और उपयोग के बारे में और अधिक जानकारी प्रदान करते हैं।
|
|
271
|
+
|
|
272
|
+
## दस्तावेज़ इतिहास
|
|
273
|
+
|
|
274
|
+
| संस्करण | तिथि | परिवर्तन |
|
|
275
|
+
| ------- | ---------- | ----------------------------- |
|
|
276
|
+
| 5.7.2 | 2025-07-27 | लिंग आधारित सामग्री पेश की गई |
|
|
@@ -93,7 +93,7 @@ Intlayer एक दृश्य संपादक भी प्रदान क
|
|
|
93
93
|
|
|
94
94
|
- सर्वर एक सरल Express एप्लिकेशन है जो क्लाइंट से अनुरोध सुनता है और आपकी एप्लिकेशन की सामग्री, जैसे कि `dictionaries` और कॉन्फ़िगरेशन, को पुनः प्राप्त करता है ताकि इसे क्लाइंट साइड पर सुलभ बनाया जा सके।
|
|
95
95
|
- दूसरी ओर, क्लाइंट एक React एप्लिकेशन है जिसका उपयोग दृश्य इंटरफ़ेस के माध्यम से आपकी सामग्री के साथ इंटरैक्ट करने के लिए किया जाता है।
|
|
96
|
-
जब आप `useIntlayer` का उपयोग करके अपनी सामग्री को कॉल करते हैं और संपादक सक्षम होता है, तो यह स्वचालित रूप से आपकी स्ट्रिंग्स को `IntlayerNode` नामक एक Proxy ऑब्जेक्ट के साथ लपेट देता है। यह नोड `window.
|
|
96
|
+
जब आप `useIntlayer` का उपयोग करके अपनी सामग्री को कॉल करते हैं और संपादक सक्षम होता है, तो यह स्वचालित रूप से आपकी स्ट्रिंग्स को `IntlayerNode` नामक एक Proxy ऑब्जेक्ट के साथ लपेट देता है। यह नोड `window.postMessage` का उपयोग करता है ताकि एक रैप्ड iframe के साथ संवाद किया जा सके जिसमें विज़ुअल एडिटर इंटरफ़ेस होता है।
|
|
97
97
|
संपादक की ओर, संपादक इन संदेशों को सुनता है और आपकी सामग्री के साथ वास्तविक इंटरैक्शन का अनुकरण करता है, जिससे आप सीधे अपने एप्लिकेशन के संदर्भ में टेक्स्ट संपादित कर सकते हैं।
|
|
98
98
|
|
|
99
99
|
## ऐप निर्माण अनुकूलन
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-07-27
|
|
3
|
+
updatedAt: 2025-07-27
|
|
4
|
+
title: लोकल मैपर
|
|
5
|
+
description: जानें कि लोकल मैपर कैसे काम करता है। अपने एप्लिकेशन में लोकल मैपर द्वारा उपयोग किए गए चरण देखें। जानें कि विभिन्न पैकेज क्या करते हैं।
|
|
6
|
+
keywords:
|
|
7
|
+
- लोकल मैपर
|
|
8
|
+
- शुरू करें
|
|
9
|
+
- इंटलेयर
|
|
10
|
+
- एप्लिकेशन
|
|
11
|
+
- पैकेज
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- locale-mapper
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# लोकल मैपर
|
|
18
|
+
|
|
19
|
+
लोकल मैपर एक शक्तिशाली उपकरण है जो आपके इंटलेयर एप्लिकेशन में अंतरराष्ट्रीयकरण डेटा के साथ काम करने में मदद करता है। यह लोकल-विशिष्ट डेटा को परिवर्तित और व्यवस्थित करने के लिए तीन मुख्य फ़ंक्शन प्रदान करता है: `localeMap`, `localeFlatMap`, और `localeRecord`।
|
|
20
|
+
|
|
21
|
+
## लोकल मैपर कैसे काम करता है
|
|
22
|
+
|
|
23
|
+
लोकल मैपर एक `LocaleData` ऑब्जेक्ट पर काम करता है जिसमें किसी लोकल के बारे में सभी आवश्यक जानकारी होती है:
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
type LocaleData = {
|
|
27
|
+
locale: LocalesValues; // वर्तमान लोकल कोड (जैसे, 'en', 'fr')
|
|
28
|
+
defaultLocale: LocalesValues; // डिफ़ॉल्ट लोकल कोड
|
|
29
|
+
isDefault: boolean; // क्या यह डिफ़ॉल्ट लोकल है
|
|
30
|
+
locales: LocalesValues[]; // सभी उपलब्ध लोकल्स की सूची
|
|
31
|
+
urlPrefix: string; // इस लोकल के लिए URL उपसर्ग (जैसे, '/fr' या '')
|
|
32
|
+
};
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
मैपर फ़ंक्शन आपके कॉन्फ़िगरेशन में प्रत्येक लोकल के लिए यह डेटा स्वचालित रूप से उत्पन्न करते हैं, निम्न बातों को ध्यान में रखते हुए:
|
|
36
|
+
|
|
37
|
+
- आपके कॉन्फ़िगर किए गए लोकल्स की सूची
|
|
38
|
+
- डिफ़ॉल्ट लोकल सेटिंग
|
|
39
|
+
- क्या डिफ़ॉल्ट लोकल को URL में उपसर्गित किया जाना चाहिए
|
|
40
|
+
|
|
41
|
+
## मुख्य फ़ंक्शन
|
|
42
|
+
|
|
43
|
+
### `localeMap`
|
|
44
|
+
|
|
45
|
+
एक मैपर फ़ंक्शन का उपयोग करके प्रत्येक लोकल को एक एकल ऑब्जेक्ट में परिवर्तित करता है।
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
localeMap<T>(
|
|
49
|
+
mapper: (locale: LocaleData) => T,
|
|
50
|
+
locales?: LocalesValues[],
|
|
51
|
+
defaultLocale?: LocalesValues,
|
|
52
|
+
prefixDefault?: boolean
|
|
53
|
+
): T[]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**उदाहरण: रूट ऑब्जेक्ट्स बनाना**
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
import { localeMap } from "intlayer";
|
|
60
|
+
|
|
61
|
+
const routes = localeMap((localizedData) => ({
|
|
62
|
+
path: localizedData.urlPrefix,
|
|
63
|
+
name: localizedData.locale,
|
|
64
|
+
isDefault: localizedData.isDefault,
|
|
65
|
+
locales: localizedData.locales,
|
|
66
|
+
defaultLocale: localizedData.defaultLocale,
|
|
67
|
+
}));
|
|
68
|
+
|
|
69
|
+
// परिणाम:
|
|
70
|
+
// [
|
|
71
|
+
// { path: '/', name: 'en', isDefault: true, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },
|
|
72
|
+
// { path: '/fr', name: 'fr', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },
|
|
73
|
+
// { path: '/es', name: 'es', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' }
|
|
74
|
+
// ]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### `localeFlatMap`
|
|
78
|
+
|
|
79
|
+
`localeMap` के समान, लेकिन मैपर फ़ंक्शन ऑब्जेक्ट्स की एक सरणी लौटाता है जिसे एक एकल सरणी में समतल किया जाता है।
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
localeFlatMap<T>(
|
|
83
|
+
mapper: (locale: LocaleData) => T[],
|
|
84
|
+
locales?: LocalesValues[],
|
|
85
|
+
defaultLocale?: LocalesValues,
|
|
86
|
+
prefixDefault?: boolean
|
|
87
|
+
): T[]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**उदाहरण: प्रत्येक लोकल के लिए कई रूट बनाना**
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
import { localeFlatMap } from "intlayer";
|
|
94
|
+
|
|
95
|
+
const routes = localeFlatMap((localizedData) => [
|
|
96
|
+
{
|
|
97
|
+
path: localizedData.urlPrefix,
|
|
98
|
+
name: localizedData.locale,
|
|
99
|
+
isDefault: localizedData.isDefault,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
path: `${localizedData.urlPrefix}/about`,
|
|
103
|
+
name: `${localizedData.locale}-about`,
|
|
104
|
+
isDefault: localizedData.isDefault,
|
|
105
|
+
},
|
|
106
|
+
]);
|
|
107
|
+
|
|
108
|
+
// परिणाम:
|
|
109
|
+
// [
|
|
110
|
+
// { path: '/', name: 'en', isDefault: true },
|
|
111
|
+
// { path: '/about', name: 'en-about', isDefault: true },
|
|
112
|
+
// { path: '/fr', name: 'fr', isDefault: false },
|
|
113
|
+
// { path: '/fr/about', name: 'fr-about', isDefault: false },
|
|
114
|
+
// { path: '/es', name: 'es', isDefault: false },
|
|
115
|
+
// { path: '/es/about', name: 'es-about', isDefault: false }
|
|
116
|
+
// ]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### `localeRecord`
|
|
120
|
+
|
|
121
|
+
एक रिकॉर्ड ऑब्जेक्ट बनाता है जहाँ प्रत्येक लोकल एक कुंजी होती है जो मैपर फ़ंक्शन द्वारा परिवर्तित मान से मैप होती है।
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
localeRecord<T>(
|
|
125
|
+
mapper: (locale: LocaleData) => T,
|
|
126
|
+
locales?: Locales[],
|
|
127
|
+
defaultLocale?: Locales,
|
|
128
|
+
prefixDefault?: boolean
|
|
129
|
+
): Record<Locales, T>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**उदाहरण: अनुवाद फ़ाइलें लोड करना**
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
import { localeRecord } from "intlayer";
|
|
136
|
+
|
|
137
|
+
const translations = localeRecord(({ locale }) =>
|
|
138
|
+
require(`./translations/${locale}.json`)
|
|
139
|
+
);
|
|
140
|
+
|
|
141
|
+
// परिणाम:
|
|
142
|
+
// {
|
|
143
|
+
// en: { welcome: 'स्वागत है', hello: 'नमस्ते' },
|
|
144
|
+
// fr: { welcome: 'Bienvenue', hello: 'Bonjour' },
|
|
145
|
+
// es: { welcome: 'Bienvenido', hello: 'Hola' }
|
|
146
|
+
// }
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## लोकल मैपर सेट करना
|
|
150
|
+
|
|
151
|
+
लोकल मैपर स्वचालित रूप से आपके Intlayer कॉन्फ़िगरेशन का उपयोग करता है, लेकिन आप पैरामीटर पास करके डिफ़ॉल्ट सेटिंग्स को ओवरराइड कर सकते हैं:
|
|
152
|
+
|
|
153
|
+
### डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करना
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
import { localeMap } from "intlayer";
|
|
157
|
+
|
|
158
|
+
// intlayer.config.ts से कॉन्फ़िगरेशन का उपयोग करता है
|
|
159
|
+
const routes = localeMap((data) => ({
|
|
160
|
+
path: data.urlPrefix,
|
|
161
|
+
locale: data.locale,
|
|
162
|
+
}));
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### कॉन्फ़िगरेशन ओवरराइड करना
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
import { localeMap } from "intlayer";
|
|
169
|
+
|
|
170
|
+
// लोकल और डिफ़ॉल्ट लोकल को ओवरराइड करें
|
|
171
|
+
const customRoutes = localeMap(
|
|
172
|
+
(data) => ({ path: data.urlPrefix, locale: data.locale }),
|
|
173
|
+
["en", "fr", "de"], // कस्टम लोकल
|
|
174
|
+
"en", // कस्टम डिफ़ॉल्ट लोकल
|
|
175
|
+
true // URLs में डिफ़ॉल्ट लोकल का प्रीफिक्स जोड़ें
|
|
176
|
+
);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## उन्नत उपयोग के उदाहरण
|
|
180
|
+
|
|
181
|
+
### नेविगेशन मेनू बनाना
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
import { localeMap } from "intlayer";
|
|
185
|
+
|
|
186
|
+
const navigationItems = localeMap((data) => ({
|
|
187
|
+
label: data.locale.toUpperCase(),
|
|
188
|
+
href: data.urlPrefix || "/",
|
|
189
|
+
isActive: data.isDefault,
|
|
190
|
+
flag: `/flags/${data.locale}.svg`,
|
|
191
|
+
}));
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### साइटमैप डेटा जनरेट करना
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
import { localeFlatMap } from "intlayer";
|
|
198
|
+
|
|
199
|
+
const sitemapUrls = localeFlatMap((data) => [
|
|
200
|
+
{
|
|
201
|
+
url: `${data.urlPrefix}/`,
|
|
202
|
+
lastmod: new Date().toISOString(),
|
|
203
|
+
changefreq: "daily",
|
|
204
|
+
priority: data.isDefault ? 1.0 : 0.8,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
url: `${data.urlPrefix}/about`,
|
|
208
|
+
lastmod: new Date().toISOString(),
|
|
209
|
+
changefreq: "मासिक",
|
|
210
|
+
priority: data.isDefault ? 0.8 : 0.6,
|
|
211
|
+
},
|
|
212
|
+
]);
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### डायनेमिक अनुवाद लोडिंग
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
import { localeRecord } from "intlayer";
|
|
219
|
+
|
|
220
|
+
const translationModules = localeRecord(({ locale }) => ({
|
|
221
|
+
messages: import(`./locales/${locale}/messages.json`),
|
|
222
|
+
validation: import(`./locales/${locale}/validation.json`),
|
|
223
|
+
metadata: {
|
|
224
|
+
locale,
|
|
225
|
+
direction: ["ar", "he", "fa"].includes(locale) ? "rtl" : "ltr",
|
|
226
|
+
},
|
|
227
|
+
}));
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## कॉन्फ़िगरेशन एकीकरण
|
|
231
|
+
|
|
232
|
+
Locale Mapper आपके Intlayer कॉन्फ़िगरेशन के साथ सहजता से एकीकृत होता है:
|
|
233
|
+
|
|
234
|
+
- **लोकल**: स्वचालित रूप से `configuration.internationalization.locales` का उपयोग करता है
|
|
235
|
+
- **डिफ़ॉल्ट लोकल**: `configuration.internationalization.defaultLocale` का उपयोग करता है
|
|
236
|
+
- **URL प्रीफिक्सिंग**: `configuration.middleware.prefixDefault` का सम्मान करता है
|
|
237
|
+
|
|
238
|
+
यह आपके एप्लिकेशन में स्थिरता सुनिश्चित करता है और कॉन्फ़िगरेशन की पुनरावृत्ति को कम करता है।
|
|
239
|
+
|
|
240
|
+
## दस्तावेज़ इतिहास
|
|
241
|
+
|
|
242
|
+
| संस्करण | तिथि | परिवर्तन |
|
|
243
|
+
| ------- | ---------- | -------------------------- |
|
|
244
|
+
| 5.7.2 | 2025-07-27 | लोकल मैपर दस्तावेज़ जोड़ें |
|