@intlayer/docs 8.4.4 → 8.4.6
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/_virtual/_rolldown/runtime.cjs +29 -0
- package/dist/cjs/blog.cjs +21 -1
- package/dist/cjs/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +81 -1
- package/dist/cjs/common.cjs.map +1 -0
- package/dist/cjs/doc.cjs +21 -1
- package/dist/cjs/doc.cjs.map +1 -1
- package/dist/cjs/frequentQuestions.cjs +21 -1
- package/dist/cjs/frequentQuestions.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +572 -1
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +3032 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +352 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +72 -1
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +34 -1
- package/dist/cjs/legal.cjs +21 -1
- package/dist/cjs/legal.cjs.map +1 -1
- package/dist/esm/blog.mjs +14 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +67 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/doc.mjs +14 -1
- package/dist/esm/doc.mjs.map +1 -1
- package/dist/esm/frequentQuestions.mjs +14 -1
- package/dist/esm/frequentQuestions.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +570 -1
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +3030 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +350 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +70 -1
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +6 -1
- package/dist/esm/legal.mjs +14 -1
- package/dist/esm/legal.mjs.map +1 -1
- package/dist/types/blog.d.ts +2 -2
- package/dist/types/common.d.ts +37 -2
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/doc.d.ts +2 -2
- package/dist/types/frequentQuestions.d.ts +2 -2
- package/dist/types/generated/blog.entry.d.ts +35 -2
- package/dist/types/generated/blog.entry.d.ts.map +1 -0
- package/dist/types/generated/docs.entry.d.ts +158 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -0
- package/dist/types/generated/frequentQuestions.entry.d.ts +24 -2
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -0
- package/dist/types/generated/legal.entry.d.ts +10 -2
- package/dist/types/generated/legal.entry.d.ts.map +1 -0
- package/dist/types/legal.d.ts +2 -2
- package/docs/ar/configuration.md +520 -722
- package/docs/ar/intlayer_with_storybook.md +521 -0
- package/docs/bn/configuration.md +922 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/configuration.md +369 -743
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +181 -507
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/configuration.md +456 -657
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +379 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +376 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/configuration.md +532 -728
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/configuration.md +371 -684
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/configuration.md +397 -775
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/configuration.md +525 -724
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/configuration.md +525 -724
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/configuration.md +430 -734
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/configuration.md +375 -746
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/configuration.md +532 -701
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/configuration.md +527 -719
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/configuration.md +425 -744
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/configuration.md +922 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/configuration.md +412 -753
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/configuration.md +521 -714
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
- package/dist/cjs/common-a-l0ULP6.cjs +0 -2
- package/dist/cjs/common-a-l0ULP6.cjs.map +0 -1
- package/dist/types/blog.entry-D5IgxPXY.d.ts +0 -35
- package/dist/types/blog.entry-D5IgxPXY.d.ts.map +0 -1
- package/dist/types/common-B45TZvLQ.d.ts +0 -37
- package/dist/types/common-B45TZvLQ.d.ts.map +0 -1
- package/dist/types/docs.entry-CergjAYt.d.ts +0 -157
- package/dist/types/docs.entry-CergjAYt.d.ts.map +0 -1
- package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts +0 -24
- package/dist/types/frequentQuestions.entry-BHglVS-U.d.ts.map +0 -1
- package/dist/types/legal.entry-B5Lg5eeH.d.ts +0 -10
- package/dist/types/legal.entry-B5Lg5eeH.d.ts.map +0 -1
|
@@ -0,0 +1,428 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-12-30
|
|
4
|
+
title: Hono i18n - 2026 میں Hono ایپ کا ترجمہ کیسے کریں
|
|
5
|
+
description: دریافت کریں کہ اپنے Hono بیک اینڈ کو کثیر لسانی کیسے بنایا جائے۔ اسے بین الاقوامی بنانے (i18n) اور ترجمہ کرنے کے لیے دستاویزات پر عمل کریں۔
|
|
6
|
+
keywords:
|
|
7
|
+
- Internationalization
|
|
8
|
+
- Documentation
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Hono
|
|
11
|
+
- JavaScript
|
|
12
|
+
- Backend
|
|
13
|
+
slugs:
|
|
14
|
+
- doc
|
|
15
|
+
- environment
|
|
16
|
+
- hono
|
|
17
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-hono-template
|
|
18
|
+
history:
|
|
19
|
+
- version: 7.5.9
|
|
20
|
+
date: 2025-12-30
|
|
21
|
+
changes: init کمانڈ شامل کی گئی۔
|
|
22
|
+
- version: 5.5.10
|
|
23
|
+
date: 2025-06-29
|
|
24
|
+
changes: تاریخ کا آغاز (Init history)
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# Intlayer کا استعمال کرتے ہوئے اپنی Hono بیک اینڈ ویب سائٹ کا ترجمہ کریں | بین الاقوامی بنانا (i18n)
|
|
28
|
+
|
|
29
|
+
`hono-intlayer` Hono ایپلی کیشنز کے لیے ایک طاقتور بین الاقوامی بنانے (i18n) کا مڈل ویئر ہے، جسے کلائنٹ کی ترجیحات کی بنیاد پر مقامی جوابات فراہم کر کے آپ کی بیک اینڈ سروسز کو عالمی سطح پر قابل رسائی بنانے کے لیے ڈیزائن کیا گیا ہے۔
|
|
30
|
+
|
|
31
|
+
### عملی استعمال کے کیسز (Practical Use Cases)
|
|
32
|
+
|
|
33
|
+
- **صارف کی زبان میں بیک اینڈ کی غلطیاں دکھانا**: جب کوئی غلطی ہوتی ہے، تو صارف کی مادری زبان میں پیغامات دکھانے سے سمجھ بہتر ہوتی ہے اور مایوسی کم ہوتی ہے۔ یہ خاص طور پر ان متحرک غلطی کے پیغامات کے لیے مفید ہے جو فرنٹ اینڈ اجزاء جیسے ٹوسٹ یا موڈلز میں دکھائے جا سکتے ہیں۔
|
|
34
|
+
|
|
35
|
+
- **کثیر لسانی مواد کی بازیافت**: ڈیٹا بیس سے مواد نکالنے والی ایپلی کیشنز کے لیے، بین الاقوامی بنانا اس بات کو یقینی بناتا ہے کہ آپ اس مواد کو متعدد زبانوں میں پیش کر سکیں۔ یہ ای کامرس سائٹس یا مواد کے انتظام کے نظام جیسے پلیٹ فارمز کے لیے بہت اہم ہے جنہیں صارف کی پسندیدہ زبان میں مصنوعات کی تفصیلات، مضامین اور دیگر مواد دکھانے کی ضرورت ہوتی ہے۔
|
|
36
|
+
|
|
37
|
+
- **کثیر لسانی ای میلز بھیجنا**: چاہے وہ لین دین کی ای میلز ہوں، مارکیٹنگ مہمات ہوں یا اطلاعات، وصول کنندہ کی زبان میں ای میلز بھیجنا مشغولیت اور تاثیر میں نمایاں اضافہ کر سکتا ہے۔
|
|
38
|
+
|
|
39
|
+
- **کثیر لسانی پش اطلاعات**: موبائل ایپلی کیشنز کے لیے، صارف کی پسندیدہ زبان میں پش اطلاعات بھیجنا تعامل اور برقرار رکھنے کی شرح کو بڑھا سکتا ہے۔ یہ ذاتی لمس اطلاعات کو زیادہ متعلقہ اور قابل عمل بنا سکتا ہے۔
|
|
40
|
+
|
|
41
|
+
- **دیگر مواصلات**: بیک اینڈ سے کسی بھی قسم کا مواصلہ، جیسے ایس ایم ایس پیغامات، سسٹم الرٹس یا یوزر انٹرفیس اپ ڈیٹس، صارف کی زبان میں ہونے سے شفافیت یقینی ہوتی ہے اور مجموعی صارف کا تجربہ بہتر ہوتا ہے۔
|
|
42
|
+
|
|
43
|
+
بیک اینڈ کو بین الاقوامی بنا کر، آپ کی ایپلی کیشن نہ صرف ثقافتی اختلافات کا احترام کرتی ہے بلکہ عالمی مارکیٹ کی ضروریات کے ساتھ بھی بہتر طور پر ہم آہنگ ہوتی ہے، جو آپ کی خدمات کو دنیا بھر میں پھیلانے کا ایک اہم قدم ہے۔
|
|
44
|
+
|
|
45
|
+
## شروع کرنا (Getting Started)
|
|
46
|
+
|
|
47
|
+
<iframe
|
|
48
|
+
src="https://stackblitz.com/github/aymericzip/intlayer-hono-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
49
|
+
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
50
|
+
title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
|
|
51
|
+
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
52
|
+
loading="lazy"
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
GitHub پر [Application Template](https://github.com/aymericzip/intlayer-hono-template) دیکھیں۔
|
|
56
|
+
|
|
57
|
+
### تنصیب (Installation)
|
|
58
|
+
|
|
59
|
+
`hono-intlayer` کا استعمال شروع کرنے کے لیے، npm کا استعمال کرتے ہوئے پیکیج انسٹال کریں:
|
|
60
|
+
|
|
61
|
+
```bash packageManager="npm"
|
|
62
|
+
npm install intlayer hono-intlayer
|
|
63
|
+
npx intlayer init
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```bash packageManager="pnpm"
|
|
67
|
+
pnpm add intlayer hono-intlayer
|
|
68
|
+
pnpm intlayer init
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```bash packageManager="yarn"
|
|
72
|
+
yarn add intlayer hono-intlayer
|
|
73
|
+
yarn intlayer init
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
```bash packageManager="bun"
|
|
77
|
+
bun add intlayer hono-intlayer
|
|
78
|
+
bunx intlayer init
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### سیٹ اپ (Setup)
|
|
82
|
+
|
|
83
|
+
اپنے پروجیکٹ کی جڑ (root) میں ایک `intlayer.config.ts` بنا کر بین الاقوامی بنانے کی ترتیبات کو کنفیگر کریں:
|
|
84
|
+
|
|
85
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
86
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
87
|
+
|
|
88
|
+
const config: IntlayerConfig = {
|
|
89
|
+
internationalization: {
|
|
90
|
+
locales: [
|
|
91
|
+
Locales.ENGLISH,
|
|
92
|
+
Locales.FRENCH,
|
|
93
|
+
Locales.SPANISH_MEXICO,
|
|
94
|
+
Locales.SPANISH_SPAIN,
|
|
95
|
+
],
|
|
96
|
+
defaultLocale: Locales.ENGLISH,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
export default config;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
104
|
+
import { Locales } from "intlayer";
|
|
105
|
+
|
|
106
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
107
|
+
const config = {
|
|
108
|
+
internationalization: {
|
|
109
|
+
locales: [
|
|
110
|
+
Locales.ENGLISH,
|
|
111
|
+
Locales.FRENCH,
|
|
112
|
+
Locales.SPANISH_MEXICO,
|
|
113
|
+
Locales.SPANISH_SPAIN,
|
|
114
|
+
],
|
|
115
|
+
defaultLocale: Locales.ENGLISH,
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export default config;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
123
|
+
const { Locales } = require("intlayer");
|
|
124
|
+
|
|
125
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
126
|
+
const config = {
|
|
127
|
+
internationalization: {
|
|
128
|
+
locales: [
|
|
129
|
+
Locales.ENGLISH,
|
|
130
|
+
Locales.FRENCH,
|
|
131
|
+
Locales.SPANISH_MEXICO,
|
|
132
|
+
Locales.SPANISH_SPAIN,
|
|
133
|
+
],
|
|
134
|
+
defaultLocale: Locales.ENGLISH,
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
module.exports = config;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### اپنے مواد کا اعلان کریں (Declare Your Content)
|
|
142
|
+
|
|
143
|
+
ترجموں کو محفوظ کرنے کے لیے اپنے مواد کے اعلانات بنائیں اور ان کا انتظام کریں:
|
|
144
|
+
|
|
145
|
+
```typescript fileName="src/index.content.ts" contentDeclarationFormat="typescript"
|
|
146
|
+
import { t, type Dictionary } from "intlayer";
|
|
147
|
+
|
|
148
|
+
const indexContent = {
|
|
149
|
+
key: "index",
|
|
150
|
+
content: {
|
|
151
|
+
exampleOfContent: t({
|
|
152
|
+
en: "Example of returned content in English",
|
|
153
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
154
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
155
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
156
|
+
}),
|
|
157
|
+
},
|
|
158
|
+
} satisfies Dictionary;
|
|
159
|
+
|
|
160
|
+
export default indexContent;
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```javascript fileName="src/index.content.mjs" contentDeclarationFormat="esm"
|
|
164
|
+
import { t } from "intlayer";
|
|
165
|
+
|
|
166
|
+
/** @type {import('intlayer').Dictionary} */
|
|
167
|
+
const indexContent = {
|
|
168
|
+
key: "index",
|
|
169
|
+
content: {
|
|
170
|
+
exampleOfContent: t({
|
|
171
|
+
en: "Example of returned content in English",
|
|
172
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
173
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
174
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
175
|
+
}),
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
export default indexContent;
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
```javascript fileName="src/index.content.cjs" codeFormat="commonjs"
|
|
183
|
+
const { t } = require("intlayer");
|
|
184
|
+
|
|
185
|
+
/** @type {import('intlayer').Dictionary} */
|
|
186
|
+
const indexContent = {
|
|
187
|
+
key: "index",
|
|
188
|
+
content: {
|
|
189
|
+
exampleOfContent: t({
|
|
190
|
+
en: "Example of returned content in English",
|
|
191
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
192
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
193
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
194
|
+
}),
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
module.exports = indexContent;
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
```json fileName="src/index.content.json" contentDeclarationFormat="json"
|
|
202
|
+
{
|
|
203
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
204
|
+
"key": "index",
|
|
205
|
+
"content": {
|
|
206
|
+
"exampleOfContent": {
|
|
207
|
+
"nodeType": "translation",
|
|
208
|
+
"translation": {
|
|
209
|
+
"en": "Example of returned content in English",
|
|
210
|
+
"fr": "Exemple de contenu renvoyé en français",
|
|
211
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
212
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)"
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
> آپ کے مواد کے اعلانات آپ کی ایپلی کیشن میں کہیں بھی بیان کیے جا سکتے ہیں جب تک کہ وہ `contentDir` ڈائریکٹری (بطور ڈیفالٹ، `./src`) میں شامل ہوں اور مواد کے اعلان کی فائل کی توسیع (بطور ڈیفالٹ، `.content.{json,ts,tsx,js,jsx,mjs,cjs}`) سے میل کھاتے ہوں۔
|
|
220
|
+
|
|
221
|
+
> مزید تفصیلات کے لیے، [مواد کے اعلان کی دستاویزات](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/dictionary/content_file.md) دیکھیں۔
|
|
222
|
+
|
|
223
|
+
### Hono ایپلی کیشن سیٹ اپ (Hono Application Setup)
|
|
224
|
+
|
|
225
|
+
`hono-intlayer` استعمال کرنے کے لیے اپنی Hono ایپلی کیشن سیٹ اپ کریں:
|
|
226
|
+
|
|
227
|
+
```typescript fileName="src/index.ts" codeFormat="typescript"
|
|
228
|
+
import { Hono } from "hono";
|
|
229
|
+
import { intlayer, t, getDictionary, getIntlayer } from "hono-intlayer";
|
|
230
|
+
import dictionaryExample from "./index.content";
|
|
231
|
+
|
|
232
|
+
const app = new Hono();
|
|
233
|
+
|
|
234
|
+
// بین الاقوامی بنانے کے لیے درخواست کا ہینڈلر لوڈ کریں
|
|
235
|
+
app.use("*", intlayer());
|
|
236
|
+
|
|
237
|
+
// Routes
|
|
238
|
+
app.get("/t_example", (c) => {
|
|
239
|
+
return c.text(
|
|
240
|
+
t({
|
|
241
|
+
en: "Example of returned content in English",
|
|
242
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
243
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
244
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
245
|
+
})
|
|
246
|
+
);
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
app.get("/getIntlayer_example", (c) => {
|
|
250
|
+
return c.json(getIntlayer("index").exampleOfContent);
|
|
251
|
+
});
|
|
252
|
+
|
|
253
|
+
app.get("/getDictionary_example", (c) => {
|
|
254
|
+
return c.json(getDictionary(dictionaryExample).exampleOfContent);
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
export default app;
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```javascript fileName="src/index.mjs" codeFormat="esm"
|
|
261
|
+
import { Hono } from "hono";
|
|
262
|
+
import { intlayer, t, getDictionary, getIntlayer } from "hono-intlayer";
|
|
263
|
+
import dictionaryExample from "./index.content";
|
|
264
|
+
|
|
265
|
+
const app = new Hono();
|
|
266
|
+
|
|
267
|
+
// بین الاقوامی بنانے کے لیے درخواست کا ہینڈلر لوڈ کریں
|
|
268
|
+
app.use("*", intlayer());
|
|
269
|
+
|
|
270
|
+
// Routes
|
|
271
|
+
app.get("/t_example", (c) => {
|
|
272
|
+
return c.text(
|
|
273
|
+
t({
|
|
274
|
+
en: "Example of returned content in English",
|
|
275
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
276
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
277
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
278
|
+
})
|
|
279
|
+
);
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
app.get("/getIntlayer_example", (c) => {
|
|
283
|
+
return c.json(getIntlayer("index").exampleOfContent);
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
app.get("/getDictionary_example", (c) => {
|
|
287
|
+
return c.json(getDictionary(dictionaryExample).exampleOfContent);
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
export default app;
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
```javascript fileName="src/index.cjs" codeFormat="commonjs"
|
|
294
|
+
const { Hono } = require("hono");
|
|
295
|
+
const { intlayer, t, getDictionary, getIntlayer } = require("hono-intlayer");
|
|
296
|
+
const dictionaryExample = require("./index.content");
|
|
297
|
+
|
|
298
|
+
const app = new Hono();
|
|
299
|
+
|
|
300
|
+
// بین الاقوامی بنانے کے لیے درخواست کا ہینڈلر لوڈ کریں
|
|
301
|
+
app.use("*", intlayer());
|
|
302
|
+
|
|
303
|
+
// Routes
|
|
304
|
+
app.get("/t_example", (c) => {
|
|
305
|
+
return c.text(
|
|
306
|
+
t({
|
|
307
|
+
en: "Example of returned content in English",
|
|
308
|
+
fr: "Exemple de contenu renvoyé en français",
|
|
309
|
+
"es-ES": "Ejemplo de contenido devuelto en español (España)",
|
|
310
|
+
"es-MX": "Ejemplo de contenido devuelto en español (México)",
|
|
311
|
+
})
|
|
312
|
+
);
|
|
313
|
+
});
|
|
314
|
+
|
|
315
|
+
app.get("/getIntlayer_example", (c) => {
|
|
316
|
+
return c.json(getIntlayer("index").exampleOfContent);
|
|
317
|
+
});
|
|
318
|
+
|
|
319
|
+
app.get("/getDictionary_example", (c) => {
|
|
320
|
+
return c.json(getDictionary(dictionaryExample).exampleOfContent);
|
|
321
|
+
});
|
|
322
|
+
|
|
323
|
+
module.exports = app;
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### مطابقت (Compatibility)
|
|
327
|
+
|
|
328
|
+
`hono-intlayer` مکمل طور پر مطابقت رکھتا ہے:
|
|
329
|
+
|
|
330
|
+
- React ایپلی کیشنز کے لیے [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/packages/react-intlayer/index.md)
|
|
331
|
+
- Next.js ایپلی کیشنز کے لیے [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/packages/next-intlayer/index.md)
|
|
332
|
+
- Vite ایپلی کیشنز کے لیے [`vite-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/packages/vite-intlayer/index.md)
|
|
333
|
+
|
|
334
|
+
یہ براؤزر اور API درخواستوں سمیت مختلف ماحولوں میں کسی بھی بین الاقوامی حل کے ساتھ بغیر کسی رکاوٹ کے کام کرتا ہے۔ آپ ہیڈر یا کوکیز کے ذریعے مقام (locale) کا پتہ لگانے کے لیے مڈل ویئر کو اپنی مرضی کے مطابق بنا سکتے ہیں:
|
|
335
|
+
|
|
336
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
337
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
338
|
+
|
|
339
|
+
const config: IntlayerConfig = {
|
|
340
|
+
// ... دیگر کنفیگریشن کے اختیارات
|
|
341
|
+
middleware: {
|
|
342
|
+
headerName: "my-locale-header",
|
|
343
|
+
cookieName: "my-locale-cookie",
|
|
344
|
+
},
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
export default config;
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
351
|
+
import { Locales } from "intlayer";
|
|
352
|
+
|
|
353
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
354
|
+
const config = {
|
|
355
|
+
// ... دیگر کنفیگریشن کے اختیارات
|
|
356
|
+
middleware: {
|
|
357
|
+
headerName: "my-locale-header",
|
|
358
|
+
cookieName: "my-locale-cookie",
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
export default config;
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
366
|
+
const { Locales } = require("intlayer");
|
|
367
|
+
|
|
368
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
369
|
+
const config = {
|
|
370
|
+
// ... دیگر کنفیگریشن کے اختیارات
|
|
371
|
+
middleware: {
|
|
372
|
+
headerName: "my-locale-header",
|
|
373
|
+
cookieName: "my-locale-cookie",
|
|
374
|
+
},
|
|
375
|
+
};
|
|
376
|
+
|
|
377
|
+
module.exports = config;
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
بطور ڈیفالٹ، `hono-intlayer` کلائنٹ کی پسندیدہ زبان کا تعین کرنے کے لیے `Accept-Language` ہیڈر کی ترجمانی کرے گا۔
|
|
381
|
+
|
|
382
|
+
> کنفیگریشن اور جدید موضوعات کے بارے میں مزید معلومات کے لیے، ہماری [دستاویزات](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/configuration.md) دیکھیں۔
|
|
383
|
+
|
|
384
|
+
### TypeScript کنفیگر کریں (Configure TypeScript)
|
|
385
|
+
|
|
386
|
+
`hono-intlayer` بین الاقوامی نظام کو بہتر بنانے کے لیے TypeScript کی طاقتور خصوصیات کا فائدہ اٹھاتا ہے۔ TypeScript کی جامد ٹائپنگ اس بات کو یقینی بناتی ہے کہ ہر ترجمے کی کلید (translation key) موجود ہو، جس سے ترجمہ غائب ہونے کا خطرہ کم ہو جاتا ہے اور کام کو برقرار رکھنا آسان ہو جاتا ہے۔
|
|
387
|
+
|
|
388
|
+

|
|
389
|
+
|
|
390
|
+

|
|
391
|
+
|
|
392
|
+
یقینی بنائیں کہ خودکار طور پر تیار کردہ اقسام (بطور ڈیفالٹ `./types/intlayer.d.ts` پر) آپ کی `tsconfig.json` فائل میں شامل ہیں۔
|
|
393
|
+
|
|
394
|
+
```json5 fileName="tsconfig.json"
|
|
395
|
+
{
|
|
396
|
+
// ... آپ کی موجودہ TypeScript کنفیگریشنز
|
|
397
|
+
"include": [
|
|
398
|
+
// ... آپ کی موجودہ TypeScript کنفیگریشنز
|
|
399
|
+
".intlayer/**/*.ts", // خودکار طور پر تیار کردہ اقسام کو شامل کریں
|
|
400
|
+
],
|
|
401
|
+
}
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### VS Code ایکسٹینشن (VS Code Extension)
|
|
405
|
+
|
|
406
|
+
Intlayer کے ساتھ اپنے ڈیولپمنٹ کے تجربے کو بہتر بنانے کے لیے، آپ آفیشل **Intlayer VS Code Extension** انسٹال کر سکتے ہیں۔
|
|
407
|
+
|
|
408
|
+
[VS Code Marketplace سے انسٹال کریں](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
409
|
+
|
|
410
|
+
یہ ایکسٹینشن فراہم کرتی ہے:
|
|
411
|
+
|
|
412
|
+
- ترجمے کی کلیدوں کے لیے **Autocompletion**۔
|
|
413
|
+
- غائب ترجموں کے لیے **Real-time error detection**۔
|
|
414
|
+
- ترجمہ شدہ مواد کا **Inline previews**۔
|
|
415
|
+
- آسانی سے ترجمہ تخلیق کرنے اور اپ ڈیٹ کرنے کے لیے **Quick actions**۔
|
|
416
|
+
|
|
417
|
+
ایکسٹینشن استعمال کرنے کے طریقہ کے بارے میں مزید تفصیلات کے لیے، [Intlayer VS Code Extension دستاویزات](https://intlayer.org/doc/vs-code-extension) دیکھیں۔
|
|
418
|
+
|
|
419
|
+
### Git کنفیگریشن (Git Configuration)
|
|
420
|
+
|
|
421
|
+
Intlayer کی طرف سے تیار کردہ فائلوں کو نظر انداز کرنے کی سفارش کی جاتی ہے۔ یہ آپ کو انہیں اپنی Git ریپوزٹری میں شامل کرنے سے بچنے میں مدد دیتا ہے۔
|
|
422
|
+
|
|
423
|
+
ایسا کرنے کے لیے، آپ اپنی `.gitignore` فائل میں درج ذیل ہدایات شامل کر سکتے ہیں:
|
|
424
|
+
|
|
425
|
+
```plaintext fileName=".gitignore"
|
|
426
|
+
# Intlayer کی تیار کردہ فائلوں کو نظر انداز کریں
|
|
427
|
+
.intlayer
|
|
428
|
+
```
|