@intlayer/docs 7.0.0-canary.2 → 7.0.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/dist/cjs/common.cjs.map +1 -1
- package/dist/esm/common.mjs.map +1 -1
- package/dist/types/common.d.ts +5 -0
- package/dist/types/common.d.ts.map +1 -1
- package/docs/ar/configuration.md +0 -24
- package/docs/ar/intlayer_with_nextjs_16.md +1652 -0
- package/docs/ar/releases/v7.md +485 -0
- package/docs/de/configuration.md +0 -24
- package/docs/de/intlayer_with_nextjs_16.md +1662 -0
- package/docs/de/releases/v7.md +502 -0
- package/docs/en/autoFill.md +3 -1
- package/docs/en/configuration.md +53 -58
- package/docs/en/intlayer_with_nextjs_15.md +5 -2
- package/docs/en/intlayer_with_nextjs_16.md +4 -4
- package/docs/en/releases/v7.md +142 -2
- package/docs/en-GB/configuration.md +9 -30
- package/docs/en-GB/intlayer_with_nextjs_16.md +1642 -0
- package/docs/en-GB/releases/v7.md +485 -0
- package/docs/es/configuration.md +0 -24
- package/docs/es/intlayer_with_nextjs_16.md +1670 -0
- package/docs/es/releases/v7.md +502 -0
- package/docs/fr/configuration.md +0 -24
- package/docs/fr/intlayer_with_nextjs_16.md +1692 -0
- package/docs/fr/releases/v7.md +503 -0
- package/docs/hi/configuration.md +0 -24
- package/docs/hi/intlayer_with_nextjs_16.md +1618 -0
- package/docs/hi/releases/v7.md +485 -0
- package/docs/id/intlayer_with_nextjs_16.md +1604 -0
- package/docs/id/releases/v7.md +502 -0
- package/docs/it/configuration.md +0 -24
- package/docs/it/intlayer_with_nextjs_16.md +1600 -0
- package/docs/it/releases/v7.md +504 -0
- package/docs/ja/configuration.md +0 -24
- package/docs/ja/intlayer_CMS.md +0 -9
- package/docs/ja/intlayer_with_nextjs_16.md +1788 -0
- package/docs/ja/releases/v7.md +503 -0
- package/docs/ko/configuration.md +0 -24
- package/docs/ko/intlayer_with_nextjs_16.md +1641 -0
- package/docs/ko/releases/v7.md +503 -0
- package/docs/pl/intlayer_with_nextjs_16.md +1645 -0
- package/docs/pl/releases/v7.md +485 -0
- package/docs/pt/configuration.md +0 -24
- package/docs/pt/intlayer_with_nextjs_16.md +1646 -0
- package/docs/pt/introduction.md +0 -15
- package/docs/pt/releases/v7.md +485 -0
- package/docs/ru/configuration.md +0 -24
- package/docs/ru/intlayer_with_nextjs_16.md +1610 -0
- package/docs/ru/releases/v7.md +485 -0
- package/docs/tr/configuration.md +0 -24
- package/docs/tr/intlayer_with_nextjs_16.md +1599 -0
- package/docs/tr/releases/v7.md +485 -0
- package/docs/vi/intlayer_with_nextjs_16.md +1597 -0
- package/docs/vi/releases/v7.md +485 -0
- package/docs/zh/configuration.md +0 -24
- package/docs/zh/intlayer_CMS.md +0 -23
- package/docs/zh/intlayer_with_nextjs_16.md +1628 -0
- package/docs/zh/releases/v7.md +486 -0
- package/package.json +14 -14
- package/src/common.ts +5 -0
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2025-09-22
|
|
3
|
+
updatedAt: 2025-09-23
|
|
4
|
+
title: الإصدار الجديد Intlayer v7 - ما الجديد؟
|
|
5
|
+
description: اكتشف ما الجديد في Intlayer v7. تحسينات كبيرة في الأداء، تجربة المطور، وميزات جديدة لتعزيز سير عمل التدويل الخاص بك.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- التوطين
|
|
9
|
+
- التطوير
|
|
10
|
+
- الأداء
|
|
11
|
+
- تجربة المطور
|
|
12
|
+
- الميزات
|
|
13
|
+
- React
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- TypeScript
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- releases
|
|
20
|
+
- v7
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# الإصدار الجديد Intlayer v7 - ما الجديد؟
|
|
24
|
+
|
|
25
|
+
مرحبًا بك في Intlayer v7! يقدم هذا الإصدار الكبير تحسينات ملحوظة في الأداء، أمان الأنواع، وتجربة المطور. فيما يلي أبرز النقاط، مع ملاحظات الترحيل وأمثلة عملية.
|
|
26
|
+
|
|
27
|
+
## أبرز النقاط
|
|
28
|
+
|
|
29
|
+
- استراتيجية التخزين المؤقت لبناء أسرع
|
|
30
|
+
- تحسين توليد أنواع TypeScript بأنواع مخصصة لكل لغة
|
|
31
|
+
- تحسين الحزمة: استخدام السلاسل النصية للغات بدلاً من التعداد (enum)
|
|
32
|
+
- أوضاع توجيه جديدة: `prefix-no-default`، `prefix-all`، `no-prefix`، `search-params`
|
|
33
|
+
- تخزين اللغات متوافق مع GDPR باستخدام localStorage كإعداد افتراضي
|
|
34
|
+
- تكوين تخزين مرن: ملفات تعريف الارتباط (cookies)، localStorage، sessionStorage، أو متعددة
|
|
35
|
+
- حجم حزمة محرر المحتوى المرئي أصغر بنسبة 30%
|
|
36
|
+
- خيارات محسنة لتكوين الوسيط (middleware)
|
|
37
|
+
- تحديث سلوك أمر التعبئة (fill) لإدارة محتوى أفضل
|
|
38
|
+
- استقرار محسّن مع تحديثات كاملة لملفات إعلان المحتوى
|
|
39
|
+
- إدارة ذكية لإعادة المحاولة لضمان دقة الترجمة
|
|
40
|
+
- المعالجة المتوازية لتسريع عملية الترجمة
|
|
41
|
+
- تقسيم ذكي للتعامل مع الملفات الكبيرة ضمن حدود سياق الذكاء الاصطناعي
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## الأداء: التخزين المؤقت لبناء أسرع
|
|
46
|
+
|
|
47
|
+
بدلاً من إعادة بناء إعلانات المحتوى باستخدام esbuild في كل عملية بناء، تقوم النسخة 7 بتنفيذ استراتيجية تخزين مؤقت تُسرّع عملية البناء.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx intlayer build
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
نظام التخزين المؤقت الجديد:
|
|
54
|
+
|
|
55
|
+
- يخزن إعلانات المحتوى المجمعة لتجنب المعالجة المتكررة
|
|
56
|
+
- يكتشف التغييرات ويعيد بناء الملفات المعدلة فقط
|
|
57
|
+
- يقلل بشكل كبير من أوقات البناء للمشاريع الكبيرة
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## تايب سكريبت: توليد أنواع مخصصة لكل لغة
|
|
62
|
+
|
|
63
|
+
يتم الآن توليد أنواع TypeScript لكل لغة على حدة، مما يوفر كتابة أقوى ويقضي على أنواع الاتحاد عبر جميع اللغات.
|
|
64
|
+
|
|
65
|
+
**سلوك النسخة 6:**
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
const content = getIntlayer("my-title-content", "en");
|
|
69
|
+
// typeof content = { title: "My title" } | { title: "Mon titre" } | { title: "Mi título" }
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**سلوك النسخة 7:**
|
|
73
|
+
|
|
74
|
+
```tsx
|
|
75
|
+
const content = getIntlayer("my-title-content", "en");
|
|
76
|
+
// typeof content = { title: "My title" }
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
الفوائد:
|
|
80
|
+
|
|
81
|
+
- إكمال تلقائي أكثر دقة في بيئة التطوير الخاصة بك
|
|
82
|
+
- أمان نوع أفضل بدون تلوث أنواع عبر اللغات المختلفة
|
|
83
|
+
- أداء محسّن من خلال تقليل تعقيد الأنواع
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## تحسين الحزمة: اللغات كسلاسل نصية
|
|
88
|
+
|
|
89
|
+
لم يعد نوع `Locales` تعدادًا (enum)، مما يعني أنه أصبح قابلًا لإزالة الشجر بالكامل (tree-shakeable) ولن يثقل حزمة التطبيق الخاصة بك بآلاف سجلات اللغات غير المستخدمة.
|
|
90
|
+
|
|
91
|
+
**النسخة 6:**
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
import { Locales } from "intlayer";
|
|
95
|
+
// تعداد يشمل جميع اللغات -> غير قابل لإزالة الشجر
|
|
96
|
+
|
|
97
|
+
const locale: Locales = Locales.ENGLISH;
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**النسخة 7:**
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { Locales, Locale } from "intlayer";
|
|
104
|
+
// نوع سلسلة نصية -> قابل لإزالة الشجر بالكامل
|
|
105
|
+
|
|
106
|
+
const locale: Locale = Locales.ENGLISH;
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
> نظرًا لأن `Locales` لم يعد تعدادًا (enum)، سيتعين عليك تغيير النوع من `Locales` إلى `Locale` للحصول على اللغة كنمط.
|
|
110
|
+
|
|
111
|
+
راجع [تفاصيل التنفيذ](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts) لمزيد من المعلومات.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## أوضاع التوجيه الجديدة لمزيد من المرونة
|
|
116
|
+
|
|
117
|
+
تقدم النسخة 7 تكوينًا موحدًا `routing.mode` يحل محل الخيارات السابقة `prefixDefault` و `noPrefix`، مما يوفر تحكمًا أكثر دقة في هيكل عنوان URL.
|
|
118
|
+
|
|
119
|
+
### أوضاع التوجيه المتاحة
|
|
120
|
+
|
|
121
|
+
- **`prefix-no-default`** (الافتراضي): اللغة الافتراضية بدون بادئة، واللغات الأخرى لها بادئة
|
|
122
|
+
- `/dashboard` (en) أو `/fr/dashboard` (fr)
|
|
123
|
+
- **`prefix-all`**: جميع اللغات لها بادئة
|
|
124
|
+
- `/en/dashboard` (en) أو `/fr/dashboard` (fr)
|
|
125
|
+
- **`no-prefix`**: لا توجد بادئات للغة في عناوين URL (يتم التعامل مع اللغة عبر التخزين/الرؤوس)
|
|
126
|
+
- `/dashboard` لجميع اللغات
|
|
127
|
+
- **`search-params`**: تمرير اللغة كمعامل استعلام
|
|
128
|
+
- `/dashboard?locale=en` أو `/dashboard?locale=fr`
|
|
129
|
+
|
|
130
|
+
### التكوين الأساسي
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
// intlayer.config.ts
|
|
134
|
+
export default {
|
|
135
|
+
internationalization: {
|
|
136
|
+
locales: ["en", "fr", "es"],
|
|
137
|
+
defaultLocale: "en",
|
|
138
|
+
},
|
|
139
|
+
routing: {
|
|
140
|
+
mode: "prefix-no-default", // الافتراضي
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## الامتثال للائحة حماية البيانات العامة (GDPR): تخزين localStorage / الكوكيز
|
|
148
|
+
|
|
149
|
+
تُعطي النسخة 7 أولوية لخصوصية المستخدم باستخدام `localStorage` كآلية التخزين الافتراضية بدلاً من الكوكيز. يساعد هذا التغيير في الامتثال للائحة GDPR من خلال تجنب متطلبات موافقة الكوكيز لتفضيلات اللغة.
|
|
150
|
+
|
|
151
|
+
### خيارات تكوين التخزين
|
|
152
|
+
|
|
153
|
+
يتوفر الحقل الجديد `routing.storage` بالإضافة إلى الخيارات السابقة `middleware.cookieName` و `middleware.serverSetCookie`، مما يوفر تكوينات تخزين مرنة:
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
// تعطيل التخزين
|
|
157
|
+
storage: false
|
|
158
|
+
|
|
159
|
+
// أنواع التخزين البسيطة
|
|
160
|
+
storage: 'cookie'
|
|
161
|
+
storage: 'localStorage'
|
|
162
|
+
storage: 'sessionStorage'
|
|
163
|
+
|
|
164
|
+
// الكوكيز مع سمات مخصصة
|
|
165
|
+
storage: {
|
|
166
|
+
type: 'cookie',
|
|
167
|
+
name: 'custom-locale',
|
|
168
|
+
domain: '.example.com',
|
|
169
|
+
secure: true,
|
|
170
|
+
sameSite: 'strict'
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// localStorage مع مفتاح مخصص
|
|
174
|
+
storage: {
|
|
175
|
+
type: 'localStorage',
|
|
176
|
+
name: 'custom-locale'
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// أنواع تخزين متعددة للنسخ الاحتياطي
|
|
180
|
+
storage: ['cookie', 'localStorage']
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### مثال على تكوين متوافق مع GDPR
|
|
184
|
+
|
|
185
|
+
للتطبيقات الإنتاجية التي تحتاج إلى موازنة بين الوظائف والامتثال لـ GDPR:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
// intlayer.config.ts
|
|
189
|
+
export default {
|
|
190
|
+
internationalization: {
|
|
191
|
+
locales: ["en", "fr", "es"],
|
|
192
|
+
defaultLocale: "en",
|
|
193
|
+
},
|
|
194
|
+
routing: {
|
|
195
|
+
mode: "prefix-no-default",
|
|
196
|
+
storage: [
|
|
197
|
+
{
|
|
198
|
+
type: "localStorage", // التخزين الأساسي (لا يحتاج موافقة)
|
|
199
|
+
name: "user-locale",
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
type: "cookie", // تخزين الكوكيز الاختياري (يتطلب موافقة)
|
|
203
|
+
name: "user-locale",
|
|
204
|
+
secure: true,
|
|
205
|
+
sameSite: "strict",
|
|
206
|
+
httpOnly: false,
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### تمكين / تعطيل تخزين الكوكيز
|
|
214
|
+
|
|
215
|
+
مثال باستخدام React / Next.js:
|
|
216
|
+
|
|
217
|
+
يمكن تعريفه على مستوى عام:
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
<IntlayerProvider isCookieEnabled={false}>
|
|
221
|
+
<App />
|
|
222
|
+
</IntlayerProvider>
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
يمكن تجاوزه محليًا لكل هوك:
|
|
226
|
+
|
|
227
|
+
```ts
|
|
228
|
+
const { setLocale } = useLocale({ isCookieEnabled: false });
|
|
229
|
+
|
|
230
|
+
setLocale("en");
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**ملاحظة:** الكوكيز مفعلة بشكل افتراضي.
|
|
234
|
+
**ملاحظة:** تحقق من [متطلبات الكوكيز وفقًا للائحة GDPR](https://gdpr.eu/cookies/) لحالتك الخاصة.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## المحرر المرئي: حزمة أصغر بنسبة 30%
|
|
239
|
+
|
|
240
|
+
تم تحسين حزمة المحرر المرئي لتكون أصغر بنسبة 30% مقارنة بالإصدار السابق، وذلك بفضل:
|
|
241
|
+
|
|
242
|
+
- تحسينات أداء محرر الكود
|
|
243
|
+
- إزالة التبعيات غير الضرورية على حزم Intlayer الأساسية
|
|
244
|
+
- تحسين تقنيات tree-shaking وتجميع الوحدات
|
|
245
|
+
|
|
246
|
+
ينتج عن ذلك أوقات تحميل أسرع وأداء أفضل أثناء تشغيل التطبيق الخاص بك.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## أمر fill: سلوك محدث لإدارة محتوى أفضل
|
|
251
|
+
|
|
252
|
+
يقدم الإصدار 7 سلوكًا محسّنًا لأمر `fill`، مما يوفر إدارة محتوى أكثر توقعًا ومرونة:
|
|
253
|
+
|
|
254
|
+
### سلوك fill الجديد
|
|
255
|
+
|
|
256
|
+
- **`fill: true`** - يعيد كتابة الملف الحالي بمحتوى مملوء لجميع اللغات
|
|
257
|
+
- **`fill: "path/to/file"`** - يملأ الملف المحدد دون تعديل الملف الحالي
|
|
258
|
+
- **`fill: false`** - يعطل الملء التلقائي تمامًا
|
|
259
|
+
|
|
260
|
+
### دعم معزز لهياكل المحتوى المعقدة
|
|
261
|
+
|
|
262
|
+
يدعم أمر fill الآن هياكل إعلان المحتوى المعقدة، بما في ذلك:
|
|
263
|
+
|
|
264
|
+
- **الكائنات المركبة**: إعلانات المحتوى التي تشير إلى كائنات أخرى
|
|
265
|
+
- **المحتوى المفكك**: المحتوى الذي يستخدم أنماط التفكيك
|
|
266
|
+
- **المراجع المتداخلة**: الكائنات التي تستدعي بعضها البعض في تسلسلات معقدة
|
|
267
|
+
- **هياكل المحتوى الديناميكية**: المحتوى ذو الخصائص الشرطية أو المحسوبة
|
|
268
|
+
|
|
269
|
+
### الفوائد
|
|
270
|
+
|
|
271
|
+
- **نية أوضح**: أصبح السلوك أكثر وضوحًا بشأن ما يتم تعديله
|
|
272
|
+
- **فصل أفضل**: يمكن الاحتفاظ بملفات المحتوى منفصلة عن الترجمات المعبأة
|
|
273
|
+
- **تحسين سير العمل**: يتمتع المطورون بمزيد من التحكم في مكان تخزين الترجمات
|
|
274
|
+
- **دعم الهياكل المعقدة**: التعامل مع هياكل محتوى متطورة تحتوي على عدة كائنات مترابطة
|
|
275
|
+
|
|
276
|
+
### مثال على الاستخدام
|
|
277
|
+
|
|
278
|
+
```typescript
|
|
279
|
+
// إعادة كتابة الملف الحالي مع جميع اللغات
|
|
280
|
+
const content = {
|
|
281
|
+
key: "example",
|
|
282
|
+
fill: true, // يعيد كتابة هذا الملف
|
|
283
|
+
content: {
|
|
284
|
+
title: "Hello World",
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
// تعبئة ملف منفصل دون تعديل الملف الحالي
|
|
289
|
+
const content = {
|
|
290
|
+
key: "example",
|
|
291
|
+
fill: "./translations.json", // ينشئ/يحدث translations.json
|
|
292
|
+
content: {
|
|
293
|
+
title: "Hello World",
|
|
294
|
+
},
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// تعطيل التعبئة التلقائية
|
|
298
|
+
const content = {
|
|
299
|
+
key: "example",
|
|
300
|
+
fill: false, // لا تعبئة تلقائية
|
|
301
|
+
content: {
|
|
302
|
+
title: "Hello World",
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
// هيكل محتوى معقد مع كائنات مركبة
|
|
307
|
+
const sharedContent = {
|
|
308
|
+
buttons: {
|
|
309
|
+
save: "حفظ",
|
|
310
|
+
cancel: "إلغاء",
|
|
311
|
+
},
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
const content = {
|
|
315
|
+
key: "complex-example",
|
|
316
|
+
fill: true,
|
|
317
|
+
content: {
|
|
318
|
+
// مراجع لكائنات أخرى
|
|
319
|
+
sharedContent,
|
|
320
|
+
|
|
321
|
+
// محتوى مفكك
|
|
322
|
+
...sharedContent,
|
|
323
|
+
|
|
324
|
+
// مراجع متداخلة
|
|
325
|
+
sections: [
|
|
326
|
+
{
|
|
327
|
+
...sharedContent.buttons,
|
|
328
|
+
header: "القسم 1",
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
},
|
|
332
|
+
};
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## تحسين الاستقرار وإدارة الترجمة
|
|
338
|
+
|
|
339
|
+
يقدم الإصدار 7 عدة تحسينات لجعل ترجمة المحتوى أكثر موثوقية وكفاءة:
|
|
340
|
+
|
|
341
|
+
### تحديثات كاملة لملفات إعلان المحتوى
|
|
342
|
+
|
|
343
|
+
يقوم النظام الآن بتحديث ملفات `.content.{ts,js,cjs,mjs}` بدلاً من التحديثات الجزئية، مما يضمن:
|
|
344
|
+
|
|
345
|
+
- **سلامة البيانات**: إعادة كتابة الملف بالكامل تمنع التحديثات الجزئية التي قد تؤدي إلى تلف المحتوى
|
|
346
|
+
- **الاتساق**: يتم تحديث جميع اللغات بشكل ذري، مما يحافظ على التزامن
|
|
347
|
+
- **الموثوقية**: يقلل من خطر وجود ملفات محتوى غير مكتملة أو تالفة
|
|
348
|
+
|
|
349
|
+
### إدارة إعادة المحاولة الذكية
|
|
350
|
+
|
|
351
|
+
آليات إعادة المحاولة الجديدة تمنع دفع المحتوى بصيغ غير صحيحة، وتتجنب كسر عملية التعبئة بالكامل إذا فشل طلب واحد.
|
|
352
|
+
|
|
353
|
+
### المعالجة المتوازية لتسريع الأداء
|
|
354
|
+
|
|
355
|
+
تعمل عمليات الترجمة الآن في قائمة انتظار لتشغيلها بشكل متوازي. هذا يسرع العملية بشكل كبير.
|
|
356
|
+
|
|
357
|
+
### تقسيم ذكي للملفات الكبيرة
|
|
358
|
+
|
|
359
|
+
استراتيجيات تقسيم متقدمة تتعامل مع ملفات المحتوى الكبيرة دون تجاوز حدود سياق الذكاء الاصطناعي:
|
|
360
|
+
|
|
361
|
+
### مثال على سير العمل
|
|
362
|
+
|
|
363
|
+
```typescript
|
|
364
|
+
// يتم تقسيم ملف المحتوى الكبير تلقائيًا
|
|
365
|
+
const content = {
|
|
366
|
+
key: "large-documentation",
|
|
367
|
+
fill: true,
|
|
368
|
+
content: {
|
|
369
|
+
// يتم تقسيم المحتوى الكبير تلقائيًا للمعالجة بواسطة الذكاء الاصطناعي
|
|
370
|
+
introduction: "..." // أكثر من 5000 حرف
|
|
371
|
+
sections: [
|
|
372
|
+
// عدة أقسام كبيرة
|
|
373
|
+
]
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
يقوم النظام تلقائيًا بـ:
|
|
379
|
+
|
|
380
|
+
1. تحليل حجم المحتوى وبنيته
|
|
381
|
+
2. تقسيم المحتوى بشكل مناسب
|
|
382
|
+
3. معالجة الأجزاء بشكل متوازي
|
|
383
|
+
4. التحقق من الصحة وإعادة المحاولة إذا لزم الأمر
|
|
384
|
+
5. إعادة بناء الملف الكامل
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## ملاحظات الترحيل من الإصدار v6
|
|
389
|
+
|
|
390
|
+
### الإعدادات التي تمت إزالتها
|
|
391
|
+
|
|
392
|
+
- **`middleware.cookieName`**: تم استبداله بـ `routing.storage`
|
|
393
|
+
- **`middleware.serverSetCookie`**: تم استبداله بـ `routing.storage`
|
|
394
|
+
- **`middleware.prefixDefault`**: تم استبداله بـ `routing.mode`
|
|
395
|
+
- **`middleware.noPrefix`**: تم استبداله بـ `routing.mode`
|
|
396
|
+
|
|
397
|
+
### خريطة الترحيل
|
|
398
|
+
|
|
399
|
+
#### خريطة التهيئة
|
|
400
|
+
|
|
401
|
+
| تهيئة v6 | تهيئة v7 |
|
|
402
|
+
| -------------------------- | -------------------------------------------------- |
|
|
403
|
+
| `autoFill: xxx` | `fill: xxx` |
|
|
404
|
+
| `prefixDefault: false` | `mode: 'prefix-no-default'` |
|
|
405
|
+
| `prefixDefault: true` | `mode: 'prefix-all'` |
|
|
406
|
+
| `noPrefix: true` | `mode: 'no-prefix'` |
|
|
407
|
+
| `cookieName: 'my-locale'` | `storage: { type: 'cookie', name: 'my-locale' }` |
|
|
408
|
+
| `serverSetCookie: 'never'` | `storage: false` أو إزالة الكوكي من مصفوفة التخزين |
|
|
409
|
+
|
|
410
|
+
#### مثال على الترحيل
|
|
411
|
+
|
|
412
|
+
**قبل (v6):**
|
|
413
|
+
|
|
414
|
+
```typescript
|
|
415
|
+
export default {
|
|
416
|
+
middleware: {
|
|
417
|
+
headerName: "x-intlayer-locale",
|
|
418
|
+
cookieName: "intlayer-locale",
|
|
419
|
+
prefixDefault: false,
|
|
420
|
+
basePath: "",
|
|
421
|
+
serverSetCookie: "always",
|
|
422
|
+
noPrefix: false,
|
|
423
|
+
},
|
|
424
|
+
};
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**بعد (v7):**
|
|
428
|
+
|
|
429
|
+
```typescript
|
|
430
|
+
export default {
|
|
431
|
+
routing: {
|
|
432
|
+
mode: "prefix-no-default",
|
|
433
|
+
storage: "localStorage", // أو 'cookie' إذا كنت بحاجة إلى تخزين الكوكيز
|
|
434
|
+
headerName: "x-intlayer-locale",
|
|
435
|
+
basePath: "",
|
|
436
|
+
},
|
|
437
|
+
};
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
#### مطابقة محتوى القاموس
|
|
441
|
+
|
|
442
|
+
| محتوى القاموس في v6 | محتوى القاموس في v7 |
|
|
443
|
+
| ------------------- | ------------------- |
|
|
444
|
+
| `autoFill: xxx` | `fill: xxx` |
|
|
445
|
+
|
|
446
|
+
#### مثال على الترحيل
|
|
447
|
+
|
|
448
|
+
**قبل (v6):**
|
|
449
|
+
|
|
450
|
+
```typescript
|
|
451
|
+
const content = {
|
|
452
|
+
key: "example",
|
|
453
|
+
autoFill: true, // يعيد كتابة هذا الملف
|
|
454
|
+
content: {
|
|
455
|
+
title: "مرحبا بالعالم",
|
|
456
|
+
},
|
|
457
|
+
};
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
**بعد (v7):**
|
|
461
|
+
|
|
462
|
+
```typescript
|
|
463
|
+
const content = {
|
|
464
|
+
key: "example",
|
|
465
|
+
fill: true, // يعيد كتابة هذا الملف
|
|
466
|
+
content: {
|
|
467
|
+
title: "مرحبا بالعالم",
|
|
468
|
+
},
|
|
469
|
+
};
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
---
|
|
473
|
+
|
|
474
|
+
## ملاحظات الترحيل من الإصدار v5 إلى v6
|
|
475
|
+
|
|
476
|
+
راجع [ملاحظات الترحيل من v5 إلى v6](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/releases/v6.md) لمزيد من المعلومات.
|
|
477
|
+
|
|
478
|
+
---
|
|
479
|
+
|
|
480
|
+
## روابط مفيدة
|
|
481
|
+
|
|
482
|
+
- [مرجع التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md)
|
|
483
|
+
- [توثيق الوسيط](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/next-intlayer/index.md)
|
|
484
|
+
- [أنواع TypeScript](https://github.com/aymericzip/intlayer/blob/main/packages/%40intlayer/types/src/index.ts)
|
|
485
|
+
- [إرشادات ملفات تعريف الارتباط وفقًا للائحة GDPR](https://gdpr.eu/cookies/)
|
package/docs/de/configuration.md
CHANGED
|
@@ -333,30 +333,6 @@ Einstellungen, die das Verhalten der Middleware steuern, einschließlich wie die
|
|
|
333
333
|
- Wenn `noPrefix = false`: URL wird `https://example.com/my-app/en` sein
|
|
334
334
|
- Wenn `noPrefix = true`: URL wird `https://example.com` sein
|
|
335
335
|
|
|
336
|
-
- **detectLocaleOnPrefetchNoPrefix**:
|
|
337
|
-
- _Typ_: `boolean`
|
|
338
|
-
- _Standard_: `false`
|
|
339
|
-
- _Beschreibung_: Steuert, ob die Lokalisierungserkennung während Next.js Prefetch-Anfragen erfolgt.
|
|
340
|
-
- _Beispiel_: `true`
|
|
341
|
-
- _Hinweis_: Diese Einstellung beeinflusst, wie Next.js das Prefetching von Lokalisierungen handhabt:
|
|
342
|
-
- **Beispielszenario:**
|
|
343
|
-
- Die Browsersprache des Benutzers ist `'fr'`
|
|
344
|
-
- Aktuelle Seite ist `/fr/about`
|
|
345
|
-
- Link prefetcht `/about`
|
|
346
|
-
- **Mit `detectLocaleOnPrefetchNoPrefix: true`:**
|
|
347
|
-
- Prefetch erkennt die `'fr'`-Lokalisierung aus dem Browser
|
|
348
|
-
- Prefetch wird zu `/fr/about` umgeleitet
|
|
349
|
-
- **Mit `detectLocaleOnPrefetchNoPrefix: false` (Standard):**
|
|
350
|
-
- Prefetch verwendet die Standard-Lokalisierung
|
|
351
|
-
- Prefetch wird zu `/en/about` umgeleitet (angenommen `'en'` ist Standard)
|
|
352
|
-
- **Wann `true` verwendet werden sollte:**
|
|
353
|
-
- Ihre Anwendung verwendet nicht lokalisierte interne Links (z. B. `<a href="/about">`)
|
|
354
|
-
- Sie möchten ein konsistentes Verhalten bei der Lokalerkennung zwischen regulären und Prefetch-Anfragen
|
|
355
|
-
- **Wann `false` (Standard) verwenden:**
|
|
356
|
-
- Ihre Anwendung verwendet lokalisierte Links mit Präfix (z. B. `<a href="/fr/about">`)
|
|
357
|
-
- Sie möchten die Prefetch-Leistung optimieren
|
|
358
|
-
- Sie möchten potenzielle Redirect-Schleifen vermeiden
|
|
359
|
-
|
|
360
336
|
---
|
|
361
337
|
|
|
362
338
|
### Inhaltskonfiguration
|