Skip to content

Commit a923efc

Browse files
authored
Update useId.md
1 parent 3aa207a commit a923efc

1 file changed

Lines changed: 23 additions & 23 deletions

File tree

src/content/reference/react/useId.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,33 +32,33 @@ function PasswordField() {
3232
3333
[يرجى الإطلاع على المزيد من الأمثلة بالأسفل.](#usage)
3434
35-
#### المعاملات {/*parameters*/}
35+
#### المعاملات (parameters) {/*parameters*/}
3636
37-
`useId` لا يستقبل أي معاملات.
37+
`useId` لا يقبل أي معاملات.
3838
3939
#### العائدات {/*returns*/}
4040
41-
`useId` يعيد سلسلة بيانات فريدة مرتبطة باستدعاء `useId` المستخدم في هذا المكون تحديدا.
41+
`useId` يعيد نص فريد مرتبط باستدعاء `useId` المستخدم في هذا المكون تحديدا.
4242
4343
#### تنبيهات {/*caveats*/}
4444
45-
* `useId` هو خطاف, لذلك يمكنك استدعائه فقط **في المستوي الأعلي من مكونك** أو من خلال الخطافات الخاصة بك. لا يمكنك استدعاء الخطاف داخل الحلقات والشروط. إذا كنت بحاجة إلي ذلك، قم بإستخراج مكون جديد وقم بنقل الحالة إليه.
45+
* `useId` هو خطاف، لذلك يمكنك استدعائه فقط **في المستوي الأعلي من مكونك** أو من خلال الخطافات الخاصة بك. لا يمكنك استدعاء الخطاف داخل الحلقات والشروط. إذا كنت بحاجة إلي ذلك، قم بإستخراج مكون جديد وقم بنقل الحالة إليه.
4646
4747
* `useId` **لا ينبغي استخدامه لتوليد المفاتيح** في القائمة. [يجب أن تتم إنشاء المفاتيح من البيانات الخاصة بك.](/learn/rendering-lists#where-to-get-your-key)
4848
4949
---
5050
51-
## الإستخدام {/*usage*/}
51+
## الاستخدام {/*usage*/}
5252
5353
<Pitfall>
5454
55-
**لا تستدعي `useId` لتوليد المفاتيح في القائمة.** [يجب أن تتم إنشاء المفاتيح من البيانات الخاصة بك.](/learn/rendering-lists#where-to-get-your-key)
55+
**لا تستدعِ `useId` لتوليد المفاتيح في القائمة.** [يجب أن تتم إنشاء المفاتيح من البيانات الخاصة بك.](/learn/rendering-lists#where-to-get-your-key)
5656
5757
</Pitfall>
5858
5959
### إنشاء معرفات فريدة لسمات إمكانية الوصول {/*generating-unique-ids-for-accessibility-attributes*/}
6060
61-
استدعي `useId` في المستوي الأعلي من المكون الخاص بك لإنشاء معرف فريد:
61+
استدعِ `useId` في المستوي الأعلي من المكون الخاص بك لإنشاء معرف فريد:
6262
6363
```js [[1, 4, "passwordHintId"]]
6464
import { useId } from 'react';
@@ -81,7 +81,7 @@ function PasswordField() {
8181
8282
[HTML accessibility attributes](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) مثل [`aria-describedby`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-describedby) تتيح لك تحديد أن هناك علامتين مرتبطين ببعضهما البعض. على سبيل المثال، يمكنك تحديد أن العنصر (مثل صندوق الإدخال) يتم وصفه بواسطة عنصر آخر (مثل فقرة).
8383
84-
في HTML ستكتبه بهذا الشكل:
84+
في HTML العادي ستكتبه بهذا الشكل:
8585
8686
```html {5,8}
8787
<label>
@@ -92,11 +92,11 @@ function PasswordField() {
9292
/>
9393
</label>
9494
<p id="password-hint">
95-
The password should contain at least 18 characters
95+
يجب أن تحتوي كلمة السر على 18 حرفًا على الأقل
9696
</p>
9797
```
9898
99-
مع ذلك، تضمين المعرفات بهذا الشكل ليس طريقة جيدة في ريأكت. يمكن أن يتم عرض المكون أكثر من مرة على الصفحة ولكن يجب أن تكون المعرفات فريدة! بدلا من تضمين معرف ثابت، يمكنك توليد معرف فريد باستخدام `useId`:
99+
مع ذلك، تضمين المعرفات بهذا الشكل ليس طريقة جيدة في React. يمكن أن يتم عرض المكون أكثر من مرة على الصفحة، ولكن يجب أن تكون المعرفات فريدة! بدلا من تضمين معرف ثابت، يمكنك توليد معرف فريد باستخدام `useId`:
100100
101101
```js {4,11,14}
102102
import { useId } from 'react';
@@ -113,7 +113,7 @@ function PasswordField() {
113113
/>
114114
</label>
115115
<p id={passwordHintId}>
116-
The password should contain at least 18 characters
116+
يجب أن تحتوي كلمة السر على 18 حرفًا على الأقل
117117
</p>
118118
</>
119119
);
@@ -139,7 +139,7 @@ function PasswordField() {
139139
/>
140140
</label>
141141
<p id={passwordHintId}>
142-
The password should contain at least 18 characters
142+
يجب أن تحتوي كلمة السر على 18 حرفًا على الأقل
143143
</p>
144144
</>
145145
);
@@ -148,9 +148,9 @@ function PasswordField() {
148148
export default function App() {
149149
return (
150150
<>
151-
<h2>Choose password</h2>
151+
<h2>أدخل كلمة سر</h2>
152152
<PasswordField />
153-
<h2>Confirm password</h2>
153+
<h2>تأكيد كلمة السر</h2>
154154
<PasswordField />
155155
</>
156156
);
@@ -167,7 +167,7 @@ input { margin: 5px; }
167167
168168
<Pitfall>
169169
170-
في [عرض الخادم](/reference/react-dom/server), **`useId` يتطلب وجود نفس شجرة المكونات علي الخادم والعميل**. إذا لم تتطابق الشجرات التي تقوم بعرضها على الخادم والعميل حرفيا، فإن المعرفات المولدة لن تتطابق.
170+
في [تصيير الخادم](/reference/react-dom/server), **يتطلب `useId` وجود نفس شجرة المكونات علي الخادم والعميل**. إذا لم تتطابق الشجرات التي تقوم بعرضها على الخادم والعميل حرفيا، فإن المعرفات المولدة لن تتطابق.
171171
172172
</Pitfall>
173173
@@ -177,11 +177,11 @@ input { margin: 5px; }
177177
178178
قد تتساءل لماذا `useId` أفضل من زيادة متغير عالمي مثل `nextId++`.
179179
180-
الفائدة الأساسية لـ `useId` هي أن ريأكت ستضمن أنه يعمل مع [server rendering.](/reference/react-dom/server) أثناء عرض الخادم, يتم تحويل مكوناتك إلي عناصر HTML. في وقت لاحق، على العميل, [hydration](/reference/react-dom/client/hydrateRoot) يقوم بربط معالجات الأحداث الخاصة بك بعناصر HTML التي تم توليدها. لكي يعمل تحويل العناصر على العميل بشكل صحيح، يجب أن يتطابق إخراج العميل مع HTML الذي علي الخادم.
180+
الفائدة الأساسية لـ `useId` هي أن React ستضمن أنه يعمل مع [تصيير الخادم.](/reference/react-dom/server) أثناء تصيير الخادم، يتم تحويل مكوناتك إلي عناصر HTML. في وقت لاحق، على العميل، [hydration](/reference/react-dom/client/hydrateRoot) يقوم بربط معالجات الأحداث الخاصة بك بعناصر HTML التي تم توليدها. لكي يعمل تحويل العناصر على العميل بشكل صحيح، يجب أن يتطابق إخراج العميل مع HTML الذي على الخادم.
181181
182182
من الصعب جدا ضمان ذلك باستخدام عداد متزايد لأن ترتيب تحويل المكونات على العميل قد لا يتطابق مع ترتيب إخراج HTML على الخادم. من خلال استدعاء `useId`، ستضمن أن عملية تحويل المكونات ستعمل بشكل صحيح، وسيتطابق الإخراج بين الخادم والعميل.
183183
184-
داخل ريأكت، يتم إنشاء `useId` من الـ "parent path" للمكون الذي يستدعيه. وهذا هو السبب في أنه إذا كانت شجرة العميل وشجرة الخادم متطابقتين، سيتطابق الـ "parent path" بغض النظر عن ترتيب العرض.
184+
داخل React، يتم إنشاء `useId` من الـ "مسار الأب" للمكون الذي يستدعيه. وهذا هو السبب في أنه إذا كانت شجرة العميل وشجرة الخادم متطابقتين، سيتطابق "مسار لأب" بغض النظر عن ترتيب العرض.
185185
186186
</DeepDive>
187187
@@ -200,10 +200,10 @@ export default function Form() {
200200
const id = useId();
201201
return (
202202
<form>
203-
<label htmlFor={id + '-firstName'}>First Name:</label>
203+
<label htmlFor={id + '-firstName'}>الاسم الأول:</label>
204204
<input id={id + '-firstName'} type="text" />
205205
<hr />
206-
<label htmlFor={id + '-lastName'}>Last Name:</label>
206+
<label htmlFor={id + '-lastName'}>الاسم الأخير:</label>
207207
<input id={id + '-lastName'} type="text" />
208208
</form>
209209
);
@@ -229,7 +229,7 @@ input { margin: 5px; }
229229
```html index.html
230230
<!DOCTYPE html>
231231
<html>
232-
<head><title>My app</title></head>
232+
<head><title>تطبيقي</title></head>
233233
<body>
234234
<div id="root1"></div>
235235
<div id="root2"></div>
@@ -253,7 +253,7 @@ function PasswordField() {
253253
/>
254254
</label>
255255
<p id={passwordHintId}>
256-
The password should contain at least 18 characters
256+
يجب أن تحتوي كلمة السر على 18 حرفًا على الأقل
257257
</p>
258258
</>
259259
);
@@ -262,7 +262,7 @@ function PasswordField() {
262262
export default function App() {
263263
return (
264264
<>
265-
<h2>Choose password</h2>
265+
<h2>أدخل كلمة السر</h2>
266266
<PasswordField />
267267
</>
268268
);
@@ -274,7 +274,7 @@ import { createRoot } from 'react-dom/client';
274274
import App from './App.js';
275275
import './styles.css';
276276

277-
const root1 = createRoot(document.getElementById('root1'), {
277+
const root1 createRoot(document.getElementById('root1'), {
278278
identifierPrefix: 'my-first-app-'
279279
});
280280
root1.render(<App />);

0 commit comments

Comments
 (0)