Están definidos con un nombre en mayúscula para distinguirlos de otras funciones que no son constructors.
Utilizan la palabra clave this para establecer propiedades del objeto que crearán. Dentro del constructor, this se refiere al nuevo objeto que creará.
Los Constructors definen propiedades y comportamientos en ves de devolverlos como un valor como lo harían otras funciones.
+
Están definidos con un nombre en mayúscula para distinguirlos de otras funciones que no son constructors.
Utilizan la palabra clave this para establecer propiedades del objeto que crearán. Dentro del constructor, this se refiere al nuevo objeto que creará.
Los Constructors definen propiedades y comportamientos en vez de devolverlos como un valor como lo harían otras funciones.
# --instructions--
diff --git a/curriculum/challenges/espanol/03-front-end-development-libraries/redux/write-a-counter-with-redux.md b/curriculum/challenges/espanol/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
index b6346924f75..2290a4ec4e2 100644
--- a/curriculum/challenges/espanol/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
+++ b/curriculum/challenges/espanol/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
@@ -31,7 +31,7 @@ assert(decAction().type === DECREMENT);
El almacén Redux debe inicializarse con un `state` de 0.
```js
-assert(store.getState() === 0);
+assert(_store.getState() === 0);
```
El envío de `incAction` en el almacén Redux debe incrementar el `state` en 1.
@@ -39,9 +39,9 @@ El envío de `incAction` en el almacén Redux debe incrementar el `state` en 1.
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(incAction());
- const incState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(incAction());
+ const incState = _store.getState();
return initialState + 1 === incState;
})()
);
@@ -52,9 +52,9 @@ El envío de `decAction` en el almacén Redux debe disminuir el `state` en 1.
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(decAction());
- const decState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(decAction());
+ const decState = _store.getState();
return initialState - 1 === decState;
})()
);
@@ -83,6 +83,12 @@ const decAction = null; // Define an action creator for decrementing
const store = null; // Define the Redux store here, passing in your reducers
```
+## --after-user-code--
+
+```js
+const _store = Redux.createStore(counterReducer)
+```
+
# --solutions--
```js
diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md b/curriculum/challenges/italian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
index bb055e2f919..e9872b7aafe 100644
--- a/curriculum/challenges/italian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
+++ b/curriculum/challenges/italian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
@@ -31,7 +31,7 @@ assert(decAction().type === DECREMENT);
Lo store Redux dovrebbe essere inizializzato con uno `state` di 0.
```js
-assert(store.getState() === 0);
+assert(_store.getState() === 0);
```
Effettuare il dispatch di `incAction` nello store Redux dovrebbe aumentare lo `state` di 1.
@@ -39,9 +39,9 @@ Effettuare il dispatch di `incAction` nello store Redux dovrebbe aumentare lo `s
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(incAction());
- const incState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(incAction());
+ const incState = _store.getState();
return initialState + 1 === incState;
})()
);
@@ -52,9 +52,9 @@ Effettuare il dispatch di `decAction` nello store Redux dovrebbe decrementare lo
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(decAction());
- const decState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(decAction());
+ const decState = _store.getState();
return initialState - 1 === decState;
})()
);
@@ -83,6 +83,12 @@ const decAction = null; // Define an action creator for decrementing
const store = null; // Define the Redux store here, passing in your reducers
```
+## --after-user-code--
+
+```js
+const _store = Redux.createStore(counterReducer)
+```
+
# --solutions--
```js
diff --git a/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md b/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
index 6148dfd253e..1bb3eec7ec0 100644
--- a/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
+++ b/curriculum/challenges/japanese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
@@ -31,7 +31,7 @@ assert(decAction().type === DECREMENT);
Redux ストアを、`state` を 0 として初期化します。
```js
-assert(store.getState() === 0);
+assert(_store.getState() === 0);
```
Redux ストアでの `incAction` のディスパッチで、`state` を 1 だけ増やします。
@@ -39,9 +39,9 @@ Redux ストアでの `incAction` のディスパッチで、`state` を 1 だ
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(incAction());
- const incState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(incAction());
+ const incState = _store.getState();
return initialState + 1 === incState;
})()
);
@@ -52,9 +52,9 @@ Redux ストアでの `decAction` のディスパッチで、`state` を 1 だ
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(decAction());
- const decState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(decAction());
+ const decState = _store.getState();
return initialState - 1 === decState;
})()
);
@@ -83,6 +83,12 @@ const decAction = null; // Define an action creator for decrementing
const store = null; // Define the Redux store here, passing in your reducers
```
+## --after-user-code--
+
+```js
+const _store = Redux.createStore(counterReducer)
+```
+
# --solutions--
```js
diff --git a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md
index bed512835eb..661078e2419 100644
--- a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md
+++ b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/decrement-a-number-with-javascript.md
@@ -38,9 +38,13 @@ assert(myVar === 10);
`myVar = myVar - 1;` deve ser alterado.
```js
-assert(
- /let\s*myVar\s*=\s*11;\s*\/*.*\s*([-]{2}\s*myVar|myVar\s*[-]{2});/.test(code)
-);
+assert(!code.match(/myVar\s*=\s*myVar\s*[-]\s*1.*?;?/));
+```
+
+Você não deve atribuir a `myVar` o valor `10`.
+
+```js
+assert(!code.match(/myVar\s*=\s*10.*?;?/));
```
Você deve usar o operador `--` na variável `myVar`.
diff --git a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/record-collection.md b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/record-collection.md
index bec11f1f664..cd781c29124 100644
--- a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/record-collection.md
+++ b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/record-collection.md
@@ -31,13 +31,13 @@ assert(
);
```
-Após `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` deve ter a string `Take a Chance on Me` como último elemento.
+Após `updateRecords(recordCollection, 5439, "tracks", "Take a Chance on Me")`, `tracks` deve ter a string `Take a Chance on Me` como o último e único elemento.
```js
assert(
- updateRecords(_recordCollection, 5439, 'tracks', 'Take a Chance on Me')[5439][
- 'tracks'
- ].pop() === 'Take a Chance on Me'
+ updateRecords(_recordCollection, 5439, 'tracks', 'Take a Chance on Me') &&
+ _recordCollection[5439]['tracks'].length === 1 &&
+ _recordCollection[5439]['tracks'].pop() === 'Take a Chance on Me'
);
```
diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
index 29f7280e3ee..966e42f9983 100644
--- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
+++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
@@ -31,7 +31,7 @@ assert(decAction().type === DECREMENT);
A store do Redux deve inicializar com o `state` igual a 0.
```js
-assert(store.getState() === 0);
+assert(_store.getState() === 0);
```
Despachar `incAction` na store do Redux deve incrementar o `state` por 1.
@@ -39,9 +39,9 @@ Despachar `incAction` na store do Redux deve incrementar o `state` por 1.
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(incAction());
- const incState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(incAction());
+ const incState = _store.getState();
return initialState + 1 === incState;
})()
);
@@ -52,9 +52,9 @@ Despachar `decAction` na store do Redux deve decrementar o `state` por 1.
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(decAction());
- const decState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(decAction());
+ const decState = _store.getState();
return initialState - 1 === decState;
})()
);
@@ -83,6 +83,12 @@ const decAction = null; // Define an action creator for decrementing
const store = null; // Define the Redux store here, passing in your reducers
```
+## --after-user-code--
+
+```js
+const _store = Redux.createStore(counterReducer)
+```
+
# --solutions--
```js
diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
index 269b25f9638..83ec7a945e1 100644
--- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
+++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/timestamp-microservice.md
@@ -30,7 +30,7 @@ Você deve fornecer seu próprio projeto, não o exemplo de URL.
};
```
-Uma solicitação a `/api/:date?` com uma data válida deve retornar um objeto JSON com uma chave `unix`, que é um timestamp do Unix da data de entrada em milissegundos
+Uma solicitação a `/api/:date?` com uma data válida deve retornar um objeto JSON com uma chave `unix`, que é um timestamp do Unix da data de entrada em milissegundos (com o tipo Number)
```js
(getUserInput) =>
diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md
index c161c639718..93a10c738df 100644
--- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md
+++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/arithmetic-formatter.md
@@ -10,11 +10,6 @@ dashedName: arithmetic-formatter
Você [trabalhará neste projeto com nosso código inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-arithmetic-formatter).
-Ainda estamos desenvolvendo a parte instrucional interativa do currículo Python. Por enquanto, aqui estão alguns vídeos no canal do freeCodeCamp.org do YouTube que ensinarão tudo o que você precisa saber para completar este projeto:
-
-- [Curso de Python em vídeo para todos](https://www.freecodecamp.org/news/python-for-everybody/) (14 horas)
-- [Curso Aprenda Python em vídeo](https://www.freecodecamp.org/news/learn-python-video-course/) (10 horas)
-
# --instructions--
Os alunos da escola primária geralmente organizam problemas aritméticos de modo vertical para facilitar a sua resolução. Por exemplo, "235 + 52" se torna:
@@ -88,7 +83,7 @@ Copie o URL do seu projeto e envie-o abaixo.
# --hints--
-O projeto deve formatar corretamente um problema aritmético e passar em todos os testes.
+O programa deve formatar corretamente um problema aritmético e passar em todos os testes.
```js
diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md
index bf6ad855bf3..e00bfe934c3 100644
--- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md
+++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/budget-app.md
@@ -10,12 +10,6 @@ dashedName: budget-app
Você [trabalhará neste projeto com nosso código inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-budget-app).
-Ainda estamos desenvolvendo a parte instrucional interativa do currículo Python. Por enquanto, aqui estão alguns vídeos no canal do freeCodeCamp.org do YouTube que ensinarão tudo o que você precisa saber para completar este projeto:
-
-- [Curso de Python em vídeo para todos](https://www.freecodecamp.org/news/python-for-everybody/) (14 horas)
-
-- [Curso Aprenda Python em vídeo](https://www.freecodecamp.org/news/learn-python-video-course/) (10 horas)
-
# --instructions--
Complete a classe `Category` no `budget.py`. Ela deve ser capaz de instanciar objetos com base em diferentes categorias de orçamento, como *alimentos* (food), *vestuário* (clothing) e *entretenimento* (entertainment). Quando os objetos são criados, eles são passados com o nome da categoria. A classe deve ter uma variável de instância chamada `ledger` que seja uma lista. A classe também deve conter os seguintes métodos:
diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md
index c1cb929b27e..9fa926e74be 100644
--- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md
+++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/polygon-area-calculator.md
@@ -10,12 +10,6 @@ dashedName: polygon-area-calculator
Você [trabalhará neste projeto com nosso código inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-polygon-area-calculator).
-Ainda estamos desenvolvendo a parte instrucional interativa do currículo Python. Por enquanto, aqui estão alguns vídeos no canal do freeCodeCamp.org do YouTube que ensinarão tudo o que você precisa saber para completar este projeto:
-
-- [Curso de Python em vídeo para todos](https://www.freecodecamp.org/news/python-for-everybody/) (14 horas)
-
-- [Curso Aprenda Python em vídeo](https://www.freecodecamp.org/news/learn-python-video-course/) (10 horas)
-
# --instructions--
Neste projeto, você usará programação orientada a objetos para criar a classe Rectangle, para um retângulo, e a classe Square, para um quadrado. A classe Square deve ser uma subclasse da classe Rectangle e herdar métodos e atributos.
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 cbe5ce952e0..cd5fbc44a4d 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
@@ -10,19 +10,13 @@ dashedName: probability-calculator
Você [trabalhará neste projeto com nosso código inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-probability-calculator).
-Ainda estamos desenvolvendo a parte instrucional interativa do currículo Python. Por enquanto, aqui estão alguns vídeos no canal do freeCodeCamp.org do YouTube que ensinarão tudo o que você precisa saber para completar este projeto:
-
-- [Curso de Python em vídeo para todos](https://www.freecodecamp.org/news/python-for-everybody/) (14 horas)
-
-- [Curso Aprenda Python em vídeo](https://www.freecodecamp.org/news/learn-python-video-course/) (10 horas)
-
# --instructions--
Suponha que haja um chapéu contendo 5 bolas azuis, 4 bolas vermelhas e 2 bolas verdes. Qual é a probabilidade de um sorteio aleatório de 4 bolas conter pelo menos 1 bola vermelha e 2 bolas verdes? Embora seja possível calcular a probabilidade usando matemática avançada, uma maneira mais fácil é escrever um programa para realizar um grande número de experimentos para estimar uma probabilidade aproximada.
Para este projeto, escreva um programa para determinar a probabilidade aproximada de retirar certas bolas aleatoriamente de um chapéu.
-Primeiro, crie uma classe `Hat` (Chapéu) em `prob_calculator.py`. A classe deve ter um número variável de argumentos que especificam o número de bolas de cada cor que estão no chapéu. Por exemplo, um objeto da classe poderia ser criado de qualquer uma dessas maneiras:
+Primeiro, crie uma classe `Hat` em `prob_calculator.py`. A classe deve ter um número variável de argumentos que especificam o número de bolas de cada cor que estão no chapéu. Por exemplo, um objeto da classe poderia ser criado de qualquer uma dessas maneiras:
```py
hat1 = Hat(yellow=3, blue=2, green=6)
diff --git a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md
index 5d52a1b6c3b..37deac78fd9 100644
--- a/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md
+++ b/curriculum/challenges/portuguese/07-scientific-computing-with-python/scientific-computing-with-python-projects/time-calculator.md
@@ -10,12 +10,6 @@ dashedName: time-calculator
Você [trabalhará neste projeto com nosso código inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-time-calculator).
-Ainda estamos desenvolvendo a parte instrucional interativa do currículo Python. Por enquanto, aqui estão alguns vídeos no canal do freeCodeCamp.org do YouTube que ensinarão tudo o que você precisa saber para completar este projeto:
-
-- [Curso de Python em vídeo para todos](https://www.freecodecamp.org/news/python-for-everybody/) (14 horas)
-
-- [Curso Aprenda Python em vídeo](https://www.freecodecamp.org/news/learn-python-video-course/) (10 horas)
-
# --instructions--
Escreva uma função chamada `add_time`, que recebe dois parâmetros necessários e um parâmetro opcional:
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-344-silver-dollar-game.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-344-silver-dollar-game.md
index 9a289747ba8..5687472b816 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-344-silver-dollar-game.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-344-silver-dollar-game.md
@@ -8,7 +8,7 @@ dashedName: problem-344-silver-dollar-game
# --description--
-O jogo de N.G. de Bruijn, conhecido como o jogo do dólar de prata, tem uma variante que pode ser descrita da seguinte forma:
+Uma variante de N.G. de Bruijn, conhecida como o jogo do dólar de prata, pode ser descrita da seguinte forma:
Em uma faixa de quadrados, várias moedas são colocadas, estando, no máximo, uma moeda por quadrado. Apenas uma moeda, chamada de dólar de prata, tem qualquer valor. Dois jogadores se revezam fazendo movimentos. Em cada turno, um jogador deve fazer um movimento regular ou especial.
diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-356-largest-roots-of-cubic-polynomials.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-356-largest-roots-of-cubic-polynomials.md
index 5711c272a76..b9f19dc802d 100644
--- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-356-largest-roots-of-cubic-polynomials.md
+++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-356-largest-roots-of-cubic-polynomials.md
@@ -8,7 +8,7 @@ dashedName: problem-356-largest-roots-of-cubic-polynomials
# --description--
-Considere an como a maior raiz real de um polinômio $g(x) = x^3 - 2^n \times x^2 + n$.
+Considere $a_n$ como sendo a maior raiz real de um polinômio $g(x) = x^3 - 2^n \times x^2 + n$.
Por exemplo, $a_2 = 3.86619826\ldots$
diff --git a/curriculum/challenges/portuguese/13-relational-databases/build-a-number-guessing-game-project/build-a-number-guessing-game.md b/curriculum/challenges/portuguese/13-relational-databases/build-a-number-guessing-game-project/build-a-number-guessing-game.md
index 46d5539db94..eb941e1c58c 100644
--- a/curriculum/challenges/portuguese/13-relational-databases/build-a-number-guessing-game-project/build-a-number-guessing-game.md
+++ b/curriculum/challenges/portuguese/13-relational-databases/build-a-number-guessing-game-project/build-a-number-guessing-game.md
@@ -13,11 +13,11 @@ Este é um dos projetos necessários para obter sua certificação. Para este pr
# --instructions--
-**Importante:** depois de passar em todos os testes do projeto, salve um dump (cópia) do seu banco de dados em um arquivo `number_guessers.sql`, bem como toda a sua pasta `number_guessing_game` para poder concluir a etapa 2. Haverá instruções sobre como fazer isso dentro da máquina virtual.
+**Importante:** depois de passar em todos os testes do projeto, salve um dump (cópia) do seu banco de dados em um arquivo `number_guess.sql`, bem como seu arquivo `number_guess.sh` para poder concluir a etapa 2. Haverá instruções sobre como fazer isso dentro da máquina virtual.
# --notes--
-Arquivos necessários: `number_guessers.sql` e toda a pasta `number_guessing_game`
+Arquivos necessários: `number_guess.sql`, `number_guess.sh`
# --hints--
diff --git a/curriculum/challenges/portuguese/13-relational-databases/build-a-periodic-table-database-project/build-a-periodic-table-database.md b/curriculum/challenges/portuguese/13-relational-databases/build-a-periodic-table-database-project/build-a-periodic-table-database.md
index e48d3726d71..336e59cc34f 100644
--- a/curriculum/challenges/portuguese/13-relational-databases/build-a-periodic-table-database-project/build-a-periodic-table-database.md
+++ b/curriculum/challenges/portuguese/13-relational-databases/build-a-periodic-table-database-project/build-a-periodic-table-database.md
@@ -13,11 +13,11 @@ Este é um dos projetos necessários para obter sua certificação. Para este pr
# --instructions--
-**Importante:** depois de passar em todos os testes do projeto, salve um dump (cópia) do seu banco de dados em um arquivo `elements.sql`, bem como toda a sua pasta `periodic_table` para poder concluir a etapa 2. Haverá instruções sobre como fazer isso dentro da máquina virtual.
+**Importante:** depois de passar em todos os testes do projeto, salve um dump (cópia) do seu banco de dados no arquivo `periodic_table.sql` bem como seu arquivo `element.sh` para poder completar a etapa 2. Haverá instruções sobre como fazer isso dentro da máquina virtual.
# --notes--
-Arquivos necessários: `elements.sql` e toda a pasta `periodic_table`
+Arquivos necessários: `periodic_table.sql`, `element.sh`
# --hints--
diff --git a/curriculum/challenges/portuguese/13-relational-databases/learn-bash-and-sql-by-building-a-bike-rental-shop/build-a-bike-rental-shop.md b/curriculum/challenges/portuguese/13-relational-databases/learn-bash-and-sql-by-building-a-bike-rental-shop/build-a-bike-rental-shop.md
index 2788633a9aa..3f0d97f494a 100644
--- a/curriculum/challenges/portuguese/13-relational-databases/learn-bash-and-sql-by-building-a-bike-rental-shop/build-a-bike-rental-shop.md
+++ b/curriculum/challenges/portuguese/13-relational-databases/learn-bash-and-sql-by-building-a-bike-rental-shop/build-a-bike-rental-shop.md
@@ -9,7 +9,7 @@ dashedName: build-a-bike-rental-shop
# --description--
-Neste curso intermediário, você vai construir um programa de Bash interativo que armazena informações de aluguel para sua loja de aluguel de bicicletas utilizando PostgreSQL.
+Neste curso de 210 aulas, você vai construir um programa de Bash interativo que armazena informações de aluguel para sua loja de aluguel de bicicletas utilizando PostgreSQL.
# --instructions--
diff --git a/curriculum/challenges/portuguese/13-relational-databases/learn-bash-by-building-a-boilerplate/build-a-boilerplate.md b/curriculum/challenges/portuguese/13-relational-databases/learn-bash-by-building-a-boilerplate/build-a-boilerplate.md
index 969f61ae842..dfd1365b854 100644
--- a/curriculum/challenges/portuguese/13-relational-databases/learn-bash-by-building-a-boilerplate/build-a-boilerplate.md
+++ b/curriculum/challenges/portuguese/13-relational-databases/learn-bash-by-building-a-boilerplate/build-a-boilerplate.md
@@ -9,7 +9,7 @@ dashedName: build-a-boilerplate
# --description--
-Neste curso de 170 aulas, você aprenderá comandos básicos criando o boilerplate de um site usando apenas a linha de comando.
+Neste curso de 170 aulas, você aprenderá comandos do terminal criando o boilerplate de um site usando apenas a linha de comando.
# --instructions--
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613297a923965e0703b64796.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613297a923965e0703b64796.md
index 6754f9b8af4..61fdc659b30 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613297a923965e0703b64796.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613297a923965e0703b64796.md
@@ -7,9 +7,9 @@ dashedName: step-2
# --description--
-Você já deve estar familiarizado com a tag `meta`. Ela é usada para especificar informações sobre a página como título, descrição, palavras-chave e autor.
+Você já deve estar familiarizado com o elemento `meta`. Ele é usado para especificar informações sobre a página como título, descrição, palavras-chave e autor.
-Dê à página uma tag `meta` com um valor apropriado para `charset`.
+Dê à página um elemento `meta` com um valor apropriado para `charset`.
O atributo `charset` especifica a codificação de caracteres da página e, hoje em dia, `UTF-8` é a única codificação suportada pela maioria dos navegadores.
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329b210dac0b08047fd6ab.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329b210dac0b08047fd6ab.md
index cf008f939d2..7ed19a582a4 100644
--- a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329b210dac0b08047fd6ab.md
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329b210dac0b08047fd6ab.md
@@ -7,7 +7,7 @@ dashedName: step-3
# --description--
-Continuando com as tags `meta`, uma definição de `viewport` informa ao navegador como renderizar a página. Sua inclusão melhora a acessibilidade visual no celular e a _SEO_ (otimização de mecanismos de busca).
+Continuando com os elementos `meta`, uma definição de `viewport` informa ao navegador como renderizar a página. Sua inclusão melhora a acessibilidade visual no celular e a _SEO_ (otimização de mecanismos de busca).
Adicione uma definição de `viewport` com um atributo `content` detalhando a `width` (largura) e a `initial-scale` (escala inicial) da página.
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329d52e5010e08d9b9d66b.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329d52e5010e08d9b9d66b.md
new file mode 100644
index 00000000000..11c83a9c293
--- /dev/null
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/61329d52e5010e08d9b9d66b.md
@@ -0,0 +1,68 @@
+---
+id: 61329d52e5010e08d9b9d66b
+title: Etapa 4
+challengeType: 0
+dashedName: step-4
+---
+
+# --description--
+
+Outro elemento `meta` importante para a acessibilidade e para a SEO é a `description`. O valor do atributo `content` é usado pelos mecanismos de busca para fornecer uma descrição de sua página.
+
+Adicione um elemento `meta` com o atributo `name` definido como `description`, e dê a ele um atributo `content`.
+
+# --hints--
+
+Você deve adicionar um novo elemento `meta` à `head`.
+
+```js
+assert.equal(document.querySelectorAll('meta').length, 3);
+```
+
+Você deve dar ao elemento `meta` um atributo `name` de `description`.
+
+```js
+assert.exists(document.querySelector('meta[name="description"]'));
+```
+
+Você deve dar ao elemento `meta` um atributo `content`.
+
+```js
+assert.notEmpty(document.querySelector('meta[name="description"]')?.content);
+```
+
+O valor do atributo `content` não deve ter mais de 165 caracteres. _Esse é o tamanho máximo da descrição para o Google._
+
+```js
+assert.isAtMost(document.querySelector('meta[name="description"]')?.content?.length, 165);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+--fcc-editable-region--
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6133acc353338c0bba9cb553.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6133acc353338c0bba9cb553.md
new file mode 100644
index 00000000000..b2121f0bbea
--- /dev/null
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6133acc353338c0bba9cb553.md
@@ -0,0 +1,63 @@
+---
+id: 6133acc353338c0bba9cb553
+title: Etapa 5
+challengeType: 0
+dashedName: step-5
+---
+
+# --description--
+
+Por fim, em `head`, o elemento `title` é útil para que os leitores de tela entendam o conteúdo de uma página. Além disso, ele é uma parte importante para a _SEO_.
+
+Dê à sua página um `title` que seja descritivo e conciso.
+
+# --hints--
+
+Você deve adicionar um elemento `title` à `head`.
+
+```js
+assert.exists(document.querySelector('head > title'));
+```
+
+Você não deve permitir que o `title` seja maior do que 60 caracteres.
+
+```js
+assert.isAtMost(document.querySelector('head > title')?.textContent?.length, 60);
+```
+
+Tente ser mais descritivo com o elemento `title`. _Dica: use ao menos 15 caracteres_
+
+```js
+assert.isAtLeast(document.querySelector('head > title')?.textContent?.length, 15);
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+--fcc-editable-region--
+
+
+
+
+
+
+--fcc-editable-region--
+
+
+
+
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md
new file mode 100644
index 00000000000..934f6252802
--- /dev/null
+++ b/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md
@@ -0,0 +1,50 @@
+---
+id: 614ccc21ea91ef1736b9b578
+title: Etapa 1
+challengeType: 0
+dashedName: step-1
+---
+
+# --description--
+
+Boas-vindas à primeira parte do questionário com acessibilidade. Como você está se tornando um desenvolvedor HTML e CSS experiente, já iniciaremos com o boilerplate básico.
+
+Inicie esta jornada de acessibilidade, fornecendo um atributo `lang` ao seu elemento `html`. Isto ajudará os leitores de tela a identificar o idioma da página.
+
+# --hints--
+
+Você deve dar ao elemento `html` um atributo `lang`. _Dica: você pode usar o valor `en` para o inglês._
+
+```js
+assert.match(code, //i);
+// TODO: This should/could be fixed in the builder.js
+// assert.notThrow(Intl.getCanonicalLocales(document.querySelector('html').lang));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+--fcc-editable-region--
+
+
+
+
+
+
+
+
+--fcc-editable-region--
+
+```
+
+```css
+body {
+ background: #f5f6f7;
+ color: #1b1b32;
+ font-family: Helvetica;
+ margin: 0;
+}
+```
diff --git a/curriculum/challenges/ukrainian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md b/curriculum/challenges/ukrainian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
index 277287f25ca..3529abd0129 100644
--- a/curriculum/challenges/ukrainian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
+++ b/curriculum/challenges/ukrainian/03-front-end-development-libraries/redux/write-a-counter-with-redux.md
@@ -31,7 +31,7 @@ assert(decAction().type === DECREMENT);
Сховище Redux повинне ініціалізуватися із `state`, що дорівнює 0.
```js
-assert(store.getState() === 0);
+assert(_store.getState() === 0);
```
Відправлення `incAction` у сховище Redux має збільшити `state` на 1.
@@ -39,9 +39,9 @@ assert(store.getState() === 0);
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(incAction());
- const incState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(incAction());
+ const incState = _store.getState();
return initialState + 1 === incState;
})()
);
@@ -52,9 +52,9 @@ assert(
```js
assert(
(function () {
- const initialState = store.getState();
- store.dispatch(decAction());
- const decState = store.getState();
+ const initialState = _store.getState();
+ _store.dispatch(decAction());
+ const decState = _store.getState();
return initialState - 1 === decState;
})()
);
@@ -83,6 +83,12 @@ const decAction = null; // Define an action creator for decrementing
const store = null; // Define the Redux store here, passing in your reducers
```
+## --after-user-code--
+
+```js
+const _store = Redux.createStore(counterReducer)
+```
+
# --solutions--
```js