@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.
Files changed (162) hide show
  1. package/README.md +24 -24
  2. package/blog/ar/rag_powered_documentation_assistant.md +1 -1
  3. package/blog/pl/rag_powered_documentation_assistant.md +1 -1
  4. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -2
  5. package/dist/cjs/authors2.cjs +0 -1
  6. package/dist/cjs/common.cjs.map +1 -1
  7. package/dist/cjs/generated/blog.entry.cjs +4 -2
  8. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  9. package/dist/cjs/generated/docs.entry.cjs +4 -2
  10. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  11. package/dist/cjs/generated/frequentQuestions.entry.cjs +4 -2
  12. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  13. package/dist/cjs/generated/legal.entry.cjs +4 -2
  14. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  15. package/dist/esm/generated/blog.entry.mjs +4 -2
  16. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  17. package/dist/esm/generated/docs.entry.mjs +4 -2
  18. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  19. package/dist/esm/generated/frequentQuestions.entry.mjs +4 -2
  20. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  21. package/dist/esm/generated/legal.entry.mjs +4 -2
  22. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  23. package/docs/ar/configuration.md +10 -10
  24. package/docs/ar/interest_of_intlayer.md +24 -22
  25. package/docs/ar/intlayer_with_express.md +1 -1
  26. package/docs/ar/intlayer_with_svelte_kit.md +1 -1
  27. package/docs/ar/intlayer_with_tanstack+solid.md +5 -3
  28. package/docs/ar/intlayer_with_tanstack.md +5 -3
  29. package/docs/ar/lsp.md +114 -175
  30. package/docs/ar/readme.md +25 -25
  31. package/docs/bn/configuration.md +10 -10
  32. package/docs/bn/interest_of_intlayer.md +24 -22
  33. package/docs/cs/configuration.md +10 -10
  34. package/docs/cs/interest_of_intlayer.md +24 -22
  35. package/docs/de/configuration.md +10 -10
  36. package/docs/de/interest_of_intlayer.md +24 -22
  37. package/docs/de/intlayer_with_svelte_kit.md +1 -1
  38. package/docs/de/intlayer_with_tanstack+solid.md +5 -3
  39. package/docs/de/intlayer_with_tanstack.md +5 -3
  40. package/docs/de/lsp.md +111 -172
  41. package/docs/de/readme.md +24 -24
  42. package/docs/en/configuration.md +10 -10
  43. package/docs/en/interest_of_intlayer.md +24 -22
  44. package/docs/en/intlayer_with_svelte_kit.md +1 -1
  45. package/docs/en/intlayer_with_tanstack+solid.md +5 -3
  46. package/docs/en/intlayer_with_tanstack.md +5 -3
  47. package/docs/en/lsp.md +109 -170
  48. package/docs/en/readme.md +24 -24
  49. package/docs/en-GB/configuration.md +10 -10
  50. package/docs/en-GB/interest_of_intlayer.md +24 -22
  51. package/docs/en-GB/intlayer_with_svelte_kit.md +1 -1
  52. package/docs/en-GB/intlayer_with_tanstack+solid.md +5 -3
  53. package/docs/en-GB/intlayer_with_tanstack.md +5 -3
  54. package/docs/en-GB/lsp.md +109 -170
  55. package/docs/en-GB/readme.md +24 -24
  56. package/docs/es/configuration.md +10 -10
  57. package/docs/es/interest_of_intlayer.md +24 -22
  58. package/docs/es/intlayer_with_svelte_kit.md +1 -1
  59. package/docs/es/intlayer_with_tanstack+solid.md +5 -3
  60. package/docs/es/intlayer_with_tanstack.md +5 -3
  61. package/docs/es/lsp.md +114 -175
  62. package/docs/es/readme.md +24 -24
  63. package/docs/fr/configuration.md +10 -10
  64. package/docs/fr/interest_of_intlayer.md +24 -22
  65. package/docs/fr/intlayer_with_svelte_kit.md +1 -1
  66. package/docs/fr/intlayer_with_tanstack+solid.md +5 -3
  67. package/docs/fr/intlayer_with_tanstack.md +5 -3
  68. package/docs/fr/lsp.md +110 -171
  69. package/docs/fr/readme.md +24 -24
  70. package/docs/hi/configuration.md +10 -10
  71. package/docs/hi/interest_of_intlayer.md +24 -22
  72. package/docs/hi/intlayer_with_express.md +1 -1
  73. package/docs/hi/intlayer_with_svelte_kit.md +1 -1
  74. package/docs/hi/intlayer_with_tanstack+solid.md +5 -3
  75. package/docs/hi/intlayer_with_tanstack.md +5 -3
  76. package/docs/hi/lsp.md +113 -174
  77. package/docs/hi/readme.md +24 -24
  78. package/docs/id/configuration.md +10 -10
  79. package/docs/id/interest_of_intlayer.md +24 -22
  80. package/docs/id/intlayer_with_svelte_kit.md +1 -1
  81. package/docs/id/intlayer_with_tanstack+solid.md +5 -3
  82. package/docs/id/intlayer_with_tanstack.md +5 -3
  83. package/docs/id/lsp.md +113 -174
  84. package/docs/id/readme.md +24 -24
  85. package/docs/it/configuration.md +10 -10
  86. package/docs/it/interest_of_intlayer.md +24 -22
  87. package/docs/it/intlayer_with_svelte_kit.md +1 -1
  88. package/docs/it/intlayer_with_tanstack+solid.md +5 -3
  89. package/docs/it/intlayer_with_tanstack.md +5 -3
  90. package/docs/it/lsp.md +115 -176
  91. package/docs/it/readme.md +24 -24
  92. package/docs/ja/configuration.md +10 -10
  93. package/docs/ja/interest_of_intlayer.md +24 -22
  94. package/docs/ja/intlayer_with_tanstack+solid.md +5 -3
  95. package/docs/ja/intlayer_with_tanstack.md +5 -3
  96. package/docs/ja/lsp.md +113 -174
  97. package/docs/ja/readme.md +24 -24
  98. package/docs/ko/configuration.md +10 -10
  99. package/docs/ko/interest_of_intlayer.md +24 -22
  100. package/docs/ko/intlayer_with_svelte_kit.md +1 -1
  101. package/docs/ko/intlayer_with_tanstack+solid.md +5 -3
  102. package/docs/ko/intlayer_with_tanstack.md +5 -3
  103. package/docs/ko/lsp.md +112 -173
  104. package/docs/ko/readme.md +24 -24
  105. package/docs/nl/configuration.md +10 -10
  106. package/docs/nl/interest_of_intlayer.md +24 -22
  107. package/docs/pl/configuration.md +10 -10
  108. package/docs/pl/interest_of_intlayer.md +4 -2
  109. package/docs/pl/intlayer_with_svelte_kit.md +1 -1
  110. package/docs/pl/intlayer_with_tanstack+solid.md +5 -3
  111. package/docs/pl/intlayer_with_tanstack.md +5 -3
  112. package/docs/pl/lsp.md +115 -176
  113. package/docs/pl/readme.md +24 -24
  114. package/docs/pt/configuration.md +10 -10
  115. package/docs/pt/interest_of_intlayer.md +24 -22
  116. package/docs/pt/intlayer_with_svelte_kit.md +1 -1
  117. package/docs/pt/intlayer_with_tanstack+solid.md +5 -3
  118. package/docs/pt/intlayer_with_tanstack.md +5 -3
  119. package/docs/pt/lsp.md +113 -174
  120. package/docs/pt/readme.md +24 -24
  121. package/docs/ru/configuration.md +10 -10
  122. package/docs/ru/interest_of_intlayer.md +24 -22
  123. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  124. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  125. package/docs/ru/intlayer_with_svelte_kit.md +1 -1
  126. package/docs/ru/intlayer_with_tanstack+solid.md +5 -3
  127. package/docs/ru/intlayer_with_tanstack.md +5 -3
  128. package/docs/ru/lsp.md +112 -173
  129. package/docs/ru/readme.md +24 -24
  130. package/docs/tr/configuration.md +10 -10
  131. package/docs/tr/interest_of_intlayer.md +24 -22
  132. package/docs/tr/intlayer_with_svelte_kit.md +1 -1
  133. package/docs/tr/intlayer_with_tanstack+solid.md +5 -3
  134. package/docs/tr/intlayer_with_tanstack.md +5 -3
  135. package/docs/tr/lsp.md +113 -174
  136. package/docs/tr/readme.md +24 -24
  137. package/docs/uk/configuration.md +10 -10
  138. package/docs/uk/interest_of_intlayer.md +4 -2
  139. package/docs/uk/intlayer_with_svelte_kit.md +1 -1
  140. package/docs/uk/intlayer_with_tanstack+solid.md +5 -3
  141. package/docs/uk/intlayer_with_tanstack.md +5 -3
  142. package/docs/uk/lsp.md +113 -174
  143. package/docs/uk/per_locale_file.md +1 -1
  144. package/docs/uk/readme.md +24 -24
  145. package/docs/ur/configuration.md +10 -10
  146. package/docs/ur/interest_of_intlayer.md +24 -22
  147. package/docs/vi/configuration.md +10 -10
  148. package/docs/vi/interest_of_intlayer.md +24 -22
  149. package/docs/vi/intlayer_with_svelte_kit.md +1 -1
  150. package/docs/vi/intlayer_with_tanstack+solid.md +5 -3
  151. package/docs/vi/intlayer_with_tanstack.md +5 -3
  152. package/docs/vi/lsp.md +115 -176
  153. package/docs/vi/readme.md +24 -24
  154. package/docs/zh/configuration.md +10 -10
  155. package/docs/zh/interest_of_intlayer.md +24 -22
  156. package/docs/zh/intlayer_with_svelte_kit.md +1 -1
  157. package/docs/zh/intlayer_with_tanstack+solid.md +5 -3
  158. package/docs/zh/intlayer_with_tanstack.md +5 -3
  159. package/docs/zh/lsp.md +113 -174
  160. package/docs/zh/readme.md +21 -21
  161. package/docs/zh-TW/interest_of_intlayer.md +24 -22
  162. 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-05-31
