Skip to content

Commit 984a184

Browse files
authored
chore(i18n,learn): processed translations (freeCodeCamp#48428)
1 parent 390a539 commit 984a184

File tree

56 files changed

+260
-206
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+260
-206
lines changed

curriculum/challenges/arabic/04-data-visualization/data-visualization-with-d3/change-the-presentation-of-a-bar-chart.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: 587d7fa8367417b2b2512bca
3-
title: Change the Presentation of a Bar Chart
3+
title: تغيير تقديم مخطط الأعمدة (Bar Chart)
44
challengeType: 6
55
forumTopicId: 301481
66
dashedName: change-the-presentation-of-a-bar-chart

curriculum/challenges/arabic/04-data-visualization/data-visualization-with-d3/dynamically-set-the-coordinates-for-each-bar.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,77 +10,77 @@ dashedName: dynamically-set-the-coordinates-for-each-bar
1010

1111
التحدي السابق أنشئت وألحقت مستطيل بعنصر `svg` لكل نقطة في `dataset` لتستعرض شريط. لسوء الحظ، كانوا مكدسين بعضَهم فوق بعض.
1212

13-
يمكنك تحكم في موضع المستطيل بواسطة أستخدام سمات (attributes) تسمى `x` و `y`. لتخبر D3 أين يبدأ في رسم الشكل في منطقة `svg`. The last challenge set them each to 0, so every bar was placed in the upper-left corner.
13+
يمكنك تحكم في موضع المستطيل بواسطة أستخدام سمات (attributes) تسمى `x` و `y`. لتخبر D3 أين يبدأ في رسم الشكل في منطقة `svg`. قام التحدي السابق بتحديدهم إلى صفر، لذلك تم وضع كل عمود (bar) في الزاوية العلوية اليسرى.
1414

15-
For a bar chart, all of the bars should sit on the same vertical level, which means the `y` value stays the same (at 0) for all bars. The `x` value, however, needs to change as you add new bars. Remember that larger `x` values push items farther to the right. As you go through the array elements in `dataset`, the `x` value should increase.
15+
للحصول على رسم بياني للأعمدة (bar chart)، يجب أن تجلس جميع الأعمدة على نفس المستوى العمودي، مما يعني أن قيمة `y` تبقى هي نفسها (عند 0) لجميع الأعمدة. ومع ذلك، تحتاج قيمة `x` إلى التغيير عند إضافة أعمدة جديد. تذكر أن أكبر قيم من `x` تدفع العناصر إلى أقصى اليمين. عندما تمر عبر عناصر القائمة في `dataset`، يجب أن تزيد قيمة `x`.
1616

17-
The `attr()` method in D3 accepts a callback function to dynamically set that attribute. The callback function takes two arguments, one for the data point itself (usually `d`) and one for the index of the data point in the array. The second argument for the index is optional. Here's the format:
17+
تقبل طريقة (method) تسمى `attr()` في D3 الوظيفة تعيد تفعيل (callback functon) التي تعيين تلك السمة ديناميكيا. وظيفة تعيد تفعيل (callback functon) تأخذ حجيتين (arguments)، واحد لنقطة البيانات نفسها (عادة `d`) وواحد لترتيب نقطة البيانات في القائمة (array). أما الحِجَّة (argument) الثانية تدل على الترتيب فهي حِجَّة اختيارية. إليك التنسيق:
1818

1919
```js
2020
selection.attr("property", (d, i) => {
2121

2222
})
2323
```
2424

25-
It's important to note that you do NOT need to write a `for` loop or use `forEach()` to iterate over the items in the data set. Recall that the `data()` method parses the data set, and any method that's chained after `data()` is run once for each item in the data set.
25+
من المهم مُراعاةٌ أنك لا تحتاج إلى كتابة حلقة (loop) نوعها `for` أو استخدام `forEach()` لتكرار العناصر في مجموعة البيانات (data set). تذكر أن طريقة `data()` تحلل مجموعة البيانات (data set), وأي طريقة تتبع `data()` يتم تشغيلها مرة واحدة لكل عنصر في مجموعة البيانات.
2626

2727
# --instructions--
2828

29-
Change the `x` attribute callback function so it returns the index times 30.
29+
غيّر سمة `x` في وظيفة تعيد تفعيل بحيث ترجع الترتيب 30 مرة.
3030

31-
**Note:** Each bar has a width of 25, so increasing each `x` value by 30 adds some space between the bars. Any value greater than 25 would work in this example.
31+
**ملاحظة:** كل عمود له عرض (width) بقيمة 25، لذا زيادة كل قيمة `x` بمقدار 30 تضيف بعض المساحة بين الأعمدة. أي قيمة أكبر من 25 ستنجح في هذا المثال.
3232

3333
# --hints--
3434

35-
The first `rect` should have an `x` value of `0`.
35+
يجب أن يحتوي أول `rect` على `x` بقيمة `0`.
3636

3737
```js
3838
assert($('rect').eq(0).attr('x') == '0');
3939
```
4040

41-
The second `rect` should have an `x` value of `30`.
41+
يجب أن يحتوي ثاني `rect` على `x` بقيمة `30`.
4242

4343
```js
4444
assert($('rect').eq(1).attr('x') == '30');
4545
```
4646

47-
The third `rect` should have an `x` value of `60`.
47+
يجب أن يحتوي ثالث `rect` على `x` بقيمة `60`.
4848

4949
```js
5050
assert($('rect').eq(2).attr('x') == '60');
5151
```
5252

53-
The fourth `rect` should have an `x` value of `90`.
53+
يجب أن يحتوي رابع `rect` على `x` بقيمة `90`.
5454

5555
```js
5656
assert($('rect').eq(3).attr('x') == '90');
5757
```
5858

59-
The fifth `rect` should have an `x` value of `120`.
59+
يجب أن يحتوي خامس `rect` على `x` بقيمة `120`.
6060

6161
```js
6262
assert($('rect').eq(4).attr('x') == '120');
6363
```
6464

65-
The sixth `rect` should have an `x` value of `150`.
65+
يجب أن يحتوي سادس `rect` على `x` بقيمة `150`.
6666

6767
```js
6868
assert($('rect').eq(5).attr('x') == '150');
6969
```
7070

71-
The seventh `rect` should have an `x` value of `180`.
71+
يجب أن يحتوي سابع `rect` على `x` بقيمة `180`.
7272

7373
```js
7474
assert($('rect').eq(6).attr('x') == '180');
7575
```
7676

77-
The eighth `rect` should have an `x` value of `210`.
77+
يجب أن يحتوي ثامن `rect` على `x` بقيمة `210`.
7878

7979
```js
8080
assert($('rect').eq(7).attr('x') == '210');
8181
```
8282

83-
The ninth `rect` should have an `x` value of `240`.
83+
يجب أن يحتوي تاسع `rect` على `x` بقيمة `240`.
8484

8585
```js
8686
assert($('rect').eq(8).attr('x') == '240');

curriculum/challenges/arabic/04-data-visualization/json-apis-and-ajax/handle-click-events-with-javascript-using-the-onclick-property.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
---
22
id: 587d7fad367417b2b2512be1
3-
title: Handle Click Events with JavaScript using the onclick property
3+
title: التعامل مع أحداث النقر (Handle Click Events) مع JavaScript باستخدام خاصية عند النقر (onclick)
44
challengeType: 6
55
forumTopicId: 301503
66
dashedName: handle-click-events-with-javascript-using-the-onclick-property
77
---
88

99
# --description--
1010

11-
You want your code to execute only once your page has finished loading. لهذا الغرض، يمكنك إرفاق حدث (event) من JavaScript لمستند مسمى `DOMContentLoaded`. إليك كود الذي يفعل ذلك:
11+
تريد تنفذ كودك بمجرد الانتهاء من تحميل الصفحة, مرة واحدة فقط. لهذا الغرض، يمكنك إرفاق حدث (event) من JavaScript لمستند مسمى `DOMContentLoaded`. إليك كود الذي يفعل ذلك:
1212

1313
```js
1414
document.addEventListener('DOMContentLoaded', function() {

curriculum/challenges/arabic/10-coding-interview-prep/data-structures/remove-an-element-from-a-max-heap.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The `MaxHeap` data structure should exist.
2727
```js
2828
assert(
2929
(function () {
30-
var test = false;
30+
let test = false;
3131
if (typeof MaxHeap !== 'undefined') {
3232
test = new MaxHeap();
3333
}
@@ -41,7 +41,7 @@ assert(
4141
```js
4242
assert(
4343
(function () {
44-
var test = false;
44+
let test = false;
4545
if (typeof MaxHeap !== 'undefined') {
4646
test = new MaxHeap();
4747
} else {
@@ -57,7 +57,7 @@ assert(
5757
```js
5858
assert(
5959
(function () {
60-
var test = false;
60+
let test = false;
6161
if (typeof MaxHeap !== 'undefined') {
6262
test = new MaxHeap();
6363
} else {
@@ -73,7 +73,7 @@ assert(
7373
```js
7474
assert(
7575
(function () {
76-
var test = false;
76+
let test = false;
7777
if (typeof MaxHeap !== 'undefined') {
7878
test = new MaxHeap();
7979
} else {
@@ -104,7 +104,7 @@ function isHeap(arr, i, n) {
104104

105105
assert(
106106
(function () {
107-
var test = false;
107+
let test = false;
108108
if (typeof MaxHeap !== 'undefined') {
109109
test = new MaxHeap();
110110
} else {
@@ -120,10 +120,16 @@ assert(
120120
return false;
121121
}
122122
const removed = test.remove();
123-
if(removed > max) return false
123+
if (!vals.includes(removed)) return false;
124+
if (removed > max) return false
124125
max = removed;
125126
result.push(removed);
126127
}
128+
for (let i = 0; i < vals.length; i++) {
129+
if (!result.includes(vals[i])) {
130+
return false;
131+
}
132+
}
127133
return true
128134
})()
129135
);
@@ -134,7 +140,7 @@ assert(
134140
## --seed-contents--
135141

136142
```js
137-
var MaxHeap = function () {
143+
const MaxHeap = function () {
138144
this.heap = [];
139145
this.parent = index => {
140146
return Math.floor((index - 1) / 2);

curriculum/challenges/chinese-traditional/01-responsive-web-design/responsive-web-design-projects/build-a-survey-form.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dashedName: build-a-survey-form
1919
1. 在表單元素內,你**需要**`input` 字段中輸入你的郵箱,該字段的 `id``email`
2020
1. 如果你輸入了格式不正確的郵箱,你將會看見 HTML5 驗證錯誤信息
2121
1. 在表單中,你可以在 `input` 字段中輸入一個數字,該字段的 `id``number`
22-
1. The number input should not accept non-numbers, either by preventing you from typing them or by showing an HTML5 validation error (depending on your browser).
22+
1. 數字輸入不應接受非數字,或是阻止你輸入它們,或是顯示一個 HTML5 驗證錯誤(取決於你的瀏覽器)。
2323
1. 如果你輸入的數字超出了範圍(使用 `min``max` 屬性定義),你將會看見 HTML5 驗證錯誤信息
2424
1. 表單中的名字、郵箱和數字輸入框需有對應的包含描述輸入框用途的 `label` 元素,id 應分別爲 `id="name-label"``id="email-label"``id="number-label"`
2525
1. 在表單中的名字、郵箱和數字輸入框中,你能看到各自的描述文字作爲佔位符

curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-javascript/access-multi-dimensional-arrays-with-indexes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dashedName: access-multi-dimensional-arrays-with-indexes
99

1010
# --description--
1111

12-
我們可以把<dfn>多維</dfn>數組看作成是*數組中的數組*When you use brackets to access your array, the first set of brackets refers to the entries in the outermost (the first level) array, and each additional pair of brackets refers to the next level of entries inside.
12+
我們可以把<dfn>多維</dfn>數組看作成是*數組中的數組*當你使用括號訪問你的數組時,第一組括號指的是最外層(第一層)數組中的條目,而每一對額外的括號指的是裏面下一層的條目。
1313

1414
**例如:**
1515

curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/debugging/catch-misspelled-variable-and-function-names.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ dashedName: catch-misspelled-variable-and-function-names
2424
assert(netWorkingCapital === 2);
2525
```
2626

27-
There should be no instances of misspelled variables in the code.
27+
代碼中不應該有拼寫錯誤的變量實例。
2828

2929
```js
3030
assert(!code.match(/recievables/g));
@@ -36,7 +36,7 @@ assert(!code.match(/recievables/g));
3636
assert(code.match(/receivables/g).length == 2);
3737
```
3838

39-
There should be no instances of misspelled variables in the code.
39+
代碼中不應該有拼寫錯誤的變量實例。
4040

4141
```js
4242
assert(!code.match(/payable;/g));

curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-with-the-rest-parameter-to-reassign-array-elements.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ console.log(arr);
2626

2727
# --instructions--
2828

29-
Use a destructuring assignment with the rest parameter to emulate the behavior of `Array.prototype.slice()`. `removeFirstTwo()` should return a sub-array of the original array `list` with the first two elements omitted.
29+
使用一個帶有 rest 參數的解構賦值來模擬 `Array.prototype.slice()` 的行爲。 `removeFirstTwo()` 應該返回原始數組 `list` 的子數組,前兩個元素被省略。
3030

3131
# --hints--
3232

33-
`removeFirstTwo([1, 2, 3, 4, 5])` should be `[3, 4, 5]`
33+
`removeFirstTwo([1, 2, 3, 4, 5])` 應該返回 `[3, 4, 5]`
3434

3535
```js
3636
const testArr_ = [1, 2, 3, 4, 5];
3737
const testArrWORemoved_ = removeFirstTwo(testArr_);
3838
assert(testArrWORemoved_.every((e, i) => e === i + 3) && testArrWORemoved_.length === 3);
3939
```
4040

41-
`removeFirstTwo()` should not modify `list`
41+
`removeFirstTwo()` 不應該修改 `list`
4242

4343
```js
4444
const testArr_ = [1, 2, 3, 4, 5];

curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/regular-expressions/check-for-mixed-grouping-of-characters.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,27 +58,27 @@ myRegex.lastIndex = 0;
5858
assert(!myRegex.test('Frank Roosevelt'));
5959
```
6060

61-
Your regex `myRegex` should return `false` for the string `FranklinRoosevelt`
61+
你的正則 `myRegex` 測試 `FranklinRoosevelt` 應該返回 `false`
6262

6363
```js
6464
myRegex.lastIndex = 0;
6565
assert(!myRegex.test('FranklinRoosevelt'));
6666
```
6767

68-
Your regex `myRegex` should return `false` for the string `EleanorRoosevelt`
68+
你的正則 `myRegex` 測試 `EleanorRoosevelt` 應該返回 `false`
6969

7070
```js
7171
myRegex.lastIndex = 0;
7272
assert(!myRegex.test('EleanorRoosevelt'));
7373
```
7474

75-
You should use `.test()` to test the regex.
75+
你應該使用 `.test()` 方法來檢測正則表達式。
7676

7777
```js
7878
assert(code.match(/myRegex.test\(\s*myString\s*\)/));
7979
```
8080

81-
Your result should return `true`.
81+
你的返回結果應該爲 `true`
8282

8383
```js
8484
assert(result === true);

curriculum/challenges/chinese-traditional/03-front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dashedName: connect-redux-to-the-messages-app
1414

1515
# --instructions--
1616

17-
到目前爲止,我們的編輯器上已包含了整個章節的代碼, 唯一不同的是,React 組件被重新命名爲 `Presentational`,即展示層組件。 創建一個新組件,保存在名爲 `Container` 的常量中。 這個常量用 `connect``Presentational` 組件和 Redux 連接起來。 然後,在`AppWrapper` 中渲染 React Redux 的 `Provider`組件, 給 `Provider` 傳入 Redux `store` 屬性並渲染 `Container` 爲子組件。 Once everything is set up, you will see the messages app rendered to the page again.
17+
到目前爲止,我們的編輯器上已包含了整個章節的代碼, 唯一不同的是,React 組件被重新命名爲 `Presentational`,即展示層組件。 創建一個新組件,保存在名爲 `Container` 的常量中。 這個常量用 `connect``Presentational` 組件和 Redux 連接起來。 然後,在`AppWrapper` 中渲染 React Redux 的 `Provider`組件, 給 `Provider` 傳入 Redux `store` 屬性並渲染 `Container` 爲子組件。 設置完所有內容後,將再次看到消息應用程序渲染到頁面上。
1818

1919
# --hints--
2020

curriculum/challenges/chinese-traditional/05-back-end-development-and-apis/managing-packages-with-npm/add-a-description-to-your-package.json.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ dashedName: add-a-description-to-your-package-json
1010

1111
一個好的 package.json 文件的下一部分就是 `description` 字段——簡短精悍的的項目描述。
1212

13-
If some day you plan to publish a package to npm, this is the string that should sell your idea to the user when they decide whether to install your package or not. 然而,這並不是使用描述的唯一場景:它也是一種很好的總結項目的方式, 可以幫助其它開發者、維護者甚至自己在未來快速地瞭解項目,對於任何一個 Node.js 項目來說都非常重要。
13+
如果有一天你打算向 npm 發佈一個軟件包,當用戶決定是否安裝你的軟件包時,這個字符串就能向用戶表明你的想法。 然而,這並不是使用描述的唯一場景:它也是一種很好的總結項目的方式, 可以幫助其它開發者、維護者甚至自己在未來快速地瞭解項目,對於任何一個 Node.js 項目來說都非常重要。
1414

1515
無論項目計劃是什麼,都建議使用描述。 類似這樣:
1616

curriculum/challenges/chinese-traditional/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ HTTP 嚴格傳輸安全(HSTS)是一種網絡安全策略,有助於保護
1616

1717
配置 `helmet.hsts()` 以在未來 90 天內使用 HTTPS。 傳遞配置對象 `{maxAge: timeInSeconds, force: true}`。 你可以創建一個變量 `ninetyDaysInSeconds = 90*24*60*60;` 來用於 `timeInSeconds`。 Replit 已經啓用了 hsts。 要覆蓋它的設置,你需要在配置對象中把 “force” 字段設置爲 true。 我們將攔截並在對其進行檢查測試後恢復 Replit 請求頭。
1818

19-
Note: Configuring HTTPS on a custom website requires the acquisition of a domain, and an SSL/TLS Certificate.
19+
注意:在自定義網站上配置 HTTPS 需要獲得一個域名,以及一個 SSL/TLS 證書。
2020

2121
# --hints--
2222

curriculum/challenges/chinese-traditional/10-coding-interview-prep/data-structures/remove-an-element-from-a-max-heap.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ The `MaxHeap` data structure should exist.
2727
```js
2828
assert(
2929
(function () {
30-
var test = false;
30+
let test = false;
3131
if (typeof MaxHeap !== 'undefined') {
3232
test = new MaxHeap();
3333
}
@@ -41,7 +41,7 @@ assert(
4141
```js
4242
assert(
4343
(function () {
44-
var test = false;
44+
let test = false;
4545
if (typeof MaxHeap !== 'undefined') {
4646
test = new MaxHeap();
4747
} else {
@@ -57,7 +57,7 @@ assert(
5757
```js
5858
assert(
5959
(function () {
60-
var test = false;
60+
let test = false;
6161
if (typeof MaxHeap !== 'undefined') {
6262
test = new MaxHeap();
6363
} else {
@@ -73,7 +73,7 @@ assert(
7373
```js
7474
assert(
7575
(function () {
76-
var test = false;
76+
let test = false;
7777
if (typeof MaxHeap !== 'undefined') {
7878
test = new MaxHeap();
7979
} else {
@@ -104,7 +104,7 @@ function isHeap(arr, i, n) {
104104

105105
assert(
106106
(function () {
107-
var test = false;
107+
let test = false;
108108
if (typeof MaxHeap !== 'undefined') {
109109
test = new MaxHeap();
110110
} else {
@@ -120,10 +120,16 @@ assert(
120120
return false;
121121
}
122122
const removed = test.remove();
123-
if(removed > max) return false
123+
if (!vals.includes(removed)) return false;
124+
if (removed > max) return false
124125
max = removed;
125126
result.push(removed);
126127
}
128+
for (let i = 0; i < vals.length; i++) {
129+
if (!result.includes(vals[i])) {
130+
return false;
131+
}
132+
}
127133
return true
128134
})()
129135
);
@@ -134,7 +140,7 @@ assert(
134140
## --seed-contents--
135141

136142
```js
137-
var MaxHeap = function () {
143+
const MaxHeap = function () {
138144
this.heap = [];
139145
this.parent = index => {
140146
return Math.floor((index - 1) / 2);

curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6351e7a8684bf5377c4ee7f7.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ You should give the fourth `label` a `for` attribute.
5858
assert.notEmpty(document.querySelectorAll('ul.answers-list > li > label')?.[3]?.htmlFor);
5959
```
6060
61-
You should give the fourth `label` a `for` attribute matching the `id` of its `input` element.
61+
你應該給第四個 `label` 一個 `for` 屬性,以匹配其 `input` 元素的 `id`
6262
6363
```js
6464
const htmlFor = document.querySelectorAll('ul.answers-list > li > label')?.[3]?.htmlFor;

0 commit comments

Comments
 (0)