Skip to content

Commit 6990b4d

Browse files
authored
chore(i18n,learn): processed translations (freeCodeCamp#47410)
1 parent 077d0a6 commit 6990b4d

File tree

19 files changed

+1083
-57
lines changed

19 files changed

+1083
-57
lines changed

curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
---
22
id: 56533eb9ac21ba0edf2244e2
3-
title: 凱撒密碼
3+
title: 愷撒密碼
44
challengeType: 5
55
forumTopicId: 16003
66
dashedName: caesars-cipher
77
---
88

99
# --description--
1010

11-
凱撒密碼( <dfn>Caesar cipher</dfn>)是最簡單且最廣爲人知的密碼(<dfn>ciphers</dfn>),也被稱爲移位密碼(<dfn>shift cipher</dfn>)。 在移位密碼中,明文中的字母通過按照一個固定數目進行偏移後被替換成新的字母。
11+
愷撒密碼( <dfn>Caesar cipher</dfn>)是最簡單且最廣爲人知的密碼(<dfn>ciphers</dfn>),也被稱爲移位密碼(<dfn>shift cipher</dfn>)。 在移位密碼中,明文中的字母通過按照一個固定數目進行偏移後被替換成新的字母。
1212

13-
[ROT13](https://en.wikipedia.org/wiki/ROT13) 是一個被廣泛使用的加密技術,明文中的所有字母都被移動 13 位。 也就是, `A ↔ N``B ↔ O` 等等。
13+
現代最常被應用到的一個變種就是 <a href="https://www.freecodecamp.org/news/how-to-code-the-caesar-cipher-an-introduction-to-basic-encryption-3bf77b4e19f7/" target="_blank" rel="noopener noreferrer nofollow">ROT13</a> 加密,也就是明文中的字母向後移 13 位。 也就是, `A ↔ N``B ↔ O` 等等。
1414

15-
編寫一個函數,它將 [ROT13](https://en.wikipedia.org/wiki/ROT13) 編碼的字符串作爲輸入並返回解碼字符串
15+
編寫一個函數,它將把使用 <a href="https://www.freecodecamp.org/news/how-to-code-the-caesar-cipher-an-introduction-to-basic-encryption-3bf77b4e19f7/" target="_blank" rel="noopener noreferrer nofollow">ROT13</a> 加密編碼的字符串作爲輸入並返回解碼字符串
1616

1717
所有解碼後的字母都必須爲字母大寫。 請不要解碼非字母的字符(例如,空格、標點符號),但你需要在結果中保留它們。
1818

curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
---
22
id: 56533eb9ac21ba0edf2244e2
3-
title: 凯撒密码
3+
title: 恺撒密码
44
challengeType: 5
55
forumTopicId: 16003
66
dashedName: caesars-cipher
77
---
88

99
# --description--
1010

11-
凯撒密码( <dfn>Caesar cipher</dfn>)是最简单且最广为人知的密码(<dfn>ciphers</dfn>),也被称为移位密码(<dfn>shift cipher</dfn>)。 在移位密码中,明文中的字母通过按照一个固定数目进行偏移后被替换成新的字母。
11+
恺撒密码( <dfn>Caesar cipher</dfn>)是最简单且最广为人知的密码(<dfn>ciphers</dfn>),也被称为移位密码(<dfn>shift cipher</dfn>)。 在移位密码中,明文中的字母通过按照一个固定数目进行偏移后被替换成新的字母。
1212

13-
[ROT13](https://en.wikipedia.org/wiki/ROT13) 是一个被广泛使用的加密技术,明文中的所有字母都被移动 13 位。 也就是, `A ↔ N``B ↔ O` 等等。
13+
现代最常被应用到的一个变种就是 <a href="https://www.freecodecamp.org/news/how-to-code-the-caesar-cipher-an-introduction-to-basic-encryption-3bf77b4e19f7/" target="_blank" rel="noopener noreferrer nofollow">ROT13</a> 加密,也就是明文中的字母向后移 13 位。 也就是, `A ↔ N``B ↔ O` 等等。
1414

15-
编写一个函数,它将 [ROT13](https://en.wikipedia.org/wiki/ROT13) 编码的字符串作为输入并返回解码字符串
15+
编写一个函数,它将把使用 <a href="https://www.freecodecamp.org/news/how-to-code-the-caesar-cipher-an-introduction-to-basic-encryption-3bf77b4e19f7/" target="_blank" rel="noopener noreferrer nofollow">ROT13</a> 加密编码的字符串作为输入并返回解码字符串
1616

1717
所有解码后的字母都必须为字母大写。 请不要解码非字母的字符(例如,空格、标点符号),但你需要在结果中保留它们。
1818

curriculum/challenges/german/00-certifications/responsive-web-design-certification/responsive-web-design-certification.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ isPrivate: true
77
tests:
88
-
99
id: bd7158d8c442eddfaeb5bd18
10-
title: Erstellung einer Tributseite
10+
title: Erstelle einer Tributseite
1111
-
1212
id: 587d78af367417b2b2512b03
1313
title: Erstellung eines Umfrageformulars

curriculum/challenges/german/01-responsive-web-design/responsive-web-design-projects/build-a-tribute-page.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
id: bd7158d8c442eddfaeb5bd18
3-
title: Erstelle eine Tribute-Seite
3+
title: Erstelle eine Gedenkseite
44
challengeType: 14
55
forumTopicId: 301147
66
dashedName: build-a-tribute-page
@@ -12,13 +12,13 @@ dashedName: build-a-tribute-page
1212

1313
**User Stories:**
1414

15-
1. Deine Tribute-Seite sollte über ein `main`-Element mit einer zugehörigen `id` von `main` verfügen, die alle anderen Elemente enthält
16-
1. Du solltest ein Element mit einer `id` von `title` sehen, das einen String (d.h. Text) enthält, der das Thema der Tribute-Seite beschreibt (z.B. „Dr. Norman Borlaug“)
15+
1. Deine Gedenkseite sollte über ein `main`-Element mit einer zugehörigen `id` von `main` verfügen, die alle anderen Elemente enthält
16+
1. Du solltest ein Element mit einer `id` von `title` sehen, das einen String (d.h. Text) enthält, der das Thema der Gedenkseite beschreibt (z.B. „Dr. Norman Borlaug“)
1717
1. Du solltest entweder ein `figure`- oder ein `div`-Element mit einer `id` von `img-div` sehen
1818
1. Du solltest innerhalb des `#img-div`-Elements ein `img`-Element mit zugehöriger `id="image"` sehen
1919
1. Du solltest innerhalb des `#img-div`-Elements ein Element mit zugehöriger `id="img-caption"` sehen, der einen Text enthält, der das in `#img-div` angezeigte Bild beschreibt.
20-
1. Du solltest ein Element mit zugehöriger `id="tribute-info"` sehen, das einen Text enthält und das Thema der Tribute-Seite beschreibt
21-
1. Du solltest ein `a`-Element mit zugehöriger `id="tribute-link"` sehen, welches auf eine externe Seite verweist, die zusätzliche Informationen über das Thema der Tribute-Seite enthält. TIPP: Du musst deinem Element ein Attribut von `target` zuweisen und es auf `_blank` setzen, damit der Link in einem neuen Tab geöffnet werden kann
20+
1. Du solltest ein Element mit zugehöriger `id="tribute-info"` sehen, welches das Thema der Gedenkseite beschreibenden Textinhalt enthält
21+
1. Du solltest ein `a`-Element mit zugehöriger `id="tribute-link"` sehen, welches auf eine externe Seite verweist, die zusätzliche Informationen über das Thema der Gedenkseite enthält. TIPP: Du musst deinem Element ein Attribut von `target` zuweisen und es auf `_blank` setzen, damit der Link in einem neuen Tab geöffnet werden kann
2222
1. Dein `#image` sollte die `max-width` und `height` Eigenschaften verwenden, um die Größenänderung responsiv zu gestalten, daher relativ zur Breite des übergeordneten Elements, ohne dessen Originalgröße zu überschreiten
2323
1. Dein `img`-Element sollte innerhalb des Elternelements zentriert werden
2424

curriculum/challenges/italian/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f05a1d8e233dff4a68508d8.md

Lines changed: 48 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,74 @@ Crea un altro pulsante di opzione sotto il primo. Annidalo all'interno di un ele
1111

1212
# --hints--
1313

14-
Dovrai aggiungere un nuovo elemento `label` nel quale annidare il nuovo pulsante di opzione. Assicurati di avere entrambi i tag di apertura e chiusura.
14+
Solo l'`input` del pulsante di opzione `Indoor` originario dovrebbe avere un `id` impostato su `indoor`. Se ne hai bisogno, puoi riavviare lo step per tornare all'HTML di partenza.
1515

1616
```js
17-
assert(
18-
document.querySelectorAll('label').length === 2 &&
19-
code.match(/<\/label\>/g).length === 2
20-
);
17+
assert(document.querySelectorAll('#indoor').length < 2);
2118
```
2219

23-
Il testo `Outdoor` dovrebbe essere posizionato direttamente a destra del nuovo pulsante `radio`. Assicurati che ci sia uno spazio tra l'elemento e il testo. O hai omesso il testo o hai un refuso.
20+
Non dovresti apportare modifiche al pulsante di opzione `Indoor`. Se ne hai bisogno, puoi riavviare lo step per tornare all'HTML di partenza.
2421

2522
```js
26-
const radioButtons = [...$('input')];
23+
const indoorInput = document.querySelectorAll('#indoor');
2724
assert(
28-
radioButtons.filter((btn) =>
29-
btn.nextSibling.nodeValue.replace(/\s+/g, ' ').match(/ *Outdoor/i)
30-
).length
25+
indoorInput.length == 1 &&
26+
indoorInput[0]?.nodeName?.toUpperCase() === 'INPUT' &&
27+
indoorInput[0]?.type === 'radio' &&
28+
code.match(/<label\s*>\s*<input [^>]*(id=["']?indoor["']?)[^>]*>\s*Indoor\s*<\/label>/)
3129
);
3230
```
3331
34-
Il nuovo pulsante di opzione e l'etichetta associata devono trovarsi sotto al primo. Sono nell'ordine sbagliato.
32+
Dovresti aggiungere esattamente un elemento `input` annidato all'interno di un nuovo elemento `label`. Assicurati che il nuovo `label` abbia sia il tag di apertura che di chiusura.
33+
34+
```js
35+
assert(document.querySelectorAll('label input').length === 2);
36+
```
37+
38+
Non dovresti aggiungere alcun attributo nel tag di apertura `label`.
39+
40+
```js
41+
assert(code.match(/<label\s*>/g).length === 2);
42+
```
43+
44+
Il nuovo `input` dovrebbe avere un attributo `id` con il valore `outdoor`.
45+
46+
```js
47+
assert(document.querySelector('label input[id="outdoor"]'));
48+
```
49+
50+
Il nuovo elemento `input` dovrebbe avere un attributo `type` con il valore `radio`.
51+
52+
```js
53+
assert(document.querySelector('label input[id="outdoor"][type="radio"]'));
54+
```
55+
56+
Non dovresti aggiungere alcun nuovo elemento oltre un `input` annidato in un `label`.
3557
3658
```js
37-
const collection = [
38-
...document.querySelectorAll('input[type="radio"]')
39-
].map((node) => node.nextSibling.nodeValue.replace(/\s+/g, ''));
40-
assert(collection.indexOf('Indoor') < collection.indexOf('Outdoor'));
59+
assert(document.querySelector('label input[id="outdoor"]:only-child'));
60+
```
61+
62+
Non ci dovrebbe essere alcun testo a sinistra del nuovo `input`.
63+
64+
```js
65+
const outdoorBtn = document.querySelector('label input[id="outdoor"]');
66+
assert(
67+
outdoorBtn?.previousSibling?.nodeName !== '#text' ||
68+
outdoorBtn?.previousSibling?.nodeValue?.replace(/\s/g, '') === ''
69+
);
4170
```
4271
43-
Il nuovo pulsante di opzione dovrebbe avere un attributo `id`. Verifica che ci sia uno spazio dopo il nome del tag di apertura e/o che ci siano spazi prima di tutti i nomi degli attributi.
72+
Il testo del label del nuovo pulsante di opzione deve essere esattamente `Outdoor`. Ciò include la maiuscola all'inizio della parola.
4473
4574
```js
46-
assert($('input')[1].hasAttribute('id'));
75+
assert(document.querySelector('label > input[id="outdoor"]')?.nextSibling?.nodeValue?.replace(/^\s+|\s+$/g, '') === 'Outdoor');
4776
```
4877
49-
Il nuovo pulsante di opzione dovrebbe avere un attributo `id` con il valore `outdoor`. O hai omesso il valore o hai un refuso. Ricorda che i valori degli attributi devono essere racchiusi tra virgolette.
78+
Il nuovo pulsante di opzione e label dovrebbero essere immediatamente sotto/dopo il pulsante di opzione e label `Indoor`. Non ci dovrebbero essere altri tag tra di loro.
5079
5180
```js
52-
assert($('input')[1].id.match(/^outdoor$/));
81+
assert(code.match(/<\/label>\s*<label\s*>\s*<input [^>]+>\s*Outdoor/i));
5382
```
5483
5584
# --seed--

curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/6176519636a76b810ab1219a.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ assert(new __helpers.CSSHelp(document).getStyle('.two'));
2525
assert(new __helpers.CSSHelp(document).getStyle('.two')?.backgroundColor === 'green');
2626
```
2727
28-
クラスセレクタ―を使用してクラス `three` を選択してください。
28+
クラスセレクターを使用してクラス `three` を選択してください。
2929
3030
```js
3131
assert(new __helpers.CSSHelp(document).getStyle('.three'));

curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b74fa777a2b2473c94f82.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ CSS クラスセレクター `.two` を変更して、新しい `green` クラ
1717
assert(!new __helpers.CSSHelp(document).getStyle('.two'));
1818
```
1919

20-
クラスセレクタ―を使用してクラス `green` を選択してください。
20+
クラスセレクターを使用してクラス `green` を選択してください。
2121

2222
```js
2323
assert(new __helpers.CSSHelp(document).getStyle('.green'));
@@ -35,7 +35,7 @@ assert(new __helpers.CSSHelp(document).getStyle('.green')?.backgroundColor === '
3535
assert(!new __helpers.CSSHelp(document).getStyle('.three'));
3636
```
3737
38-
クラスセレクタ―を使用してクラス `blue` を選択してください。
38+
クラスセレクターを使用してクラス `blue` を選択してください。
3939
4040
```js
4141
assert(new __helpers.CSSHelp(document).getStyle('.blue'));

curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61adc60b69cd4b87739d2174.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dashedName: step-71
1111

1212
# --hints--
1313

14-
クラスセレクタ―を使用してクラス `sleeve` を選択してください。
14+
クラスセレクターを使用してクラス `sleeve` を選択してください。
1515

1616
```js
1717
assert(new __helpers.CSSHelp(document).getStyle('.sleeve'));

curriculum/challenges/japanese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0936d9e7fc020b43b1bb8.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dashedName: step-78
1717

1818
# --hints--
1919

20-
クラスセレクタ―を使用して、クラス `cap` とクラス `sleeve` の両方を選択してください。
20+
クラスセレクターを使用して、クラス `cap` とクラス `sleeve` の両方を選択してください。
2121

2222
```js
2323
assert(new __helpers.CSSHelp(document).getStyle('.cap, .sleeve') || new __helpers.CSSHelp(document).getStyle('.sleeve, .cap'));
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
---
2+
id: 5ef9b03c81a63668521804ee
3+
title: ステップ 67
4+
challengeType: 0
5+
dashedName: step-67
6+
---
7+
8+
# --description--
9+
10+
すべてのページは `<!DOCTYPE html>` で始める必要があります。 この特殊な文字列は<dfn>宣言</dfn>として知られ、ブラウザーが業界標準の仕様に従った動作を試みるよう保証します。
11+
12+
この宣言を、コードの最初の行として追加してください。
13+
14+
# --hints--
15+
16+
コードは `<!DOCTYPE html>` 宣言で始まる必要があります。 宣言が省略されているか、誤字脱字があるか、コードの最初の行にありません。
17+
18+
```js
19+
assert(code.match(/\<\s*!DOCTYPE\s+html\s*\>/));
20+
```
21+
22+
`<!DOCTYPE html>` はドキュメントの先頭になければなりません。
23+
24+
```js
25+
const noSpaces = code.replace(/\s/g, '');
26+
assert(noSpaces.match(/^\<\!DOCTYPEhtml\>\<html/));
27+
```
28+
29+
# --seed--
30+
31+
## --seed-contents--
32+
33+
```html
34+
--fcc-editable-region--
35+
<html lang="en">
36+
<head>
37+
<title>CatPhotoApp</title>
38+
</head>
39+
--fcc-editable-region--
40+
<body>
41+
<h1>CatPhotoApp</h1>
42+
<main>
43+
<section>
44+
<h2>Cat Photos</h2>
45+
<!-- TODO: Add link to cat photos -->
46+
<p>Click here to view more <a target="_blank" href="https://freecatphotoapp.com">cat photos</a>.</p>
47+
<a href="https://freecatphotoapp.com"><img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg" alt="A cute orange cat lying on its back."></a>
48+
</section>
49+
<section>
50+
<h2>Cat Lists</h2>
51+
<h3>Things cats love:</h3>
52+
<ul>
53+
<li>cat nip</li>
54+
<li>laser pointers</li>
55+
<li>lasagna</li>
56+
</ul>
57+
<figure>
58+
<img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg" alt="A slice of lasagna on a plate.">
59+
<figcaption>Cats <em>love</em> lasagna.</figcaption>
60+
</figure>
61+
<h3>Top 3 things cats hate:</h3>
62+
<ol>
63+
<li>flea treatment</li>
64+
<li>thunder</li>
65+
<li>other cats</li>
66+
</ol>
67+
<figure>
68+
<img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg" alt="Five cats looking around a field.">
69+
<figcaption>Cats <strong>hate</strong> other cats.</figcaption>
70+
</figure>
71+
</section>
72+
<section>
73+
<h2>Cat Form</h2>
74+
<form action="https://freecatphotoapp.com/submit-cat-photo">
75+
<fieldset>
76+
<legend>Is your cat an indoor or outdoor cat?</legend>
77+
<label><input id="indoor" type="radio" name="indoor-outdoor" value="indoor" checked> Indoor</label>
78+
<label><input id="outdoor" type="radio" name="indoor-outdoor" value="outdoor"> Outdoor</label>
79+
</fieldset>
80+
<fieldset>
81+
<legend>What's your cat's personality?</legend>
82+
<input id="loving" type="checkbox" name="personality" value="loving" checked> <label for="loving">Loving</label>
83+
<input id="lazy" type="checkbox" name="personality" value="lazy"> <label for="lazy">Lazy</label>
84+
<input id="energetic" type="checkbox" name="personality" value="energetic"> <label for="energetic">Energetic</label>
85+
</fieldset>
86+
<input type="text" name="catphotourl" placeholder="cat photo URL" required>
87+
<button type="submit">Submit</button>
88+
</form>
89+
</section>
90+
</main>
91+
<footer>
92+
<p>
93+
No Copyright - <a href="https://www.freecodecamp.org">freeCodeCamp.org</a>
94+
</p>
95+
</footer>
96+
</body>
97+
</html>
98+
```
99+

0 commit comments

Comments
 (0)