4
- title: خادم Intlayer LSP
5
- description: تعرف على كيفية توفير خادم لغة Intlayer لميزة الانتقال إلى التعريف وميزات IDE الأخرى لاستدعاءات useIntlayer وgetIntlayer والاستدعاءات ذات الصلة عبر جميع المحررات المدعومة.
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 LSP
30
+ # خادم LSP الخاص بـ Intlayer
26
31
 
27
- **خادم لغة Intlayer (LSP)** هو تطبيق لـ [بروتوكول خادم اللغة (LSP)](https://microsoft.github.io/language-server-protocol/) يعمل على تحسين بيئة التطوير المتكاملة (IDE) الخاصة بك بذكاء يدعم Intlayer. يوفر حاليًا ميزة **الانتقال إلى التعريف (Go to Definition)** لاستدعاءات مفاتيح القاموس، مما يتيح لك الانتقال مباشرة من `useIntlayer("my-key")` في مكونك إلى ملف `.content.ts` الذي يعلن عنه.
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
- ## لماذا تستخدم الـ LSP؟
36
+ ## المزايا
32
37
 
33
- عند استخدام Intlayer، يكون الاتصال بين استدعاء مثل `useIntlayer("homepage")` والإعلان عنه في `src/homepage.content.ts` ضمنيًا. بدون أدوات، يجب عليك البحث عن الملف يدويًا. يجعل الـ LSP هذا الرابط صريحًا:
38
+ | الميزة | الاختصار | الوصف |
39
+ | ------------------------ | ------------------- | ------------------------------------------------------------------------------------ |
40
+ | **الانتقال إلى التعريف** | `F12` / `Cmd+نقر` | الانتقال من مفتاح قاموس أو موضع استخدام حقل إلى تصريحه في ملف المحتوى |
41
+ | **البحث عن كل المراجع** | `Shift+F12` | من ملف محتوى، سرد كل مواضع الاستدعاء التي تستخدم ذلك المفتاح أو الحقل |
42
+ | **التحويم** | مرّر المؤشر فوقه | معاينة حقول القاموس، أو القيمة المترجمة لحقل ما، دون مغادرة الملف |
43
+ | **الإكمال التلقائي** | `"` `'` `` ` `` `.` | اقتراح مفاتيح القواميس المصرّح بها داخل الدالة، وحقول المحتوى بعد `.` أو عند التفكيك |
44
+ | **التشخيصات** | تلقائي | التحذير عندما لا يكون المفتاح مصرّحًا به في أي ملف محتوى |
34
45
 
35
- **وعي وكيل الذكاء الاصطناعي**
46
+ هناك سلوكان إضافيان يستحقان المعرفة:
36
47
 
37
- تعتمد وكلاء البرمجة القائمون على الذكاء الاصطناعي (Cursor, Windsurf, GitHub Copilot, Claude Code, Codex) على خادم اللغة لحل الرموز وفهم العلاقات عبر الملفات. مع تشغيل خادم لغة Intlayer، يمكن للوكلاء تتبع `useIntlayer("key")` للعودة إلى إعلانه، مما يمنحهم سياقًا دقيقًا حول مفاتيح المحتوى المتاحة، وهيكل كل قاموس، والملفات التي يجب قراءتها أو تحريرها.
48
+ - **القواميس المدمجة** المفتاح الموزّع على عدة ملفات محتوى يُعيد نتيجة واحدة لكل ملف، بحيث يمكنك الانتقال إلى كل تصريح.
49
+ - **متوافق مع المستودعات الأحادية** — يحدّد الخادم ملف `intlayer.config.*` _الأقرب_ إلى كل ملف، بحيث يحصل كل مشروع ضمن مساحة العمل نفسها على قواميسه الخاصة.
38
50
 
39
- **الانتقال إلى التعريف**
51
+ ### الاستدعاءات المدعومة
40
52
 
41
- ضع المؤشر على أي سلسلة مفاتيح قاموس داخل استدعاء جلب مدعوم واضغط على `F12` (أو `Cmd/Ctrl+Click`). يفتح المحرر ملف إعلان المحتوى ويضع المؤشر على سطر `:key`.
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
- يمكن تقسيم المفتاح عبر ملفات محتوى متعددة (يقوم Intlayer بدمجها). يعيد الخادم موقعًا واحدًا (`Location`) لكل ملف مصدر بحيث يمكنك التنقل إلى كل إعلان.
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
- يتم توزيع خادم LSP كجزء من حزمة `@intlayer/lsp`:
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
- تكشف الحزمة عن الملف الثنائي `intlayer-lsp` الذي تستخدمه المحررات كملف تشغيلي للخادم.
90
+ ثبّته عالميًا بدلًا من ذلك (`npm install -g @intlayer/lsp`) إذا كان محرّرك يحتاج إلى `intlayer-lsp` ضمن `PATH` وهذا ينطبق على إضافة Claude Code وعلى أي إعداد أدناه يستدعي الملف التنفيذي مباشرة.
87
91
 
88
92
  ---
89
93
 
90
- ## الإعداد كملحق لـ Claude Code
94
+ ## الإعداد
91
95
 
92
- يتوفر خادم لغة Intlayer كـ **ملحق لـ Claude Code** يتم استضافته مباشرة في مستودع Intlayer على GitHub. يمنح تثبيته وعيًا أصيلاً لـ Claude Code بميزة الانتقال إلى التعريف لجميع استدعاءات `useIntlayer` / `getIntlayer` الخاصة بك.
96
+ <Tabs defaultTab="vscode">
97
+ <Tab label="VS Code" value="vscode">
93
98
 
94
- ### 1. تثبيت الملف الثنائي لخادم اللغة
99
+ ثبّت [إضافة Intlayer لـ VS Code](https://marketplace.visualstudio.com/items?itemName=Intlayer.intlayer-vs-code-extension). خادم اللغة مُضمَّن منذ الإصدار v8.12.0 ويبدأ تلقائيًا — **لا حاجة إلى أي إعداد**.
95
100
 
96
- ```bash packageManager="npm"
97
- npm install -g @intlayer/lsp
98
- ```
101
+ راجع [توثيق إضافة VS Code](https://intlayer.org/doc/vs-code-extension) للاطلاع على بقية المزايا.
99
102
 
100
- ```bash packageManager="yarn"
101
- yarn global add @intlayer/lsp
102
- ```
103
+ </Tab>
104
+ <Tab label="Cursor / Windsurf" value="cursor">
103
105
 
104
- ```bash packageManager="pnpm"
105
- pnpm add -g @intlayer/lsp
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
- يضع هذا الملف الثنائي `intlayer-lsp` في مسار PATH الخاص بك، وهو ما يستدعيه إدخال `lspServers` الخاص بالملحق.
111
+ يوفّر Intlayer **إضافة لـ Claude Code** مستضافة في مستودع Intlayer. وهي تمنح Claude Code تحليلًا حقيقيًا للرموز الخاصة بمفاتيح قواميسك بدلًا من اللجوء إلى `grep`.
109
112
 
110
- ### 2. تسجيل سوق Intlayer وتثبيت الملحق
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
- سيضيف Claude Code القيمة `"intlayer-lsp@intlayer": true` إلى قائمة الـ `enabledPlugins` الخاصة بك ويبدأ خادم اللغة تلقائيًا في أنواع الملفات المدعومة (`.ts`, `.tsx`, `.js`, `.jsx`, `.vue`, `.svelte`).
122
+ يقوم `install` بتفعيل الإضافة أيضًا. **أعد تشغيل Claude Code** إذ تُحمَّل خوادم اللغة عند بدء التشغيل، فلا تأثير للإضافة قبل ذلك.
119
123
 
120
- ### 3. تمكين أداة LSP (إذا لم تكن نشطة بالفعل)
124
+ عندئذٍ يشغّل Claude Code الخادم على ملفات `.ts` و`.tsx` و`.js` و`.jsx` و`.vue` و`.astro` و`.svelte`، ويستخدم `goToDefinition` و`findReferences` و`hover` أثناء تنقّلك في الشيفرة.
121
125
 
122
- تتطلب بعض إصدارات Claude Code تعيين علامة ميزة LSP. أضف ما يلي إلى ملف `~/.claude/settings.json` إذا كانت ميزة الانتقال إلى التعريف لا تعمل بعد التثبيت:
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
- أعد تشغيل Claude Code — سيعتمد الآن على `goToDefinition` و`findReferences` وعمليات LSP الأخرى عند التنقل في قاعدة كود Intlayer بدلاً من الرجوع إلى `grep`.
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
- يتميز [Zed](https://zed.dev/) بدعم LSP أصيل من خلال إعدادات اللغة. أضف إدخالاً في إعدادات مستخدم Zed الخاصة بك (`~/.config/zed/settings.json`):
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
- "language_servers": ["intlayer-lsp", "..."]
201
- },
202
- "TSX": {
203
- "language_servers": ["intlayer-lsp", "..."]
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
- يخبر العنصر النائب `"..."` محرر Zed بالاحتفاظ بخوادم اللغة الافتراضية جنبًا إلى جنب مع خادم Intlayer.
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
- ## الإعداد اليدوي في Neovim
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
- -- قم بتشغيل الخادم باستخدام npx حتى لا تحتاج إلى تثبيت عالمي
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، سيؤدي الضغط على `gd` فوق مفتاح Intlayer إلى استدعاء ميزة الانتقال إلى التعريف.
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
- استشر وثائق LSP الخاصة بمحررك لمعرفة تنسيق الإعداد الدقيق (على سبيل المثال، `languageserver.json` لـ [coc.nvim](https://github.com/neoclide/coc.nvim)، أو إعدادات عميل LSP في [Helix](https://helix-editor.com)).
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
- ### مثال: Helix
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
- عندما يبدأ الخادم، فإنه يقوم بحل إعداد Intlayer من جذر مساحة العمل باستخدام `getConfiguration()`. يمنحه هذا مسارات `build` و`system` اللازمة للعثور على القواميس المترجمة.
262
+ **Claude Code** يعمل كعميل LSP حقيقي انظر التبويب أعلاه.
331
263
 
332
- عند كل طلب **انتقال إلى التعريف**:
264
+ **OpenAI Codex** ومعظم أدوات الطرفية الأخرى ليست عملاء LSP: فهي تقرأ الملفات وتكتبها مباشرة. تشغيل الخادم وحده لا يفيدها؛ إنما تأتي الفائدة من كونه نشطًا في محرّر مرافق يستطيع الوكيل الاستعلام عن فهرسه (Cursor Composer، Windsurf Cascade، Copilot Chat).
333
265
 
334
- 1. يقرأ الخادم النص الكامل للمستند المفتوح.
335
- 2. يقوم بمسح استدعاءات الجلب (`useIntlayer`، `getIntlayer`، إلخ) باستخدام تعبير نمطي.
336
- 3. يتحقق مما إذا كان موضع المؤشر يقع داخل أحد تلك الاستدعاءات.
337
- 4. إذا كان الأمر كذلك، فإنه يستخرج مفتاح القاموس (مجموعة الالتقاط 3 من التعبير النمطي) ويستدعي `getUnmergedDictionaries()` لتحديد موقع كل ملف محتوى يعلن عن هذا المفتاح.
338
- 5. يقرأ كل ملف مطابق ويبحث عن السطر الدقيق الذي يحتوي على `"key: "<key"` لوضع المؤشر بدقة.
339
- 6. يعيد مصفوفة من كائنات `Location` — واحد لكل ملف مصدر.
266
+ ---
267
+
268
+ ## آلية العمل
269
+
270
+ لكل ملف، يحدّد الخادم أقرب ملف `intlayer.config.*` ويحمّل إعدادات ذلك المشروع للعثور على القواميس المُصرَّفة. وتُخزَّن الإعدادات والقواميس وقائمة الملفات المصدرية مؤقتًا بمُدد صلاحية قصيرة، ويُبطَل التخزين كلما تغيّر ملف محتوى مُراقَب.
340
271
 
341
- يتم حل الإعداد بشكل كسول وتخزينه مؤقتًا لكل جلسة؛ ويتم إعادة تعيينه عند كل طلب `initialize` (على سبيل المثال، عند فتح مجلد مساحة عمل جديد).
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
- | الانتقال إلى التعريف لا يفعل شيئًا | الخادم لا يعمل | تحقق من تثبيت `@intlayer/lsp` وأن المحرر يقوم بتشغيله |
350
- | تم اكتشاف جذر مساحة عمل خاطئ | مجلدات مساحة عمل متعددة | تأكد من أن المجلد الذي يحتوي على `intlayer.config.ts` هو المجلد الأول لمساحة العمل |
351
- | لم يتم العثور على تعريفات للمفتاح | لم يتم حل الإعداد | تحقق من وجود `intlayer.config.ts` (أو `.js`) في جذر مساحة العمل |
352
- | الخادم يتعطل عند البدء | إصدار Node.js قديم جدًا | يتطلب Node.js 14.18 |
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/ar/concept/content" rel="">
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/content/per-locale-file" rel=''>ملف إعلان المحتوى لكل لغة</a></li>
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-Page-Router" rel=''>Next.js موجه الصفحات</a></li>
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/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
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>