@intlayer/docs 9.3.0 → 9.3.1
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/README.md +24 -24
- package/blog/ar/rag_powered_documentation_assistant.md +1 -1
- package/blog/pl/rag_powered_documentation_assistant.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
- package/dist/cjs/authors2.cjs +0 -1
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +4 -2
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +4 -2
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +4 -2
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +4 -2
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +4 -2
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +4 -2
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/docs/ar/configuration.md +10 -10
- package/docs/ar/interest_of_intlayer.md +24 -22
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_svelte_kit.md +1 -1
- package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ar/intlayer_with_tanstack.md +5 -3
- package/docs/ar/lsp.md +114 -175
- package/docs/ar/readme.md +25 -25
- package/docs/bn/configuration.md +10 -10
- package/docs/bn/interest_of_intlayer.md +24 -22
- package/docs/cs/configuration.md +10 -10
- package/docs/cs/interest_of_intlayer.md +24 -22
- package/docs/de/configuration.md +10 -10
- package/docs/de/interest_of_intlayer.md +24 -22
- package/docs/de/intlayer_with_svelte_kit.md +1 -1
- package/docs/de/intlayer_with_tanstack+solid.md +5 -3
- package/docs/de/intlayer_with_tanstack.md +5 -3
- package/docs/de/lsp.md +111 -172
- package/docs/de/readme.md +24 -24
- package/docs/en/configuration.md +10 -10
- package/docs/en/interest_of_intlayer.md +24 -22
- package/docs/en/intlayer_with_svelte_kit.md +1 -1
- package/docs/en/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en/intlayer_with_tanstack.md +5 -3
- package/docs/en/lsp.md +109 -170
- package/docs/en/readme.md +24 -24
- package/docs/en-GB/configuration.md +10 -10
- package/docs/en-GB/interest_of_intlayer.md +24 -22
- package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
- package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
- package/docs/en-GB/intlayer_with_tanstack.md +5 -3
- package/docs/en-GB/lsp.md +109 -170
- package/docs/en-GB/readme.md +24 -24
- package/docs/es/configuration.md +10 -10
- package/docs/es/interest_of_intlayer.md +24 -22
- package/docs/es/intlayer_with_svelte_kit.md +1 -1
- package/docs/es/intlayer_with_tanstack+solid.md +5 -3
- package/docs/es/intlayer_with_tanstack.md +5 -3
- package/docs/es/lsp.md +114 -175
- package/docs/es/readme.md +24 -24
- package/docs/fr/configuration.md +10 -10
- package/docs/fr/interest_of_intlayer.md +24 -22
- package/docs/fr/intlayer_with_svelte_kit.md +1 -1
- package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/fr/intlayer_with_tanstack.md +5 -3
- package/docs/fr/lsp.md +110 -171
- package/docs/fr/readme.md +24 -24
- package/docs/hi/configuration.md +10 -10
- package/docs/hi/interest_of_intlayer.md +24 -22
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_svelte_kit.md +1 -1
- package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/hi/intlayer_with_tanstack.md +5 -3
- package/docs/hi/lsp.md +113 -174
- package/docs/hi/readme.md +24 -24
- package/docs/id/configuration.md +10 -10
- package/docs/id/interest_of_intlayer.md +24 -22
- package/docs/id/intlayer_with_svelte_kit.md +1 -1
- package/docs/id/intlayer_with_tanstack+solid.md +5 -3
- package/docs/id/intlayer_with_tanstack.md +5 -3
- package/docs/id/lsp.md +113 -174
- package/docs/id/readme.md +24 -24
- package/docs/it/configuration.md +10 -10
- package/docs/it/interest_of_intlayer.md +24 -22
- package/docs/it/intlayer_with_svelte_kit.md +1 -1
- package/docs/it/intlayer_with_tanstack+solid.md +5 -3
- package/docs/it/intlayer_with_tanstack.md +5 -3
- package/docs/it/lsp.md +115 -176
- package/docs/it/readme.md +24 -24
- package/docs/ja/configuration.md +10 -10
- package/docs/ja/interest_of_intlayer.md +24 -22
- package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ja/intlayer_with_tanstack.md +5 -3
- package/docs/ja/lsp.md +113 -174
- package/docs/ja/readme.md +24 -24
- package/docs/ko/configuration.md +10 -10
- package/docs/ko/interest_of_intlayer.md +24 -22
- package/docs/ko/intlayer_with_svelte_kit.md +1 -1
- package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ko/intlayer_with_tanstack.md +5 -3
- package/docs/ko/lsp.md +112 -173
- package/docs/ko/readme.md +24 -24
- package/docs/nl/configuration.md +10 -10
- package/docs/nl/interest_of_intlayer.md +24 -22
- package/docs/pl/configuration.md +10 -10
- package/docs/pl/interest_of_intlayer.md +4 -2
- package/docs/pl/intlayer_with_svelte_kit.md +1 -1
- package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pl/intlayer_with_tanstack.md +5 -3
- package/docs/pl/lsp.md +115 -176
- package/docs/pl/readme.md +24 -24
- package/docs/pt/configuration.md +10 -10
- package/docs/pt/interest_of_intlayer.md +24 -22
- package/docs/pt/intlayer_with_svelte_kit.md +1 -1
- package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
- package/docs/pt/intlayer_with_tanstack.md +5 -3
- package/docs/pt/lsp.md +113 -174
- package/docs/pt/readme.md +24 -24
- package/docs/ru/configuration.md +10 -10
- package/docs/ru/interest_of_intlayer.md +24 -22
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_svelte_kit.md +1 -1
- package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
- package/docs/ru/intlayer_with_tanstack.md +5 -3
- package/docs/ru/lsp.md +112 -173
- package/docs/ru/readme.md +24 -24
- package/docs/tr/configuration.md +10 -10
- package/docs/tr/interest_of_intlayer.md +24 -22
- package/docs/tr/intlayer_with_svelte_kit.md +1 -1
- package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
- package/docs/tr/intlayer_with_tanstack.md +5 -3
- package/docs/tr/lsp.md +113 -174
- package/docs/tr/readme.md +24 -24
- package/docs/uk/configuration.md +10 -10
- package/docs/uk/interest_of_intlayer.md +4 -2
- package/docs/uk/intlayer_with_svelte_kit.md +1 -1
- package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
- package/docs/uk/intlayer_with_tanstack.md +5 -3
- package/docs/uk/lsp.md +113 -174
- package/docs/uk/per_locale_file.md +1 -1
- package/docs/uk/readme.md +24 -24
- package/docs/ur/configuration.md +10 -10
- package/docs/ur/interest_of_intlayer.md +24 -22
- package/docs/vi/configuration.md +10 -10
- package/docs/vi/interest_of_intlayer.md +24 -22
- package/docs/vi/intlayer_with_svelte_kit.md +1 -1
- package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
- package/docs/vi/intlayer_with_tanstack.md +5 -3
- package/docs/vi/lsp.md +115 -176
- package/docs/vi/readme.md +24 -24
- package/docs/zh/configuration.md +10 -10
- package/docs/zh/interest_of_intlayer.md +24 -22
- package/docs/zh/intlayer_with_svelte_kit.md +1 -1
- package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
- package/docs/zh/intlayer_with_tanstack.md +5 -3
- package/docs/zh/lsp.md +113 -174
- package/docs/zh/readme.md +21 -21
- package/docs/zh-TW/interest_of_intlayer.md +24 -22
- package/package.json +6 -6
package/docs/ar/lsp.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-06-07
|
|
3
|
-
updatedAt: 2026-
|
|
4
|
-
title: خادم Intlayer
|
|
5
|
-
description:
|
|
3
|
+
updatedAt: 2026-08-10
|
|
4
|
+
title: خادم LSP الخاص بـ Intlayer
|
|
5
|
+
description: تعرّف على كيفية إتاحة خادم اللغة الخاص بـ Intlayer للانتقال إلى التعريف، والبحث عن المراجع، والمعاينة عند التحويم، والإكمال التلقائي للمفاتيح، والتشخيصات داخل محرّرك ووكيل الذكاء الاصطناعي لديك.
|
|
6
6
|
keywords:
|
|
7
7
|
- LSP
|
|
8
8
|
- خادم اللغة
|
|
9
|
-
-
|
|
9
|
+
- Go to Definition
|
|
10
|
+
- الإكمال التلقائي
|
|
11
|
+
- التشخيصات
|
|
10
12
|
- IDE
|
|
11
13
|
- Intlayer
|
|
12
14
|
- VS Code
|
|
@@ -16,56 +18,58 @@ slugs:
|
|
|
16
18
|
- doc
|
|
17
19
|
- lsp
|
|
18
20
|
history:
|
|
21
|
+
- version: 9.1.3
|
|
22
|
+
date: 2026-08-10
|
|
23
|
+
changes: "إضافة البحث عن المراجع والتحويم والإكمال التلقائي والتشخيصات"
|
|
19
24
|
- version: 8.12.0
|
|
20
25
|
date: 2026-06-01
|
|
21
26
|
changes: "Release LSP"
|
|
22
27
|
author: aymericzip
|
|
23
28
|
---
|
|
24
29
|
|
|
25
|
-
# خادم Intlayer
|
|
30
|
+
# خادم LSP الخاص بـ Intlayer
|
|
26
31
|
|
|
27
|
-
**خادم
|
|
32
|
+
**خادم اللغة الخاص بـ Intlayer** هو تنفيذ لـ [Language Server Protocol (LSP)](https://microsoft.github.io/language-server-protocol/) يجعل محرّرك — ووكيل الذكاء الاصطناعي لديك — على دراية بـ Intlayer. فهو يربط استدعاءً مثل `useIntlayer("home")` بملف `.content.ts` الذي يصرّح عنه، في الاتجاهين معًا.
|
|
28
33
|
|
|
29
34
|
---
|
|
30
35
|
|
|
31
|
-
##
|
|
36
|
+
## المزايا
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
| الميزة | الاختصار | الوصف |
|
|
39
|
+
| ------------------------ | ------------------- | ------------------------------------------------------------------------------------ |
|
|
40
|
+
| **الانتقال إلى التعريف** | `F12` / `Cmd+نقر` | الانتقال من مفتاح قاموس أو موضع استخدام حقل إلى تصريحه في ملف المحتوى |
|
|
41
|
+
| **البحث عن كل المراجع** | `Shift+F12` | من ملف محتوى، سرد كل مواضع الاستدعاء التي تستخدم ذلك المفتاح أو الحقل |
|
|
42
|
+
| **التحويم** | مرّر المؤشر فوقه | معاينة حقول القاموس، أو القيمة المترجمة لحقل ما، دون مغادرة الملف |
|
|
43
|
+
| **الإكمال التلقائي** | `"` `'` `` ` `` `.` | اقتراح مفاتيح القواميس المصرّح بها داخل الدالة، وحقول المحتوى بعد `.` أو عند التفكيك |
|
|
44
|
+
| **التشخيصات** | تلقائي | التحذير عندما لا يكون المفتاح مصرّحًا به في أي ملف محتوى |
|
|
34
45
|
|
|
35
|
-
|
|
46
|
+
هناك سلوكان إضافيان يستحقان المعرفة:
|
|
36
47
|
|
|
37
|
-
|
|
48
|
+
- **القواميس المدمجة** — المفتاح الموزّع على عدة ملفات محتوى يُعيد نتيجة واحدة لكل ملف، بحيث يمكنك الانتقال إلى كل تصريح.
|
|
49
|
+
- **متوافق مع المستودعات الأحادية** — يحدّد الخادم ملف `intlayer.config.*` _الأقرب_ إلى كل ملف، بحيث يحصل كل مشروع ضمن مساحة العمل نفسها على قواميسه الخاصة.
|
|
38
50
|
|
|
39
|
-
|
|
51
|
+
### الاستدعاءات المدعومة
|
|
40
52
|
|
|
41
|
-
|
|
53
|
+
يُقرأ المفتاح إمّا من وسيط نصّي موضعي أو من كائن خيارات (`{ namespace }`، `{ id }`).
|
|
42
54
|
|
|
43
|
-
|
|
55
|
+
| المكتبة | الاستدعاءات |
|
|
56
|
+
| --------------------------- | -------------------------------------------------------- |
|
|
57
|
+
| **Intlayer** | `useIntlayer`, `getIntlayer` |
|
|
58
|
+
| **i18next / react-i18next** | `useTranslation`, `getFixedT`, `t`, `Trans` |
|
|
59
|
+
| **next-intl / use-intl** | `useTranslations`, `getTranslations`, `createTranslator` |
|
|
60
|
+
| **react-intl** | `formatMessage`, `FormattedMessage` |
|
|
61
|
+
| **Lingui** | `useLingui`, `t`, `Trans`, `_` |
|
|
62
|
+
| **vue-i18n** | `useI18n` |
|
|
44
63
|
|
|
45
|
-
|
|
64
|
+
يعمل هذا مع كل حزم `*-intlayer` (`next-intlayer`، `react-intlayer`، `vue-intlayer`، `svelte-intlayer`، `solid-intlayer`، `preact-intlayer`، `angular-intlayer`، `lit-intlayer`، `express-intlayer`، `hono-intlayer`، `fastify-intlayer`، `intlayer`)، ومع حزم المحوّلات التوافقية التي تتيح لك الإبقاء على صياغة i18n الحالية لديك.
|
|
46
65
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
يدعم جميع حزم `*-intlayer` (`next-intlayer`, `react-intlayer`, `vue-intlayer`, `svelte-intlayer`, `solid-intlayer`, `preact-intlayer`, `angular-intlayer`, `lit-intlayer`, `express-intlayer`, `hono-intlayer`, `fastify-intlayer`, `adonis-intlayer`, `intlayer`).
|
|
50
|
-
|
|
51
|
-
### استدعاءات الجلب المدعومة
|
|
52
|
-
|
|
53
|
-
يكتشف الخادم استدعاءات الوظائف التالية ويستخرج الوسيط الأول لسلسلة الأحرف كمفتاح للقاموس:
|
|
54
|
-
|
|
55
|
-
| الوظيفة | مثال |
|
|
56
|
-
| ------------- | ----------------------------- |
|
|
57
|
-
| `useIntlayer` | `useIntlayer("hero")` |
|
|
58
|
-
| `getIntlayer` | `getIntlayer("hero", locale)` |
|
|
59
|
-
|
|
60
|
-
يتم تجاهل جينيريك TypeScript والوسائط الإضافية — فقط سلسلة المفاتيح هي ما يهم.
|
|
61
|
-
|
|
62
|
-
> تأخذ `useDictionary` و`getDictionary` كائن `Dictionary` مستورد بالفعل كوسيط أول لها بدلاً من مفتاح سلسلة أحرف، لذا فهي لا تستفيد من ميزة الانتقال إلى التعريف ولا يتم تتبعها بواسطة الخادم.
|
|
66
|
+
> تُقرأ القواميس من ناتج البناء، لذا شغّل `npx intlayer build` — أو أبقِ خادم التطوير قيد التشغيل — كي يجد الخادم ما يحلّه.
|
|
63
67
|
|
|
64
68
|
---
|
|
65
69
|
|
|
66
70
|
## التثبيت
|
|
67
71
|
|
|
68
|
-
|
|
72
|
+
يُوزَّع الخادم بوصفه الملف التنفيذي `intlayer-lsp` ضمن `@intlayer/lsp`:
|
|
69
73
|
|
|
70
74
|
```bash packageManager="npm"
|
|
71
75
|
npm install --save-dev @intlayer/lsp
|
|
@@ -83,43 +87,43 @@ pnpm add --save-dev @intlayer/lsp
|
|
|
83
87
|
bun add --dev @intlayer/lsp
|
|
84
88
|
```
|
|
85
89
|
|
|
86
|
-
|
|
90
|
+
ثبّته عالميًا بدلًا من ذلك (`npm install -g @intlayer/lsp`) إذا كان محرّرك يحتاج إلى `intlayer-lsp` ضمن `PATH` — وهذا ينطبق على إضافة Claude Code وعلى أي إعداد أدناه يستدعي الملف التنفيذي مباشرة.
|
|
87
91
|
|
|
88
92
|
---
|
|
89
93
|
|
|
90
|
-
## الإعداد
|
|
94
|
+
## الإعداد
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
<Tabs defaultTab="vscode">
|
|
97
|
+
<Tab label="VS Code" value="vscode">
|
|
93
98
|
|
|
94
|
-
|
|
99
|
+
ثبّت [إضافة Intlayer لـ VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). خادم اللغة مُضمَّن منذ الإصدار v8.12.0 ويبدأ تلقائيًا — **لا حاجة إلى أي إعداد**.
|
|
95
100
|
|
|
96
|
-
|
|
97
|
-
npm install -g @intlayer/lsp
|
|
98
|
-
```
|
|
101
|
+
راجع [توثيق إضافة VS Code](https://intlayer.org/doc/vs-code-extension) للاطلاع على بقية المزايا.
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
+
</Tab>
|
|
104
|
+
<Tab label="Cursor / Windsurf" value="cursor">
|
|
103
105
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
106
|
+
[Cursor](https://www.cursor.com/) و[Windsurf](https://windsurf.com/) نسختان مشتقتان من VS Code وتستخدمان منظومة الإضافات نفسها. ثبّت [إضافة Intlayer لـ VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) مرة واحدة ليُفعَّل الخادم تلقائيًا — **لا حاجة إلى أي إعداد**.
|
|
107
|
+
|
|
108
|
+
</Tab>
|
|
109
|
+
<Tab label="Claude Code" value="claude-code">
|
|
107
110
|
|
|
108
|
-
|
|
111
|
+
يوفّر Intlayer **إضافة لـ Claude Code** مستضافة في مستودع Intlayer. وهي تمنح Claude Code تحليلًا حقيقيًا للرموز الخاصة بمفاتيح قواميسك بدلًا من اللجوء إلى `grep`.
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
ضَع الملف التنفيذي ضمن `PATH`، ثم سجّل الـ marketplace وثبّت الإضافة:
|
|
111
114
|
|
|
112
115
|
```bash
|
|
116
|
+
npm install -g @intlayer/lsp
|
|
117
|
+
|
|
113
118
|
claude plugin marketplace add intlayer@github:aymericzip/intlayer
|
|
114
119
|
claude plugin install intlayer-lsp@intlayer
|
|
115
|
-
claude plugin enable intlayer-lsp@intlayer
|
|
116
120
|
```
|
|
117
121
|
|
|
118
|
-
|
|
122
|
+
يقوم `install` بتفعيل الإضافة أيضًا. **أعد تشغيل Claude Code** — إذ تُحمَّل خوادم اللغة عند بدء التشغيل، فلا تأثير للإضافة قبل ذلك.
|
|
119
123
|
|
|
120
|
-
|
|
124
|
+
عندئذٍ يشغّل Claude Code الخادم على ملفات `.ts` و`.tsx` و`.js` و`.jsx` و`.vue` و`.astro` و`.svelte`، ويستخدم `goToDefinition` و`findReferences` و`hover` أثناء تنقّلك في الشيفرة.
|
|
121
125
|
|
|
122
|
-
|
|
126
|
+
إذا ظل الانتقال إلى التعريف بلا استجابة، فقد يكون إصدار Claude Code لديك يقيّد أداة LSP خلف راية:
|
|
123
127
|
|
|
124
128
|
```json fileName="~/.claude/settings.json"
|
|
125
129
|
{
|
|
@@ -129,61 +133,10 @@ claude plugin enable intlayer-lsp@intlayer
|
|
|
129
133
|
}
|
|
130
134
|
```
|
|
131
135
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## الإعداد في VS Code (عبر الملحق — موصى به)
|
|
137
|
-
|
|
138
|
-
إذا كان لديك [ملحق Intlayer لـ VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension) مثبتًا، فسيبدأ خادم اللغة تلقائيًا. لا يلزم إعداد إضافي. تم دمج LSP مباشرة في إضافة VSCode منذ الإصدار 8.12.0.
|
|
139
|
-
|
|
140
|
-
> راجع [وثائق ملحق VS Code](https://intlayer.org/doc/vs-code-extension) لمعرفة كيفية التثبيت والميزات الأخرى.
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## الإعداد اليدوي في VS Code
|
|
145
|
-
|
|
146
|
-
إذا كنت لا تستخدم ملحق Intlayer، فيمكنك توصيل خادم اللغة يدويًا باستخدام ملحق عميل LSP عام مثل [**vscode-glspc**](https://marketplace.visualstudio.com/items?itemName=sibiraj-s.vscode-scss-formatter) أو عن طريق كتابة ملحق صغير خاص بك. الطريقة الموصى بها هي استخدام ملحق Intlayer.
|
|
147
|
-
|
|
148
|
-
كمرجع، يتم تشغيل الخادم عبر الملف الثنائي `intlayer-lsp` عبر stdio:
|
|
149
|
-
|
|
150
|
-
```json fileName=".vscode/settings.json"
|
|
151
|
-
{
|
|
152
|
-
"intlayer.languageServer.command": "npx",
|
|
153
|
-
"intlayer.languageServer.args": ["@intlayer/lsp"]
|
|
154
|
-
}
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
يقرأ ملحق Intlayer هذه الإعدادات لتشغيل الخادم. إذا كنت تعتمد فقط على الملحق، فلن تحتاج إلى أي إعدادات يدوية.
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## الإعداد في Cursor
|
|
162
|
-
|
|
163
|
-
[Cursor](https://www.cursor.com/) هو نسخة مخصصة من VS Code تأتي بميزات ذكاء اصطناعي مدمجة. ويستخدم نفس نظام الملحقات البيئي، لذا فإن **ملحق Intlayer لـ VS Code** يعمل بدون أي إعداد إضافي — قم بتثبيته مرة واحدة وسيكتشفه Cursor تلقائيًا.
|
|
164
|
-
|
|
165
|
-
إذا كنت تفضل الإعداد اليدوي، يقرأ Cursor أيضًا ملف `.vscode/settings.json` من جذر مساحة العمل، لذا ينطبق رمز VS Code أعلاه مباشرة.
|
|
166
|
-
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
## الإعداد في Windsurf
|
|
170
|
-
|
|
171
|
-
[Windsurf](https://windsurf.com/) (من تطوير Codeium) هو محرر آخر يعتمد على VS Code. قم بتثبيت ملحق Intlayer من سوق VS Code وسينشط خادم اللغة تلقائيًا، تمامًا كما هو الحال في VS Code وCursor.
|
|
172
|
-
|
|
173
|
-
للإعداد اليدوي، أنشئ ملف `.vscode/settings.json` في جذر المشروع:
|
|
174
|
-
|
|
175
|
-
```json fileName=".vscode/settings.json"
|
|
176
|
-
{
|
|
177
|
-
"intlayer.languageServer.command": "npx",
|
|
178
|
-
"intlayer.languageServer.args": ["@intlayer/lsp"]
|
|
179
|
-
}
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## الإعداد في Zed
|
|
136
|
+
</Tab>
|
|
137
|
+
<Tab label="Zed" value="zed">
|
|
185
138
|
|
|
186
|
-
|
|
139
|
+
يدعم Zed بروتوكول LSP أصلًا. أضف الخادم إلى إعدادات المستخدم لديك:
|
|
187
140
|
|
|
188
141
|
```json fileName="~/.config/zed/settings.json"
|
|
189
142
|
{
|
|
@@ -196,47 +149,21 @@ claude plugin enable intlayer-lsp@intlayer
|
|
|
196
149
|
}
|
|
197
150
|
},
|
|
198
151
|
"languages": {
|
|
199
|
-
"TypeScript": {
|
|
200
|
-
|
|
201
|
-
},
|
|
202
|
-
"
|
|
203
|
-
|
|
204
|
-
},
|
|
205
|
-
"JavaScript": {
|
|
206
|
-
"language_servers": ["intlayer-lsp", "..."]
|
|
207
|
-
},
|
|
208
|
-
"Vue.js": {
|
|
209
|
-
"language_servers": ["intlayer-lsp", "..."]
|
|
210
|
-
},
|
|
211
|
-
"Svelte": {
|
|
212
|
-
"language_servers": ["intlayer-lsp", "..."]
|
|
213
|
-
}
|
|
152
|
+
"TypeScript": { "language_servers": ["intlayer-lsp", "..."] },
|
|
153
|
+
"TSX": { "language_servers": ["intlayer-lsp", "..."] },
|
|
154
|
+
"JavaScript": { "language_servers": ["intlayer-lsp", "..."] },
|
|
155
|
+
"Vue.js": { "language_servers": ["intlayer-lsp", "..."] },
|
|
156
|
+
"Svelte": { "language_servers": ["intlayer-lsp", "..."] }
|
|
214
157
|
}
|
|
215
158
|
}
|
|
216
159
|
```
|
|
217
160
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
|
-
## الإعداد لواجهات خط أوامر وكلاء الذكاء الاصطناعي (Claude Code، Codex، إلخ)
|
|
223
|
-
|
|
224
|
-
يتمتع **Claude Code** بدعم من الدرجة الأولى لملحقات LSP — اتبع [إعداد ملحق Claude Code](#الإعداد-كملحق-لـ-claude-code) أعلاه للحصول على تجربة الانتقال إلى التعريف الكاملة مباشرة في جلسات الطرفية الخاصة بك.
|
|
225
|
-
|
|
226
|
-
لا تعمل **OpenAI Codex** وأدوات الطرفية الأخرى كعملاء LSP حتى الآن — فهي تقرأ وتكتب الملفات مباشرة بدلاً من الحفاظ على جلسة خادم لغة مستمرة. بالنسبة لهذه الأدوات، تأتي قيمة تشغيل خادم لغة LSP بشكل غير مباشر: عندما يكون الخادم نشطًا في محرر مصاحب (VS Code, Cursor, Windsurf, ...)، يتوفر فهرس المحرر المباشر لأي وكيل ذكاء اصطناعي يمكنه الاستعلام عنه من خلال السياق الذي يوفره المحرر (على سبيل المثال، Cursor Composer, Windsurf Cascade, GitHub Copilot Chat).
|
|
227
|
-
|
|
228
|
-
إذا كنت تعمل فقط في الطرفية دون فتح محرر، يمكنك بدء خادم اللغة في الخلفية حتى يكون جاهزًا لأي محرر يتصل لاحقًا بمساحة العمل نفسها:
|
|
229
|
-
|
|
230
|
-
```bash
|
|
231
|
-
# حافظ على تشغيل الخادم في الخلفية
|
|
232
|
-
npx @intlayer/lsp &
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
---
|
|
161
|
+
يُبقي العنصر النائب `"..."` خوادم اللغة الافتراضية في Zed جنبًا إلى جنب مع خادم Intlayer.
|
|
236
162
|
|
|
237
|
-
|
|
163
|
+
</Tab>
|
|
164
|
+
<Tab label="Neovim" value="neovim">
|
|
238
165
|
|
|
239
|
-
باستخدام [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)،
|
|
166
|
+
باستخدام [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)، سجّل إعداد خادم مخصّصًا:
|
|
240
167
|
|
|
241
168
|
```lua fileName="~/.config/nvim/init.lua"
|
|
242
169
|
local lspconfig = require('lspconfig')
|
|
@@ -245,7 +172,7 @@ local configs = require('lspconfig.configs')
|
|
|
245
172
|
if not configs.intlayer_lsp then
|
|
246
173
|
configs.intlayer_lsp = {
|
|
247
174
|
default_config = {
|
|
248
|
-
--
|
|
175
|
+
-- شغّل الخادم عبر npx لتفادي الحاجة إلى تثبيت عالمي
|
|
249
176
|
cmd = { 'npx', '--yes', '@intlayer/lsp' },
|
|
250
177
|
filetypes = {
|
|
251
178
|
'typescript',
|
|
@@ -267,21 +194,10 @@ end
|
|
|
267
194
|
lspconfig.intlayer_lsp.setup({})
|
|
268
195
|
```
|
|
269
196
|
|
|
270
|
-
بعد إعادة تشغيل Neovim،
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
|
-
## الإعداد اليدوي في المحررات الأخرى
|
|
275
|
-
|
|
276
|
-
يمكن لأي محرر يدعم بروتوكول خادم اللغة استخدام `@intlayer/lsp`. مواصفات الخادم:
|
|
277
|
-
|
|
278
|
-
- **النقل** – Node.js IPC / stdio (قياسي)
|
|
279
|
-
- **الملف التشغيلي** – `npx @intlayer/lsp` (أو الملف الثنائي `intlayer-lsp` المثبت محليًا)
|
|
280
|
-
- **القدرات** – `definitionProvider: true`, `textDocumentSync: Incremental`
|
|
197
|
+
بعد إعادة تشغيل Neovim، يؤدي `gd` فوق مفتاح قاموس إلى الانتقال إلى التعريف، ويؤدي `gr` إلى البحث عن المراجع.
|
|
281
198
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
### مثال: coc.nvim
|
|
199
|
+
</Tab>
|
|
200
|
+
<Tab label="coc.nvim" value="coc">
|
|
285
201
|
|
|
286
202
|
```json fileName="~/.config/nvim/coc-settings.json"
|
|
287
203
|
{
|
|
@@ -307,9 +223,14 @@ lspconfig.intlayer_lsp.setup({})
|
|
|
307
223
|
}
|
|
308
224
|
```
|
|
309
225
|
|
|
310
|
-
|
|
226
|
+
</Tab>
|
|
227
|
+
<Tab label="Helix" value="helix">
|
|
311
228
|
|
|
312
229
|
```toml fileName="~/.config/helix/languages.toml"
|
|
230
|
+
[language-server.intlayer-lsp]
|
|
231
|
+
command = "npx"
|
|
232
|
+
args = ["@intlayer/lsp"]
|
|
233
|
+
|
|
313
234
|
[[language]]
|
|
314
235
|
name = "typescript"
|
|
315
236
|
language-servers = ["intlayer-lsp", "typescript-language-server"]
|
|
@@ -317,36 +238,54 @@ language-servers = ["intlayer-lsp", "typescript-language-server"]
|
|
|
317
238
|
[[language]]
|
|
318
239
|
name = "tsx"
|
|
319
240
|
language-servers = ["intlayer-lsp", "typescript-language-server"]
|
|
320
|
-
|
|
321
|
-
[language-server.intlayer-lsp]
|
|
322
|
-
command = "npx"
|
|
323
|
-
args = ["@intlayer/lsp"]
|
|
324
241
|
```
|
|
325
242
|
|
|
243
|
+
</Tab>
|
|
244
|
+
<Tab label="محرّرات أخرى" value="other">
|
|
245
|
+
|
|
246
|
+
يمكن لأي محرّر يدعم LSP تشغيل `@intlayer/lsp`. وجّهه إلى:
|
|
247
|
+
|
|
248
|
+
- **الملف التنفيذي** — `npx @intlayer/lsp`، أو الملف التنفيذي `intlayer-lsp`
|
|
249
|
+
- **النقل** — stdio (قياسي)
|
|
250
|
+
- **القدرات** — `definitionProvider`، `referencesProvider`، `hoverProvider`، `completionProvider` (محارف التفعيل `"` `'` `` ` `` `.`)، تشخيصات مدفوعة، `textDocumentSync: Incremental`
|
|
251
|
+
- **أنماط الجذر** — `intlayer.config.ts`، `intlayer.config.js`، `package.json`
|
|
252
|
+
|
|
253
|
+
راجع توثيق LSP الخاص بمحرّرك لمعرفة صيغة الإعداد الدقيقة.
|
|
254
|
+
|
|
255
|
+
</Tab>
|
|
256
|
+
</Tabs>
|
|
257
|
+
|
|
326
258
|
---
|
|
327
259
|
|
|
328
|
-
##
|
|
260
|
+
## ملاحظة حول وكلاء الذكاء الاصطناعي في الطرفية
|
|
329
261
|
|
|
330
|
-
|
|
262
|
+
**Claude Code** يعمل كعميل LSP حقيقي — انظر التبويب أعلاه.
|
|
331
263
|
|
|
332
|
-
|
|
264
|
+
**OpenAI Codex** ومعظم أدوات الطرفية الأخرى ليست عملاء LSP: فهي تقرأ الملفات وتكتبها مباشرة. تشغيل الخادم وحده لا يفيدها؛ إنما تأتي الفائدة من كونه نشطًا في محرّر مرافق يستطيع الوكيل الاستعلام عن فهرسه (Cursor Composer، Windsurf Cascade، Copilot Chat).
|
|
333
265
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
6. يعيد مصفوفة من كائنات `Location` — واحد لكل ملف مصدر.
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## آلية العمل
|
|
269
|
+
|
|
270
|
+
لكل ملف، يحدّد الخادم أقرب ملف `intlayer.config.*` ويحمّل إعدادات ذلك المشروع للعثور على القواميس المُصرَّفة. وتُخزَّن الإعدادات والقواميس وقائمة الملفات المصدرية مؤقتًا بمُدد صلاحية قصيرة، ويُبطَل التخزين كلما تغيّر ملف محتوى مُراقَب.
|
|
340
271
|
|
|
341
|
-
|
|
272
|
+
عند كل طلب، يحلّل الخادم المستند (عبر [oxc](https://oxc.rs/)) ويفحص موضع المؤشر:
|
|
273
|
+
|
|
274
|
+
1. **فوق نص المفتاح** (`useIntlayer("home")`) ← يُعيد كل ملف محتوى يصرّح بذلك المفتاح، مع التموضع عند سطر `key:` الخاص به.
|
|
275
|
+
2. **فوق موضع استخدام حقل** (`content.title`، أو خاصية مُفكَّكة، أو `t('path.to.field')`، أو `<Trans>`، …) ← يتتبّع المتغيّر رجوعًا إلى قاموسه ويُعيد الحقل المطابق داخل ملفات المحتوى.
|
|
276
|
+
3. **انطلاقًا من ملف محتوى** ← ينفّذ البحث العكسي، فيمسح مصادر المشروع بحثًا عن مواضع استدعاء ذلك المفتاح أو الحقل.
|
|
342
277
|
|
|
343
278
|
---
|
|
344
279
|
|
|
345
280
|
## استكشاف الأخطاء وإصلاحها
|
|
346
281
|
|
|
347
|
-
|
|
|
348
|
-
|
|
|
349
|
-
|
|
|
350
|
-
|
|
|
351
|
-
|
|
|
352
|
-
|
|
|
282
|
+
| العَرَض | السبب المرجّح | الحل |
|
|
283
|
+
| ------------------------------------------ | -------------------------- | ------------------------------------------------------------ |
|
|
284
|
+
| لا يحدث أي شيء إطلاقًا | الخادم غير مُشغَّل | تحقّق من تثبيت `@intlayer/lsp` ومن أن محرّرك يشغّله |
|
|
285
|
+
| يعمل في المحرّر ولا يعمل في Claude Code | تثبيت الإضافة أثناء الجلسة | أعد تشغيل Claude Code — فخوادم اللغة تُحمَّل عند بدء التشغيل |
|
|
286
|
+
| لا يُعثر على تعريفات لمفتاح ما | لم تُبنَ القواميس | شغّل `npx intlayer build`، أو ابدأ خادم التطوير |
|
|
287
|
+
| الإبلاغ عن كل المفاتيح بأنها غير مصرّح بها | تعذّر تحليل الإعدادات | تأكّد من وجود `intlayer.config.ts` (أو `.js`) في جذر مشروعك |
|
|
288
|
+
| استخدام مشروع خاطئ داخل مستودع أحادي | غياب إعداد لكل حزمة | أضف `intlayer.config.*` إلى كل حزمة تصرّح بمحتواها الخاص |
|
|
289
|
+
| تعطّل الخادم عند البدء | إصدار Node.js قديم جدًا | يتطلّب Node.js ≥ 14.18 |
|
|
290
|
+
|
|
291
|
+
في VS Code، يسجّل الخادم مخرجاته في **عرض ← الإخراج ← «Intlayer LSP»** — وهو مفيد لتأكيد أي إعداد جرى تحليله وكم قاموسًا عُثر عليه.
|
package/docs/ar/readme.md
CHANGED
|
@@ -46,27 +46,27 @@ Intlayer هو **حل i18n حديث** لتطبيقات الويب والهاتف
|
|
|
46
46
|
|
|
47
47
|
## الفوائد الرئيسية لـ Intlayer:
|
|
48
48
|
|
|
49
|
-
| الميزة | الوصف
|
|
50
|
-
| --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
51
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **دعم عبر الأُطر المتعددة**<br><br>يتوافق Intlayer مع جميع الأُطر والمكتبات الرئيسية، بما في ذلك Next.js وReact وVite وVue.js وNuxt وPreact وExpress والمزيد.
|
|
52
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **إدارة المحتوى مدعومة بجافا سكريبت**<br><br>استفد من مرونة جافا سكريبت لتعريف وإدارة محتواك بكفاءة. <br><br> - [إعلان المحتوى](https://intlayer.org/doc/concept/content)
|
|
53
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **ملف إعلان المحتوى لكل لغة**<br><br>سرّع عملية تطويرك من خلال إعلان محتواك مرة واحدة، قبل التوليد التلقائي.<br><br> - [ملف إعلان المحتوى لكل لغة](https://intlayer.org/doc/concept/per-locale-file)
|
|
54
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **المترجم (Compiler)**<br><br>يقوم مترجم Intlayer تلقائيًا باستخراج المحتوى من المكونات وتوليد ملفات القاموس.<br><br> - [Compiler](https://intlayer.org/doc/compiler)
|
|
55
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **بيئة آمنة من حيث النوع**<br><br>استفد من TypeScript لضمان أن تعريفات المحتوى والكود الخاص بك خالية من الأخطاء، مع الاستفادة أيضًا من الإكمال التلقائي في بيئة التطوير.<br><br> - [تكوين TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript)
|
|
56
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **إعداد مبسط**<br><br>ابدأ بسرعة مع أقل قدر من التكوين. قم بضبط الإعدادات الخاصة بالتدويل، والتوجيه، والذكاء الاصطناعي، والبناء، وإدارة المحتوى بسهولة.<br><br> - [استكشاف تكامل Next.js](https://intlayer.org/doc/environment/nextjs)
|
|
57
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **استرجاع المحتوى المبسط**<br><br>لا حاجة لاستدعاء دالة `t` لكل جزء من المحتوى. استرجع كل محتواك مباشرة باستخدام خطاف (hook) واحد.<br><br> - [تكامل React](https://intlayer.org/doc/environment/create-react-app)
|
|
58
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **تنفيذ متسق لمكونات الخادم**<br><br>مناسب تمامًا لمكونات الخادم في Next.js، استخدم نفس التنفيذ لكل من مكونات العميل والخادم، دون الحاجة لتمرير دالة `t` عبر كل مكون خادم. <br><br> - [مكونات الخادم](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code)
|
|
59
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **قاعدة شفرة منظمة**<br><br>حافظ على تنظيم قاعدة الشفرة الخاصة بك بشكل أفضل: مكون واحد = قاموس واحد في نفس المجلد. الترجمات قريبة من مكوناتها الخاصة، مما يحسن الوضوح وسهولة الصيانة. <br><br> - [كيف يعمل Intlayer](https://intlayer.org/doc/concept/how-works-intlayer)
|
|
60
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **توجيه محسّن**<br><br>دعم كامل لتوجيه التطبيقات، يتكيف بسلاسة مع هياكل التطبيقات المعقدة، لـ Next.js و React و Vite و Vue.js وغيرها.<br><br> - [استكشاف تكامل Next.js](https://intlayer.org/doc/environment/nextjs)
|
|
61
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **دعم ماركداون**<br><br>استيراد وتفسير ملفات اللغة وملفات ماركداون عن بُعد للمحتوى متعدد اللغات مثل سياسات الخصوصية والوثائق وغيرها. تفسير وجعل بيانات التعريف الخاصة بماركداون متاحة في كودك.<br><br> - [ملفات المحتوى](https://intlayer.org/doc/concept/content/file)
|
|
62
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **محرر مرئي ونظام إدارة محتوى مجاني**<br><br>يتوفر محرر مرئي ونظام إدارة محتوى مجاني لكتاب المحتوى، مما يلغي الحاجة إلى منصات التوطين. حافظ على تزامن محتواك باستخدام Git، أو قم بإخراجه كليًا أو جزئيًا باستخدام نظام إدارة المحتوى.<br><br> - [محرر Intlayer](https://intlayer.org/doc/concept/editor) <br> - [نظام إدارة محتوى Intlayer](https://intlayer.org/doc/concept/cms)
|
|
63
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **محتوى قابل للتقليل (Tree-shakable)**<br><br>محتوى قابل للتقليل يقلل من حجم الحزمة النهائية. يقوم بتحميل المحتوى لكل مكون، مستبعدًا أي محتوى غير مستخدم. يدعم التحميل الكسول (lazy loading) لتحسين الكفاءة. <br><br> - [تحسين بناء التطبيق](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization)
|
|
64
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **التصيير الثابت (Static Rendering)**<br><br>لا يعيق التصيير الثابت. <br><br> - [تكامل Next.js](https://intlayer.org/doc/environment/nextjs)
|
|
65
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **ترجمة مدعومة بالذكاء الاصطناعي**<br><br>حوّل موقعك إلى 231 لغة بنقرة واحدة باستخدام أدوات الترجمة المتقدمة من Intlayer التي تستخدم مزود الذكاء الاصطناعي / مفتاح API الخاص بك. <br><br> - [التكامل مع CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [واجهة سطر الأوامر Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [الملء التلقائي](https://intlayer.org/doc/concept/auto-fill)
|
|
66
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **تكامل خادم MCP**<br><br>يوفر خادم MCP (Model Context Protocol) لأتمتة بيئة التطوير، مما يتيح إدارة المحتوى وسير عمل i18n بسلاسة داخل بيئتك. <br><br> - [خادم MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/mcp_server.md)
|
|
67
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **امتداد VSCode**<br><br>يوفر Intlayer امتدادًا لـ VSCode لمساعدتك في إدارة المحتوى والترجمات، وبناء القواميس، وترجمة المحتوى، والمزيد. <br><br> - [امتداد VSCode](https://intlayer.org/doc/vs-code-extension)
|
|
68
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **التشغيل البيني**<br><br>يسمح بالتشغيل البيني مع react-i18next و next-i18next و next-intl و react-intl و vue-i18n. <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) <br> - [Intlayer و vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
|
|
69
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **الأداء والاختبار المقارن**<br><br>يستخدم تقنية tree-shaking المتقدمة والتحميل الديناميكي لتعزيز الأداء والحفاظ على الحل خفيفًا قدر الإمكان. <br><br> - [الأداء والاختبار المقارن](https://intlayer.org/doc/benchmark)
|
|
49
|
+
| الميزة | الوصف |
|
|
50
|
+
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
51
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Feature" width="700"> | **دعم عبر الأُطر المتعددة**<br><br>يتوافق Intlayer مع جميع الأُطر والمكتبات الرئيسية، بما في ذلك Next.js وReact وVite وVue.js وNuxt وPreact وExpress والمزيد. |
|
|
52
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="Feature" width="700"> | **إدارة المحتوى مدعومة بجافا سكريبت**<br><br>استفد من مرونة جافا سكريبت لتعريف وإدارة محتواك بكفاءة. <br><br> - [إعلان المحتوى](https://intlayer.org/doc/concept/content) |
|
|
53
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Feature" width="700"> | **ملف إعلان المحتوى لكل لغة**<br><br>سرّع عملية تطويرك من خلال إعلان محتواك مرة واحدة، قبل التوليد التلقائي.<br><br> - [ملف إعلان المحتوى لكل لغة](https://intlayer.org/doc/concept/per-locale-file) |
|
|
54
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Feature" width="700"> | **المترجم (Compiler)**<br><br>يقوم مترجم Intlayer تلقائيًا باستخراج المحتوى من المكونات وتوليد ملفات القاموس.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
|
|
55
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="Feature" width="700"> | **بيئة آمنة من حيث النوع**<br><br>استفد من TypeScript لضمان أن تعريفات المحتوى والكود الخاص بك خالية من الأخطاء، مع الاستفادة أيضًا من الإكمال التلقائي في بيئة التطوير.<br><br> - [تكوين TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
56
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Feature" width="700"> | **إعداد مبسط**<br><br>ابدأ بسرعة مع أقل قدر من التكوين. قم بضبط الإعدادات الخاصة بالتدويل، والتوجيه، والذكاء الاصطناعي، والبناء، وإدارة المحتوى بسهولة.<br><br> - [استكشاف تكامل Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
57
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Feature" width="700"> | **استرجاع المحتوى المبسط**<br><br>لا حاجة لاستدعاء دالة `t` لكل جزء من المحتوى. استرجع كل محتواك مباشرة باستخدام خطاف (hook) واحد.<br><br> - [تكامل React](https://intlayer.org/doc/environment/create-react-app) |
|
|
58
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Feature" width="700"> | **تنفيذ متسق لمكونات الخادم**<br><br>مناسب تمامًا لمكونات الخادم في Next.js، استخدم نفس التنفيذ لكل من مكونات العميل والخادم، دون الحاجة لتمرير دالة `t` عبر كل مكون خادم. <br><br> - [مكونات الخادم](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
59
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Feature" width="700"> | **قاعدة شفرة منظمة**<br><br>حافظ على تنظيم قاعدة الشفرة الخاصة بك بشكل أفضل: مكون واحد = قاموس واحد في نفس المجلد. الترجمات قريبة من مكوناتها الخاصة، مما يحسن الوضوح وسهولة الصيانة. <br><br> - [كيف يعمل Intlayer](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
60
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Feature" width="700"> | **توجيه محسّن**<br><br>دعم كامل لتوجيه التطبيقات، يتكيف بسلاسة مع هياكل التطبيقات المعقدة، لـ Next.js و React و Vite و Vue.js وغيرها.<br><br> - [استكشاف تكامل Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
61
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Feature" width="700"> | **دعم ماركداون**<br><br>استيراد وتفسير ملفات اللغة وملفات ماركداون عن بُعد للمحتوى متعدد اللغات مثل سياسات الخصوصية والوثائق وغيرها. تفسير وجعل بيانات التعريف الخاصة بماركداون متاحة في كودك.<br><br> - [ملفات المحتوى](https://intlayer.org/doc/concept/content/file) |
|
|
62
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="Feature" width="700"> | **محرر مرئي ونظام إدارة محتوى مجاني**<br><br>يتوفر محرر مرئي ونظام إدارة محتوى مجاني لكتاب المحتوى، مما يلغي الحاجة إلى منصات التوطين. حافظ على تزامن محتواك باستخدام Git، أو قم بإخراجه كليًا أو جزئيًا باستخدام نظام إدارة المحتوى.<br><br> - [محرر Intlayer](https://intlayer.org/doc/concept/editor) <br> - [نظام إدارة محتوى Intlayer](https://intlayer.org/doc/concept/cms) |
|
|
63
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Feature" width="700"> | **محتوى قابل للتقليل (Tree-shakable)**<br><br>محتوى قابل للتقليل يقلل من حجم الحزمة النهائية. يقوم بتحميل المحتوى لكل مكون، مستبعدًا أي محتوى غير مستخدم. يدعم التحميل الكسول (lazy loading) لتحسين الكفاءة. <br><br> - [تحسين بناء التطبيق](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
64
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Feature" width="700"> | **التصيير الثابت (Static Rendering)**<br><br>لا يعيق التصيير الثابت. <br><br> - [تكامل Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
65
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="Feature" width="700"> | **ترجمة مدعومة بالذكاء الاصطناعي**<br><br>حوّل موقعك إلى 231 لغة بنقرة واحدة باستخدام أدوات الترجمة المتقدمة من Intlayer التي تستخدم مزود الذكاء الاصطناعي / مفتاح API الخاص بك. <br><br> - [التكامل مع CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [واجهة سطر الأوامر Intlayer CLI](https://intlayer.org/doc/concept/cli) <br> - [الملء التلقائي](https://intlayer.org/doc/concept/auto-fill) |
|
|
66
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="Feature" width="700"> | **تكامل خادم MCP**<br><br>يوفر خادم MCP (Model Context Protocol) لأتمتة بيئة التطوير، مما يتيح إدارة المحتوى وسير عمل i18n بسلاسة داخل بيئتك. <br><br> - [خادم MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/mcp_server.md) |
|
|
67
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="Feature" width="700"> | **امتداد VSCode**<br><br>يوفر Intlayer امتدادًا لـ VSCode لمساعدتك في إدارة المحتوى والترجمات، وبناء القواميس، وترجمة المحتوى، والمزيد. <br><br> - [امتداد VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
68
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Feature" width="700"> | **التشغيل البيني**<br><br>يسمح بالتشغيل البيني مع react-i18next و next-i18next و next-intl و react-intl و vue-i18n. <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) <br> - [Intlayer و vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) <br> - [محوّلات التوافق في Intlayer](https://intlayer.org/doc/compatibility) |
|
|
69
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/benchmark.png?raw=true" alt="Feature" width="700"> | **الأداء والاختبار المقارن**<br><br>يستخدم تقنية tree-shaking المتقدمة والتحميل الديناميكي لتعزيز الأداء والحفاظ على الحل خفيفًا قدر الإمكان. <br><br> - [الأداء والاختبار المقارن](https://intlayer.org/doc/benchmark) |
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
@@ -74,7 +74,7 @@ Intlayer هو **حل i18n حديث** لتطبيقات الويب والهاتف
|
|
|
74
74
|
|
|
75
75
|
ابدأ رحلتك مع Intlayer اليوم واختبر نهجًا أكثر سلاسة وقوة في التدويل.
|
|
76
76
|
|
|
77
|
-
<a href="https://intlayer.org/doc/
|
|
77
|
+
<a href="https://intlayer.org/ar/doc/concept/content" rel="">
|
|
78
78
|
<img src="https://img.shields.io/badge/ابدأ-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
79
79
|
</a>
|
|
80
80
|
|
|
@@ -173,7 +173,7 @@ const HomePage = () => {
|
|
|
173
173
|
<li><a href="https://intlayer.org/doc/concept/cms" rel=''>نظام إدارة المحتوى Intlayer CMS</a></li>
|
|
174
174
|
<li><a href="https://intlayer.org/doc/concept/content" rel=''>القاموس</a>
|
|
175
175
|
<ul>
|
|
176
|
-
<li><a href="https://intlayer.org/doc/concept/
|
|
176
|
+
<li><a href="https://intlayer.org/doc/concept/per-locale-file" rel=''>ملف إعلان المحتوى لكل لغة</a></li>
|
|
177
177
|
<li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>الترجمة</a></li>
|
|
178
178
|
<li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>التعداد</a></li>
|
|
179
179
|
<li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>الشرط</a></li>
|
|
@@ -194,7 +194,7 @@ const HomePage = () => {
|
|
|
194
194
|
<ul>
|
|
195
195
|
<li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
|
|
196
196
|
<li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (موجه التطبيق)</a></li>
|
|
197
|
-
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-
|
|
197
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-page-router" rel=''>Next.js موجه الصفحات</a></li>
|
|
198
198
|
<li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js باستخدام المترجم</a></li>
|
|
199
199
|
</ul>
|
|
200
200
|
</li>
|
|
@@ -223,7 +223,7 @@ const HomePage = () => {
|
|
|
223
223
|
<li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
|
|
224
224
|
<li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
|
|
225
225
|
<li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
|
|
226
|
-
<li><a href="https://intlayer.org/doc/environment/
|
|
226
|
+
<li><a href="https://intlayer.org/doc/environment/nuxt-and-vue" rel=''>Vite + Nuxt</a></li>
|
|
227
227
|
<li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
|
|
228
228
|
<li><a href="https://intlayer.org/doc/environment/angular" rel=''>أنجولار</a></li>
|
|
229
229
|
<li>
|