@intlayer/docs 8.9.6-canary.0 → 8.9.7
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/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/docs/ar/benchmark/nextjs.md +8 -8
- package/docs/ar/benchmark/solid.md +8 -8
- package/docs/ar/benchmark/svelte.md +8 -8
- package/docs/ar/benchmark/tanstack.md +7 -7
- package/docs/ar/benchmark/vue.md +8 -8
- package/docs/ar/interest_of_intlayer.md +107 -80
- package/docs/bn/interest_of_intlayer.md +237 -0
- package/docs/cs/interest_of_intlayer.md +237 -0
- package/docs/de/benchmark/nextjs.md +8 -8
- package/docs/de/benchmark/solid.md +8 -8
- package/docs/de/benchmark/svelte.md +8 -8
- package/docs/de/benchmark/tanstack.md +7 -7
- package/docs/de/benchmark/vue.md +8 -8
- package/docs/de/interest_of_intlayer.md +98 -74
- package/docs/en/benchmark/___nextjs.md +8 -8
- package/docs/en/benchmark/___tanstack.md +6 -6
- package/docs/en/benchmark/nextjs.md +8 -8
- package/docs/en/benchmark/solid.md +8 -8
- package/docs/en/benchmark/svelte.md +8 -8
- package/docs/en/benchmark/tanstack.md +7 -7
- package/docs/en/benchmark/vue.md +8 -8
- package/docs/en/configuration.md +2 -1
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en-GB/benchmark/nextjs.md +8 -8
- package/docs/en-GB/benchmark/solid.md +8 -8
- package/docs/en-GB/benchmark/svelte.md +8 -8
- package/docs/en-GB/benchmark/tanstack.md +7 -7
- package/docs/en-GB/benchmark/vue.md +8 -8
- package/docs/en-GB/configuration.md +2 -1
- package/docs/en-GB/interest_of_intlayer.md +59 -33
- package/docs/es/benchmark/nextjs.md +8 -8
- package/docs/es/benchmark/solid.md +8 -8
- package/docs/es/benchmark/svelte.md +8 -8
- package/docs/es/benchmark/tanstack.md +7 -7
- package/docs/es/benchmark/vue.md +8 -8
- package/docs/es/interest_of_intlayer.md +28 -2
- package/docs/fr/benchmark/nextjs.md +8 -8
- package/docs/fr/benchmark/solid.md +8 -8
- package/docs/fr/benchmark/svelte.md +8 -8
- package/docs/fr/benchmark/tanstack.md +7 -7
- package/docs/fr/benchmark/vue.md +8 -8
- package/docs/fr/interest_of_intlayer.md +47 -21
- package/docs/hi/benchmark/nextjs.md +8 -8
- package/docs/hi/benchmark/solid.md +8 -8
- package/docs/hi/benchmark/svelte.md +8 -8
- package/docs/hi/benchmark/tanstack.md +7 -7
- package/docs/hi/benchmark/vue.md +8 -8
- package/docs/hi/interest_of_intlayer.md +114 -88
- package/docs/id/benchmark/nextjs.md +8 -8
- package/docs/id/benchmark/solid.md +8 -8
- package/docs/id/benchmark/svelte.md +8 -8
- package/docs/id/benchmark/tanstack.md +7 -7
- package/docs/id/benchmark/vue.md +8 -8
- package/docs/id/interest_of_intlayer.md +81 -81
- package/docs/it/benchmark/nextjs.md +8 -8
- package/docs/it/benchmark/solid.md +8 -8
- package/docs/it/benchmark/svelte.md +8 -8
- package/docs/it/benchmark/tanstack.md +7 -7
- package/docs/it/benchmark/vue.md +4 -4
- package/docs/it/interest_of_intlayer.md +96 -69
- package/docs/ja/benchmark/nextjs.md +8 -8
- package/docs/ja/benchmark/solid.md +8 -8
- package/docs/ja/benchmark/svelte.md +8 -8
- package/docs/ja/benchmark/tanstack.md +7 -7
- package/docs/ja/benchmark/vue.md +8 -8
- package/docs/ja/interest_of_intlayer.md +108 -81
- package/docs/ko/benchmark/nextjs.md +8 -8
- package/docs/ko/benchmark/solid.md +8 -8
- package/docs/ko/benchmark/svelte.md +8 -8
- package/docs/ko/benchmark/tanstack.md +7 -7
- package/docs/ko/benchmark/vue.md +8 -8
- package/docs/ko/interest_of_intlayer.md +101 -74
- package/docs/nl/interest_of_intlayer.md +237 -0
- package/docs/pl/benchmark/nextjs.md +8 -8
- package/docs/pl/benchmark/solid.md +8 -8
- package/docs/pl/benchmark/svelte.md +8 -8
- package/docs/pl/benchmark/tanstack.md +7 -7
- package/docs/pl/benchmark/vue.md +8 -8
- package/docs/pl/interest_of_intlayer.md +85 -83
- package/docs/pt/benchmark/nextjs.md +8 -8
- package/docs/pt/benchmark/solid.md +8 -8
- package/docs/pt/benchmark/svelte.md +8 -8
- package/docs/pt/benchmark/tanstack.md +7 -7
- package/docs/pt/benchmark/vue.md +8 -8
- package/docs/pt/interest_of_intlayer.md +91 -67
- package/docs/ru/benchmark/nextjs.md +8 -8
- package/docs/ru/benchmark/solid.md +6 -7
- package/docs/ru/benchmark/svelte.md +8 -8
- package/docs/ru/benchmark/tanstack.md +7 -7
- package/docs/ru/benchmark/vue.md +8 -8
- package/docs/ru/interest_of_intlayer.md +95 -69
- package/docs/tr/benchmark/nextjs.md +8 -8
- package/docs/tr/benchmark/solid.md +8 -8
- package/docs/tr/benchmark/svelte.md +8 -8
- package/docs/tr/benchmark/tanstack.md +7 -7
- package/docs/tr/benchmark/vue.md +8 -8
- package/docs/tr/interest_of_intlayer.md +94 -89
- package/docs/uk/benchmark/nextjs.md +8 -8
- package/docs/uk/benchmark/solid.md +8 -8
- package/docs/uk/benchmark/svelte.md +8 -8
- package/docs/uk/benchmark/tanstack.md +7 -7
- package/docs/uk/benchmark/vue.md +8 -8
- package/docs/uk/interest_of_intlayer.md +94 -96
- package/docs/ur/interest_of_intlayer.md +237 -0
- package/docs/vi/benchmark/nextjs.md +8 -8
- package/docs/vi/benchmark/solid.md +8 -8
- package/docs/vi/benchmark/svelte.md +8 -8
- package/docs/vi/benchmark/tanstack.md +7 -7
- package/docs/vi/benchmark/vue.md +8 -8
- package/docs/vi/interest_of_intlayer.md +82 -79
- package/docs/zh/benchmark/nextjs.md +8 -8
- package/docs/zh/benchmark/solid.md +6 -7
- package/docs/zh/benchmark/svelte.md +7 -7
- package/docs/zh/benchmark/tanstack.md +7 -7
- package/docs/zh/benchmark/vue.md +8 -8
- package/docs/zh/interest_of_intlayer.md +99 -72
- package/docs/zh-TW/interest_of_intlayer.md +237 -0
- package/package.json +6 -6
|
@@ -1,44 +1,47 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-14
|
|
3
|
-
updatedAt: 2025-
|
|
3
|
+
updatedAt: 2025-09-27
|
|
4
4
|
title: أهمية Intlayer
|
|
5
|
-
description: اكتشف فوائد ومزايا استخدام Intlayer في مشاريعك.
|
|
5
|
+
description: اكتشف فوائد ومزايا استخدام Intlayer في مشاريعك. افهم لماذا يبرز Intlayer بين الأطر الأخرى.
|
|
6
6
|
keywords:
|
|
7
|
-
-
|
|
8
|
-
-
|
|
7
|
+
- فوائد
|
|
8
|
+
- مزايا
|
|
9
9
|
- Intlayer
|
|
10
|
-
- إطار
|
|
11
|
-
-
|
|
10
|
+
- إطار عمل
|
|
11
|
+
- مقارنة
|
|
12
12
|
slugs:
|
|
13
13
|
- doc
|
|
14
14
|
- why
|
|
15
15
|
history:
|
|
16
|
+
- version: 7.3.1
|
|
17
|
+
date: 2025-11-27
|
|
18
|
+
changes: "إصدار المترجم"
|
|
16
19
|
- version: 5.8.0
|
|
17
20
|
date: 2025-08-19
|
|
18
|
-
changes: "تحديث
|
|
21
|
+
changes: "تحديث الجدول المقارن"
|
|
19
22
|
- version: 5.5.10
|
|
20
23
|
date: 2025-06-29
|
|
21
|
-
changes: "
|
|
24
|
+
changes: "البداية التاريخية"
|
|
22
25
|
---
|
|
23
26
|
|
|
24
|
-
# لماذا يجب
|
|
27
|
+
# لماذا يجب عليك التفكير في Intlayer؟
|
|
25
28
|
|
|
26
29
|
## ما هو Intlayer؟
|
|
27
30
|
|
|
28
|
-
**Intlayer** هو مكتبة
|
|
31
|
+
**Intlayer** هو مكتبة تدويل مصممة خصيصًا لمطوري JavaScript. يتيح التصريح عن محتواك في كل مكان في الكود الخاص بك. يقوم بتحويل التصريحات للمحتوى متعدد اللغات إلى قواميس منظمة لتتكامل بسهولة في الكود الخاص بك. باستخدام TypeScript، يجعل **Intlayer** تطويرك أقوى وأكثر كفاءة.
|
|
29
32
|
|
|
30
33
|
## لماذا تم إنشاء Intlayer؟
|
|
31
34
|
|
|
32
|
-
تم إنشاء Intlayer لحل مشكلة شائعة تؤثر على جميع مكتبات i18n الشائعة مثل `next-intl
|
|
35
|
+
تم إنشاء Intlayer لحل مشكلة شائعة تؤثر على جميع مكتبات i18n الشائعة مثل `next-intl` و `react-i18next` و `react-intl` و `next-i18next` و `react-intl` و `vue-i18n`.
|
|
33
36
|
|
|
34
|
-
تعتمد
|
|
37
|
+
تعتمد جميع هذه الحلول نهجًا مركزيًا لسرد وإدارة محتواك. على سبيل المثال:
|
|
35
38
|
|
|
36
39
|
```bash
|
|
37
40
|
.
|
|
38
41
|
├── locales
|
|
39
42
|
│ ├── en.json
|
|
40
|
-
│ ├──
|
|
41
|
-
│ └──
|
|
43
|
+
│ ├── es.json
|
|
44
|
+
│ └── fr.json
|
|
42
45
|
├── i18n.ts
|
|
43
46
|
└── src
|
|
44
47
|
└── components
|
|
@@ -46,7 +49,7 @@ history:
|
|
|
46
49
|
└── index.tsx
|
|
47
50
|
```
|
|
48
51
|
|
|
49
|
-
أو هنا باستخدام
|
|
52
|
+
أو هنا باستخدام مساحات الأسماء:
|
|
50
53
|
|
|
51
54
|
```bash
|
|
52
55
|
.
|
|
@@ -67,23 +70,23 @@ history:
|
|
|
67
70
|
└── index.tsx
|
|
68
71
|
```
|
|
69
72
|
|
|
70
|
-
هذا النوع من
|
|
73
|
+
هذا النوع من الهندسة يبطئ عملية التطوير ويجعل قاعدة الكود أكثر تعقيدًا في الصيانة لعدة أسباب:
|
|
71
74
|
|
|
72
75
|
1. **لأي مكون جديد يتم إنشاؤه، يجب عليك:**
|
|
73
|
-
- إنشاء
|
|
74
|
-
- تذكر استيراد
|
|
75
|
-
- ترجمة
|
|
76
|
+
- إنشاء المورد الجديد/مساحة الاسم الجديدة في مجلد `locales`
|
|
77
|
+
- تذكر استيراد مساحة الاسم الجديدة في صفحتك
|
|
78
|
+
- ترجمة محتواك (غالبًا ما يتم ذلك يدويًا عن طريق النسخ/اللصق من موفري الذكاء الاصطناعي)
|
|
76
79
|
|
|
77
|
-
2. **لأي تغيير يتم على مكوناتك، يجب عليك:**
|
|
78
|
-
- البحث عن
|
|
79
|
-
- ترجمة
|
|
80
|
-
- التأكد من تحديث
|
|
81
|
-
- التحقق من أن
|
|
82
|
-
- التأكد من أن هيكل ملفات JSON هو نفسه لجميع اللغات
|
|
80
|
+
2. **لأي تغيير يتم إجراؤه على مكوناتك، يجب عليك:**
|
|
81
|
+
- البحث عن المورد/مساحة الاسم المتعلقة (بعيدًا عن المكون)
|
|
82
|
+
- ترجمة محتواك
|
|
83
|
+
- التأكد من تحديث محتواك لأي لغة
|
|
84
|
+
- التحقق من أن مساحة الاسم الخاصة بك لا تتضمن مفاتيح/قيم غير مستخدمة
|
|
85
|
+
- التأكد من أن هيكل ملفات JSON الخاص بك هو نفسه لجميع اللغات
|
|
83
86
|
|
|
84
|
-
في المشاريع
|
|
87
|
+
في المشاريع المهنية التي تستخدم هذه الحلول، غالبًا ما يتم استخدام منصات التعريب للمساعدة في إدارة ترجمة محتواك. ومع ذلك، يمكن أن يصبح هذا مكلفًا بسرعة للمشاريع الكبيرة.
|
|
85
88
|
|
|
86
|
-
لحل هذه المشكلة،
|
|
89
|
+
لحل هذه المشكلة، يعتمد Intlayer نهجًا يحدد نطاق محتواك لكل مكون ويبقي محتواك قريبًا من المكون الخاص بك، كما نفعل غالبًا مع CSS (`styled-components`) أو الأنواع أو التوثيق (`storybook`) أو اختبارات الوحدة (`jest`).
|
|
87
90
|
|
|
88
91
|
```bash codeFormat="typescript"
|
|
89
92
|
.
|
|
@@ -142,69 +145,93 @@ export const ComponentExample = () => {
|
|
|
142
145
|
};
|
|
143
146
|
```
|
|
144
147
|
|
|
145
|
-
|
|
148
|
+
يتيح لك هذا النهج:
|
|
146
149
|
|
|
147
150
|
1. **زيادة سرعة التطوير**
|
|
148
151
|
- يمكن إنشاء ملفات `.content.{{ts|mjs|cjs|json}}` باستخدام إضافة VSCode
|
|
149
|
-
- يمكن لأدوات الإكمال التلقائي
|
|
152
|
+
- يمكن لأدوات الإكمال التلقائي للذكاء الاصطناعي في بيئة التطوير الخاصة بك (مثل GitHub Copilot) مساعدتك في التصريح عن محتواك، مما يقلل من النسخ/اللصق
|
|
150
153
|
|
|
151
|
-
2. **تنظيف قاعدة
|
|
154
|
+
2. **تنظيف قاعدة الكود الخاصة بك**
|
|
152
155
|
- تقليل التعقيد
|
|
153
|
-
- زيادة
|
|
156
|
+
- زيادة القابلية للصيانة
|
|
154
157
|
|
|
155
|
-
3. **تكرار مكوناتك والمحتوى
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
+
3. **تكرار مكوناتك والمحتوى المتعلق بها بسهولة أكبر (مثال: مكونات تسجيل الدخول/التسجيل، إلخ.)**
|
|
159
|
+
- عن طريق الحد من مخاطر التأثير على محتوى المكونات الأخرى
|
|
160
|
+
- عن طريق نسخ/لصق محتواك من تطبيق إلى آخر دون تبعيات خارجية
|
|
158
161
|
|
|
159
|
-
4. **تجنب تلويث قاعدة
|
|
160
|
-
- إذا لم تستخدم مكونًا، فلن يقوم Intlayer باستيراد المحتوى
|
|
161
|
-
- إذا قمت بحذف مكون، ستتذكر بسهولة أكبر إزالة المحتوى
|
|
162
|
+
4. **تجنب تلويث قاعدة الكود الخاصة بك بمفاتيح/قيم غير مستخدمة للمكونات غير المستخدمة**
|
|
163
|
+
- إذا لم تستخدم مكونًا، فلن يقوم Intlayer باستيراد المحتوى المتعلق به
|
|
164
|
+
- إذا قمت بحذف مكون، ستتذكر بسهولة أكبر إزالة المحتوى المتعلق به لأنه سيكون موجودًا في نفس المجلد
|
|
162
165
|
|
|
163
|
-
5. **تقليل تكلفة التفكير
|
|
164
|
-
- لن يضطر
|
|
166
|
+
5. **تقليل تكلفة التفكير لعملاء الذكاء الاصطناعي للتصريح عن محتواك متعدد اللغات**
|
|
167
|
+
- لن يضطر عميل الذكاء الاصطناعي إلى مسح قاعدة الكود بالكامل لمعرفة مكان تنفيذ محتواك
|
|
165
168
|
- يمكن إجراء الترجمات بسهولة بواسطة أدوات الإكمال التلقائي للذكاء الاصطناعي في بيئة التطوير الخاصة بك (مثل GitHub Copilot)
|
|
166
169
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
|
173
|
-
|
|
|
174
|
-
|  | **دعم أطر عمل متعددة**<br><br>يتوافق Intlayer مع جميع أطر العمل والمكتبات الرئيسية، بما في ذلك Next.js و React و Vite و Vue.js و Nuxt و Preact و Express والمزيد. |
|
|
178
|
+
|  | **إدارة المحتوى المدعومة بـ JavaScript**<br><br>استغل مرونة JavaScript لتعريف وإدارة محتواك بكفاءة. <br><br> - [التصريح عن المحتوى](https://intlayer.org/doc/concept/content) |
|
|
179
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="الميزة" width="700"> | **المترجم**<br><br>يقوم مترجم Intlayer باستخراج المحتوى تلقائيًا من المكونات وإنشاء ملفات القواميس.<br><br> - [المترجم](https://intlayer.org/doc/compiler) |
|
|
180
|
+
|  | **ملف التصريح عن المحتوى لكل لغة**<br><br>سرع تطويرك عن طريق التصريح عن محتواك مرة واحدة، قبل التوليد التلقائي.<br><br> - [ملف التصريح عن المحتوى لكل لغة](https://intlayer.org/doc/concept/per-locale-file) |
|
|
181
|
+
|  | **بيئة آمنة النوع (Type-Safe)**<br><br>استفد من TypeScript لضمان خلو تعريفات المحتوى والكود الخاص بك من الأخطاء، مع الاستفادة أيضًا من الإكمال التلقائي في بيئة التطوير.<br><br> - [تكوين TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
182
|
+
|  | **إعداد مبسط**<br><br>ابدأ العمل بسرعة مع الحد الأدنى من التكوين. اضبط إعدادات التدويل والتوجيه والذكاء الاصطناعي والبناء ومعالجة المحتوى بسهولة. <br><br> - [استكشف تكامل Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
183
|
+
|  | **استرجاع محتوى مبسط**<br><br>لا حاجة لاستدعاء وظيفة `t` لكل قطعة من المحتوى. استرجع كل محتواك مباشرة باستخدام خطاف واحد.<br><br> - [تكامل React](https://intlayer.org/doc/environment/create-react-app) |
|
|
184
|
+
|  | **تنفيذ ثابت لمكونات الخادم**<br><br>مناسب تمامًا لمكونات خادم Next.js، استخدم نفس التنفيذ لكل من مكونات العميل والخادم، لا حاجة لتمرير وظيفة `t` عبر كل مكون خادم. <br><br> - [مكونات الخادم](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
185
|
+
|  | **قاعدة كود منظمة**<br><br>حافظ على قاعدة الكود الخاصة بك أكثر تنظيمًا: مكون واحد = قاموس واحد في نفس المجلد. الترجمات القريبة من مكوناتها الخاصة تعزز القابلية للصيانة والوضوح. <br><br> - [كيف يعمل Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
186
|
+
|  | **توجيه محسن**<br><br>دعم كامل لتوجيه التطبيق، والتكيف بسلاسة مع هياكل التطبيقات المعقدة، لـ Next.js و React و Vite و Vue.js وغيرها.<br><br> - [استكشف تكامل Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
187
|
+
|  | **دعم Markdown**<br><br>استيراد وتفسير ملفات اللغة و Markdown عن بعد للمحتوى متعدد اللغات مثل سياسات الخصوصية والتوثيق وما إلى ذلك. تفسير وجعل البيانات الوصفية لـ Markdown متاحة في الكود الخاص بك.<br><br> - [ملفات المحتوى](https://intlayer.org/doc/concept/content/file) |
|
|
188
|
+
|  | **محرر مرئي ونظام إدارة محتوى مجاني**<br><br>يتوفر محرر مرئي ونظام إدارة محتوى مجاني لكتاب المحتوى، مما يزيل الحاجة إلى منصة تعريب. حافظ على محتواك متزامنًا باستخدام Git، أو قم بإخراجه كليًا أو جزئيًا باستخدام نظام إدارة المحتوى.<br><br> - [محرر Intlayer](https://intlayer.org/doc/concept/editor) <br> - [نظام إدارة محتوى Intlayer](https://intlayer.org/doc/concept/cms) |
|
|
189
|
+
|  | **محتوى قابل للتقليم (Tree-shakable)**<br><br>محتوى قابل للتقليم، مما يقلل من حجم الحزمة النهائية. يحمل المحتوى لكل مكون، مع استبعاد أي محتوى غير مستخدم من حزمتك. يدعم التحميل الكسول لتعزيز كفاءة تحميل التطبيق. <br><br> - [تحسين بناء التطبيق](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
190
|
+
|  | **الرندرة الثابتة**<br><br>لا يعيق الرندرة الثابتة. <br><br> - [تكامل Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
191
|
+
|  | **ترجمة مدعومة بالذكاء الاصطناعي**<br><br>حول موقعك الإلكتروني إلى 231 لغة بنقرة واحدة فقط باستخدام أدوات الترجمة المتقدمة المدعومة بالذكاء الاصطناعي من Intlayer باستخدام موفر الذكاء الاصطناعي الخاص بك/مفتاح API. <br><br> - [تكامل CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [واجهة أوامر Intlayer](https://intlayer.org/doc/concept/cli) <br> - [التعبئة التلقائية](https://intlayer.org/doc/concept/auto-fill) |
|
|
192
|
+
|  | **تكامل خادم MCP**<br><br>يوفر خادم MCP (بروتوكول سياق النموذج) لأتمتة بيئة التطوير المتكاملة (IDE)، مما يتيح إدارة محتوى وسلسة وسير عمل i18ن مباشرة داخل بيئة التطوير الخاصة بك. <br><br> - [خادم MCP](https://github.com/aymericzip/intlayer/blob/main/docs/ar/mcp_server.md) |
|
|
193
|
+
|  | **إضافة VSCode**<br><br>يوفر Intlayer إضافة لـ VSCode لمساعدتك في إدارة المحتوى والترجمات، وبناء القواميس، وترجمة المحتوى، والمزيد. <br><br> - [إضافة VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
194
|
+
|  | **التوافق التشغيلي**<br><br>يتيح التوافق التشغيلي مع react-i18next و next-i18next و next-intl و react-intl. <br><br> - [Intlayer و react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer و next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer و next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) |
|
|
195
|
+
| اختبار الترجمات المفقودة (CLI/CI) | ✅ CLI: npx intlayer content test (تدقيق متوافق مع CI) |
|
|
188
196
|
|
|
189
197
|
## مقارنة Intlayer مع الحلول الأخرى
|
|
190
198
|
|
|
191
|
-
| الميزة
|
|
192
|
-
|
|
|
193
|
-
| **الترجمات بالقرب من المكونات**
|
|
194
|
-
| **تكامل TypeScript**
|
|
195
|
-
| **كشف الترجمات المفقودة**
|
|
196
|
-
| **المحتوى الغني (JSX/Markdown/المكونات)**
|
|
197
|
-
| **الترجمة المدعومة بالذكاء الاصطناعي**
|
|
198
|
-
| **المحرر المرئي**
|
|
199
|
-
| **التوجيه
|
|
200
|
-
| **توليد
|
|
201
|
-
|
|
|
202
|
-
| **التنسيق (التواريخ، الأرقام، العملات)**
|
|
203
|
-
| **تنسيق المحتوى**
|
|
204
|
-
| **دعم ICU**
|
|
205
|
-
| **مساعدو
|
|
206
|
-
| **النظام البيئي / المجتمع**
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
| **التحميل الكسول**
|
|
210
|
-
|
|
|
199
|
+
| الميزة | `intlayer` | `react-i18next` | `react-intl` (FormatJS) | `lingui` | `next-intl` | `next-i18next` | `vue-i18n` |
|
|
200
|
+
| ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------- |
|
|
201
|
+
| **الترجمات بالقرب من المكونات** | ✅ نعم، المحتوى موجود بجانب كل مكون | ❌ لا | ❌ لا | ❌ لا | ❌ لا | ❌ لا | ✅ نعم - باستخدام `Single File Components` (SFCs) |
|
|
202
|
+
| **تكامل TypeScript** | ✅ متقدم، أنواع صارمة يتم توليدها تلقائيًا | ⚠️ أساسي؛ يتطلب تكوينًا إضافيًا للأمان | ✅ جيد، لكنه أقل صرامة | ⚠️ يتطلب تكوين الأنواع | ✅ جيد | ⚠️ أساسي | ✅ جيد (الأنواع متاحة؛ يتطلب أمان المفاتيح إعدادًا) |
|
|
203
|
+
| **كشف الترجمات المفقودة** | ✅ تمييز أخطاء TypeScript وخطأ/تحذير وقت البناء | ⚠️ غالبًا سلاسل نصية بديلة وقت التشغيل | ⚠️ سلاسل نصية بديلة | ⚠️ يتطلب تكوينًا إضافيًا | ⚠️ بديل وقت التشغيل | ⚠️ بديل وقت التشغيل | ⚠️ بديل/تحذيرات وقت التشغيل (قابلة للتكوين) |
|
|
204
|
+
| **المحتوى الغني (JSX/Markdown/المكونات)** | ✅ دعم مباشر | ⚠️ محدود / استكمال فقط | ⚠️ بناء جملة ICU، ليس JSX حقيقيًا | ⚠️ محدود | ❌ غير مصمم للعقد الغنية | ⚠️ محدود | ⚠️ محدود (المكونات عبر `<i18n-t>`، Markdown عبر الإضافات) |
|
|
205
|
+
| **الترجمة المدعومة بالذكاء الاصطناعي** | ✅ نعم، يدعم موفري ذكاء اصطناعي متعددين. يمكن استخدامه بمفاتيح API الخاصة بك. يأخذ في الاعتبار سياق تطبيقك ونطاق المحتوى | ❌ لا | ❌ لا | ❌ لا | ❌ لا | ❌ لا | ❌ لا |
|
|
206
|
+
| **المحرر المرئي** | ✅ نعم، محرر مرئي محلي + نظام إدارة محتوى اختياري؛ يمكنه إخراج محتوى قاعدة الكود؛ قابل للتضمين | ❌ لا / متاح عبر منصات تعريب خارجية | ❌ لا / متاح عبر منصات تعريب خارجية | ❌ لا / متاح عبر منصات تعريب خارجية | ❌ لا / متاح عبر منصات تعريب خارجية | ❌ لا / متاح عبر منصات تعريب خارجية | ❌ لا / متاح عبر منصات تعريب خارجية |
|
|
207
|
+
| **التوجيه المترجم** | ✅ نعم، يدعم المسارات المترجمة بشكل افتراضي (يعمل مع Next.js و Vite) | ⚠️ لا يوجد دعم مدمج، يتطلب إضافات (مثل `next-i18next`) أو تكوين موجه مخصص | ❌ لا، تنسيق الرسائل فقط، يجب أن يكون التوجيه يدويًا | ⚠️ لا يوجد دعم مدمج، يتطلب إضافات أو تكوينًا يدويًا | ✅ مدمج، يدعم App Router مقطع `[locale]` | ✅ مدمج | ✅ مدمج |
|
|
208
|
+
| **توليد المسارات الديناميكية** | ✅ نعم | ⚠️ إعداد يدوي أو عبر الإضافات/النظام البيئي | ❌ غير متوفر | ⚠️ إعداد يدوي أو عبر الإضافات | ✅ نعم | ✅ نعم | ❌ غير متوفر (يوفر Nuxt i18n ذلك) |
|
|
209
|
+
| **الجمع** | ✅ أنماط تعتمد على التعداد | ✅ قابل للتكوين (إضافات مثل i18next-icu) | ✅ (ICU) | ✅ (ICU/messageformat) | ✅ جيد | ✅ جيد | ✅ قواعد جمع مدمجة |
|
|
210
|
+
| **التنسيق (التواريخ، الأرقام، العملات)** | ✅ منسقات محسنة (Intl تحت الغطاء) | ⚠️ عبر الإضافات أو استخدام Intl المخصص | ✅ منسقات ICU | ✅ مساعدو ICU/CLI | ✅ جيد (مساعدو Intl) | ✅ جيد (مساعدو Intl) | ✅ منسقات تاريخ/أرقام مدمجة (Intl) |
|
|
211
|
+
| **تنسيق المحتوى** | ✅ .tsx, .ts, .js, .json, .md, .txt, (.yaml قيد العمل) | ⚠️ .json | ✅ .json, .js | ⚠️ .po, .json | ✅ .json, .js, .ts | ⚠️ .json | ✅ .json, .js |
|
|
212
|
+
| **دعم ICU** | ⚠️ قيد العمل | ⚠️ عبر إضافة (i18next-icu) | ✅ نعم | ✅ نعم | ✅ نعم | ⚠️ عبر إضافة (`i18next-icu`) | ⚠️ عبر منسق/مترجم مخصص |
|
|
213
|
+
| **مساعدو SEO (hreflang, sitemap)** | ✅ أدوات مدمجة: مساعدون لـ sitemap و robots.txt والبيانات الوصفية | ⚠️ إضافات المجتمع/يدوي | ❌ ليس أساسيًا | ❌ ليس أساسيًا | ✅ جيد | ✅ جيد | ❌ ليس أساسيًا (يوفر Nuxt i18n المساعدين) |
|
|
214
|
+
| **النظام البيئي / المجتمع** | ⚠️ أصغر ولكنه ينمو بسرعة وتفاعلي | ✅ الأكبر والأكثر نضجًا | ✅ كبير | ⚠️ أصغر | ✅ متوسط الحجم، يركز على Next.js | ✅ متوسط الحجم، يركز على Next.js | ✅ كبير في نظام Vue البيئي |
|
|
215
|
+
| **الرندرة من جانب الخادم ومكونات الخادم** | ✅ نعم، مبسط لـ SSR / مكونات خادم React | ⚠️ مدعوم على مستوى الصفحة ولكن يجب تمرير وظائف t على شجرة المكونات لمكونات الخادم التابعة | ⚠️ مدعوم على مستوى الصفحة مع إعداد إضافي، ولكن يجب تمرير وظائف t على شجرة المكونات لمكونات الخادم التابعة | ✅ مدعوم، يتطلب إعدادًا | ⚠️ مدعوم على مستوى الصفحة ولكن يجب تمرير وظائف t على شجرة المكونات لمكونات الخادم التابعة | ⚠️ مدعوم على مستوى الصفحة ولكن يجب تمرير وظائف t على شجرة المكونات لمكونات الخادم التابعة | ✅ SSR عبر Nuxt/Vue SSR (لا يوجد RSC) |
|
|
216
|
+
| **التقليم (تحميل المحتوى المستخدم فقط)** | ✅ نعم، لكل مكون في وقت البناء عبر إضافات Babel/SWC | ⚠️ عادة ما يحمل الكل (يمكن تحسينه باستخدام مساحات الأسماء/تقسيم الكود) | ⚠️ عادة ما يحمل الكل | ❌ ليس افتراضيًا | ⚠️ جزئي | ⚠️ جزئي | ⚠️ جزئي (مع تقسيم الكود/الإعداد اليدوي) |
|
|
217
|
+
| **التحميل الكسول** | ✅ نعم، لكل لغة / لكل قاموس | ✅ نعم (مثل الخلفيات/مساحات الأسماء عند الطلب) | ✅ نعم (تقسيم حزم اللغة) | ✅ نعم (استيراد الكتالوج الديناميكي) | ✅ نعم (لكل مسار/لكل لغة)، يتطلب إدارة مساحات الأسماء | ✅ نعم (لكل مسار/لكل لغة)، يتطلب إدارة مساحات الأسماء | ✅ نعم (رسائل لغة غير متزامنة) |
|
|
218
|
+
| **تنقية المحتوى غير المستخدم** | ✅ نعم، لكل قاموس في وقت البناء | ❌ لا، فقط عبر تقسيم مساحات الأسماء يدويًا | ❌ لا، يتم تجميع جميع الرسائل المصرح عنها | ✅ نعم، يتم اكتشاف المفاتيح غير المستخدمة وإسقاطها عند البناء | ❌ لا، يمكن إدارتها يدويًا مع إدارة مساحات الأسماء | ❌ لا، يمكن إدارتها يدويًا مع إدارة مساحات الأسماء | ❌ لا، ممكن فقط عبر التحميل الكسول اليدوي |
|
|
219
|
+
| **إدارة المشاريع الكبيرة** | ✅ يشجع على النمطية، مناسب لأنظمة التصميم | ⚠️ يتطلب انضباطًا جيدًا في الملفات | ⚠️ الكتالوجات المركزية يمكن أن تصبح كبيرة | ⚠️ يمكن أن تصبح معقدة | ✅ نمطي مع الإعداد | ✅ نمطي مع الإعداد | ✅ نمطي مع إعداد Vue Router/Nuxt i18n |
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## نجوم GitHub
|
|
224
|
+
|
|
225
|
+
تعد نجوم GitHub مؤشرًا قويًا على شعبية المشروع وثقة المجتمع وأهميته على المدى الطويل. على الرغم من أنها ليست مقياسًا مباشرًا للجودة التقنية، إلا أنها تعكس عدد المطورين الذين يجدون المشروع مفيدًا ويتابعون تقدمه ومن المحتمل أن يتبنوه. لتقدير قيمة المشروع، تساعد النجوم في مقارنة الجاذبية عبر البدائل وتوفر رؤى حول نمو النظام البيئي.
|
|
226
|
+
|
|
227
|
+
[](https://www.star-history.com/#formatjs/formatjs&i18next/react-i18next&i18next/i18next&i18next/next-i18next&lingui/js-lingui&amannn/next-intl&intlify/vue-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## التوافق التشغيلي
|
|
232
|
+
|
|
233
|
+
يمكن لـ `intlayer` أيضًا المساعدة في إدارة مساحات الأسماء الخاصة بـ `react-intl` و `react-i18next` و `next-intl` و `next-i18next` و `vue-i18n`.
|
|
234
|
+
|
|
235
|
+
باستخدام `intlayer`، يمكنك التصريح عن المحتوى الخاص بك بتنسيق مكتبة i18n المفضلة لديك، وسيقوم intlayer بإنشاء مساحات الأسماء الخاصة بك في الموقع الذي تختاره (مثال: `/messages/{{locale}}/{{namespace}}.json`).
|
|
236
|
+
|
|
237
|
+
ارجع إلى [خيارات dictionaryOutput و i18nextResourcesDir](https://intlayer.org/doc/concept/configuration#content-configuration) لمزيد من التفاصيل.
|