@intlayer/docs 9.0.2 → 9.1.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/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/dictionary/content_file.md +24 -1
- package/docs/ar/dictionary/select.md +386 -0
- package/docs/ar/dynamic_dictionaries/variants.md +37 -7
- package/docs/de/dictionary/content_file.md +24 -1
- package/docs/de/dictionary/select.md +386 -0
- package/docs/de/dynamic_dictionaries/variants.md +34 -0
- package/docs/en/dictionary/content_file.md +24 -1
- package/docs/en/dictionary/select.md +382 -0
- package/docs/en/dynamic_dictionaries/variants.md +35 -1
- package/docs/en-GB/dictionary/content_file.md +24 -1
- package/docs/en-GB/dictionary/select.md +385 -0
- package/docs/en-GB/dynamic_dictionaries/variants.md +34 -0
- package/docs/es/dictionary/content_file.md +24 -1
- package/docs/es/dictionary/select.md +385 -0
- package/docs/es/dynamic_dictionaries/variants.md +34 -0
- package/docs/fr/dictionary/content_file.md +24 -1
- package/docs/fr/dictionary/select.md +382 -0
- package/docs/fr/dynamic_dictionaries/variants.md +34 -0
- package/docs/hi/dictionary/content_file.md +24 -1
- package/docs/hi/dictionary/select.md +386 -0
- package/docs/hi/dynamic_dictionaries/variants.md +36 -2
- package/docs/id/dictionary/content_file.md +24 -1
- package/docs/id/dictionary/select.md +386 -0
- package/docs/id/dynamic_dictionaries/variants.md +34 -0
- package/docs/it/dictionary/content_file.md +24 -1
- package/docs/it/dictionary/select.md +386 -0
- package/docs/it/dynamic_dictionaries/variants.md +35 -1
- package/docs/ja/dictionary/content_file.md +24 -1
- package/docs/ja/dictionary/select.md +386 -0
- package/docs/ja/dynamic_dictionaries/variants.md +35 -1
- package/docs/ko/dictionary/content_file.md +24 -1
- package/docs/ko/dictionary/select.md +386 -0
- package/docs/ko/dynamic_dictionaries/variants.md +35 -1
- package/docs/pl/dictionary/content_file.md +24 -1
- package/docs/pl/dictionary/select.md +386 -0
- package/docs/pl/dynamic_dictionaries/variants.md +35 -1
- package/docs/pt/dictionary/content_file.md +24 -1
- package/docs/pt/dictionary/select.md +386 -0
- package/docs/pt/dynamic_dictionaries/variants.md +34 -0
- package/docs/ru/dictionary/content_file.md +25 -2
- package/docs/ru/dictionary/select.md +386 -0
- package/docs/ru/dynamic_dictionaries/variants.md +35 -1
- package/docs/tr/dictionary/content_file.md +24 -1
- package/docs/tr/dictionary/select.md +386 -0
- package/docs/tr/dynamic_dictionaries/variants.md +35 -1
- package/docs/uk/dictionary/content_file.md +24 -1
- package/docs/uk/dictionary/select.md +386 -0
- package/docs/uk/dynamic_dictionaries/variants.md +34 -0
- package/docs/vi/dictionary/content_file.md +24 -1
- package/docs/vi/dictionary/select.md +386 -0
- package/docs/vi/dynamic_dictionaries/variants.md +36 -2
- package/docs/zh/dictionary/content_file.md +24 -1
- package/docs/zh/dictionary/select.md +387 -0
- package/docs/zh/dynamic_dictionaries/variants.md +35 -1
- package/package.json +7 -7
- package/src/generated/docs.entry.ts +20 -0
|
@@ -66,6 +66,7 @@ declare const docsEntry: {
|
|
|
66
66
|
readonly './docs/en/dictionary/markdown.md': Record<LocalesValues, Promise<string>>;
|
|
67
67
|
readonly './docs/en/dictionary/nesting.md': Record<LocalesValues, Promise<string>>;
|
|
68
68
|
readonly './docs/en/dictionary/plurial.md': Record<LocalesValues, Promise<string>>;
|
|
69
|
+
readonly './docs/en/dictionary/select.md': Record<LocalesValues, Promise<string>>;
|
|
69
70
|
readonly './docs/en/dictionary/translation.md': Record<LocalesValues, Promise<string>>;
|
|
70
71
|
readonly './docs/en/dynamic_dictionaries/collections.md': Record<LocalesValues, Promise<string>>;
|
|
71
72
|
readonly './docs/en/dynamic_dictionaries/index.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.entry.d.ts","names":[],"sources":["../../../src/generated/docs.entry.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docs.entry.d.ts","names":[],"sources":["../../../src/generated/docs.entry.ts"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-02-07
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-30
|
|
4
4
|
title: ملف المحتوى
|
|
5
5
|
description: تعلّم كيفية تخصيص الامتدادات لملفات إعلان المحتوى الخاصة بك. اتبع هذا التوثيق لتنفيذ الشروط بكفاءة في مشروعك.
|
|
6
6
|
keywords:
|
|
@@ -12,6 +12,9 @@ slugs:
|
|
|
12
12
|
- concept
|
|
13
13
|
- content
|
|
14
14
|
history:
|
|
15
|
+
- version: 9.1.0
|
|
16
|
+
date: 2026-07-30
|
|
17
|
+
changes: "تم تقديم محتوى يعتمد على الاختيار"
|
|
15
18
|
- version: 8.10.0
|
|
16
19
|
date: 2026-05-19
|
|
17
20
|
changes: "إضافة دعم لتنسيقات ملفات YAML و Markdown"
|
|
@@ -257,6 +260,7 @@ export default {
|
|
|
257
260
|
- **محتوى HTML**: محتوى HTML غني مع مكونات مخصصة اختيارية [انظر محتوى HTML](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/html.md)
|
|
258
261
|
- **محتوى متداخل**: مراجع إلى قواميس أخرى [انظر المحتوى المتداخل](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/nested_content.md)
|
|
259
262
|
- **محتوى حسب الجنس**: محتوى يختلف بناءً على الجنس [انظر محتوى الجنس](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/gender_content.md)
|
|
263
|
+
- **محتوى يعتمد على الاختيار**: محتوى يتغير بناءً على قيمة نصية عشوائية [انظر المحتوى المعتمد على الاختيار](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/select.md)
|
|
260
264
|
- **محتوى ملف**: مراجع إلى ملفات خارجية [انظر محتوى الملف](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/file_content.md)
|
|
261
265
|
|
|
262
266
|
## هيكل القاموس
|
|
@@ -746,6 +750,25 @@ genderContent: gender({
|
|
|
746
750
|
|
|
747
751
|
> راجع [محتوى الجنس (`gender`) توثيق](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/gender.md) لمزيد من المعلومات.
|
|
748
752
|
|
|
753
|
+
### المحتوى المعتمد على الاختيار (`select`)
|
|
754
|
+
|
|
755
|
+
محتوى يتغير بناءً على قيمة نصية عشوائية — ما يعادل `select` في ICU:
|
|
756
|
+
|
|
757
|
+
```typescript
|
|
758
|
+
import { select } from "intlayer";
|
|
759
|
+
|
|
760
|
+
selectContent: select({
|
|
761
|
+
draft: "This post is a draft",
|
|
762
|
+
published: "This post is live",
|
|
763
|
+
scheduled: "This post is scheduled",
|
|
764
|
+
fallback: "Unknown status",
|
|
765
|
+
});
|
|
766
|
+
```
|
|
767
|
+
|
|
768
|
+
استخدم `select` عندما لا يكون المميّز عبارة عن كمية (`enu`)، ولا قيمة منطقية (`cond`)، ولا جنس (`gender`). تفضيله على فهرسة كائن بسيط باستخدام قيمة وقت التشغيل (runtime value): لا يستطيع مترجم (compiler) Intlayer تقييم الوصول المحسوب ديناميكيًا بشكل ثابت.
|
|
769
|
+
|
|
770
|
+
> راجع [المحتوى المعتمد على الاختيار](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/select.md) لمزيد من المعلومات.
|
|
771
|
+
|
|
749
772
|
### محتوى الملف (`file`)
|
|
750
773
|
|
|
751
774
|
مراجع لملفات خارجية:
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-07-30
|
|
3
|
+
updatedAt: 2026-07-30
|
|
4
|
+
title: المحتوى بناءً على الاختيار
|
|
5
|
+
description: تعرّف على كيفية استخدام المحتوى المستند إلى الاختيار في Intlayer لعرض محتوى ديناميكي استنادًا إلى قيمة نصية عشوائية. اتبع هذا التوثيق لتنفيذ محتوى شبيه بـ switch في مشروعك.
|
|
6
|
+
keywords:
|
|
7
|
+
- محتوى بناءً على الاختيار
|
|
8
|
+
- Select Content
|
|
9
|
+
- محتوى Switch
|
|
10
|
+
- ICU select
|
|
11
|
+
- عرض ديناميكي
|
|
12
|
+
- التوثيق
|
|
13
|
+
- Intlayer
|
|
14
|
+
- Next.js
|
|
15
|
+
- JavaScript
|
|
16
|
+
- React
|
|
17
|
+
slugs:
|
|
18
|
+
- doc
|
|
19
|
+
- concept
|
|
20
|
+
- content
|
|
21
|
+
- select
|
|
22
|
+
history:
|
|
23
|
+
- version: 9.1.0
|
|
24
|
+
date: 2026-07-30
|
|
25
|
+
changes: "تم تقديم محتوى يعتمد على الاختيار"
|
|
26
|
+
author: aymericzip
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# المحتوى المستند إلى الاختيار (Select) / Intlayer
|
|
30
|
+
|
|
31
|
+
## كيف يعمل Select
|
|
32
|
+
|
|
33
|
+
في Intlayer، يتم تحقيق المحتوى المستند إلى الاختيار من خلال الدالة `select` التي تقوم بتعيين قيم نصية عشوائية لمحتواها المقابل. هذا يعادل رسالة `{value, select, …}` في ICU، أو تعليمة `switch` في الكود الخاص بتطبيقك.
|
|
34
|
+
|
|
35
|
+
استخدم `select` عندما يكون المُميّز (discriminant) عبارة عن سلسلة نصية حرة: حالة (status)، خطة (plan)، منصة (platform)، أو دور (role). أما بالنسبة للمُميّزات الأخرى، يوفر Intlayer عقدًا مخصصة:
|
|
36
|
+
|
|
37
|
+
| المُميّز | العقدة |
|
|
38
|
+
| --------------------- | ---------- |
|
|
39
|
+
| كمية | `enu()` |
|
|
40
|
+
| قيمة منطقية (Boolean) | `cond()` |
|
|
41
|
+
| جنس | `gender()` |
|
|
42
|
+
| أي نص آخر | `select()` |
|
|
43
|
+
|
|
44
|
+
## إعداد المحتوى المستند إلى الاختيار
|
|
45
|
+
|
|
46
|
+
لإعداد المحتوى المستند إلى الاختيار في مشروع Intlayer الخاص بك، قم بإنشاء وحدة محتوى تتضمن تعريفات الاختيار الخاصة بك. فيما يلي أمثلة بتنسيقات متعددة.
|
|
47
|
+
|
|
48
|
+
```typescript fileName="**/*.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
49
|
+
import { select, type Dictionary } from "intlayer";
|
|
50
|
+
|
|
51
|
+
const myPostContent = {
|
|
52
|
+
key: "my_key",
|
|
53
|
+
content: {
|
|
54
|
+
publishStatus: select({
|
|
55
|
+
draft: "This post is a draft",
|
|
56
|
+
published: "This post is live",
|
|
57
|
+
scheduled: "This post is scheduled",
|
|
58
|
+
fallback: "Unknown status", // اختياري
|
|
59
|
+
}),
|
|
60
|
+
},
|
|
61
|
+
} satisfies Dictionary;
|
|
62
|
+
|
|
63
|
+
export default myPostContent;
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```json5 fileName="**/*.content.json" contentDeclarationFormat="json"
|
|
67
|
+
{
|
|
68
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
69
|
+
"key": "my_key",
|
|
70
|
+
"content": {
|
|
71
|
+
"publishStatus": {
|
|
72
|
+
"nodeType": "select",
|
|
73
|
+
"select": {
|
|
74
|
+
"draft": "This post is a draft",
|
|
75
|
+
"published": "This post is live",
|
|
76
|
+
"scheduled": "This post is scheduled",
|
|
77
|
+
"fallback": "Unknown status", // اختياري
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
> إذا لم يتم الإعلان عن `fallback`، فسيتم اعتبار المفتاح الأخير المعلن كخيار احتياطي عند عدم تطابق القيمة المقدمة مع أي حالة معلنة: نفس عقد `cond()` و `gender()`.
|
|
85
|
+
|
|
86
|
+
### سلامة الأنواع (Type Safety)
|
|
87
|
+
|
|
88
|
+
يتم استنتاج المعامل المقبول من الحالات المعلنة:
|
|
89
|
+
|
|
90
|
+
- بدون `fallback`، سيتم قبول الحالات المعلنة فقط: يعتبر الخطأ الإملائي خطأ في النوع (type error).
|
|
91
|
+
- مع `fallback`، يُقبل أي نص (حيث يغطي الخيار الاحتياطي القيم غير المتطابقة) بينما تستمر الحالات المعلنة في توفير ميزة الإكمال التلقائي (autocompletion).
|
|
92
|
+
|
|
93
|
+
## لماذا لا تستخدم كائنًا بسيطًا؟
|
|
94
|
+
|
|
95
|
+
من المغري أن تقوم بتعريف كائن بسيط والوصول إليه باستخدام القيمة أثناء وقت التشغيل:
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
// ❌ لا تفعل هذا
|
|
99
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
100
|
+
|
|
101
|
+
return <p>{publishStatus[publishType]}</p>;
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
يحلل مترجم (compiler) Intlayer كود المصدر الخاص بك لاستبعاد المحتوى غير المستخدم ولضغط (minify) المفاتيح المتبقية. لا يمكن تقييم الوصول الديناميكي المحسوب (`obj[expr]`) بشكل ثابت، لذلك سيتم تحديد الفرع بأكمله كأنه غامض (opaque): سيبقى في الحزمة (bundle) وتبقى مفاتيحه بدون ضغط.
|
|
105
|
+
|
|
106
|
+
عند استخدام `select()`، يتم معالجة الحالة داخل استدعاء دالة بدلاً من الوصول كخاصية. يرى المترجم ذلك كوصول ثابت لحقل واحد، ويحسّن العقدة تمامًا كما يفعل مع `enu()`، `cond()` أو `gender()`:
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
// ✅ افعل هذا
|
|
110
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
111
|
+
|
|
112
|
+
return <p>{publishStatus(publishType)}</p>;
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## استخدام المحتوى المستند إلى الاختيار
|
|
116
|
+
|
|
117
|
+
<Tabs group="framework">
|
|
118
|
+
<Tab label="React" value="react">
|
|
119
|
+
|
|
120
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكون React، قم باستيراد واستخدام الخطاف `useIntlayer` من حزمة `react-intlayer`. يقوم هذا الخطاف بجلب المحتوى للمفتاح المحدد ويسمح لك بتمرير قيمة لاختيار الإخراج المناسب.
|
|
121
|
+
|
|
122
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
123
|
+
import type { FC } from "react";
|
|
124
|
+
import { useIntlayer } from "react-intlayer";
|
|
125
|
+
|
|
126
|
+
const PostStatus: FC = () => {
|
|
127
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
128
|
+
|
|
129
|
+
return (
|
|
130
|
+
<div>
|
|
131
|
+
<p>
|
|
132
|
+
{
|
|
133
|
+
/* المخرجات: This post is a draft */
|
|
134
|
+
publishStatus("draft")
|
|
135
|
+
}
|
|
136
|
+
</p>
|
|
137
|
+
<p>
|
|
138
|
+
{
|
|
139
|
+
/* المخرجات: This post is live */
|
|
140
|
+
publishStatus("published")
|
|
141
|
+
}
|
|
142
|
+
</p>
|
|
143
|
+
<p>
|
|
144
|
+
{
|
|
145
|
+
/* المخرجات: Unknown status */
|
|
146
|
+
publishStatus("Archived")
|
|
147
|
+
}
|
|
148
|
+
</p>
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export default PostStatus;
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
</Tab>
|
|
157
|
+
<Tab label="Next.js" value="nextjs">
|
|
158
|
+
|
|
159
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكونات العميل (client components) في Next.js، قم بجلبه باستخدام الخطاف `useIntlayer`. إليك مثال:
|
|
160
|
+
|
|
161
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
162
|
+
"use client";
|
|
163
|
+
|
|
164
|
+
import type { FC } from "react";
|
|
165
|
+
import { useIntlayer } from "next-intlayer";
|
|
166
|
+
|
|
167
|
+
const PostStatus: FC = () => {
|
|
168
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
169
|
+
|
|
170
|
+
return (
|
|
171
|
+
<div>
|
|
172
|
+
<p>{publishStatus("draft")}</p>
|
|
173
|
+
<p>{publishStatus("published")}</p>
|
|
174
|
+
</div>
|
|
175
|
+
);
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
export default PostStatus;
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
</Tab>
|
|
182
|
+
<Tab label="Vue" value="vue">
|
|
183
|
+
|
|
184
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكونات Vue، قم بجلبه باستخدام الخطاف `useIntlayer`. إليك مثال:
|
|
185
|
+
|
|
186
|
+
```vue fileName="**/*.vue"
|
|
187
|
+
<script setup lang="ts">
|
|
188
|
+
import { useIntlayer } from "vue-intlayer";
|
|
189
|
+
|
|
190
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
191
|
+
</script>
|
|
192
|
+
|
|
193
|
+
<template>
|
|
194
|
+
<div>
|
|
195
|
+
<p>{{ publishStatus("draft") }}</p>
|
|
196
|
+
<p>{{ publishStatus("published") }}</p>
|
|
197
|
+
</div>
|
|
198
|
+
</template>
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
</Tab>
|
|
202
|
+
<Tab label="Svelte" value="svelte">
|
|
203
|
+
|
|
204
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكونات Svelte، قم بجلبه باستخدام الخطاف `useIntlayer`. يتم الوصول إلى store باستخدام `$`. إليك مثال:
|
|
205
|
+
|
|
206
|
+
```svelte fileName="**/*.svelte"
|
|
207
|
+
<script lang="ts">
|
|
208
|
+
import { useIntlayer } from "svelte-intlayer";
|
|
209
|
+
|
|
210
|
+
const content = useIntlayer("my_key");
|
|
211
|
+
</script>
|
|
212
|
+
|
|
213
|
+
<div>
|
|
214
|
+
<p>{$content.publishStatus("draft")}</p>
|
|
215
|
+
<p>{$content.publishStatus("published")}</p>
|
|
216
|
+
</div>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
</Tab>
|
|
220
|
+
<Tab label="Preact" value="preact">
|
|
221
|
+
|
|
222
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكونات Preact، قم بجلبه باستخدام الخطاف `useIntlayer`. إليك مثال:
|
|
223
|
+
|
|
224
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
225
|
+
import type { FC } from "preact";
|
|
226
|
+
import { useIntlayer } from "preact-intlayer";
|
|
227
|
+
|
|
228
|
+
const PostStatus: FC = () => {
|
|
229
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
230
|
+
|
|
231
|
+
return (
|
|
232
|
+
<div>
|
|
233
|
+
<p>{publishStatus("draft")}</p>
|
|
234
|
+
<p>{publishStatus("published")}</p>
|
|
235
|
+
</div>
|
|
236
|
+
);
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
export default PostStatus;
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
</Tab>
|
|
243
|
+
<Tab label="Solid" value="solid">
|
|
244
|
+
|
|
245
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكونات SolidJS، قم بجلبه باستخدام الخطاف `useIntlayer`. إليك مثال:
|
|
246
|
+
|
|
247
|
+
```tsx fileName="**/*.tsx" codeFormat={["typescript", "esm"]}
|
|
248
|
+
import type { Component } from "solid-js";
|
|
249
|
+
import { useIntlayer } from "solid-intlayer";
|
|
250
|
+
|
|
251
|
+
const PostStatus: Component = () => {
|
|
252
|
+
const { publishStatus } = useIntlayer("my_key");
|
|
253
|
+
|
|
254
|
+
return (
|
|
255
|
+
<div>
|
|
256
|
+
<p>{publishStatus("draft")}</p>
|
|
257
|
+
<p>{publishStatus("published")}</p>
|
|
258
|
+
</div>
|
|
259
|
+
);
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
export default PostStatus;
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
</Tab>
|
|
266
|
+
<Tab label="Angular" value="angular">
|
|
267
|
+
|
|
268
|
+
لاستخدام المحتوى المستند إلى الاختيار داخل مكونات Angular، قم بجلبه باستخدام الخطاف `useIntlayer`. إليك مثال:
|
|
269
|
+
|
|
270
|
+
```typescript fileName="app.component.ts" codeFormat="typescript"
|
|
271
|
+
import { Component } from "@angular/core";
|
|
272
|
+
import { useIntlayer } from "angular-intlayer";
|
|
273
|
+
|
|
274
|
+
@Component({
|
|
275
|
+
selector: "app-post-status",
|
|
276
|
+
template: `
|
|
277
|
+
<div>
|
|
278
|
+
<p>{{ content().publishStatus("draft") }}</p>
|
|
279
|
+
<p>{{ content().publishStatus("published") }}</p>
|
|
280
|
+
</div>
|
|
281
|
+
`,
|
|
282
|
+
})
|
|
283
|
+
export class PostStatusComponent {
|
|
284
|
+
content = useIntlayer("my_key");
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
</Tab>
|
|
289
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
290
|
+
|
|
291
|
+
لاستخدام المحتوى المستند إلى الاختيار في `vanilla-intlayer`، قم بجلبه باستخدام الخطاف `useIntlayer`. إليك مثال:
|
|
292
|
+
|
|
293
|
+
```typescript fileName="**/*.ts" codeFormat={["typescript", "esm"]}
|
|
294
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
295
|
+
|
|
296
|
+
installIntlayer();
|
|
297
|
+
|
|
298
|
+
const content = useIntlayer("my_key").onChange((newContent) => {
|
|
299
|
+
document.getElementById("status")!.textContent =
|
|
300
|
+
newContent.publishStatus("draft");
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
// العرض الأولي
|
|
304
|
+
document.getElementById("status")!.textContent = content.publishStatus("draft");
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
</Tab>
|
|
308
|
+
</Tabs>
|
|
309
|
+
|
|
310
|
+
## دمج Select مع العقد الأخرى
|
|
311
|
+
|
|
312
|
+
تحتوي كل حالة على عقدة محتوى كاملة، لذلك يمكن تركيب `select` مع `t()`، `insert()`، `md()` وغيرها:
|
|
313
|
+
|
|
314
|
+
```typescript fileName="**/*.content.ts" codeFormat="typescript"
|
|
315
|
+
import { insert, select, t, type Dictionary } from "intlayer";
|
|
316
|
+
|
|
317
|
+
const myPostContent = {
|
|
318
|
+
key: "my_key",
|
|
319
|
+
content: {
|
|
320
|
+
publishStatus: select({
|
|
321
|
+
draft: insert(
|
|
322
|
+
t({
|
|
323
|
+
en: "{{name}} saved a draft",
|
|
324
|
+
fr: "{{name}} a enregistré un brouillon",
|
|
325
|
+
ar: "حفظ {{name}} مسودة",
|
|
326
|
+
})
|
|
327
|
+
),
|
|
328
|
+
published: insert(
|
|
329
|
+
t({
|
|
330
|
+
en: "{{name}} published the post",
|
|
331
|
+
fr: "{{name}} a publié l’article",
|
|
332
|
+
ar: "نشر {{name}} المقال",
|
|
333
|
+
})
|
|
334
|
+
),
|
|
335
|
+
fallback: insert(
|
|
336
|
+
t({
|
|
337
|
+
en: "{{name}} updated the post",
|
|
338
|
+
fr: "{{name}} a mis à jour l’article",
|
|
339
|
+
ar: "قام {{name}} بتحديث المقال",
|
|
340
|
+
})
|
|
341
|
+
),
|
|
342
|
+
}),
|
|
343
|
+
},
|
|
344
|
+
} satisfies Dictionary;
|
|
345
|
+
|
|
346
|
+
export default myPostContent;
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
```tsx
|
|
350
|
+
publishStatus("draft")({ name: "Alice" }); // المخرجات: حفظ Alice مسودة
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
## الترحيل من `select` الخاص بـ ICU
|
|
354
|
+
|
|
355
|
+
الرسائل التي تستخدم معامل `select` في ICU يتم استيرادها كعقد `select`:
|
|
356
|
+
|
|
357
|
+
```text
|
|
358
|
+
{publishType, select, draft {draft} published {published} other {Unknown}}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
ستصبح:
|
|
362
|
+
|
|
363
|
+
```typescript
|
|
364
|
+
select(
|
|
365
|
+
{
|
|
366
|
+
draft: "draft",
|
|
367
|
+
published: "published",
|
|
368
|
+
fallback: "Unknown",
|
|
369
|
+
},
|
|
370
|
+
"publishType"
|
|
371
|
+
);
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
تم إعادة تسمية الحالة `other` في ICU إلى `fallback`، وهو الاسم القياسي في Intlayer لجميع الحالات غير المتطابقة. يسجل المعامل الثاني اسم المتغير الخاص بـ ICU لكي يتم إرجاع الرسالة كجملة ICU كما هي تمامًا في وقت التصدير.
|
|
375
|
+
|
|
376
|
+
> لاحظ أن الرسالة بـ `select` في ICU التي تكون حالاتها قيم جنس (`male` / `female` / `other`) ستُستورد بدلاً من ذلك كعقدة [`gender`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/dictionary/gender.md).
|
|
377
|
+
|
|
378
|
+
## الموارد الإضافية
|
|
379
|
+
|
|
380
|
+
للحصول على معلومات أكثر تفصيلًا حول التكوين والاستخدام، راجع الموارد التالية:
|
|
381
|
+
|
|
382
|
+
- [توثيق واجهة سطر الأوامر (CLI) الخاصة بـ Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/cli/index.md)
|
|
383
|
+
- [توثيق Intlayer مع React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_create_react_app.md)
|
|
384
|
+
- [توثيق Intlayer مع Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_nextjs_15.md)
|
|
385
|
+
|
|
386
|
+
تقدم هذه الموارد رؤى أعمق حول كيفية إعداد واستخدام Intlayer داخل بيئات وأطر عمل متنوعة.
|
|
@@ -22,7 +22,10 @@ history:
|
|
|
22
22
|
changes: "إصدار ميزة المتغيرات"
|
|
23
23
|
- version: 9.1.0
|
|
24
24
|
date: 2026-06-26
|
|
25
|
-
changes: "
|
|
25
|
+
changes: "تقبل `variant` الآن سلسلة أو كائنًا — تُعلن السجلات الديناميكية أو `meta` السابقة كمتغيرات كائنات"
|
|
26
|
+
- version: 9.1.1
|
|
27
|
+
date: 2026-07-31
|
|
28
|
+
changes: "تُعرّف المتغيرة فقط المفاتيح التي تتجاوزها؛ بينما تتراجع المتغيرات غير المُعرّفة إلى الإدخال الافتراضي"
|
|
26
29
|
author: aymericzip
|
|
27
30
|
---
|
|
28
31
|
|
|
@@ -37,9 +40,40 @@ author: aymericzip
|
|
|
37
40
|
|
|
38
41
|
> يحلّ الشكل الكائني محل حقل `meta` السابق. في كل مكان كنت تكتب فيه سابقًا `meta: { id, … }`، اكتب `variant: { id, … }`، وحدّدها بـ `{ variant: { id, … } }`.
|
|
39
42
|
|
|
40
|
-
|
|
43
|
+
### المتغيرات الجزئية
|
|
41
44
|
|
|
42
|
-
|
|
45
|
+
تُعرّف المتغيرة **فقط المفاتيح التي تتجاوزها**؛ ويتم وراثة الباقي من الإدخال الافتراضي.
|
|
46
|
+
|
|
47
|
+
```ts fileName="hero-banner.summer.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
48
|
+
import { t, type Dictionary } from "intlayer";
|
|
49
|
+
|
|
50
|
+
const dictionary = {
|
|
51
|
+
key: "hero-banner",
|
|
52
|
+
variant: "summer",
|
|
53
|
+
content: {
|
|
54
|
+
headline: t({
|
|
55
|
+
en: "Build faster all summer",
|
|
56
|
+
fr: "Développez plus vite tout l'été",
|
|
57
|
+
}),
|
|
58
|
+
},
|
|
59
|
+
} satisfies Dictionary;
|
|
60
|
+
|
|
61
|
+
export default dictionary;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
useIntlayer("hero-banner", { variant: "summer" });
|
|
66
|
+
// → { headline: "Développez plus vite tout l'été", cta: "Commencer" } — تم وراثة `cta`
|
|
67
|
+
|
|
68
|
+
useIntlayer("hero-banner", { variant: "never-declared" });
|
|
69
|
+
// → الإدخال الافتراضي
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
لذلك لا تضيف ملف متغيرة إلا عندما تختلف الصياغة بالفعل. يتحول المفتاح إلى `null` فقط عندما يُعرّف متغيرات ولكن دون إدخال افتراضي.
|
|
73
|
+
|
|
74
|
+
### استخدام المتغيرات المسماة
|
|
75
|
+
|
|
76
|
+
#### المتغير الافتراضي
|
|
43
77
|
|
|
44
78
|
```ts fileName="hero-banner.content.ts" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
45
79
|
import { t, type Dictionary } from "intlayer";
|
|
@@ -77,10 +111,6 @@ const dictionary = {
|
|
|
77
111
|
export default dictionary;
|
|
78
112
|
```
|
|
79
113
|
|
|
80
|
-
### استهلاك المتغيرات المُسمّاة
|
|
81
|
-
|
|
82
|
-
#### المتغير الافتراضي
|
|
83
|
-
|
|
84
114
|
<Tabs group="framework">
|
|
85
115
|
<Tab label="React" value="react">
|
|
86
116
|
```tsx fileName="Hero.tsx" contentDeclarationFormat={["typescript", "esm", "commonjs"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-02-07
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-30
|
|
4
4
|
title: Inhaltsdatei
|
|
5
5
|
description: Erfahren Sie, wie Sie die Erweiterungen für Ihre Inhaltsdeklarationsdateien anpassen können. Folgen Sie dieser Dokumentation, um Bedingungen effizient in Ihrem Projekt umzusetzen.
|
|
6
6
|
keywords:
|
|
@@ -12,6 +12,9 @@ slugs:
|
|
|
12
12
|
- concept
|
|
13
13
|
- content
|
|
14
14
|
history:
|
|
15
|
+
- version: 9.1.0
|
|
16
|
+
date: 2026-07-30
|
|
17
|
+
changes: "Auswahlbasierten Inhalt eingeführt"
|
|
15
18
|
- version: 8.10.0
|
|
16
19
|
date: 2026-05-19
|
|
17
20
|
changes: "Unterstützung für YAML- und Markdown-Dateiformate hinzugefügt"
|
|
@@ -257,6 +260,7 @@ Intlayer unterstützt verschiedene Inhaltstypen durch typisierte Knoten:
|
|
|
257
260
|
- **HTML-Inhalt**: Rich-HTML-Inhalt mit optionalen benutzerdefinierten Komponenten [siehe HTML-Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/html.md)
|
|
258
261
|
- **Verschachtelter Inhalt**: Verweise auf andere Wörterbücher [siehe Verschachtelter Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/nested_content.md)
|
|
259
262
|
- **Geschlechtsabhängiger Inhalt**: Inhalt, der sich je nach Geschlecht unterscheidet [siehe Geschlechtsabhängiger Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/gender_content.md)
|
|
263
|
+
- **Auswahlbasierter Inhalt**: Inhalt, der basierend auf einem beliebigen Zeichenfolgenwert variiert [siehe Auswahlbasierter Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/select.md)
|
|
260
264
|
- **Dateiinhalt**: Verweise auf externe Dateien [siehe Dateiinhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/file_content.md)
|
|
261
265
|
|
|
262
266
|
## Wörterbuchstruktur
|
|
@@ -746,6 +750,25 @@ genderContent: gender({
|
|
|
746
750
|
|
|
747
751
|
> Siehe [Geschlechtsabhängiger Inhalt (`gender`) Doc](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/gender.md) für weitere Informationen.
|
|
748
752
|
|
|
753
|
+
### Auswahlbasierter Inhalt (`select`)
|
|
754
|
+
|
|
755
|
+
Inhalt, der basierend auf einem beliebigen Zeichenfolgenwert variiert — das Äquivalent zum ICU `select`:
|
|
756
|
+
|
|
757
|
+
```typescript
|
|
758
|
+
import { select } from "intlayer";
|
|
759
|
+
|
|
760
|
+
selectContent: select({
|
|
761
|
+
draft: "This post is a draft",
|
|
762
|
+
published: "This post is live",
|
|
763
|
+
scheduled: "This post is scheduled",
|
|
764
|
+
fallback: "Unknown status",
|
|
765
|
+
});
|
|
766
|
+
```
|
|
767
|
+
|
|
768
|
+
Verwenden Sie `select`, wenn der Diskriminant weder eine Menge (`enu`), noch ein Boolean (`cond`) oder ein Geschlecht (`gender`) ist. Bevorzugen Sie es gegenüber der Indizierung eines einfachen Objekts mit einem Laufzeitwert: Ein dynamisch berechneter Zugriff kann vom Intlayer-Compiler nicht statisch aufgelöst werden.
|
|
769
|
+
|
|
770
|
+
> Siehe [Auswahlbasierter Inhalt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/select.md) für weitere Informationen.
|
|
771
|
+
|
|
749
772
|
### Dateiinhalt (`file`)
|
|
750
773
|
|
|
751
774
|
Verweise auf externe Dateien:
|