diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md
index f8fb0c1f3e6..bf296df3398 100644
--- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md
+++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/javascript-algorithms-and-data-structures-projects/caesars-cipher.md
@@ -10,9 +10,9 @@ dashedName: caesars-cipher
Uno dei più semplici e più conosciuti cifrari è il cifrario di Cesare, noto anche come cifrario a scorrimento. In un cifrario a scorrimento i significati delle lettere sono spostati di un certo numero di posizioni.
-Un comune uso moderno è il cifrario ROT13, dove i valori delle lettere sono shiftati di 13 posizioni. Così `A ↔ N`, `B ↔ O` e così via.
+Un comune uso moderno è il cifrario ROT13, dove i valori delle lettere sono shiftati di 13 posizioni. Così `A ↔ N`, `B ↔ O` e così via.
-Scrivi una funzione che prende come input una stringa cifrata con ROT13 e restituisce una stringa decodificata.
+Scrivi una funzione che prende come input una stringa cifrata con ROT13 e restituisce una stringa decodificata.
Tutte le lettere saranno maiuscole. Non trasformare alcun carattere non alfabetico (cioè spazi, punteggiatura), ma passali come sono.
diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
index 50dc4dbf258..03bc55de0ce 100644
--- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
+++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
@@ -353,9 +353,11 @@ async (getUserInput) => {
try {
const getTests = await $.get(getUserInput('url') + '/_api/get-tests');
assert.isArray(getTests);
- const units = getTests.filter((el) => el.context.includes('UnitTests'));
- assert.isAtLeast(units.length, 12, 'At least 12 tests passed');
- units.forEach((test) => {
+ const unitTests = getTests.filter((test) => {
+ return !!test.context.match(/Unit\s*Tests/gi);
+ });
+ assert.isAtLeast(unitTests.length, 12, 'At least 12 tests passed');
+ unitTests.forEach((test) => {
assert.equal(test.state, 'passed', 'Test in Passed State');
assert.isAtLeast(
test.assertions.length,
@@ -376,11 +378,11 @@ async (getUserInput) => {
try {
const getTests = await $.get(getUserInput('url') + '/_api/get-tests');
assert.isArray(getTests);
- const funcs = getTests.filter((el) =>
- el.context.includes('Functional Tests')
- );
- assert.isAtLeast(funcs.length, 14, 'At least 14 tests passed');
- funcs.forEach((test) => {
+ const functTests = getTests.filter((test) => {
+ return !!test.context.match(/Functional\s*Tests/gi);
+ });
+ assert.isAtLeast(functTests.length, 14, 'At least 14 tests passed');
+ functTests.forEach((test) => {
assert.equal(test.state, 'passed', 'Test in Passed State');
assert.isAtLeast(
test.assertions.length,
diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
index c037d118dd2..f63945cf835 100644
--- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
+++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-projects/sudoku-solver.md
@@ -353,9 +353,11 @@ async (getUserInput) => {
try {
const getTests = await $.get(getUserInput('url') + '/_api/get-tests');
assert.isArray(getTests);
- const units = getTests.filter((el) => el.context.includes('UnitTests'));
- assert.isAtLeast(units.length, 12, 'At least 12 tests passed');
- units.forEach((test) => {
+ const unitTests = getTests.filter((test) => {
+ return !!test.context.match(/Unit\s*Tests/gi);
+ });
+ assert.isAtLeast(unitTests.length, 12, 'At least 12 tests passed');
+ unitTests.forEach((test) => {
assert.equal(test.state, 'passed', 'Test in Passed State');
assert.isAtLeast(
test.assertions.length,
@@ -376,11 +378,11 @@ async (getUserInput) => {
try {
const getTests = await $.get(getUserInput('url') + '/_api/get-tests');
assert.isArray(getTests);
- const funcs = getTests.filter((el) =>
- el.context.includes('Functional Tests')
- );
- assert.isAtLeast(funcs.length, 14, 'At least 14 tests passed');
- funcs.forEach((test) => {
+ const functTests = getTests.filter((test) => {
+ return !!test.context.match(/Functional\s*Tests/gi);
+ });
+ assert.isAtLeast(functTests.length, 14, 'At least 14 tests passed');
+ functTests.forEach((test) => {
assert.equal(test.state, 'passed', 'Test in Passed State');
assert.isAtLeast(
test.assertions.length,
diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md
index e3566bc29f3..5eb1a2a5a2d 100644
--- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md
+++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/probability-calculator.md
@@ -37,7 +37,7 @@ Em seguida, crie uma função`experiment`em `prob_calculator.py` (não dentro da
A função `experiment` deve retornar uma probabilidade.
-Por exemplo, digamos que você quer determinar a probabilidade de obter pelo menos 2 bolas vermelhas e 1 bola verde ao retirar 5 bolas de um chapéu contendo 6 bolas pretas, 4 vermelhas, e 3 verdes. Para fazer isso, realizamos `N` experimentos, contamos quantas vezes `M` nós obtivemos pelo menos 2 bolas vermelhas e 1 bola verde, e estimamos a probabilidade como `M/N`. Cada experimento consiste em começar com um chapéu contendo as bolas especificadas, retirar várias bolas e verificar se retiramos as bolas que estávamos tentando retirar.
+Por exemplo, se você quer determinar a probabilidade de obter pelo menos duas bolas vermelhas e uma bola verde ao retirar cinco bolas de um chapéu contendo seis bolas pretas, quatro vermelhas e três verdes. Para fazer isso, você realiza `N` experimentos, conta quantas vezes `M` você obtém pelo menos duas bolas vermelhas e uma bola verde e estima a probabilidade como `M/N`. Cada experimento consiste em começar com um chapéu contendo as bolas especificadas, retirar várias bolas e verificar se retirou as bolas que estava tentando retirar.
Veja como você chamaria a função `experiment` com base no exemplo acima de 2.000 experimentos:
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d50b93ba424d6282c99cf.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d50b93ba424d6282c99cf.md
index c12cd243b64..d625993a64b 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d50b93ba424d6282c99cf.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/616d50b93ba424d6282c99cf.md
@@ -7,7 +7,7 @@ dashedName: step-12
# --description--
-Observe que seu marcador não parece ter nenhuma cor. A cor de fundo foi realmente aplicada, mas como o elemento marcador `div` está vazio, ele não tem qualquer largura ou altura por padrão.
+Observe que seu marcador não parece ter nenhuma cor. A cor de fundo foi realmente aplicada, mas como o elemento marcador `div` está vazio, ele não tem qualquer altura por padrão.
Na regra do CSS `.marker` defina a propriedade `width` como `200px` e `height` como `25px`.
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98da.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98da.md
index a6c18b90d98..1c68818b37a 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98da.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98da.md
@@ -7,7 +7,7 @@ dashedName: step-18
# --description--
-Agora, o primeiro edifício parece bom. Vamos fazer mais alguns edifícios! Aninhe três novos elementos `div` no contêiner `background-buildings` e dê a eles as classes de `bb2`, `bb3` e `bb4`, nessa ordem. Esses serão mais três edifícios para o fundo.
+Agora, o primeiro edifício parece bom. Aninhe três novos elementos `div` no contêiner `background-buildings` e dê a eles as classes de `bb2`, `bb3` e `bb4`, nessa ordem. Esses serão mais três edifícios para o fundo.
# --hints--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md
index 6cb8dd6640e..3757b26912f 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23991f86c76b9248c6eb8.md
@@ -16,7 +16,7 @@ No passo anterior, você aninhou o elemento `h2`, o comentário e o elemento `p`
```
-Adicione mais dois espaços na frente de `h1`, comentário e elementos `p` para que seu HTML seja mais legível.
+Adicione mais dois espaços na frente de `h2`, comentário e elementos `p` para que seu HTML seja mais legível.
# --hints--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md
index d01d59f224f..6e7b48c483e 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md
@@ -17,7 +17,7 @@ Antes da entrada de texto, adicione um botão de opção com a opção definida
# --hints--
-Você deve criar um elemento input para o botão de opção. Confira a sintaxe.
+Você deve criar um elemento `input` para o botão de opção. Confira a sintaxe.
```js
assert($('form > input').length >= 2);
@@ -29,7 +29,7 @@ O elemento `input` deve ter uma tag de abertura, mas não uma de fechamento.
assert($('form > input') && !code.match(/<\/input\>/g));
```
-Você deve adicionar apenas um elemento input para o botão de opção. Remova os elementos adicionais.
+Você deve adicionar apenas um elemento `input` para o botão de opção. Remova os elementos adicionais.
```js
assert($('form > input').length === 2);
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md
index f665c8d0036..f46d9dfef50 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md
@@ -7,7 +7,7 @@ dashedName: step-44
# --description--
-Os elementos `label` são usados para ajudar a associar o texto de um elemento `input` com o próprio elemento (especialmente para tecnologias assistivas como leitores de tela). Por exemplo, `` torna possível que clicar na palavra `cat` também selecione o botão de opção correspondente.
+Os elementos `label` são usados para ajudar a associar o texto de um elemento `input` com o próprio elemento `input` (especialmente para tecnologias assistivas como leitores de tela). Por exemplo, `` torna possível que clicar na palavra `cat` também selecione o botão de opção correspondente.
Coloque o botão `radio` dentro de um elemento `label`.
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md
index 8a78549a5df..a3beec1b694 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md
@@ -28,7 +28,7 @@ O botão de opção deve ter um atributo `id`. Verifique se há um espaço depoi
assert($('input')[0].hasAttribute('id'));
```
-O botão de opção deve ter o atributo `id` com o valor `indoor`. Você omitiu o valor ou tem um erro de digitação. Lembre-se de que os valores dos atributos devem estar cercados com aspas.
+O elemento do botão de opção deve ter o atributo `id` com o valor `indoor`. Você omitiu o valor ou tem um erro de digitação. Lembre-se de que os valores dos atributos devem estar cercados com aspas.
```js
assert($('input')[0].id.match(/^indoor$/));
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60facde2d0dc61085b41063f.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60facde2d0dc61085b41063f.md
index efc3f15a80d..2c45fdf7476 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60facde2d0dc61085b41063f.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60facde2d0dc61085b41063f.md
@@ -9,11 +9,11 @@ dashedName: step-33
O elemento `textarea` age como um elemento `input` do tipo `text`, mas vem com o benefício adicional de poder receber texto em várias linhas e um número inicial de linhas e colunas.
-Para permitir que os usuários se registrem com uma biografia, adicione um `label` com o texto `Provide a bio:` seguido de um elemento `textarea`, que requer uma tag de fechamento.
+Os usuários poderão se registrar com uma biografia. Adicione um `label` com o texto `Provide a bio:` ao final do `fieldset`. Adicione um elemento `textarea` dentro do elemento `label`. Observe que o elemento `textarea` requer uma tag de fechamento.
# --hints--
-Você deve adicionar um `label` ao terceiro `fieldset`, depois da `label` pré-existente.
+Você deve adicionar um `label` ao final do terceiro `fieldset`, depois dos elementos `label` existentes.
```js
assert.exists(document.querySelector('fieldset:nth-child(3) > label:nth-child(4)'));
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fad1cafcde010995e15306.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fad1cafcde010995e15306.md
index c79a413a029..ae239d0a84d 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fad1cafcde010995e15306.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fad1cafcde010995e15306.md
@@ -9,7 +9,7 @@ dashedName: step-36
Com envios de formulário, é útil e boa prática fornecer a cada elemento enviado um atributo `name`. Este atributo é usado para identificar o elemento no envio do formulário.
-Vá em frente e dê a cada elemento que possa ser enviado um atributo `name` único de sua escolha. _Exceto para as duas entradas `radio`._
+Dê a cada elemento enviável um atributo exclusivo `name` de sua escolha, exceto para as duas entradas `radio` (os botões de opção).
# --hints--