Skip to content

Commit

Permalink
chore(i18n,learn): processed translations (freeCodeCamp#49944)
Browse files Browse the repository at this point in the history
  • Loading branch information
camperbot authored Apr 4, 2023
1 parent 82e21ac commit b44c93d
Show file tree
Hide file tree
Showing 79 changed files with 338 additions and 293 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,8 @@ Complete the function using the rules below to modify the object passed to the f

- Your function must always return the entire `records` object.
- If `value` is an empty string, delete the given `prop` property from the album.
- If `prop` isn’t `"tracks"` and `value` isn't an empty string, assign the `value` to that album’s `prop`.
- If `prop` is `"tracks"` and `value` isn’t an empty string, add the `value` to the end of the album’s existing `"tracks"` array.
- If the album doesn’t have a `"tracks"` property, create a new array for the album's `"tracks"` property before adding the `value` to it.
- If `prop` isn't `tracks` and `value` isn't an empty string, assign the `value` to that album's `prop`.
- If `prop` is `tracks` and value isn't an empty string, add the `value` to the end of the album's `tracks` array. You need to create this array first if the album does not have a `tracks` property.

**Note:** A copy of the `recordCollection` object is used for the tests. You should not directly modify the `recordCollection` object.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(ru
assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].some(css => css?.keyText === '40%'));
```
You should have 4 waypoints in your keyframe.
```js
assert([...[...new __helpers.CSSHelp(document).getCSSRules('keyframes')].find(rule => rule?.name === 'wave')?.cssRules].length === 4);
```
# --seed--
## --seed-contents--
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,16 @@ isPrivate: true
tests:
-
id: 63d83ff239c73468b059cd3f
title: Build a Multi-Function Calculator
title: 創建一個多功能計算器
-
id: 63d83ffd39c73468b059cd40
title: Build a Graphing Calculator
title: 創建一個圖形計算器
-
id: 63d8401039c73468b059cd41
title: Build Three Math Games
title: 創建三個數學遊戲
-
id: 63d8401e39c73468b059cd42
title: Build a Financial Calculator
title: 創建一個財務計算器
-
id: 63d8402e39c73468b059cd43
title: Build a Data Graph Explorer
title: 創建一個數據圖表瀏覽器
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,27 @@ dashedName: record-collection

# --description--

You are creating a function that aids in the maintenance of a musical album collection. The collection is organized as an object that contains multiple albums which are also objects. Each album is represented in the collection with a unique `id` as the property name. Within each album object, there are various properties describing information about the album. Not all albums have complete information.
你將創建一個幫助維護音樂專輯集的函數。 這個集合是一個包含多個相冊的對象,這些相冊也是對象。 每張專輯在集合中以唯一的 `id` 作爲屬性名來表示。 在每個專輯對象中,有各種描述專輯信息的屬性。 並非所有專輯都有完整的信息。

The `updateRecords` function takes 4 arguments represented by the following function parameters:
`updateRecords` 函數有 4 個參數,即以下參數:

- `records` - an object containing several individual albums
- `id` - a number representing a specific album in the `records` object
- `prop` - a string representing the name of the album’s property to update
- `value` - a string containing the information used to update the album’s property
- `records` - 一個包含多個專輯的對象
- `id` - 一個數字,代表 `records` 對象中特定的專輯
- `prop` - 一個字符串,代表相冊屬性名稱
- `value` - 一個字符串,包含用來更新相冊屬性的信息

Complete the function using the rules below to modify the object passed to the function.
使用下面的規則完成函數來修改傳遞給函數的對象。

- Your function must always return the entire `records` object.
- If `value` is an empty string, delete the given `prop` property from the album.
- If `prop` isn’t `"tracks"` and `value` isn't an empty string, assign the `value` to that album’s `prop`.
- If `prop` is `"tracks"` and `value` isn’t an empty string, add the `value` to the end of the album’s existing `"tracks"` array.
- If the album doesn’t have a `"tracks"` property, create a new array for the album's `"tracks"` property before adding the `value` to it.
- 你的函數必須始終返回整個 `records` 對象。
- 如果 `value` 是空字符串,從專輯裏刪除指定的 `prop`
- If `prop` isn't `tracks` and `value` isn't an empty string, assign the `value` to that album's `prop`.
- If `prop` is `tracks` and value isn't an empty string, add the `value` to the end of the album's `tracks` array. You need to create this array first if the album does not have a `tracks` property.

**Note:** A copy of the `recordCollection` object is used for the tests. You should not directly modify the `recordCollection` object.
**注意:** `recordCollection` 對象的副本用於測試。 你不應該直接修改 `recordCollection` 對象。

# --hints--

After `updateRecords(recordCollection, 5439, "artist", "ABBA")`, `artist` should be the string `ABBA`
執行 `updateRecords(recordCollection, 5439, "artist", "ABBA")` 後,`artist` 的值應該是字符串 `ABBA`

```js
assert(
Expand All @@ -38,7 +37,7 @@ assert(
);
```

After `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` should have the string `Take a Chance on Me` as the last and only element.
執行 `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")` 後,`tracks` 的最後一個和唯一一個元素應該爲字符串 `Take a Chance on Me`

```js
assert(
Expand All @@ -48,14 +47,14 @@ assert(
);
```

After `updateRecords(recordCollection, 2548, "artist", "")`, `artist` should not be set
執行 `updateRecords(recordCollection, 2548, "artist", "")` 後,`artist` 不應被設置爲任何值。

```js
updateRecords(_recordCollection, 2548, 'artist', '');
assert(!_recordCollection[2548].hasOwnProperty('artist'));
```

After `updateRecords(recordCollection, 1245, "tracks", "Addicted to Love")`, `tracks` should have the string `Addicted to Love` as the last element.
執行 `updateRecords(recordCollection, 1245, "tracks", "Addicted to Love")` 後,`tracks` 的最後一個元素應該爲字符串 `Addicted to Love`

```js
assert(
Expand All @@ -65,7 +64,7 @@ assert(
);
```

After `updateRecords(recordCollection, 2468, "tracks", "Free")`, `tracks` should have the string `1999` as the first element.
執行 `updateRecords(recordCollection, 2468, "tracks", "Free")` 後,`tracks` 的第一個元素應該爲字符串 `1999`

```js
assert(
Expand All @@ -75,14 +74,14 @@ assert(
);
```

After `updateRecords(recordCollection, 2548, "tracks", "")`, `tracks` should not be set
執行 `updateRecords(recordCollection, 2548, "tracks", "")` 後,`tracks` 不應被設置爲任何值。

```js
updateRecords(_recordCollection, 2548, 'tracks', '');
assert(!_recordCollection[2548].hasOwnProperty('tracks'));
```

After `updateRecords(recordCollection, 1245, "albumTitle", "Riptide")`, `albumTitle` should be the string `Riptide`
執行 `updateRecords(recordCollection, 1245, "albumTitle", "Riptide")` 後,`albumTitle` 的值應該是字符串 `Riptide`

```js
assert(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,35 +11,35 @@ dashedName: word-blanks

給你一些不完整的句子,這些句子會缺少一些例如名詞、動詞、形容詞或者副詞之類的字詞。 然後你需要使用你選擇的詞語去填補這些缺失的地方,使得這個句子變得完整且有意義。

Consider this sentence:
考慮這句話:

```md
It was really ____, and we ____ ourselves ____.
```

This sentence has three missing pieces- an adjective, a verb and an adverb, and we can add words of our choice to complete it. We can then assign the completed sentence to a variable as follows:
這句話有三個缺失的部分 - 形容詞、動詞和副詞,我們可以選擇合適單詞填入完成它。 然後將完成的句子賦值給變量,如下所示:

```js
const sentence = "It was really " + "hot" + ", and we " + "laughed" + " ourselves " + "silly" + ".";
```

# --instructions--

In this challenge, we provide you with a noun, a verb, an adjective and an adverb. You need to form a complete sentence using words of your choice, along with the words we provide.
在這個挑戰中,我們爲你提供名詞、動詞、形容詞和副詞。 你需要使用合適單詞以及我們提供的單詞來形成完整的句子。

You will need to use the string concatenation operator `+` to build a new string, using the provided variables: `myNoun`, `myAdjective`, `myVerb`, and `myAdverb`. You will then assign the formed string to the `wordBlanks` variable. You should not change the words assigned to the variables.
你需要使用字符串連接運算符 `+` 來拼接字符串變量:`myNoun``myAdjective``myVerb` `myAdverb`,以構建一個新字符串。 然後,將新字符串賦給 `wordBlanks` 變量。 你不應該更改分配給變量的單詞。

You will also need to account for spaces in your string, so that the final sentence has spaces between all the words. The result should be a complete sentence.
你還需要考慮字符串中的空格,確保句子的所有單詞之間有空格。 結果應該是一個完整的句子。

# --hints--

`wordBlanks` should be a string.
`wordBlanks` 應該是一個字符串。

```js
assert(typeof wordBlanks === 'string');
```

You should not change the values assigned to `myNoun`, `myVerb`, `myAdjective` or `myAdverb`.
你不能改變賦給 `myNoun``myVerb``myAdjective` 或者 `myAdverb` 的值。

```js
assert(
Expand All @@ -50,7 +50,7 @@ assert(
);
```

You should not directly use the values `dog`, `ran`, `big`, or `quickly` to create `wordBlanks`.
你不應該直接使用 `dog``ran``big` `quickly` 來創建 `wordBlanks`

```js
const newCode = removeAssignments(code);
Expand All @@ -62,7 +62,7 @@ assert(
);
```

`wordBlanks` should contain all of the words assigned to the variables `myNoun`, `myVerb`, `myAdjective` and `myAdverb` separated by non-word characters (and any additional words of your choice).
`wordBlanks` 應該包含分配給變量 `myNoun``myVerb``myAdjective` `myAdverb` 的所有單詞,用非單詞字符(和你選擇的任何其他單詞)分隔。

```js
assert(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ dashedName: add-attributes-to-the-circle-elements

# --description--

The last challenge created the `circle` elements for each point in the `dataset`, and appended them to the SVG. 但是 D3 需要更多關於位置和 `circle` 大小的信息來正確地顯示它們。
上個挑戰爲 `dataset` 中的每個點都創建了 `circle` 元素,並將它們添加到 SVG 上。 但是 D3 需要更多關於位置和 `circle` 大小的信息來正確地顯示它們。

在 SVG 中 `circle` 有三個主要的屬性。 `cx``cy` 屬性是座標。 They tell D3 where to position the *center* of the shape on the SVG. 半徑( `r` 屬性)給出 `circle` 的大小。
在 SVG 中 `circle` 有三個主要的屬性。 `cx``cy` 屬性是座標。 它們告訴 D3 將圖形的*中心*放在 SVG 的何處。 半徑( `r` 屬性)給出 `circle` 的大小。

Just like the `rect` `y` coordinate, the `cy` attribute for a `circle` is measured from the top of the SVG, not from the bottom.
`rect` `y` 座標一樣,`circle``cy` 屬性是從 SVG 畫布的頂端開始測量的,而不是從底端。

所有的屬性都可以用回調函數來動態設值。 記住,所有串聯在 `data(dataset)` 後面的方法會爲 `dataset` 中的每個對象都運行一次。 回調函數中的 `d` 參數指在 `dataset` 中的當前對象,對每個點來說都是一個數組。 你可以使用方括號的方式,如 `d[0]`,來訪問數組中的值。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ D3 有兩種方法來渲染 y 軸和 x 軸,分別是 `axisLeft()` 和 `axisBot
const xAxis = d3.axisBottom(xScale);
```

The next step is to render the axis on the SVG. 爲此,你可以使用一個 SVG 組件, `g` 元素, `g` 是英文中組(group)的縮寫。 不同於 `rect``circle``text`,在渲染時,軸只是一條直線。 因爲它是一個簡單的圖形,所以可以用 `g`The last step is to apply a `transform` attribute to position the axis on the SVG in the right place. Otherwise, the line would render along the border of the SVG and wouldn't be visible. SVG 支持多種 `transforms`,但是定位軸需要使用 `translate` 屬性。 當它應用在 `g` 元素上時,它根據給出的總量移動整組。 下面是一個例子:
下一步是在 SVG 上渲染 x 軸。 爲此,你可以使用一個 SVG 組件, `g` 元素, `g` 是英文中組(group)的縮寫。 不同於 `rect``circle``text`,在渲染時,軸只是一條直線。 因爲它是一個簡單的圖形,所以可以用 `g`最後一步是使用 `transform` 屬性將軸放置在 SVG 的正確位置上。 否則,軸將會沿着 SVG 的邊緣渲染,從而不可見。 SVG 支持多種 `transforms`,但是定位軸需要使用 `translate` 屬性。 當它應用在 `g` 元素上時,它根據給出的總量移動整組。 下面是一個例子:

```js
const xAxis = d3.axisBottom(xScale);
Expand All @@ -26,7 +26,7 @@ svg.append("g")
.call(xAxis);
```

The above code places the x-axis at the bottom of the SVG. 然後 x 軸作爲參數被傳遞給 `call()` 方法。 y 軸的定位也是這樣,只是 `translate` 參數的形式是 `(x, 0)`。 因爲 `translate``attr()` 方法中的一個字符串,你可以在參數中使用字符串的連接將變量值包括進去。
上部分代碼將 x 軸放置在 SVG 的底端。 然後 x 軸作爲參數被傳遞給 `call()` 方法。 y 軸的定位也是這樣,只是 `translate` 參數的形式是 `(x, 0)`。 因爲 `translate``attr()` 方法中的一個字符串,你可以在參數中使用字符串的連接將變量值包括進去。

# --instructions--

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ dashedName: add-labels-to-d3-elements

D3 允許你使用 SVG 的 `text` 元素給圖形元素,如條形圖,添加標籤。

Like the `rect` element, a `text` element needs to have `x` and `y` attributes, to place it on the SVG. 它也需要能夠獲取數據來顯示數據值。
`rect` 元素類似,`text` 元素也需要 `x` `y` 屬性來指定其放置在 SVG 上的位置, 它也需要能夠獲取數據來顯示數據值。

D3 給了你很高的權限給圖形添加標籤。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dashedName: add-labels-to-scatter-plot-circles

目標是顯示 `dataset` 中每個對象的第一個(`x`)和第二個(`y`)字段中通過逗號分隔的值。

The `text` nodes need `x` and `y` attributes to position it on the SVG. 在這個挑戰中,`y` 值(決定高度)可以用和 `circle``cy` 屬性相同的值, `x` 值可以比 `circle``cx` 值稍微大一些,這樣標籤纔可見, 並且被放置在散點的右邊。
`text` 節點需要 `x` `y` 屬性來指定放置在 SVG 中的位置。 在這個挑戰中,`y` 值(決定高度)可以用和 `circle``cy` 屬性相同的值, `x` 值可以比 `circle``cx` 值稍微大一些,這樣標籤纔可見, 並且被放置在散點的右邊。

# --instructions--

Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
---
id: 587d7fab367417b2b2512bda
title: 用 D3 創建線性比例
title: 用 D3 創建線性比例尺
challengeType: 6
forumTopicId: 301483
dashedName: create-a-linear-scale-with-d3
---

# --description--

The bar and scatter plot charts both plotted data directly onto the SVG. 但是,如果一組的高或者其中一個數據點比 SVG 的高或寬更大,它將跑到 SVG 區域外。
條形圖和散點圖都直接在 SVG 上繪製數據。 但是,如果一組的高或者其中一個數據點比 SVG 的高或寬更大,它將跑到 SVG 區域外。

D3 中,比例尺可幫助佈局數據。 `scales` are functions that tell the program how to map a set of raw data points onto the pixels of the SVG.
D3 中,比例尺可幫助佈局數據。 `scales` 是函數,它告訴程序如何將一組原始數據點映射到 SVG 上。

For example, say you have a 100x500-sized SVG and you want to plot Gross Domestic Product (GDP) for a number of countries. 這組數據將在十億美元或萬億美元的範圍內。 你給 D3 提供一種縮放方法,告訴它如何將大的 GDP 值放置在 100x500 大小的區域。
例如,假設你有一個 100x500 大小的 SVG,你想爲許多國家繪製國內生產總值(GDP)的圖表。 這組數據將在十億美元或萬億美元的範圍內。 你給 D3 提供一種比例尺,告訴它如何將大的 GDP 值放置在 100x500 大小的區域。

你不太可能按數據原本的大小來繪製圖表。 Before plotting it, you set the scale for your entire data set, so that the `x` and `y` values fit your SVG width and height.
你不太可能按數據原本的大小來繪製圖表。 在繪製之前,你可以設置整個數據集的比例尺,以便 `x` `y` 值適合你的 SVG 的寬度和高度。

D3 有幾種縮放類型。 對於線性縮放(通常使用於定量數據),使用 D3 的 `scaleLinear()` 方法:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ SVG 用 `circle` 標籤來創建圓形。 它和之前用來構建條形圖的 `

# --instructions--

Use the `data()`, `enter()`, and `append()` methods to bind `dataset` to new `circle` elements that are appended to the SVG.
使用 `data()``enter()``append()` 方法將 `dataset` 和添加到 SVG 的新 `circle` 元素綁定起來。

**注意:** 圓形並不可見,因爲我們還沒有設置它們的屬性。 我們會在下一個挑戰中設置屬性。

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: 587d7fac367417b2b2512bdb
title: 按比例設置域和範圍
title: 設置比例尺的定義域和值域
challengeType: 6
forumTopicId: 301491
dashedName: set-a-domain-and-a-range-on-a-scale
Expand All @@ -10,9 +10,9 @@ dashedName: set-a-domain-and-a-range-on-a-scale

默認情況下,比例尺使用一對一關係(identity relationship), 即輸入值直接映射爲輸出值。 但是比例尺可以更靈活更有趣。

假設有一個數據集範圍爲 50 到 480, 這是縮放的輸入信息,也被稱爲<dfn></dfn>。
假設有一個數據集值的範圍爲 50 到 480, 這是比例尺的輸入信息,也被稱爲<dfn>定義域</dfn>。

You want to map those points along the `x` axis on the SVG, between 10 units and 500 units. 這是輸出信息,也被稱爲<dfn>範圍</dfn>。
你想沿着 SVG 上的 `x` 軸映射這些點,在 10 單位和 500 單位之間。 這是輸出信息,也被稱爲<dfn>值域</dfn>。

`domain()``range()` 方法設置比例尺的值, 它們都接受一個至少有兩個元素的數組作爲參數。 下面是一個例子:

Expand All @@ -28,11 +28,11 @@ d3.scaleLinear()

按順序,將在控制檯中顯示以下值:`10``500``323.37``807.67`

注意,比例尺使用了域和範圍之間的線性關係來找出給定數字的輸出值。 域中的最小值(50)映射爲範圍中的最小值(10)。
注意,比例尺使用了定義域和值域之間的線性關係來找出給定數字的輸出值。 定義域中的最小值(50)映射爲值域中的最小值(10)。

# --instructions--

創建一個比例尺,將它的域設置爲 `[250, 500]`範圍設置爲 `[10, 150]`
創建一個比例尺,將它的定義域設置爲 `[250, 500]`值域設置爲 `[10, 150]`

**注意:**你可以將 `domain()``range()` 方法串聯在 `scale` 變量後。

Expand Down
Loading

0 comments on commit b44c93d

Please sign in to comment.