|
4 | 4 | "routes": [ |
5 | 5 | { |
6 | 6 | "hasSectionHeader": true, |
7 | | - "sectionHeader": "ابدأ" |
| 7 | + "sectionHeader": "البدأ" |
8 | 8 | }, |
9 | 9 | { |
10 | | - "title": "البدء السريع", |
| 10 | + "title": "بداية سريعة", |
11 | 11 | "path": "/learn", |
12 | 12 | "routes": [ |
13 | 13 | { |
14 | 14 | "title": "شرح تطبيقي: لعبة تيك تاك تو", |
15 | 15 | "path": "/learn/tutorial-tic-tac-toe" |
16 | 16 | }, |
17 | 17 | { |
18 | | - "title": "التفكير بطريقة React", |
| 18 | + "title": "التفكير على طريقة React", |
19 | 19 | "path": "/learn/thinking-in-react" |
20 | 20 | } |
21 | 21 | ] |
|
25 | 25 | "path": "/learn/installation", |
26 | 26 | "routes": [ |
27 | 27 | { |
28 | | - "title": "ابدأ مشروع React جديدًا", |
| 28 | + "title": "ابدأ مشروع React جديد", |
29 | 29 | "path": "/learn/start-a-new-react-project" |
30 | 30 | }, |
31 | 31 | { |
32 | | - "title": "أضف React إلى مشروع موجود", |
| 32 | + "title": "إضافة React إلى مشروع موجود بالفعل", |
33 | 33 | "path": "/learn/add-react-to-an-existing-project" |
34 | 34 | }, |
35 | 35 | { |
36 | | - "title": "تجهيز المحرر الخاص بك", |
| 36 | + "title": "تجهيز المحرر", |
37 | 37 | "path": "/learn/editor-setup" |
38 | 38 | }, |
39 | 39 | { |
|
47 | 47 | "sectionHeader": "تعلم React" |
48 | 48 | }, |
49 | 49 | { |
50 | | - "title": "وصف واجهة المستخدم", |
| 50 | + "title": "وصف واجهة المستخدم UI", |
51 | 51 | "tags": [], |
52 | 52 | "path": "/learn/describing-the-ui", |
53 | 53 | "routes": [ |
54 | 54 | { |
55 | | - "title": "أول مُكوِّن لك", |
| 55 | + "title": "مكوّنك الأول", |
56 | 56 | "path": "/learn/your-first-component" |
57 | 57 | }, |
58 | 58 | { |
59 | 59 | "title": "استيراد وتصدير المكونات", |
60 | 60 | "path": "/learn/importing-and-exporting-components" |
61 | 61 | }, |
62 | 62 | { |
63 | | - "title": "كتابة البنية بـ JSX", |
| 63 | + "title": "كتابة ترميز البناء بـ JSX", |
64 | 64 | "path": "/learn/writing-markup-with-jsx" |
65 | 65 | }, |
66 | 66 | { |
67 | | - "title": "JavaScript في JSX بالأقواس المنحنية", |
| 67 | + "title": "JavaScript in JSX with Curly Braces", |
68 | 68 | "path": "/learn/javascript-in-jsx-with-curly-braces" |
69 | 69 | }, |
70 | 70 | { |
71 | | - "title": "تمرير الخصائص إلى المكونات", |
| 71 | + "title": "Passing Props to a Component", |
72 | 72 | "path": "/learn/passing-props-to-a-component" |
73 | 73 | }, |
74 | 74 | { |
75 | | - "title": "التصيير الشرطي", |
| 75 | + "title": "Conditional Rendering", |
76 | 76 | "path": "/learn/conditional-rendering" |
77 | 77 | }, |
78 | 78 | { |
79 | | - "title": "تصيير القوائم", |
| 79 | + "title": "Rendering Lists", |
80 | 80 | "path": "/learn/rendering-lists" |
81 | 81 | }, |
82 | 82 | { |
83 | | - "title": "حافظ على المكونات نظيفة", |
| 83 | + "title": "Keeping Components Pure", |
84 | 84 | "path": "/learn/keeping-components-pure" |
85 | 85 | } |
86 | 86 | ] |
87 | 87 | }, |
88 | 88 | { |
89 | | - "title": "إضافة تفاعلية", |
| 89 | + "title": "Adding Interactivity", |
90 | 90 | "path": "/learn/adding-interactivity", |
91 | 91 | "tags": [], |
92 | 92 | "routes": [ |
93 | 93 | { |
94 | | - "title": "التفاعل مع الأحداث", |
| 94 | + "title": "Responding to Events", |
95 | 95 | "path": "/learn/responding-to-events" |
96 | 96 | }, |
97 | 97 | { |
98 | | - "title": "الحالة: ذاكرة المكونات", |
| 98 | + "title": "State: A Component's Memory", |
99 | 99 | "path": "/learn/state-a-components-memory" |
100 | 100 | }, |
101 | 101 | { |
102 | | - "title": "التصيير والالتزام", |
| 102 | + "title": "التصيير والتأكيد", |
103 | 103 | "path": "/learn/render-and-commit" |
104 | 104 | }, |
105 | 105 | { |
106 | | - "title": "الحالة مثل اللقطة", |
| 106 | + "title": "State as a Snapshot", |
107 | 107 | "path": "/learn/state-as-a-snapshot" |
108 | 108 | }, |
109 | 109 | { |
110 | | - "title": "انتظار سلسلة من التحديثات", |
| 110 | + "title": "Queueing a Series of State Updates", |
111 | 111 | "path": "/learn/queueing-a-series-of-state-updates" |
112 | 112 | }, |
113 | 113 | { |
114 | | - "title": "تحديث الكائنات في الحالة", |
| 114 | + "title": "Updating Objects in State", |
115 | 115 | "path": "/learn/updating-objects-in-state" |
116 | 116 | }, |
117 | 117 | { |
118 | | - "title": "تحديث المصفوفات في الحالة", |
| 118 | + "title": "Updating Arrays in State", |
119 | 119 | "path": "/learn/updating-arrays-in-state" |
120 | 120 | } |
121 | 121 | ] |
122 | 122 | }, |
123 | 123 | { |
124 | | - "title": "إدارة الحالة", |
| 124 | + "title": "Managing State", |
125 | 125 | "path": "/learn/managing-state", |
126 | 126 | "tags": ["intermediate"], |
127 | 127 | "routes": [ |
128 | 128 | { |
129 | | - "title": "الاستجابة للإدخال باستخدام الحالة", |
| 129 | + "title": "Reacting to Input with State", |
130 | 130 | "path": "/learn/reacting-to-input-with-state" |
131 | 131 | }, |
132 | 132 | { |
133 | | - "title": "اختيار هيكل الحالة", |
| 133 | + "title": "Choosing the State Structure", |
134 | 134 | "path": "/learn/choosing-the-state-structure" |
135 | 135 | }, |
136 | 136 | { |
137 | | - "title": "مشاركة الحالة بين المكونات", |
| 137 | + "title": "Sharing State Between Components", |
138 | 138 | "path": "/learn/sharing-state-between-components" |
139 | 139 | }, |
140 | 140 | { |
141 | | - "title": "الحفاظ على الحال، وإعادة تعيينها", |
| 141 | + "title": "Preserving and Resetting State", |
142 | 142 | "path": "/learn/preserving-and-resetting-state" |
143 | 143 | }, |
144 | 144 | { |
145 | | - "title": "استخراج منطق الحالة إلى مُخفِّض (Reducer)", |
| 145 | + "title": "Extracting State Logic into a Reducer", |
146 | 146 | "path": "/learn/extracting-state-logic-into-a-reducer" |
147 | 147 | }, |
148 | 148 | { |
149 | | - "title": "التمرير العميق للبيانات باستخدام السياق (Context)", |
| 149 | + "title": "Passing Data Deeply with Context", |
150 | 150 | "path": "/learn/passing-data-deeply-with-context" |
151 | 151 | }, |
152 | 152 | { |
153 | | - "title": "التوسع باستخدام المُخفِّض (Reducer) والسياق (Context)", |
| 153 | + "title": "Scaling Up with Reducer and Context", |
154 | 154 | "path": "/learn/scaling-up-with-reducer-and-context" |
155 | 155 | } |
156 | 156 | ] |
|
161 | 161 | "tags": ["advanced"], |
162 | 162 | "routes": [ |
163 | 163 | { |
164 | | - "title": "الإشارة إلى القيم باستخدام المراجع (Refs)", |
| 164 | + "title": "Referencing Values with Refs", |
165 | 165 | "path": "/learn/referencing-values-with-refs" |
166 | 166 | }, |
167 | 167 | { |
168 | | - "title": "التحكم بـDOM باستخدام المراجع (Refs)", |
| 168 | + "title": "Manipulating the DOM with Refs", |
169 | 169 | "path": "/learn/manipulating-the-dom-with-refs" |
170 | 170 | }, |
171 | 171 | { |
172 | | - "title": "المزامنة مع التأثيرات (Effects)", |
| 172 | + "title": "Synchronizing with Effects", |
173 | 173 | "path": "/learn/synchronizing-with-effects" |
174 | 174 | }, |
175 | 175 | { |
176 | | - "title": "ربما لا تحتاج إلى تأثير (Effect)", |
| 176 | + "title": "You Might Not Need an Effect", |
177 | 177 | "path": "/learn/you-might-not-need-an-effect" |
178 | 178 | }, |
179 | 179 | { |
180 | | - "title": "دورة حياة الآثار الردّيّة", |
| 180 | + "title": "Lifecycle of Reactive Effects", |
181 | 181 | "path": "/learn/lifecycle-of-reactive-effects" |
182 | 182 | }, |
183 | 183 | { |
184 | | - "title": "فصل الأحداث عن التأثيرات", |
| 184 | + "title": "Separating Events from Effects", |
185 | 185 | "path": "/learn/separating-events-from-effects" |
186 | 186 | }, |
187 | 187 | { |
188 | | - "title": "إزالة تبعيات التأثيرات", |
189 | | - "path": "/learn/removing-effect-dependencies" |
| 188 | + "title": "Removing Effect Dependencies", |
| 189 | + "path": "/learn/removing-effect-dependencies" |
190 | 190 | }, |
191 | 191 | { |
192 | | - "title": "إعادة استخدام المنطق باستخدام الخطافات المخصصة", |
| 192 | + "title": "Reusing Logic with Custom Hooks", |
193 | 193 | "path": "/learn/reusing-logic-with-custom-hooks" |
194 | 194 | } |
195 | 195 | ] |
|
0 commit comments