@intlayer/docs 8.4.6 → 8.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/docs/ar/configuration.md +300 -264
  12. package/docs/cs/configuration.md +958 -0
  13. package/docs/de/configuration.md +285 -249
  14. package/docs/en/configuration.md +115 -137
  15. package/docs/en-GB/configuration.md +272 -237
  16. package/docs/es/configuration.md +161 -125
  17. package/docs/fr/configuration.md +137 -101
  18. package/docs/it/configuration.md +294 -259
  19. package/docs/ja/configuration.md +269 -233
  20. package/docs/nl/configuration.md +958 -0
  21. package/docs/pt/configuration.md +311 -275
  22. package/docs/ru/configuration.md +287 -272
  23. package/docs/tr/configuration.md +265 -229
  24. package/package.json +6 -6
  25. package/docs/bn/configuration.md +0 -922
  26. package/docs/hi/configuration.md +0 -922
  27. package/docs/id/configuration.md +0 -922
  28. package/docs/ko/configuration.md +0 -922
  29. package/docs/pl/configuration.md +0 -922
  30. package/docs/uk/configuration.md +0 -922
  31. package/docs/ur/configuration.md +0 -922
  32. package/docs/vi/configuration.md +0 -922
  33. package/docs/zh/configuration.md +0 -922
@@ -1,922 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-20
4
- title: کنفیگریشن (Configuration)
5
- description: اپنی ایپلیکیشن کے لیے Intlayer کو کنفیگر کرنے کا طریقہ سیکھیں۔ Intlayer کو اپنی ضروریات کے مطابق اپنی مرضی کے مطابق بنانے کے لیے دستیاب مختلف ترتیبات اور اختیارات کو سمجھیں۔
6
- keywords:
7
- - کنفیگریشن
8
- - ترتیبات
9
- - حسب ضرورت
10
- - Intlayer
11
- - اختیارات
12
- slugs:
13
- - doc
14
- - concept
15
- - configuration
16
- history:
17
- - version: 8.4.0
18
- date: 2026-03-20
19
- changes: 'compiler.output' اور 'dictionary.fill' کے لیے فی لوکیل آبجیکٹ نوٹیشن شامل کی گئی۔
20
- - version: 8.3.0
21
- date: 2026-03-11
22
- changes: 'baseDir' کو 'content' کنفیگریشن سے 'system' کنفیگریشن میں منتقل کر دیا گیا۔
23
- - version: 8.2.0
24
- date: 2026-03-09
25
- changes: کمپائلر (compiler) کے اختیارات اپ ڈیٹ کیے گئے، 'output' اور 'noMetadata' کے لیے سپورٹ شامل کی گئی۔
26
- - version: 8.1.7
27
- date: 2026-02-25
28
- changes: کمپائلر کے اختیارات اپ ڈیٹ کیے گئے۔
29
- - version: 8.1.5
30
- date: 2026-02-23
31
- changes: کمپائلر آپشن 'build-only' اور ڈکشنری پریفکس شامل کیا گیا۔
32
- - version: 8.0.6
33
- date: 2026-02-12
34
- changes: Open Router، Alibaba، Amazon، Google Vertex Bedrock، Fireworks، Groq، Hugging Face اور Together.ai فراہم کنندگان کے لیے سپورٹ شامل کی گئی۔
35
- - version: 8.0.5
36
- date: 2026-02-06
37
- changes: AI کنفیگریشن میں `dataSerialization` شامل کیا گیا۔
38
- - version: 8.0.0
39
- date: 2026-01-24
40
- changes: درکار میکانزم کی بہتر تفصیل کے لیے امپورٹ موڈ `live` کا نام بدل کر `fetch` رکھ دیا گیا۔
41
- - version: 8.0.0
42
- date: 2026-01-22
43
- changes: بلڈ کنفیگریشن `importMode` کو ڈکشنری (`dictionary`) کنفیگریشن میں منتقل کر دیا گیا۔
44
- - version: 8.0.0
45
- date: 2026-01-22
46
- changes: راؤٹنگ کنفیگریشن میں `rewrite` آپشن شامل کیا گیا۔
47
- - version: 8.0.0
48
- date: 2026-01-18
49
- changes: سسٹم کنفیگریشن کو مواد کی کنفیگریشن سے الگ کر دیا گیا۔ اندرونی راستوں کو `system` پراپرٹی میں منتقل کر دیا گیا۔ مواد کی فائلوں اور کوڈ کی تبدیلی کو الگ کرنے کے لیے `codeDir` شامل کیا گیا۔
50
- - version: 8.0.0
51
- date: 2026-01-18
52
- changes: ڈکشنری آپشنز `location` اور `schema` شامل کیے گئے۔
53
- - version: 7.5.1
54
- date: 2026-01-10
55
- changes: JSON5 اور JSONC فائل فارمیٹس کے لیے سپورٹ شامل کی گئی۔
56
- - version: 7.5.0
57
- date: 2025-12-17
58
- changes: `buildMode` آپشن شامل کیا گیا۔
59
- - version: 7.0.0
60
- date: 2025-10-25
61
- changes: `dictionary` کنفیگریشن شامل کی گئی۔
62
- - version: 7.0.0
63
- date: 2025-10-21
64
- changes: `middleware` کو `routing` کنفیگریشن سے بدل دیا گیا۔
65
- - version: 7.0.0
66
- date: 2025-10-12
67
- changes: `formatCommand` آپشن شامل کیا گیا۔
68
- - version: 6.2.0
69
- date: 2025-10-12
70
- changes: `excludedPath` آپشن اپ ڈیٹ کیا گیا۔
71
- - version: 6.0.2
72
- date: 2025-09-23
73
- changes: `outputFormat` آپشن شامل کیا گیا۔
74
- - version: 6.0.0
75
- date: 2025-09-21
76
- changes: `dictionaryOutput` فیلڈ اور `i18nextResourcesDir` فیلڈز ختم کر دی گئیں۔
77
- - version: 6.0.0
78
- date: 2025-09-16
79
- changes: `live` امپورٹ موڈ شامل کیا گیا۔
80
- - version: 6.0.0
81
- date: 2025-09-04
82
- changes: `hotReload` فیلڈ کو `liveSync` سے بدل دیا گیا اور `liveSyncPort` اور `liveSyncURL` فیلڈز شامل کی گئیں۔
83
- - version: 5.6.1
84
- date: 2025-07-25
85
- changes: `activateDynamicImport` کو `importMode` آپشن سے بدل دیا گیا۔
86
- - version: 5.6.0
87
- date: 2025-07-13
88
- changes: ڈیفالٹ contentDir کو `['src']` سے `['.']` میں بدل دیا گیا۔
89
- - version: 5.5.11
90
- date: 2025-06-29
91
- changes: `docs` کمانڈز شامل کی گئیں۔
92
- ---
93
-
94
- # Intlayer کنفیگریشن دستاویزات
95
-
96
- ## جائزہ
97
-
98
- Intlayer کنفیگریشن فائلیں آپ کو پلگ ان کے مختلف پہلوؤں کو حسب ضرورت بنانے کی اجازت دیتی ہیں، جیسے کہ بین الاقوامی بنانا (internationalization)، مڈل ویئر، اور مواد کی ہینڈلنگ۔ یہ دستاویز کنفیگریشن میں موجود ہر پراپرٹی کی تفصیلی وضاحت فراہم کرتی ہے۔
99
-
100
- ---
101
-
102
- ## فہرست مضامین
103
-
104
- <TOC/>
105
-
106
- ---
107
-
108
- ## تعاون یافتہ کنفیگریشن فائل فارمیٹس
109
-
110
- Intlayer کنفیگریشن فائل فارمیٹس بشمول JSON، JS، MJS، اور TS قبول کرتا ہے:
111
-
112
- - `intlayer.config.ts`
113
- - `intlayer.config.js`
114
- - `intlayer.config.json`
115
- - `intlayer.config.json5`
116
- - `intlayer.config.jsonc`
117
- - `intlayer.config.cjs`
118
- - `intlayer.config.mjs`
119
- - `.intlayerrc`
120
-
121
- ---
122
-
123
- ## کنفیگریشن فائل کی مثال
124
-
125
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
126
- import { Locales, type IntlayerConfig } from "intlayer";
127
- import { nextjsRewrite } from "intlayer/routing";
128
- import { z } from "zod";
129
-
130
- /**
131
- * تمام دستیاب اختیارات دکھانے والی مثال Intlayer کنفیگریشن فائل۔
132
- */
133
- const config: IntlayerConfig = {
134
- /**
135
- * بین الاقوامی بنانے کی ترتیبات کی کنفیگریشن۔
136
- */
137
- internationalization: {
138
- /**
139
- * ایپلیکیشن میں تعاون یافتہ زبانوں (locales) کی فہرست۔
140
- * ڈیفالٹ: [Locales.ENGLISH]
141
- */
142
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
143
-
144
- /**
145
- * لازمی زبانوں کی فہرست جو ہر ڈکشنری میں بیان ہونی چاہئیں۔
146
- * اگر خالی ہو تو، `strict` موڈ میں تمام زبانیں لازمی ہیں۔
147
- * ڈیفالٹ: []
148
- */
149
- requiredLocales: [Locales.ENGLISH],
150
-
151
- /**
152
- * بین الاقوامی مواد کے لیے سختی کی سطح۔
153
- * - "strict": اگر کوئی بیان شدہ زبان غائب ہو یا بیان نہ کی گئی ہو تو خرابی (Error)۔
154
- * - "inclusive": اگر بیان شدہ زبان غائب ہو تو وارننگ۔
155
- * - "loose": کسی بھی موجودہ زبان کو قبول کرتا ہے۔
156
- * ڈیفالٹ: "inclusive"
157
- */
158
- strictMode: "inclusive",
159
-
160
- /**
161
- * ڈیفالٹ زبان جو بیک اپ کے طور پر استعمال ہوتی ہے اگر مطلوبہ زبان نہ ملے۔
162
- * ڈیفالٹ: Locales.ENGLISH
163
- */
164
- defaultLocale: Locales.ENGLISH,
165
- },
166
-
167
- /**
168
- * ڈکشنری آپریشنز اور بیک اپ رویے کو کنٹرول کرنے والی ترتیبات۔
169
- */
170
- dictionary: {
171
- /**
172
- * کنٹرول کرتا ہے کہ ڈکشنریز کیسے امپورٹ کی جاتی ہیں۔
173
- * - "static": بلڈ ٹائم پر سٹیٹک طور پر امپورٹ کی جاتی ہیں۔
174
- * - "dynamic": Suspense کا استعمال کرتے ہوئے ڈائنامک طور پر امپورٹ کی جاتی ہیں۔
175
- * - "fetch": لائیو سنک API کے ذریعے ڈائنامک طور پر حاصل کی جاتی ہیں۔
176
- * ڈیفالٹ: "static"
177
- */
178
- importMode: "static",
179
-
180
- /**
181
- * AI کا استعمال کرتے ہوئے غائب ترجموں کو خود بخود بھرنے کی حکمت عملی۔
182
- * یہ ایک بولین ویلیو یا بھرے ہوئے مواد کو محفوظ کرنے کے لیے پاتھ پیٹرن ہو سکتا ہے۔
183
- * ڈیفالٹ: true
184
- */
185
- fill: true,
186
-
187
- /**
188
- * ڈکشنری فائلوں کا جسمانی مقام۔
189
- * - "local": مقامی فائل سسٹم میں محفوظ۔
190
- * - "remote": Intlayer CMS میں محفوظ۔
191
- * - "hybrid": مقامی اور Intlayer CMS دونوں میں محفوظ۔
192
- * - "plugin" (یا کوئی بھی کسٹم سٹرنگ): کسی پلگ ان یا کسٹم سورس کے ذریعے فراہم کردہ۔
193
- * ڈیفالٹ: "local"
194
- */
195
- location: "local",
196
-
197
- /**
198
- * کیا مواد کو خود بخود تبدیل کیا جانا چاہیے (مثلاً Markdown سے HTML)۔
199
- * ڈیفالٹ: false
200
- */
201
- contentAutoTransformation: false,
202
- },
203
-
204
- /**
205
- * راؤٹنگ اور مڈل ویئر کنفیگریشن۔
206
- */
207
- routing: {
208
- /**
209
- * زبان کی راؤٹنگ کی حکمت عملی۔
210
- * - "prefix-no-default": ڈیفالٹ کے علاوہ تمام میں پریفکس شامل کرتا ہے (مثلاً /dashboard, /fr/dashboard)۔
211
- * - "prefix-all": تمام زبانوں میں پریفکس شامل کرتا ہے (مثلاً /en/dashboard, /fr/dashboard)۔
212
- * - "no-prefix": URL میں کوئی زبان نہیں۔
213
- * - "search-params": ?locale=... استعمال کرتا ہے
214
- * ڈیفالٹ: "prefix-no-default"
215
- */
216
- mode: "prefix-no-default",
217
-
218
- /**
219
- * صارف کی منتخب کردہ زبان کہاں محفوظ کرنی ہے۔
220
- * اختیارات: 'cookie', 'localStorage', 'sessionStorage', 'header' یا ان کی ایک صف (array)۔
221
- * ڈیفالٹ: ['cookie', 'header']
222
- */
223
- storage: ["cookie", "header"],
224
-
225
- /**
226
- * ایپلیکیشن URLs کے لیے بیس پاتھ۔
227
- * ڈیفالٹ: ""
228
- */
229
- basePath: "",
230
-
231
- /**
232
- * فی زبان کی بنیاد پر مخصوص راستوں کے لیے کسٹم URL ری رائٹ رولز۔
233
- */
234
- rewrite: nextjsRewrite({
235
- "/[locale]/about": {
236
- en: "/[locale]/about",
237
- fr: "/[locale]/a-propos",
238
- },
239
- }),
240
- },
241
-
242
- /**
243
- * مواد کی فائلیں تلاش کرنے اور ان پر کارروائی کرنے سے متعلق ترتیبات۔
244
- */
245
- content: {
246
- /**
247
- * ڈکشنریز کو اسکین کرنے کے لیے فائل ایکسٹینشنز۔
248
- * ڈیفالٹ: ['.content.ts', '.content.js', '.content.json', وغیرہ]
249
- */
250
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
251
-
252
- /**
253
- * وہ ڈائریکٹریز جہاں .content فائلیں واقع ہیں۔
254
- * ڈیفالٹ: ["."]
255
- */
256
- contentDir: ["src"],
257
-
258
- /**
259
- * جہاں سورس کوڈ واقع ہے۔
260
- * بلڈ آپٹیمائزیشن اور کوڈ کی تبدیلی کے لیے استعمال ہوتا ہے۔
261
- * ڈیفالٹ: ["."]
262
- */
263
- codeDir: ["src"],
264
-
265
- /**
266
- * اسکیننگ سے خارج کردہ پیٹرنز۔
267
- * ڈیفالٹ: ['node_modules', '.intlayer', وغیرہ]
268
- */
269
- excludedPath: ["node_modules"],
270
-
271
- /**
272
- * کیا ڈویلپمنٹ کے دوران تبدیلیوں کی نگرانی کی جائے اور ڈکشنریز کو دوبارہ بنایا جائے۔
273
- * ڈیفالٹ: ڈویلپمنٹ میں true
274
- */
275
- watch: true,
276
-
277
- /**
278
- * نئی تخلیق شدہ / اپ ڈیٹ شدہ .content فائلوں کو فارمیٹ کرنے کے لیے استعمال ہونے والی کمانڈ۔
279
- */
280
- formatCommand: 'npx prettier --write "{{file}}"',
281
- },
282
-
283
- /**
284
- * بصری ایڈیٹر (Visual Editor) کنفیگریشن۔
285
- */
286
- editor: {
287
- /**
288
- * کیا بصری ایڈیٹر فعال ہے۔
289
- * ڈیفالٹ: false
290
- */
291
- enabled: true,
292
-
293
- /**
294
- * اوریجن کی توثیق (origin validation) کے لیے آپ کی ایپلیکیشن کا URL۔
295
- * ڈیفالٹ: ""
296
- */
297
- applicationURL: "http://localhost:3000",
298
-
299
- /**
300
- * مقامی ایڈیٹر سرور کے لیے پورٹ۔
301
- * ڈیفالٹ: 8000
302
- */
303
- port: 8000,
304
-
305
- /**
306
- * ایڈیٹر کے لیے پبلک URL۔
307
- * ڈیفالٹ: "http://localhost:8000"
308
- */
309
- editorURL: "http://localhost:8000",
310
-
311
- /**
312
- * Intlayer CMS کا URL۔
313
- * ڈیفالٹ: "https://app.intlayer.org"
314
- */
315
- cmsURL: "https://app.intlayer.org",
316
-
317
- /**
318
- * بیک اینڈ API کا URL۔
319
- * ڈیفالٹ: "https://back.intlayer.org"
320
- */
321
- backendURL: "https://back.intlayer.org",
322
-
323
- /**
324
- * کیا ریئل ٹائم مواد کی مطابقت پذیری (content sync) کو فعال کرنا ہے۔
325
- * ڈیفالٹ: false
326
- */
327
- liveSync: true,
328
- },
329
-
330
- /**
331
- * مصنوعی ذہانت (AI) پر مبنی ترجمے اور تعمیری ترتیبات۔
332
- */
333
- ai: {
334
- /**
335
- * استعمال کرنے کے لیے AI فراہم کنندہ (provider)۔
336
- * اختیارات: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
- * ڈیفالٹ: 'openai'
338
- */
339
- provider: "openai",
340
-
341
- /**
342
- * استعمال کرنے کے لیے منتخب فراہم کنندہ کا ماڈل۔
343
- */
344
- model: "gpt-4o",
345
-
346
- /**
347
- * فراہم کنندہ کی API کلید۔
348
- */
349
- apiKey: process.env.OPENAI_API_KEY,
350
-
351
- /**
352
- * ترجمے تیار کرتے وقت AI کی رہنمائی کے لیے عالمی سیاق و سباق (global context)۔
353
- */
354
- applicationContext: "یہ ایک ٹریول بکنگ ایپلیکیشن ہے۔",
355
-
356
- /**
357
- * AI API کے لیے بیس پاتھ URL۔
358
- */
359
- baseURL: "http://localhost:3000",
360
-
361
- /**
362
- * ڈیٹا سیریلائزیشن (Data Serialization)
363
- *
364
- * اختیارات:
365
- * - "json": ڈیفالٹ، مستحکم؛ زیادہ ٹوکن خرچ کرتا ہے۔
366
- * - "toon": کم ٹوکن خرچ کرتا ہے، شاید JSON جتنا مستقل نہ ہو۔
367
- *
368
- * ڈیفالٹ: "json"
369
- */
370
- dataSerialization: "json",
371
- },
372
-
373
- /**
374
- * بلڈ اور آپٹیمائزیشن کی ترتیبات۔
375
- */
376
- build: {
377
- /**
378
- * بلڈ ایگزیکیوشن موڈ۔
379
- * - "auto": ایپلیکیشن بلڈ کے دوران خود بخود بلڈ ہو جائے گا۔
380
- * - "manual": ایک واضح بلڈ کمانڈ کی ضرورت ہے۔
381
- * ڈیفالٹ: "auto"
382
- */
383
- mode: "auto",
384
-
385
- /**
386
- * کیا غیر استعمال شدہ ڈکشنریز کو ہٹا کر فائنل بنڈل کو آپٹیمائز کیا جائے۔
387
- * ڈیفالٹ: پروڈکشن میں true
388
- */
389
- optimize: true,
390
-
391
- /**
392
- * تیار کردہ ڈکشنری فائلوں کے لیے آؤٹ پٹ فارمیٹ۔
393
- * ڈیفالٹ: ['cjs', 'esm']
394
- */
395
- outputFormat: ["cjs", "esm"],
396
-
397
- /**
398
- * اس بات کی نشاندہی کرتا ہے کہ آیا بلڈ کو TypeScript کی اقسام کو چیک کرنا چاہیے۔
399
- * ڈیفالٹ: false
400
- */
401
- checkTypes: false,
402
- },
403
-
404
- /**
405
- * لاگر (Logger) کنفیگریشن۔
406
- */
407
- log: {
408
- /**
409
- * لاگنگ لیول۔
410
- * - "default": معیاری لاگنگ۔
411
- * - "verbose": گہری ڈیبگ لاگنگ۔
412
- * - "disabled": لاگنگ کو غیر فعال کرتا ہے۔
413
- * ڈیفالٹ: "default"
414
- */
415
- mode: "default",
416
-
417
- /**
418
- * تمام لاگ پیغامات کے لیے پریفکس۔
419
- * ڈیفالٹ: "[intlayer]"
420
- */
421
- prefix: "[intlayer]",
422
- },
423
-
424
- /**
425
- * سسٹم کنفیگریشن (اعلی درجے کے استعمال کے لیے)
426
- */
427
- system: {
428
- /**
429
- * مقامی ڈکشنریز کو محفوظ کرنے کے لیے ڈائریکٹری۔
430
- */
431
- dictionariesDir: ".intlayer/dictionary",
432
-
433
- /**
434
- * TypeScript ماڈیول بڑھانے (module augmentation) کے لیے ڈائریکٹری۔
435
- */
436
- moduleAugmentationDir: ".intlayer/types",
437
-
438
- /**
439
- * غیر ضم شدہ (unmerged) ڈکشنریز کو محفوظ کرنے کے لیے ڈائریکٹری۔
440
- */
441
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
442
-
443
- /**
444
- * ڈکشنری کی اقسام کو محفوظ کرنے کے لیے ڈائریکٹری۔
445
- */
446
- typesDir: ".intlayer/types",
447
-
448
- /**
449
- * وہ ڈائریکٹری جہاں مین ایپلیکیشن فائلیں محفوظ ہوتی ہیں۔
450
- */
451
- mainDir: ".intlayer/main",
452
-
453
- /**
454
- * وہ ڈائریکٹری جہاں کنفیگریشن فائلیں محفوظ ہوتی ہیں۔
455
- */
456
- configDir: ".intlayer/config",
457
-
458
- /**
459
- * وہ ڈائریکٹری جہاں کیشے فائلیں محفوظ ہوتی ہیں۔
460
- */
461
- cacheDir: ".intlayer/cache",
462
- },
463
-
464
- /**
465
- * کمپائلر کنفیگریشن (اعلی درجے کے استعمال کے لیے)
466
- */
467
- compiler: {
468
- /**
469
- * اس بات کی نشاندہی کرتا ہے کہ آیا کمپائلر کو فعال ہونا چاہیے۔
470
- *
471
- * - false: کمپائلر کو غیر فعال کرتا ہے۔
472
- * - true: کمپائلر کو فعال کرتا ہے۔
473
- * - "build-only": ڈویلپمنٹ کے دوران کمپائلر کو چھوڑ دیتا ہے اور اسٹارٹ اپ ٹائم تیز کرتا ہے۔
474
- *
475
- * ڈیفالٹ: false
476
- */
477
- enabled: true,
478
-
479
- /**
480
- * آؤٹ پٹ فائلوں کے لیے پاتھ کی وضاحت کرتا ہے۔ `outputDir` کی جگہ لیتا ہے۔
481
- *
482
- * - `./` والے راستے کمپوننٹ ڈائریکٹری کے مقابلے میں حل کیے جاتے ہیں۔
483
- * - `/` والے راستے پروجیکٹ روٹ (`baseDir`) کے مقابلے میں حل کیے جاتے ہیں۔
484
- *
485
- * - راستے میں `{{locale}}` متغیر شامل کرنا فی زبان الگ ڈکشنریز کی تخلیق کا باعث بنے گا۔
486
- *
487
- * مثال:
488
- * ```ts
489
- * {
490
- * // کمپوننٹ کے ساتھ کثیر لسانی .content.ts فائلیں بنائیں۔
491
- * output: ({ fileName, extension }) => `./${fileName}${extension}`,
492
- *
493
- * // output: './{{fileName}}{{extension}}', // ٹیمپلیٹ اسٹرنگ کا استعمال کرتے ہوئے مساوی
494
- * }
495
- * ```
496
- *
497
- * ```ts
498
- * {
499
- * // پروجیکٹ روٹ پر فی زبان مرکزی JSON بنائیں۔
500
- * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
501
- *
502
- * // output: '/locales/{{locale}}/{{key}}.content.json', // ٹیمپلیٹ اسٹرنگ کا استعمال کرتے ہوئے مساوی
503
- * }
504
- * ```
505
- *
506
- * متغیرات کی فہرست:
507
- * - `fileName`: فائل کا نام۔
508
- * - `key`: مواد کی کلید (content key)۔
509
- * - `locale`: مواد کی زبان۔
510
- * - `extension`: فائل ایکسٹینشن۔
511
- * - `componentFileName`: کمپوننٹ فائل کا نام۔
512
- * - `componentExtension`: کمپوننٹ فائل ایکسٹینشن۔
513
- * - `format`: ڈکشنری فارمیٹ۔
514
- * - `componentFormat`: کمپوننٹ ڈکشنری فارمیٹ۔
515
- * - `componentDirPath`: کمپوننٹ ڈائریکٹری کا راستہ۔
516
- */
517
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
518
-
519
- /**
520
- * اس بات کی نشاندہی کرتا ہے کہ آیا تبدیل ہونے کے بعد کمپوننٹس کو محفوظ کیا جانا چاہیے۔
521
- * اس طرح، کمپائلر آپ کی ایپلیکیشن کو تبدیل کرنے کے لیے صرف ایک بار چل سکتا ہے اور پھر اسے ہٹایا جا سکتا ہے۔
522
- */
523
- saveComponents: false,
524
-
525
- /**
526
- * تیار کردہ فائل میں صرف مواد داخل کرتا ہے۔ i18next یا ICU MessageFormat کے لیے فی زبان JSON آؤٹ پٹ کے لیے مفید ہے۔
527
- */
528
- noMetadata: false,
529
-
530
- /**
531
- * ڈکشنری کلید کا پریفکس
532
- */
533
- dictionaryKeyPrefix: "", // نکالی گئی ڈکشنری کیز میں ایک اختیاری پریفکس شامل کریں۔
534
- },
535
-
536
- /**
537
- * ڈکشنری کے مواد کی توثیق کرنے کے لیے کسٹم اسکیمات (Schemas)۔
538
- */
539
- schemas: {
540
- "my-schema": z.object({
541
- title: z.string(),
542
- }),
543
- },
544
-
545
- /**
546
- * پلگ انز کی کنفیگریشن۔
547
- */
548
- plugins: [],
549
- };
550
-
551
- export default config;
552
- ````
553
-
554
- ---
555
-
556
- ## کنفیگریشن حوالہ (Configuration Reference)
557
-
558
- مندرجہ ذیل حصے Intlayer میں دستیاب مختلف کنفیگریشن اختیارات کی وضاحت کرتے ہیں۔
559
-
560
- ---
561
-
562
- ### بین الاقوامی بنانا (Internationalization) کنفیگریشن
563
-
564
- بین الاقوامی بنانا سے متعلق ترتیبات کی وضاحت کرتی ہے، بشمول دستیاب زبانیں اور ایپلیکیشن کے لیے ڈیفالٹ زبان۔
565
-
566
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
567
- | ----------------- | ---------- | ---------------------------------------------------------------------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
568
- | `locales` | `string[]` | ایپلیکیشن میں تعاون یافتہ زبانوں کی فہرست۔ ڈیفالٹ: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
569
- | `requiredLocales` | `string[]` | ایپلیکیشن میں لازمی زبانوں کی فہرست۔ ڈیفالٹ: `[]` | `[]` | اگر خالی ہو تو، `strict` موڈ میں تمام زبانیں لازمی ہیں۔ یقینی بنائیں کہ لازمی زبانیں `locales` فیلڈ میں بھی بیان کی گئی ہیں۔ |
570
- | `strictMode` | `string` | TypeScript کے استعمال کے ذریعے بین الاقوامی مواد کے مضبوط نفاذ کی ضمانت دیتا ہے۔ ڈیفالٹ: `inclusive` | | اگر `"strict"` ہو: `t` فنکشن کو ہر بیان کردہ زبان کی تعریف درکار ہوتی ہے — اگر کوئی غائب ہو یا بیان نہ کی گئی ہو تو خرابی (error) دیتا ہے۔ اگر `"inclusive"` ہو: غائب زبانوں کے بارے میں وارننگ دیتا ہے لیکن موجودہ غیر بیان شدہ کو قبول کرتا ہے۔ اگر `"loose"` ہو: کسی بھی موجودہ زبان کو قبول کرتا ہے۔ |
571
- | `defaultLocale` | `string` | ڈیفالٹ زبان جو بیک اپ کے طور پر استعمال ہوتی ہے اگر مطلوبہ زبان نہ ملے۔ ڈیفالٹ: `Locales.ENGLISH` | `'en'` | وہ زبان متعین کرنے کے لیے استعمال ہوتی ہے جب URL، کوکی، یا ہیڈر میں کوئی زبان متعین نہ ہو۔ |
572
-
573
- ---
574
-
575
- ### ایڈیٹر کنفیگریشن (Editor Configuration)
576
-
577
- انٹیگریٹڈ ایڈیٹر سے متعلق ترتیبات کی وضاحت کرتی ہے، بشمول سرور پورٹ اور ایکٹیویٹی اسٹیٹ۔
578
-
579
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
580
- | ---------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
- | `applicationURL` | `string` | آپ کی ایپلیکیشن کا URL۔ ڈیفالٹ: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | سیکیورٹی وجوہات کی بنا پر ایڈیٹر کے اوریجن کو محدود کرنے کے لیے استعمال ہوتا ہے۔ اگر `'*'` پر سیٹ ہو تو، ایڈیٹر تک کسی بھی اوریجن سے رسائی حاصل کی جا سکتی ہے۔ |
582
- | `port` | `number` | بصری ایڈیٹر (Visual Editor) سرور کے ذریعے استعمال ہونے والا پورٹ۔ ڈیفالٹ: `8000` | | |
583
- | `editorURL` | `string` | ایڈیٹر سرور URL۔ ڈیفالٹ: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | ان اوریجنز کو محدود کرنے کے لیے استعمال ہوتا ہے جو ایپلیکیشن کے ساتھ تعامل کر سکتے ہیں۔ اگر `'*'` پر سیٹ ہو تو، کسی بھی اوریجن سے قابل رسائی۔ پورٹ تبدیل کرنے پر یا اگر ایڈیٹر کسی دوسرے ڈومین پر ہوسٹ کیا گیا ہو تو اسے سیٹ کرنا ضروری ہے۔ |
584
- | `cmsURL` | `string` | Intlayer CMS کا URL۔ ڈیفالٹ: `'https://intlayer.org'` | `'https://intlayer.org'` | |
585
- | `backendURL` | `string` | بیک اینڈ سرور کا URL۔ ڈیفالٹ: `https://back.intlayer.org` | `http://localhost:4000` | |
586
- | `enabled` | `boolean` | اس بات کی نشاندہی کرتا ہے کہ آیا ایپ بصری ایڈیٹر کے ساتھ تعامل کرے گی۔ ڈیفالٹ: `true` | `process.env.NODE_ENV !== 'production'` | اگر `false` ہو تو، ایڈیٹر ایپ کے ساتھ تعامل نہیں کر سکتا۔ مخصوص ماحول کے لیے اسے غیر فعال کرنا سیکیورٹی کو مضبوط بناتا ہے۔ |
587
- | `clientId` | `string &#124; undefined` | oAuth2 کا استعمال کرتے ہوئے بیک اینڈ کے ساتھ تصدیق کرنے کے لیے intlayer پیکجز کو قابل بناتا ہے۔ ایکسیس ٹوکن حاصل کرنے کے لیے، [intlayer.org/project](https://app.intlayer.org/project) پر جائیں۔ ڈیفالٹ: `undefined` | | اسے خفیہ رکھیں؛ ماحول کے متغیرات میں محفوظ کریں۔ |
588
- | `clientSecret` | `string &#124; undefined` | oAuth2 کا استعمال کرتے ہوئے بیک اینڈ کے ساتھ تصدیق کرنے کے لیے intlayer پیکجز کو قابل بناتا ہے۔ ایکسیس ٹوکن حاصل کرنے کے لیے، [intlayer.org/project](https://app.intlayer.org/project) پر جائیں۔ ڈیفالٹ: `undefined` | | اسے خفیہ رکھیں؛ ماحول کے متغیرات میں محفوظ کریں۔ |
589
- | `dictionaryPriorityStrategy` | `string` | مقامی اور دور دراز (local and distant) دونوں ڈکشنریز موجود ہونے کی صورت میں ڈکشنریز کو ترجیح دینے کی حکمت عملی۔ ڈیفالٹ: `'local_first'` | `'distant_first'` | `'distant_first'`: مقامی پر دور دراز کو ترجیح دیتا ہے۔ `'local_first'`: دور دراز پر مقامی کو ترجیح دیتا ہے۔ |
590
- | `liveSync` | `boolean` | اس بات کی نشاندہی کرتا ہے کہ آیا جب CMS / بصری ایڈیٹر / بیک اینڈ پر کوئی تبدیلی پکڑی جائے تو ایپ سرور کو مواد کو ہاٹ ری لوڈ کرنا چاہیے۔ ڈیفالٹ: `true` | `true` | جب کوئی ڈکشنری شامل/اپ ڈیٹ کی جاتی ہے، تو ایپ صفحہ کے مواد کو اپ ڈیٹ کرتی ہے۔ Live sync مواد کو دوسرے سرور سے آؤٹ سورس کرتا ہے، جو کارکردگی کو تھوڑا سا متاثر کر سکتا ہے۔ دونوں کو ایک ہی مشین پر ہوسٹ کرنے کی سفارش کی جاتی ہے۔ |
591
- | `liveSyncPort` | `number` | لائیو سنک سرور پورٹ۔ ڈیفالٹ: `4000` | `4000` | |
592
- | `liveSyncURL` | `string` | لائیو سنک سرور URL۔ ڈیفالٹ: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | پہلے سے طے شدہ طور پر localhost کی نشاندہی کرتا ہے؛ اسے ریموٹ لائیو سنک سرور میں تبدیل کیا جا سکتا ہے۔ |
593
-
594
- ### راؤٹنگ کنفیگریشن (Routing Configuration)
595
-
596
- وہ ترتیبات جو راؤٹنگ کے رویے کو کنٹرول کرتی ہیں، بشمول URL ڈھانچہ، زبان کی اسٹوریج، اور مڈل ویئر ہینڈلنگ۔
597
-
598
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
599
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
600
- | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; 'search-params'` | زبان کی ہینڈلنگ کے لیے URL راؤٹنگ موڈ۔ ڈیفالٹ: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) یا `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: زبان کسی اور طریقے سے ہینڈل کی جاتی ہے۔ `'search-params'`: `/dashboard?locale=fr` استعمال کرتا ہے | کوکی یا زبان کے اسٹوریج کے انتظام کو متاثر نہیں کرتا۔ |
601
- | `storage` | `false &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; Array` | کلائنٹ پر زبان کو محفوظ کرنے کے لیے کنفیگریشن۔ ڈیفالٹ: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | نیچے اسٹوریج کے اختیارات والا ٹیبل دیکھیں۔ |
602
- | `basePath` | `string` | ایپلیکیشن URLs کے لیے بیس پاتھ۔ ڈیفالٹ: `''` | `'/my-app'` | اگر ایپ `https://example.com/my-app` پر ہے، تو basePath `'/my-app'` ہے اور URLs `https://example.com/my-app/en` جیسے بن جاتے ہیں۔ |
603
- | `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | اپنی مرضی کے مطابق URL ری رائٹ رولز جو مخصوص راستوں کے لیے ڈیفالٹ راؤٹنگ موڈ کو اوور رائڈ کرتے ہیں۔ ڈائنامک پیرامیٹرز `[param]` کو سپورٹ کرتا ہے۔ ڈیفالٹ: `undefined` | نیچے دی گئی مثال دیکھیں۔ | ری رائٹ رول کو `mode` پر فوقیت حاصل ہے۔ Next.js اور Vite کے ساتھ کام کرتا ہے۔ `getLocalizedUrl()` خود بخود مماثل قوانین لاگو کرتا ہے۔ دیکھیں [Custom URL Rewrites](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/custom_url_rewrites.md)۔ |
604
-
605
- **`rewrite` کی مثال**:
606
-
607
- ```typescript
608
- routing: {
609
- mode: "prefix-no-default", // بیک اپ حکمت عملی
610
- rewrite: nextjsRewrite({
611
- "/about": {
612
- en: "/about",
613
- fr: "/a-propos",
614
- },
615
- "/product/[slug]": {
616
- en: "/product/[slug]",
617
- fr: "/produit/[slug]",
618
- },
619
- "/blog/[category]/[id]": {
620
- en: "/blog/[category]/[id]",
621
- fr: "/journal/[category]/[id]",
622
- },
623
- }),
624
- }
625
- ```
626
-
627
- #### اسٹوریج کے اختیارات (Storage Options)
628
-
629
- | ویلیو | تفصیل | نوٹ |
630
- | ------------------ | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
631
- | `'cookie'` | زبان کو کوکیز میں محفوظ کرتا ہے — کلائنٹ اور سرور دونوں اطراف سے قابل رسائی۔ | GDPR کی تعمیل کے لیے، یقینی بنائیں کہ صارف کی مناسب رضامندی حاصل کی گئی ہے۔ `CookiesAttributes` کے ذریعے اپنی مرضی کے مطابق بنایا جا سکتا ہے (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`)۔ |
632
- | `'localStorage'` | براونزر میں زبان کو بغیر کسی میعاد ختم ہونے کی تاریخ کے محفوظ کرتا ہے — صرف کلائنٹ سائیڈ۔ | جب تک واضح طور پر صاف نہ کیا جائے میعاد ختم نہیں ہوتی۔ Intlayer پراکسی اس تک رسائی حاصل نہیں کر سکتی۔ `StorageAttributes` کے ذریعے حسب ضرورت بنایا جا سکتا ہے (`{ type: 'localStorage', name: 'custom-locale' }`)۔ |
633
- | `'sessionStorage'` | صفحہ کے سیشن کی مدت کے لیے زبان کو محفوظ کرتا ہے — صرف کلائنٹ سائیڈ۔ | ٹیب/ونڈو بند ہونے پر صاف کر دیا جاتا ہے۔ Intlayer پراکسی اس تک رسائی حاصل نہیں کر سکتی۔ `StorageAttributes` کے ذریعے حسب ضرورت بنایا جا سکتا ہے (`{ type: 'sessionStorage', name: 'custom-locale' }`)۔ |
634
- | `'header'` | HTTP ہیڈرز کے ذریعے زبان کو اسٹور یا منتقل کرتا ہے — صرف سرور سائیڈ۔ | API کالز کے لیے مفید ہے۔ کلائنٹ سائیڈ اس تک رسائی حاصل نہیں کر سکتی۔ `StorageAttributes` کے ذریعے اپنی مرضی کے مطابق بنایا جا سکتا ہے (`{ type: 'header', name: 'custom-locale' }`)۔ |
635
-
636
- #### کوکی ایٹریبیوٹس (Cookie Attributes)
637
-
638
- کوکی اسٹوریج استعمال کرتے وقت، آپ اضافی کوکی ایٹریبیوٹس کو کنفیگر کر سکتے ہیں:
639
-
640
- | فیلڈ | ٹائپ | تفصیل |
641
- | ---------- | ------------------------------------- | ------------------------------------------------------------- |
642
- | `name` | `string` | کوکی کا نام۔ ڈیفالٹ: `'INTLAYER_LOCALE'` |
643
- | `domain` | `string` | کوکی ڈومین۔ ڈیفالٹ: `undefined` |
644
- | `path` | `string` | کوکی پاتھ۔ ڈیفالٹ: `undefined` |
645
- | `secure` | `boolean` | HTTPS کی ضرورت ہے۔ ڈیفالٹ: `undefined` |
646
- | `httpOnly` | `boolean` | HTTP-only فلیگ۔ ڈیفالٹ: `undefined` |
647
- | `sameSite` | `'strict' &#124; 'lax' &#124; 'none'` | SameSite پالیسی۔ |
648
- | `expires` | `Date &#124; number` | میعاد ختم ہونے کی تاریخ یا دنوں کی تعداد۔ ڈیفالٹ: `undefined` |
649
-
650
- #### زبان اسٹوریج ایٹریبیوٹس (Locale Storage Attributes)
651
-
652
- localStorage یا sessionStorage استعمال کرتے وقت:
653
-
654
- | فیلڈ | ٹائپ | تفصیل |
655
- | ------ | ---------------------------------------- | ------------------------------------------------ |
656
- | `type` | `'localStorage' &#124; 'sessionStorage'` | اسٹوریج کی قسم۔ |
657
- | `name` | `string` | اسٹوریج کلید کا نام۔ ڈیفالٹ: `'INTLAYER_LOCALE'` |
658
-
659
- #### کنفیگریشن کی مثالیں
660
-
661
- نئے v7 راؤٹنگ ڈھانچے کے لیے کچھ عام کنفیگریشن مثالیں یہاں ہیں:
662
-
663
- **بنیادی کنفیگریشن (ڈیفالٹ)**:
664
-
665
- ```typescript
666
- import { Locales, type IntlayerConfig } from "intlayer";
667
- // intlayer.config.ts
668
- const config: IntlayerConfig = {
669
- internationalization: {
670
- locales: ["en", "fr", "es"],
671
- defaultLocale: "en",
672
- },
673
- routing: {
674
- mode: "prefix-no-default",
675
- storage: "localStorage",
676
- basePath: "",
677
- },
678
- };
679
-
680
- export default config;
681
- ```
682
-
683
- **GDPR کے مطابق کنفیگریشن**:
684
-
685
- ```typescript
686
- import { Locales, type IntlayerConfig } from "intlayer";
687
- // intlayer.config.ts
688
- const config: IntlayerConfig = {
689
- internationalization: {
690
- locales: ["en", "fr", "es"],
691
- defaultLocale: "en",
692
- },
693
- routing: {
694
- mode: "prefix-no-default",
695
- storage: [
696
- {
697
- type: "localStorage",
698
- name: "user-locale",
699
- },
700
- {
701
- type: "cookie",
702
- name: "user-locale",
703
- secure: true,
704
- sameSite: "strict",
705
- httpOnly: false,
706
- },
707
- ],
708
- basePath: "",
709
- },
710
- };
711
-
712
- export default config;
713
- ```
714
-
715
- **تلاش پیرامیٹرز موڈ (Search Parameters Mode)**:
716
-
717
- ```typescript
718
- import { Locales, type IntlayerConfig } from "intlayer";
719
- // intlayer.config.ts
720
- const config: IntlayerConfig = {
721
- internationalization: {
722
- locales: ["en", "fr", "es"],
723
- defaultLocale: "en",
724
- },
725
- routing: {
726
- mode: "search-params",
727
- storage: "localStorage",
728
- basePath: "",
729
- },
730
- };
731
-
732
- export default config;
733
- ```
734
-
735
- **کسٹم اسٹوریج کے ساتھ کوئی پریفکس موڈ نہیں (No Prefix Mode)**:
736
-
737
- ```typescript
738
- import { Locales, type IntlayerConfig } from "intlayer";
739
- // intlayer.config.ts
740
- const config: IntlayerConfig = {
741
- internationalization: {
742
- locales: ["en", "fr", "es"],
743
- defaultLocale: "en",
744
- },
745
- routing: {
746
- mode: "no-prefix",
747
- storage: {
748
- type: "sessionStorage",
749
- name: "app-locale",
750
- },
751
- basePath: "/my-app",
752
- },
753
- };
754
-
755
- export default config;
756
- ```
757
-
758
- **ڈائنامک راستوں کے ساتھ کسٹم URL ری رائٹ**:
759
-
760
- ```typescript
761
- // intlayer.config.ts
762
- import { nextjsRewrite } from "intlayer/routing";
763
-
764
- const config: IntlayerConfig = {
765
- internationalization: {
766
- locales: ["en", "fr"],
767
- defaultLocale: "en",
768
- },
769
- routing: {
770
- mode: "prefix-no-default", // ان راستوں کے لیے بیک اپ جو ری رائٹ نہیں کیے گئے
771
- storage: "cookie",
772
- rewrite: nextjsRewrite({
773
- "/about": {
774
- en: "/about",
775
- fr: "/a-propos",
776
- },
777
- "/product/[slug]": {
778
- en: "/product/[slug]",
779
- fr: "/produit/[slug]",
780
- },
781
- "/blog/[category]/[id]": {
782
- en: "/blog/[category]/[id]",
783
- fr: "/journal/[category]/[id]",
784
- },
785
- }),
786
- },
787
- };
788
-
789
- export default config;
790
- ```
791
-
792
- ---
793
-
794
- ### کینٹینٹ کنفیگریشن (Content Configuration)
795
-
796
- ایپلیکیشن کے اندر مواد کی پروسیسنگ سے متعلق ترتیبات (ڈائریکٹری کے نام، فائل ایکسٹینشنز، اور اخذ کردہ کنفیگریشنز)۔
797
-
798
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
799
- | ---------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
800
- | `watch` | `boolean` | اس بات کی نشاندہی کرتا ہے کہ آیا Intlayer کو ڈکشنریز دوبارہ بنانے کے لیے مواد کے اعلان کی فائلوں میں تبدیلیوں کی نگرانی کرنی چاہیے۔ ڈیفالٹ: `process.env.NODE_ENV === 'development'` | | |
801
- | `fileExtensions` | `string[]` | مواد کے اعلان کی فائلوں کو اسکین کرنے کے لیے فائل ایکسٹینشنز۔ ڈیفالٹ: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
802
- | `contentDir` | `string[]` | ڈائریکٹری راستے جہاں مواد کے اعلان کی فائلیں واقع ہیں۔ ڈیفالٹ: `['.']` | `['src/content']` | |
803
- | `codeDir` | `string[]` | ڈائریکٹری راستے جہاں آپ کی ایپلیکیشن کی سورس کوڈ فائلیں واقع ہیں۔ ڈیفالٹ: `['.']` | `['src']` | بلڈ کو آپٹیمائز کرنے اور اس بات کو یقینی بنانے کے لیے استعمال کیا جاتا ہے کہ کوڈ کی تبدیلی اور ہاٹ ری لوڈ صرف ضروری فائلوں پر لاگو ہو۔ |
804
- | `excludedPath` | `string[]` | مواد کی اسکیننگ سے خارج ہونے والے راستے۔ ڈیفالٹ: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
805
- | `formatCommand` | `string` | وہ کمانڈ جو نئی تخلیق شدہ یا اپ ڈیٹ شدہ مواد کی فائلوں کو فارمیٹ کرنے کے لیے چلائی جائے گی۔ ڈیفالٹ: `undefined` | `'npx prettier --write "{{file}}"'` | مواد نکالنے کے دوران یا بصری ایڈیٹر کے ذریعے استعمال ہوتا ہے۔ |
806
-
807
- ---
808
-
809
- ### ڈکشنری کنفیگریشن (Dictionary Configuration)
810
-
811
- وہ ترتیبات جو ڈکشنری آپریشنز کو کنٹرول کرتی ہیں، بشمول خود بخود بھرنے (auto-filling) کے رویے اور مواد کی تخلیق۔
812
-
813
- اس ڈکشنری کنفیگریشن کے دو اہم مقاصد ہیں:
814
-
815
- 1. **ڈیفالٹ اقدار (Default values)**: مواد کے اعلان کی فائلیں بناتے وقت ڈیفالٹ اقدار کی وضاحت کرنا۔
816
- 2. **بیک اپ رویہ (Fallback behaviour)**: ڈکشنری آپریشنز کے رویے کو عالمی سطح پر ترتیب دینے کی اجازت دیتا ہے، جب مخصوص فیلڈز بیان نہ کیے گئے ہوں تو بیک اپ اقدار فراہم کرتا ہے۔
817
-
818
- مواد کے اعلان کی فائلوں اور کنفیگریشن کی اقدار کو لاگو کرنے کے طریقے کے بارے میں مزید معلومات کے لیے، [کونٹینٹ فائل دستاویزات](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ur/dictionary/content_file.md) دیکھیں۔
819
-
820
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
821
- | --------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
822
- | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | کنٹرول کرتا ہے کہ آٹو فل (AI ترجمہ) آؤٹ پٹ فائلیں کیسے تیار کی جاتی ہیں۔ ڈیفالٹ: `true` | نیچے دی گئی مثال دیکھیں | `true`: ڈیفالٹ پاتھ (وہی فائل جو سورس ہے)۔ `false`: غیر فعال۔ سٹرنگ/فنکشن پیٹرنز فی زبان فائلیں جنریٹ کرتے ہیں۔ فی زبان آبجیکٹ: ہر زبان اپنے پیٹرن پر میپ ہوتی ہے؛ `false` اس زبان کو چھوڑ دیتا ہے۔ `{{locale}}` متغیر شامل کرنا فی زبان جنریشن کو متحرک کرتا ہے۔ ڈکشنری کی سطح پر `fill` ہمیشہ اس عالمی کنفیگریشن پر فوقیت رکھتا ہے۔ |
823
- | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | کنٹرول کرتا ہے کہ ڈکشنریز کیسے امپورٹ کی جاتی ہیں۔ ڈیفالٹ: `'static'` | `'dynamic'` | `'static'`: سٹیٹک طور پر امپورٹ کی گئی۔ `'dynamic'`: 'Suspense' کے ذریعے ڈائنامک طور پر امپورٹ کی گئی۔ `'fetch'`: 'Live Sync API' کے ذریعے ڈائنامک طور پر حاصل کی گئی۔ یہ `getIntlayer` ، `getDictionary` ، `useDictionary` وغیرہ کو متاثر نہیں کرتا۔ |
824
- | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | ڈکشنریز کہاں محفوظ ہوتی ہیں۔ ڈیفالٹ: `'local'` | `'remote'` | `'local'`: فائل سسٹم۔ `'remote'`: Intlayer CMS. `'hybrid'`: دونوں۔ |
825
- | `contentAutoTransformation` | `boolean` | کیا مواد کی فائلوں کو خود بخود تبدیل ہونا چاہیے (مثلاً Markdown سے HTML)۔ ڈیفالٹ: `false` | `true` | @intlayer/markdown کے ذریعے Markdown فیلڈز پر کارروائی کرنے کے لیے مفید ہے۔ |
826
-
827
- **`fill` کی مثال**:
828
-
829
- ```ts
830
- dictionary: {
831
- fill: {
832
- en: '/locales/en/{{key}}.content.json',
833
- fr: ({ key }) => `/locales/fr/${key}.content.json`,
834
- es: false,
835
- }
836
- }
837
- ```
838
-
839
- ---
840
-
841
- ### AI کنفیگریشن (AI Configuration)
842
-
843
- Intlayer کی AI سے چلنے والی خصوصیات کے لیے ترتیبات کی وضاحت کرتی ہے، جیسے کہ بلڈ ٹرانسلیشن۔
844
-
845
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
846
- | -------------------- | ---------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------- | ----------------------------------------------------------------------------------------- |
847
- | `provider` | `string` | استعمال کرنے کے لیے AI فراہم کنندہ۔ | `'openai'`, `'anthropic'`, `'googlevertex'` | |
848
- | `model` | `string` | استعمال کرنے کے لیے AI ماڈل۔ | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
849
- | `apiKey` | `string` | منتخب فراہم کنندہ کے لیے API کلید۔ | `process.env.OPENAI_API_KEY` | |
850
- | `applicationContext` | `string` | AI ترجمہ کی درستگی کو بہتر بنانے کے لیے آپ کی ایپلیکیشن کے بارے میں اضافی سیاق و سباق۔ | `'بچوں کے لیے ایک سیکھنے کا پلیٹ فارم۔'` | |
851
- | `baseURL` | `string` | API کالز کے لیے اختیاری بیس پاتھ URL۔ | | اگر آپ پراکسی یا لوکل AI تعیناتی (deployment) استعمال کر رہے ہیں تو مفید ہے۔ |
852
- | `dataSerialization` | `'json' &#124; 'toon'` | AI کو ڈیٹا بھیجنے کے طریقہ کی وضاحت کرتا ہے۔ ڈیفالٹ: `'json'` | `'json'` | `'json'`: زیادہ مستحکم اور درست۔ `'toon'`: کم ٹوکن خرچ کرتا ہے لیکن کم مستحکم ہو سکتا ہے۔ |
853
-
854
- ---
855
-
856
- ### بلڈ کنفیگریشن (Build Configuration)
857
-
858
- Intlayer بلڈ پروسیس اور آپٹیمائزیشن کی ترتیبات۔
859
-
860
- | فیلڈ | ٹائپ | تفصیل | مثال | نوٹ |
861
- | -------------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ---- | --- |
862
- | `mode` | `'auto' &#124; 'manual'` | اس بات کی نشاندہی کرتا ہے کہ آیا ایپ کے پری بلڈ مراحل کے دوران Intlayer کو خود بخود چلنا چاہیے۔ ڈیفالٹ: `'auto'` | | |
863
- | `optimize` | `boolean` | اس بات کی نشاندہی کرتا ہے کہ آیا کمپائل شدہ ڈکشنریز کو رن ٹائم کے لیے آپٹیمائز کیا جانا چاہیے۔ ڈیفالٹ: پروڈکشن میں `true` | | |
864
- | `outputFormat` | `('cjs' &#124; 'esm')[]` | تیار کردہ ڈکشنری فائلوں کے لیے آؤٹ پٹ فارمیٹ۔ ڈیفالٹ: `['cjs', 'esm']` | | |
865
- | `checkTypes` | `boolean` | اس بات کی نشاندہی کرتا ہے کہ آیا Intlayer کو تیار کردہ فائلوں میں اقسام (types) کو چیک کرنا چاہیے۔ ڈیفالٹ: `false` | | |
866
-
867
- ---
868
-
869
- ### سسٹم کنفیگریشن (System Configuration)
870
-
871
- یہ ترتیبات اعلی درجے کے استعمال کے معاملات اور Intlayer کی اندرونی کنفیگریشن کے لیے ہیں۔
872
-
873
- | فیلڈ | ٹائپ | تفصیل | ڈیفالٹ |
874
- | ------------------------- | -------- | --------------------------------------- | --------------------------------- |
875
- | `dictionariesDir` | `string` | مرتب شدہ ڈکشنریز کی ڈائریکٹری۔ | `'.intlayer/dictionary'` |
876
- | `moduleAugmentationDir` | `string` | TypeScript ماڈیول بڑھانے کی ڈائریکٹری۔ | `'.intlayer/types'` |
877
- | `unmergedDictionariesDir` | `string` | غیر ضم شدہ ڈکشنریز کی ڈائریکٹری۔ | `'.intlayer/unmerged_dictionary'` |
878
- | `typesDir` | `string` | تیار کردہ اقسام (types) کی ڈائریکٹری۔ | `'.intlayer/types'` |
879
- | `mainDir` | `string` | مین Intlayer فائل کی ڈائریکٹری۔ | `'.intlayer/main'` |
880
- | `configDir` | `string` | مرتب شدہ کنفیگریشن فائلوں کی ڈائریکٹری۔ | `'.intlayer/config'` |
881
- | `cacheDir` | `string` | کیشے فائلوں کی ڈائریکٹری۔ | `'.intlayer/cache'` |
882
-
883
- ---
884
-
885
- ### کمپائلر کنفیگریشن (Compiler Configuration)
886
-
887
- Intlayer کمپائلر (`intlayer compiler`) کی ترتیبات۔
888
-
889
- | فیلڈ | ٹائپ | تفصیل | ڈیفالٹ |
890
- | --------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------- | ------- |
891
- | `enabled` | `boolean` | بتاتا ہے کہ آیا کمپائلر فعال ہے۔ | `false` |
892
- | `output` | `string &#124; Function` | نکالی گئی ڈکشنریز کے لیے آؤٹ پٹ پاتھ۔ | |
893
- | `saveComponents` | `boolean` | اس بات کی نشاندہی کرتا ہے کہ آیا اصل سورس فائلوں کو تبدیل شدہ ورژن کے ساتھ اوور رائٹ کیا جانا چاہیے۔ | `false` |
894
- | `noMetadata` | `boolean` | اگر `true` ہو تو، کمپائلر تیار کردہ فائلوں میں میٹا ڈیٹا شامل نہیں کرے گا۔ | `false` |
895
- | `dictionaryKeyPrefix` | `string` | اختیاری ڈکشنری کلید کا پریفکس۔ | `''` |
896
-
897
- ---
898
-
899
- ### لاگر کنفیگریشن (Logger Configuration)
900
-
901
- Intlayer لاگ آؤٹ پٹ کو حسب ضرورت بنانے کی ترتیبات۔
902
-
903
- | فیلڈ | ٹائپ | تفصیل | ڈیفالٹ |
904
- | -------- | ---------------------------------------------- | ---------------------- | -------------- |
905
- | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | لاگنگ موڈ۔ | `'default'` |
906
- | `prefix` | `string` | لاگ پیغامات کا پریفکس۔ | `'[intlayer]'` |
907
-
908
- ---
909
-
910
- ### کسٹم اسکیمات (Custom Schemas)
911
-
912
- | فیلڈ | ٹائپ | تفصیل |
913
- | --------- | --------------------------- | ------------------------------------------------------------------------------------------- |
914
- | `schemas` | `Record<string, ZodSchema>` | آپ کو اپنی ڈکشنریز کی ساخت کی توثیق کرنے کے لیے Zod اسکیمات کی وضاحت کرنے کی اجازت دیتا ہے۔ |
915
-
916
- ---
917
-
918
- ### پلگ انز (Plugins)
919
-
920
- | فیلڈ | ٹائپ | تفصیل |
921
- | --------- | ------------------ | ------------------------------------------- |
922
- | `plugins` | `IntlayerPlugin[]` | فعال کرنے کے لیے Intlayer پلگ انز کی فہرست۔ |