From 4624fe934d62dbdc6784cacf74fe3d02bbb49cf4 Mon Sep 17 00:00:00 2001 From: camperbot Date: Wed, 28 Jul 2021 00:23:19 +0900 Subject: [PATCH] chore(i18n,curriculum): update translations (#43033) --- ...dd-elements-within-your-bootstrap-wells.md | 4 +- .../add-font-awesome-icons-to-our-buttons.md | 2 +- ...-design-with-bootstrap-fluid-containers.md | 2 +- .../build-a-25-5-clock.md | 2 +- .../use--for-a-more-concise-conditional.md | 2 +- .../use--for-a-more-concise-conditional.md | 2 +- .../timestamp-microservice.md | 28 ++++---- ...t-route-parameter-input-from-the-client.md | 10 +-- ...-a-root-level-request-logger-middleware.md | 14 ++-- .../use-the-.env-file.md | 16 ++--- .../add-a-description-to-your-package.json.md | 14 ++-- .../add-a-license-to-your-package.json.md | 10 +-- .../add-a-version-to-your-package.json.md | 8 +-- .../add-keywords-to-your-package.json.md | 16 ++--- ...project-with-external-packages-from-npm.md | 14 ++-- ...he-latest-minor-version-of-a-dependency.md | 16 ++--- ...-query-helpers-to-narrow-search-results.md | 8 +-- .../mongodb-and-mongoose/create-a-model.md | 18 ++--- .../create-and-save-a-record-of-a-model.md | 8 +-- .../create-many-records-with-model.create.md | 10 +-- ...a-document-using-model.findoneandupdate.md | 10 +-- .../use-model.find-to-search-your-database.md | 10 +-- ....findbyid-to-search-your-database-by-id.md | 8 +-- ...le-matching-document-from-your-database.md | 8 +-- .../data-analysis-example-a.md | 20 +++--- .../data-analysis-example-b.md | 18 ++--- .../data-cleaning-and-visualizations.md | 18 ++--- .../data-cleaning-duplicates.md | 18 ++--- .../data-cleaning-introduction.md | 12 ++-- .../how-to-use-jupyter-notebooks-intro.md | 16 ++--- .../jupyter-notebooks-cells.md | 18 ++--- ...-notebooks-importing-and-exporting-data.md | 22 +++--- .../numpy-operations.md | 12 ++-- .../pandas-introduction.md | 12 ++-- .../parsing-html-and-saving-data.md | 12 ++-- .../python-functions-and-collections.md | 18 ++--- .../python-introduction.md | 20 +++--- .../python-iteration-and-modules.md | 12 ++-- .../reading-data-introduction.md | 14 ++-- .../demographic-data-analyzer.md | 12 ++-- ...-variance-standard-deviation-calculator.md | 12 ++-- .../medical-data-visualizer.md | 12 ++-- .../sea-level-predictor.md | 12 ++-- ...ng-and-changing-elements,-rows,-columns.md | 4 +- .../numpy/copying-arrays-warning.md | 4 +- .../numpy/initialize-array-problem.md | 4 +- .../numpy/initializing-different-arrays.md | 4 +- .../loading-data-and-advanced-indexing.md | 6 +- .../numpy/what-is-numpy.md | 12 ++-- .../anonymous-message-board.md | 68 +++++++++---------- .../port-scanner.md | 16 ++--- .../secure-real-time-multiplayer-game.md | 52 +++++++------- .../sha-1-password-cracker.md | 16 ++--- .../stock-price-checker.md | 50 +++++++------- ...ur-site-via-https-only-with-helmet.hsts.md | 14 ++-- ...-response-mime-type-with-helmet.nosniff.md | 8 +-- ...lmet-using-the-parent-helmet-middleware.md | 12 ++-- ...client-side-caching-with-helmet.nocache.md | 10 +-- ...fetching-with-helmet.dnsprefetchcontrol.md | 10 +-- ...sh-and-compare-passwords-asynchronously.md | 16 ++--- ...ash-and-compare-passwords-synchronously.md | 16 ++--- ...-information-using-helmet.hidepoweredby.md | 8 +-- .../install-and-require-helmet.md | 20 +++--- ...-of-clickjacking-with-helmet.frameguard.md | 14 ++-- ...pting-xss-attacks-with-helmet.xssfilter.md | 16 ++--- ...ing-untrusted-html-with-helmet.ienoopen.md | 10 +-- ...olicy-with-helmet.contentsecuritypolicy.md | 16 ++--- .../understand-bcrypt-hashes.md | 18 ++--- .../creating-a-tcp-client.md | 4 +- .../developing-a-banner-grabber.md | 4 +- .../developing-a-port-scanner.md | 10 +-- .../developing-an-nmap-scanner-part-1.md | 4 +- .../developing-an-nmap-scanner-part-2.md | 4 +- .../introduction-and-setup.md | 10 +-- ...nding-sockets-and-creating-a-tcp-server.md | 4 +- 75 files changed, 497 insertions(+), 497 deletions(-) diff --git a/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md b/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md index ddaf2046f6..74cb74c34f 100644 --- a/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md +++ b/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md @@ -1,6 +1,6 @@ --- id: bad87fee1348bd9aec908849 -title: Agregar elementos dentro de tus Bootstrap Wells +title: Agregar elementos dentro de tus recursos de Bootstrap challengeType: 0 forumTopicId: 16636 dashedName: add-elements-within-your-bootstrap-wells @@ -14,7 +14,7 @@ Anida tres elementos `button` dentro de cada uno de los elementos `div` que pose # --hints-- -Tres elementos `button` deberían ser anidados cada uno dentro de elementos `div` con la clase `well`. +Tres elementos `button` deberían ser insertados dentro de cada uno de los elementos `div` con la clase `well`. ```js assert( diff --git a/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md b/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md index d0b2d8f16d..30a7961431 100644 --- a/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md +++ b/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md @@ -1,6 +1,6 @@ --- id: bad87fee1348bd9aedd08845 -title: Agregaa íconos Font Awesome a nuestros botones +title: Agrega íconos Font Awesome a nuestros botones challengeType: 0 forumTopicId: 16638 required: diff --git a/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md b/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md index dd13fab9e8..c5163c804e 100644 --- a/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md +++ b/curriculum/challenges/espanol/03-front-end-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md @@ -8,7 +8,7 @@ dashedName: use-responsive-design-with-bootstrap-fluid-containers # --description-- -En la sección de freeCodeCamp de HTML5 y CSS, creamos una aplicación de fotos de gatito. Ahora vamos de vuelta a la aplicación. Esta vez, lo estilizaremos usando el popular framework CSS responsivo de Bootstrap. +En la sección de HTML5 y CSS de freeCodeCamp, creamos una aplicación de fotos de gatos. Ahora vamos de vuelta a la aplicación. Esta vez, lo estilizaremos usando el popular framework CSS responsivo de Bootstrap. Bootstap averiguará la anchura de tu pantalla y responderá redimensionando los elementos HTML, de aquí el nombre diseño responsivo. diff --git a/curriculum/challenges/espanol/03-front-end-libraries/front-end-libraries-projects/build-a-25-5-clock.md b/curriculum/challenges/espanol/03-front-end-libraries/front-end-libraries-projects/build-a-25-5-clock.md index fb6a4356f4..afc4c31c80 100644 --- a/curriculum/challenges/espanol/03-front-end-libraries/front-end-libraries-projects/build-a-25-5-clock.md +++ b/curriculum/challenges/espanol/03-front-end-libraries/front-end-libraries-projects/build-a-25-5-clock.md @@ -12,7 +12,7 @@ dashedName: build-a-25--5-clock Completa las siguientes [historias de usuario](https://en.wikipedia.org/wiki/User_story) y consigue pasar todas las pruebas. Dale tu propio estilo personal. -Puedes utilizar una mezcla de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux y jQuery para completar este proyecto. Deberías utilizar un framework frontend (como React por ejemplo) porque esta sección trata sobre el aprendizaje de frameworks frontend. No se recomienda utilizar tecnologías adicionales a las indicadas anteriormente, su utilización corre bajo su propio riesgo. Estamos considerando apoyar otros frameworks frontend como Angular y Vue, pero actualmente no están soportados. Aceptaremos e intentaremos solucionar todos los informes de incidencias que utilicen el conjunto de tecnologías sugeridas para este proyecto. ¡Feliz programación! +Puedes utilizar una combinación de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux y jQuery para completar este proyecto. Deberías utilizar un framework frontend (como React por ejemplo) porque esta sección trata sobre el aprendizaje de frameworks frontend. No se recomienda utilizar tecnologías adicionales a las indicadas anteriormente, su utilización corre bajo su propio riesgo. Estamos considerando apoyar otros frameworks frontend como Angular y Vue, pero actualmente no están soportados. Aceptaremos e intentaremos solucionar todos los informes de incidencias que utilicen el conjunto de tecnologías sugeridas para este proyecto. ¡Feliz programación! **Historia de usuario #1:** Puedo ver un elemento con `id="break-label"` que contiene una cadena (por ejemplo: "Break Length"). diff --git a/curriculum/challenges/espanol/03-front-end-libraries/react/use--for-a-more-concise-conditional.md b/curriculum/challenges/espanol/03-front-end-libraries/react/use--for-a-more-concise-conditional.md index 5259e6d3e1..bd1db3ac01 100644 --- a/curriculum/challenges/espanol/03-front-end-libraries/react/use--for-a-more-concise-conditional.md +++ b/curriculum/challenges/espanol/03-front-end-libraries/react/use--for-a-more-concise-conditional.md @@ -1,6 +1,6 @@ --- id: 5a24c314108439a4d4036185 -title: Use && for a More Concise Conditional +title: Usa && para una condicional más concisa challengeType: 6 forumTopicId: 301413 dashedName: use--for-a-more-concise-conditional diff --git a/curriculum/challenges/portuguese/03-front-end-libraries/react/use--for-a-more-concise-conditional.md b/curriculum/challenges/portuguese/03-front-end-libraries/react/use--for-a-more-concise-conditional.md index 83600a55ca..a8bcaef175 100644 --- a/curriculum/challenges/portuguese/03-front-end-libraries/react/use--for-a-more-concise-conditional.md +++ b/curriculum/challenges/portuguese/03-front-end-libraries/react/use--for-a-more-concise-conditional.md @@ -1,6 +1,6 @@ --- id: 5a24c314108439a4d4036185 -title: Use && for a More Concise Conditional +title: Use && para uma forma mais concisa do condicional challengeType: 6 forumTopicId: 301413 dashedName: use--for-a-more-concise-conditional diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.md b/curriculum/challenges/portuguese/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.md index 00cee8bcd6..171f8b7cca 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.md @@ -1,6 +1,6 @@ --- id: bd7158d8c443edefaeb5bdef -title: Timestamp Microservice +title: Microsserviço de timestamp challengeType: 4 forumTopicId: 301508 dashedName: timestamp-microservice @@ -8,17 +8,17 @@ dashedName: timestamp-microservice # --description-- -Build a full stack JavaScript app that is functionally similar to this: . Working on this project will involve you writing your code using one of the following methods: +Crie um aplicativo full stack em JavaScript que seja funcionalmente semelhante a este: . Trabalhar nesse projeto vai fazer com que você escreva seu código usando um dos seguintes métodos: -- Clone [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-timestamp/) and complete your project locally. -- Use [our Replit starter project](https://replit.com/github/freeCodeCamp/boilerplate-project-timestamp) to complete your project. -- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo. +- Clone [este repositório do GitHub](https://github.com/freeCodeCamp/boilerplate-project-timestamp/) e complete o projeto localmente. +- Use [nosso projeto inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-timestamp) para completar o projeto. +- Use um construtor de site de sua escolha para completar o projeto. Certifique-se de incorporar todos os arquivos do nosso repositório no GitHub. -When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. Optionally, also submit a link to your projects source code in the `GitHub Link` field. +Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para ela no campo `Solution Link`. Como opção, envie também um link para o código-fonte do projeto no campo `GitHub Link`. # --hints-- -You should provide your own project, not the example URL. +Você deve fornecer seu próprio projeto, não o exemplo de URL. ```js (getUserInput) => { @@ -28,7 +28,7 @@ You should provide your own project, not the example URL. }; ``` -A request to `/api/:date?` with a valid date should return a JSON object with a `unix` key that is a Unix timestamp of the input date in milliseconds +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 ```js (getUserInput) => @@ -46,7 +46,7 @@ A request to `/api/:date?` with a valid date should return a JSON object with a ); ``` -A request to `/api/:date?` with a valid date should return a JSON object with a `utc` key that is a string of the input date in the format: `Thu, 01 Jan 1970 00:00:00 GMT` +Uma solicitação a `/api/:date?` com uma data válida deve retornar um objeto JSON com uma chave `utc` que é uma string da data de entrada no formato: `Thu, 01 Jan 1970 00:00:00 GMT` ```js (getUserInput) => @@ -64,7 +64,7 @@ A request to `/api/:date?` with a valid date should return a JSON object with a ); ``` -A request to `/api/1451001600000` should return `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }` +Uma solicitação a `/api/1451001600000` deve retornar `{ unix: 1451001600000, utc: "Fri, 25 Dec 2015 00:00:00 GMT" }` ```js (getUserInput) => @@ -81,7 +81,7 @@ A request to `/api/1451001600000` should return `{ unix: 1451001600000, utc: "Fr ); ``` -Your project can handle dates that can be successfully parsed by `new Date(date_string)` +Seu projeto pode tratar as datas que podem ser analisadas com sucesso por `new Date(date_string)` ```js (getUserInput) => @@ -98,7 +98,7 @@ Your project can handle dates that can be successfully parsed by `new Date(date_ ); ``` -If the input date string is invalid, the api returns an object having the structure `{ error : "Invalid Date" }` +Se a string de data de entrada for inválida, a api retorna um objeto que tem a estrutura `{ error : "Invalid Date" }` ```js (getUserInput) => @@ -112,7 +112,7 @@ If the input date string is invalid, the api returns an object having the struct ); ``` -An empty date parameter should return the current time in a JSON object with a `unix` key +Um parâmetro de data vazia deve retornar o tempo atual em um objeto JSON com a chave `unix` ```js (getUserInput) => @@ -127,7 +127,7 @@ An empty date parameter should return the current time in a JSON object with a ` ); ``` -An empty date parameter should return the current time in a JSON object with a `utc` key +Um parâmetro de data vazia deve retornar o tempo atual em um objeto JSON com a chave `utc` ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.md b/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.md index b0055f569e..16831e8a14 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.md @@ -1,6 +1,6 @@ --- id: 587d7fb2367417b2b2512bf5 -title: Get Route Parameter Input from the Client +title: Obter a entrada do parâmetro de roteamento do client challengeType: 2 forumTopicId: 301513 dashedName: get-route-parameter-input-from-the-client @@ -8,17 +8,17 @@ dashedName: get-route-parameter-input-from-the-client # --description-- -When building an API, we have to allow users to communicate to us what they want to get from our service. For example, if the client is requesting information about a user stored in the database, they need a way to let us know which user they're interested in. One possible way to achieve this result is by using route parameters. Route parameters are named segments of the URL, delimited by slashes (/). Each segment captures the value of the part of the URL which matches its position. The captured values can be found in the `req.params` object. +Ao construir uma API, temos que permitir que os usuários nos comuniquem o que querem obter com o nosso serviço. Por exemplo, se o client estiver solicitando informações sobre um usuário armazenado no banco de dados, ele precisa de um modo de nos informar em qual usuário ele está interessado. Uma maneira possível de alcançar este resultado é utilizando parâmetros de roteamento. Parâmetros de roteamento são segmentos nomeados do URL, delimitados por barras (/). Cada segmento captura o valor da parte do URL que corresponde à sua posição. Os valores capturados podem ser encontrados no objeto `req.params`.
route_path: '/user/:userId/book/:bookId'
actual_request_URL: '/user/546/book/6754'
req.params: {userId: '546', bookId: '6754'}
# --instructions-- -Build an echo server, mounted at the route `GET /:word/echo`. Respond with a JSON object, taking the structure `{echo: word}`. You can find the word to be repeated at `req.params.word`. You can test your route from your browser's address bar, visiting some matching routes, e.g. `your-app-rootpath/freecodecamp/echo`. +Crie um servidor de eco, montado na rota `GET /:word/echo`. Responda com um documento JSON, pegando a estrutura `{echo: word}`. Você pode encontrar a palavra a ser repetida em `req.params.word`. Você pode testar sua rota através da barra de endereços do seu navegador, visitando algumas rotas correspondentes, como, por exemplo, `your-app-rootpath/freecodecamp/echo`. # --hints-- -Test 1 : Your echo server should repeat words correctly +Teste 1: o servidor de eco deve repetir palavras corretamente ```js (getUserInput) => @@ -36,7 +36,7 @@ Test 1 : Your echo server should repeat words correctly ); ``` -Test 2 : Your echo server should repeat words correctly +Teste 2: o servidor de eco deve repetir palavras corretamente ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.md b/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.md index 2a2faa35c3..bc7b3031a0 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.md @@ -1,6 +1,6 @@ --- id: 587d7fb1367417b2b2512bf3 -title: Implement a Root-Level Request Logger Middleware +title: Implementar um middleware de solicitação ao nível de root challengeType: 2 forumTopicId: 301514 dashedName: implement-a-root-level-request-logger-middleware @@ -8,9 +8,9 @@ dashedName: implement-a-root-level-request-logger-middleware # --description-- -Earlier, you were introduced to the `express.static()` middleware function. Now it’s time to see what middleware is, in more detail. Middleware functions are functions that take 3 arguments: the request object, the response object, and the next function in the application’s request-response cycle. These functions execute some code that can have side effects on the app, and usually add information to the request or response objects. They can also end the cycle by sending a response when some condition is met. If they don’t send the response when they are done, they start the execution of the next function in the stack. This triggers calling the 3rd argument, `next()`. +Anteriormente, você apresentamos a você a função de middleware `express.static()`. Agora é hora de ver o que é o middleware, em mais detalhes. As funções de middleware são funções que recebem 3 argumentos: o objeto de solicitação, o objeto de resposta e a próxima função no ciclo de solicitação e resposta do aplicativo. Estas funções executam algum código que pode ter efeitos colaterais no aplicativo. Geralmente, elas adicionam informações aos objetos de solicitação ou resposta. Elas também podem acabar com o ciclo enviando uma resposta quando alguma condição é satisfeita. Se elas não enviarem a resposta quando terminarem, iniciam a execução da próxima função na pilha. Isso dispara o chamado do terceiro argumento, `next()`. -Look at the following example: +Observe o exemplo abaixo: ```js function(req, res, next) { @@ -19,17 +19,17 @@ function(req, res, next) { } ``` -Let’s suppose you mounted this function on a route. When a request matches the route, it displays the string “I’m a middleware…”, then it executes the next function in the stack. In this exercise, you are going to build root-level middleware. As you have seen in challenge 4, to mount a middleware function at root level, you can use the `app.use()` method. In this case, the function will be executed for all the requests, but you can also set more specific conditions. For example, if you want a function to be executed only for POST requests, you could use `app.post()`. Analogous methods exist for all the HTTP verbs (GET, DELETE, PUT, …). +Vamos supor que você montou esta função em uma rota. Quando uma solicitação corresponde à rota, ela exibe a string "I'm a middleware…" e então executa a próxima função na pilha. Neste exercício, você vai criar um middleware ao nível de root. Como você viu no desafio 4, para montar uma função de middleware no nível de root, você pode usar o método `app.use()`. Neste caso, a função será executada para todas as solicitações, mas você também pode definir condições mais específicas. Por exemplo, se você quiser que uma função seja executada somente para solicitações de POST, você poderia usar `app.post()`. Existem métodos análogos para todos os verbos de HTTP (GET, DELETE, PUT, …). # --instructions-- -Build a simple logger. For every request, it should log to the console a string taking the following format: `method path - ip`. An example would look like this: `GET /json - ::ffff:127.0.0.1`. Note that there is a space between `method` and `path` and that the dash separating `path` and `ip` is surrounded by a space on both sides. You can get the request method (http verb), the relative route path, and the caller’s ip from the request object using `req.method`, `req.path` and `req.ip`. Remember to call `next()` when you are done, or your server will be stuck forever. Be sure to have the ‘Logs’ opened, and see what happens when some request arrives. +Crie um registrador simples. Para cada solicitação, ele deve registrar no console uma string com o seguinte formato: `method path - ip`. Um exemplo ficaria assim: `GET /json - ::ffff:127.0.0.1`. Note que há um espaço entre `method` e `path` e que o traço separando o `path` e `ip` está cercado por um espaço de ambos os lados. Você pode obter o método de solicitação (verbo do http), o caminho da rota relativo e o IP de quem fez a chamada a partir do objeto de solicitação usando `req.method`, `req.path` e `req.ip`. Lembre-se de chamar `next()` quando você estiver pronto, ou o servidor ficará travado para sempre. Certifique-se de que os 'Logs' estejam abertos e veja o que acontece quando algumas solicitações chegarem. -**Note:** Express evaluates functions in the order they appear in the code. This is true for middleware too. If you want it to work for all the routes, it should be mounted before them. +**Observação:** o Express avalia as funções na ordem em que elas aparecem no código. Isto se aplica também ao middleware. Se você quer que ele funcione para todas as rotas, é preciso montá-lo antes delas. # --hints-- -Root level logger middleware should be active +O middleware do registrador de root deve estar ativo ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.md b/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.md index e953553f4b..29531b1d6d 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.md @@ -1,6 +1,6 @@ --- id: 587d7fb1367417b2b2512bf2 -title: Use the .env File +title: Usar o arquivo .env challengeType: 2 forumTopicId: 301521 dashedName: use-the--env-file @@ -8,23 +8,23 @@ dashedName: use-the--env-file # --description-- -The `.env` file is a hidden file that is used to pass environment variables to your application. This file is secret, no one but you can access it, and it can be used to store data that you want to keep private or hidden. For example, you can store API keys from external services or your database URI. You can also use it to store configuration options. By setting configuration options, you can change the behavior of your application, without the need to rewrite some code. +O arquivo `.env` é um arquivo oculto que é usado para passar variáveis de ambiente para seu aplicativo. Este arquivo é secreto, ninguém além de você pode acessá-lo. Ele pode ser usado para armazenar dados que você deseja manter privados ou ocultos. Por exemplo, você pode armazenar chaves da API de serviços externos ou o URI do seu banco de dados. Você também pode usá-lo para armazenar as opções de configuração. Ao definir as opções de configuração, você pode alterar o comportamento de sua aplicação sem a necessidade de reescrever algum código. -The environment variables are accessible from the app as `process.env.VAR_NAME`. The `process.env` object is a global Node object, and variables are passed as strings. By convention, the variable names are all uppercase, with words separated by an underscore. The `.env` is a shell file, so you don’t need to wrap names or values in quotes. It is also important to note that there cannot be space around the equals sign when you are assigning values to your variables, e.g. `VAR_NAME=value`. Usually, you will put each variable definition on a separate line. +As variáveis de ambiente podem ser acessadas pelo aplicativo usando `process.env.VAR_NAME`. O objeto `process.env` é um objeto global do Node e suas variáveis são passadas como strings. Por convenção, os nomes de variáveis ficam todos em letras maiúsculas, com palavras separadas por um sublinhado. O `.env` é um arquivo shell. Assim, você não precisa encapsular nomes ou valores entre aspas. Também é importante notar que não pode haver espaço em torno do sinal de igual quando você estiver atribuindo valores às suas variáveis, como, por exemplo, `VAR_NAME=value`. Normalmente, você colocará cada definição de variável em uma linha separada. # --instructions-- -Let's add an environment variable as a configuration option. +Vamos adicionar uma variável de ambiente como uma opção de configuração. -Create a `.env` file in the root of your project directory, and store the variable `MESSAGE_STYLE=uppercase` in it. +Crie um arquivo `.env` na raiz do diretório do seu projeto e armazene a variável `MESSAGE_STYLE=uppercase` nele. -Then, in the `/json` GET route handler you created in the last challenge, transform the response object's message to uppercase if `process.env.MESSAGE_STYLE` equals `uppercase`. The response object should either be `{"message": "Hello json"}` or `{"message": "HELLO JSON"}`, depending on the `MESSAGE_STYLE` value. +Em seguida, no manipulador de rota `/json` do GET que você criou no último desafio, transforme a mensagem do objeto de resposta em letras maiúsculas com `process.env.MESSAGE_STYLE` é igual a `uppercase`. O objeto de resposta deve ser `{"message": "Hello json"}` ou `{"message": "HELLO JSON"}`, dependendo do valor de `MESSAGE_STYLE`. -**Note:** If you are using Replit, you cannot create a `.env` file. Instead, use the built-in SECRETS tab to add the variable. +**Observação:** se você estiver usando o Replit, você não poderá criar um arquivo `.env`. Em vez disso, use a aba embutida SECRETS para adicionar a variável. # --hints-- -The response of the endpoint `/json` should change according to the environment variable `MESSAGE_STYLE` +A resposta do endpoint `/json` deve ser alterada de acordo com a variável de ambiente `MESSAGE_STYLE` ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.md b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.md index d4f4da4d68..f9a840138d 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.md @@ -1,6 +1,6 @@ --- id: 587d7fb3367417b2b2512bfc -title: Add a Description to Your package.json +title: Adicionar uma descrição ao package.json challengeType: 2 forumTopicId: 301522 dashedName: add-a-description-to-your-package-json @@ -8,11 +8,11 @@ dashedName: add-a-description-to-your-package-json # --description-- -The next part of a good package.json file is the `description` field; where a short, but informative description about your project belongs. +A próxima parte de um bom arquivo package.json é o campo `description`. É aqui que você deve colocar uma descrição curta, mas informativa, do projeto. -If you some day 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. However, that’s not the only use case for the description, it’s a great way to summarize what a project does. It’s just as important in any Node.js project to help other developers, future maintainers or even your future self understand the project quickly. +Se você planeja publicar um pacote no npm, esta é a string que deve vender a ideia ao usuário para que ele decida se deseja instalar o pacote ou não. No entanto, esse não é o único caso de uso para a descrição. Ela é uma ótima maneira de resumir o que um projeto faz. Também é importante, em qualquer projeto do Node.js, ajudar outros desenvolvedores, futuros mantenedores ou, até mesmo, seu futuro eu a entender rapidamente o projeto. -Regardless of what you plan for your project, a description is definitely recommended. Here's an example: +Independentemente do que você planeja para seu projeto, uma descrição é definitivamente recomendada. Exemplo: ```json "description": "A project that does something awesome", @@ -20,13 +20,13 @@ Regardless of what you plan for your project, a description is definitely recomm # --instructions-- -Add a `description` to the package.json file of your project. +Adicione uma `description` ao arquivo package.json do projeto. -**Note:** Remember to use double-quotes for field-names (") and commas (,) to separate fields. +**Observação:** lembre-se de usar aspas duplas para nomes de campo (") e vírgulas (,) para separar os campos. # --hints-- -package.json should have a valid "description" key +O package.json deve ter uma chave "description" válida ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.md b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.md index d97b013401..fd2cc488ae 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.md @@ -1,6 +1,6 @@ --- id: 587d7fb4367417b2b2512bfe -title: Add a License to Your package.json +title: Adicionar uma licença ao package.json challengeType: 2 forumTopicId: 301523 dashedName: add-a-license-to-your-package-json @@ -8,9 +8,9 @@ dashedName: add-a-license-to-your-package-json # --description-- -The `license` field is where you inform users of what they are allowed to do with your project. +O campo `license` é onde você informa aos usuários o que eles têm permissão para fazer com o seu projeto. -Some common licenses for open source projects include MIT and BSD. License information is not required, and copyright laws in most countries will give you ownership of what you create by default. However, it’s always a good practice to explicitly state what users can and can’t do. Here's an example of the license field: +Algumas licenças comuns para projetos de código aberto incluem a MIT e a BSD. Informações de licença não são necessárias. As leis de direitos autorais na maioria dos países lhe darão a propriedade do que você criou por padrão. No entanto, é sempre uma boa prática indicar explicitamente o que os usuários podem e não podem fazer. Aqui está um exemplo do campo license: ```json "license": "MIT", @@ -18,11 +18,11 @@ Some common licenses for open source projects include MIT and BSD. License infor # --instructions-- -Fill the `license` field in the package.json file of your project as you find suitable. +Preencha o campo `license` no arquivo package.json do seu projeto conforme achar adequado. # --hints-- -package.json should have a valid "license" key +O package.json deve ter uma chave "license" válida ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.md b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.md index a5b3b8b245..2f882e8bae 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.md @@ -1,6 +1,6 @@ --- id: 587d7fb4367417b2b2512bff -title: Add a Version to Your package.json +title: Adicionar uma versão ao package.json challengeType: 2 forumTopicId: 301525 dashedName: add-a-version-to-your-package-json @@ -8,7 +8,7 @@ dashedName: add-a-version-to-your-package-json # --description-- -A `version` is one of the required fields of your package.json file. This field describes the current version of your project. Here's an example: +Um dos campos obrigatórios do seu arquivo package.json é o `version`. Este campo descreve a versão atual do seu projeto. Exemplo: ```json "version": "1.2.0", @@ -16,11 +16,11 @@ A `version` is one of the required fields of your package.json file. This field # --instructions-- -Add a `version` to the package.json file of your project. +Adicione uma `version` ao arquivo package.json do projeto. # --hints-- -package.json should have a valid "version" key +O package.json deve ter uma chave "version" válida ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.md b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.md index 33c9742e8b..b93780e4c5 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.md @@ -1,6 +1,6 @@ --- id: 587d7fb4367417b2b2512bfd -title: Add Keywords to Your package.json +title: Adicionar palavras-chave ao seu package.json challengeType: 2 forumTopicId: 301526 dashedName: add-keywords-to-your-package-json @@ -8,23 +8,23 @@ dashedName: add-keywords-to-your-package-json # --description-- -The `keywords` field is where you can describe your project using related keywords. Here's an example: +O campo `keywords` é onde você pode descrever seu projeto usando palavras-chave relacionadas. Exemplo: ```json "keywords": [ "descriptive", "related", "words" ], ``` -As you can see, this field is structured as an array of double-quoted strings. +Como você pode ver, este campo está estruturado como um array de frases cercadas por aspas duplas. # --instructions-- -Add an array of suitable strings to the `keywords` field in the package.json file of your project. +Adicione uma array de strings adequadas para o campo `keywords` no arquivo package.json do seu projeto. -One of the keywords should be "freecodecamp". +Uma das palavras-chave deve ser "freecodecamp". # --hints-- -package.json should have a valid "keywords" key +package.json deve ter uma chave "keywords" válida ```js (getUserInput) => @@ -39,7 +39,7 @@ package.json should have a valid "keywords" key ); ``` -"keywords" field should be an Array +O campo "keywords" deve ser um array ```js (getUserInput) => @@ -54,7 +54,7 @@ package.json should have a valid "keywords" key ); ``` -"keywords" should include "freecodecamp" +O campo "keywords" devem incluir "freecodecamp" ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md index 18523e17aa..b827ea9209 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md @@ -1,6 +1,6 @@ --- id: 587d7fb4367417b2b2512c00 -title: Expand Your Project with External Packages from npm +title: Expandir seu projeto com pacotes externos do npm challengeType: 2 forumTopicId: 301527 dashedName: expand-your-project-with-external-packages-from-npm @@ -8,9 +8,9 @@ dashedName: expand-your-project-with-external-packages-from-npm # --description-- -One of the biggest reasons to use a package manager, is their powerful dependency management. Instead of manually having to make sure that you get all dependencies whenever you set up a project on a new computer, npm automatically installs everything for you. But how can npm know exactly what your project needs? Meet the `dependencies` section of your package.json file. +Uma das maiores razões para usar um gerenciador de pacotes é a sua poderosa gestão de dependências. Em vez de ter que garantir manualmente que tem todas as dependências sempre que você configurar um projeto em um novo computador, o npm instala tudo automaticamente para você. Mas como o npm pode saber exatamente de que seu projeto precisa? Conheça a seção `dependencies` do seu arquivo package.json. -In this section, packages your project requires are stored using the following format: +Nesta seção, pacotes de que seu projeto necessita são armazenados usando o seguinte formato: ```json "dependencies": { @@ -22,13 +22,13 @@ In this section, packages your project requires are stored using the following f # --instructions-- -Add version "2.14.0" of the "moment" package to the `dependencies` field of your package.json file. +Adicione a versão "2.14.0" do pacote "moment" ao campo `dependencies` do seu arquivo package.json. -**Note:** Moment is a handy library for working with time and dates. +**Observação:** o moment é uma biblioteca útil para trabalhar com horas e datas. # --hints-- -"dependencies" should include "moment" +"dependencies" deve incluir o "moment" ```js (getUserInput) => @@ -47,7 +47,7 @@ Add version "2.14.0" of the "moment" package to the `dependencies` field of your ); ``` -"moment" version should be "2.14.0" +A versão do "moment" deve ser a "2.14.0" ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.md b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.md index a39adcd533..0dc68110a7 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.md @@ -1,6 +1,6 @@ --- id: 587d7fb5367417b2b2512c03 -title: Use the Caret-Character to Use the Latest Minor Version of a Dependency +title: Usar o circunflexo para usar a última versão secundária de uma dependência challengeType: 2 forumTopicId: 301531 dashedName: use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency @@ -8,25 +8,25 @@ dashedName: use-the-caret-character-to-use-the-latest-minor-version-of-a-depende # --description-- -Similar to how the tilde we learned about in the last challenge allows npm to install the latest PATCH for a dependency, the caret (`^`) allows npm to install future updates as well. The difference is that the caret will allow both MINOR updates and PATCHes. +Da mesma forma que o til, que aprendemos no último desafio e que permite que o npm instale o último PATCH de uma dependência, o circunflexo (`^`) permite que o npm instale atualizações futuras também. A diferença é que o circunflexo permitirá tanto atualizações MINOR quanto PATCHes. -Your current version of moment should be "~2.10.2" which allows npm to install to the latest 2.10.x version. If you were to use the caret (^) as a version prefix instead, npm would be allowed to update to any 2.x.x version. +Sua versão atual neste momento deve ser "~2.10.2", o que permite que o npm instale a versão 2.10.x mais recente. Se você usasse o circunflexo (^) como um prefixo de versão, o npm teria permissão para atualizar para qualquer versão 2.x.x. ```json "package": "^1.3.8" ``` -This would allow updates to any 1.x.x version of the package. +Isso permitiria atualizações para qualquer versão 1.x.x do pacote. # --instructions-- -Use the caret (`^`) to prefix the version of moment in your dependencies and allow npm to update it to any new MINOR release. +Use o circunflexo (`^`) para prefixar a versão do momento em suas dependências e permitir que o npm atualize para qualquer versão MINOR. -**Note:** The version numbers themselves should not be changed. +**Observação:** os números da versão em si não devem ser alterados. # --hints-- -"dependencies" should include "moment" +"dependencies" deve incluir o "moment" ```js (getUserInput) => @@ -45,7 +45,7 @@ Use the caret (`^`) to prefix the version of moment in your dependencies and all ); ``` -"moment" version should match "^2.x.x" +A versão do "moment" deve corresponder a "^2.x.x" ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.md index 12be099f8a..269b17a58a 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.md @@ -1,6 +1,6 @@ --- id: 587d7fb9367417b2b2512c12 -title: Chain Search Query Helpers to Narrow Search Results +title: Encadear auxiliares de consulta para restringir resultados de pesquisa challengeType: 2 forumTopicId: 301533 dashedName: chain-search-query-helpers-to-narrow-search-results @@ -8,15 +8,15 @@ dashedName: chain-search-query-helpers-to-narrow-search-results # --description-- -If you don’t pass the callback as the last argument to `Model.find()` (or to the other search methods), the query is not executed. You can store the query in a variable for later use. This kind of object enables you to build up a query using chaining syntax. The actual db search is executed when you finally chain the method `.exec()`. You always need to pass your callback to this last method. There are many query helpers, here we'll use the most commonly used. +Se você não passar o callback como o último argumento para `Model.find()` (ou para outros métodos de pesquisa), a consulta não é executada. Você pode armazenar a consulta em uma variável para uso posterior. Esse tipo de objeto permite que você crie uma consulta usando a sintaxe de encadeamento. A pesquisa real do banco de dados é executada quando você finalmente encadear o método `.exec()`. Você sempre precisa passar seu callback para este último método. Existem muitos auxiliares de consulta. Aqui, usaremos os mais comuns. # --instructions-- -Modify the `queryChain` function to find people who like the food specified by the variable named `foodToSearch`. Sort them by `name`, limit the results to two documents, and hide their age. Chain `.find()`, `.sort()`, `.limit()`, `.select()`, and then `.exec()`. Pass the `done(err, data)` callback to `exec()`. +Modifique a função `queryChain` para que encontre pessoas que gostam do alimento especificado pela variável `foodToSearch`. Classifique-os por `name`, limite os resultados a dois documentos e oculte idade deles. Encadeie `.find()`, `.sort()`, `.limit()`, `.select()`e, então, `.exec()`. Passe a callback `done(err, data)` para `exec()`. # --hints-- -Chaining query helpers should succeed +Você deve ter sucesso em encadear auxiliares de consulta ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.md index 1e7e686d23..03ff6d7515 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.md @@ -1,6 +1,6 @@ --- id: 587d7fb6367417b2b2512c07 -title: Create a Model +title: Criar um modelo challengeType: 2 forumTopicId: 301535 dashedName: create-a-model @@ -8,13 +8,13 @@ dashedName: create-a-model # --description-- -**C**RUD Part I - CREATE +**C**RUD I Parte I - CREATE -First of all we need a Schema. Each schema maps to a MongoDB collection. It defines the shape of the documents within that collection. Schemas are building block for Models. They can be nested to create complex models, but in this case we'll keep things simple. A model allows you to create instances of your objects, called documents. +Em primeiro lugar, precisamos de um schema. Cada schema mapeia para uma coleção do MongoDB. Ele define a forma dos documentos dentro daquela coleção. Os schemas são os blocos que compõem os modelos. Eles podem ser aninhados para criar modelos complexos, mas nesse caso vamos simplificar as coisas. Um modelo permite que você crie instâncias de seus objetos, chamados documentos. -Replit is a real server, and in real servers the interactions with the database happen in handler functions. These functions are executed when some event happens (e.g. someone hits an endpoint on your API). We’ll follow the same approach in these exercises. The `done()` function is a callback that tells us that we can proceed after completing an asynchronous operation such as inserting, searching, updating, or deleting. It's following the Node convention, and should be called as `done(null, data)` on success, or `done(err)` on error. +O Replit é um servidor real. Em servidores reais, as interações com o banco de dados acontecem em funções de manipulador. Estas funções são executadas quando algum evento acontece (por exemplo, alguém atinge um endpoint na sua API). Seguiremos a mesma abordagem nestes exercícios. A função `done()` é um callback que nos diz que podemos prosseguir após concluir uma operação assíncrona, como inserir, pesquisar, atualizar ou excluir. Ela segue a convenção do Node e deve ser chamada como `done(null, data)` quando houver sucesso, ou `done(err)` quando houver erro. -Warning - When interacting with remote services, errors may occur! +Aviso - Ao interagir com serviços remotos, podem ocorrer erros! ```js /* Example */ @@ -28,7 +28,7 @@ const someFunc = function(done) { # --instructions-- -Create a person schema called `personSchema` having this prototype: +Crie um schema de pessoa chamado `personSchema` que tenha este protótipo: ```markup - Person Prototype - @@ -38,13 +38,13 @@ age : number favoriteFoods : array of strings (*) ``` -Use the Mongoose basic schema types. If you want you can also add more fields, use simple validators like required or unique, and set default values. See the [Mongoose docs](http://mongoosejs.com/docs/guide.html). +Use os tipos de schemas básicos de Mongoose. Se você quiser, também pode adicionar mais campos, usar validadores simples, como required ou unique, e definir valores padrão. Veja a [documentação do Mongoose](http://mongoosejs.com/docs/guide.html). -Now, create a model called `Person` from the `personSchema`. +Agora, crie um modelo chamado `Person` do `personSchema`. # --hints-- -Creating an instance from a mongoose schema should succeed +Você deve criar uma instância de um esquema mongoose com sucesso ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.md index ae385b6b21..62c2f67dff 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.md @@ -1,6 +1,6 @@ --- id: 587d7fb6367417b2b2512c09 -title: Create and Save a Record of a Model +title: Criar e salvar um registro de um modelo challengeType: 2 forumTopicId: 301536 dashedName: create-and-save-a-record-of-a-model @@ -8,11 +8,11 @@ dashedName: create-and-save-a-record-of-a-model # --description-- -In this challenge you will have to create and save a record of a model. +Neste desafio, você terá que criar e salvar um registro de um modelo. # --instructions-- -Within the `createAndSavePerson` function, create a document instance using the `Person` model constructor you built before. Pass to the constructor an object having the fields `name`, `age`, and `favoriteFoods`. Their types must conform to the ones in the `personSchema`. Then, call the method `document.save()` on the returned document instance. Pass to it a callback using the Node convention. This is a common pattern; all the following CRUD methods take a callback function like this as the last argument. +Dentro da função `createAndSavePerson`, crie uma instância de documento usando o construtor de modelo `Person` que você criou antes. Passe para o construtor um objeto que tenha os campos `name`, `age` e `favoriteFoods`. Seus tipos devem estar em conformidade com os que estão no `personSchema`. Em seguida, chame o método `document.save()` na instância do documento retornado. Passe a ele um callback usando a convenção do Node. Este é um padrão comum. Todos os métodos CRUD a seguir recebem uma função de callback como essa como o último argumento. ```js /* Example */ @@ -25,7 +25,7 @@ person.save(function(err, data) { # --hints-- -Creating and saving a db item should succeed +Você deve ter sucesso na criação e no salvamento de itens do banco de dados ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.md index 08812efbd1..324c2fee44 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.md @@ -1,6 +1,6 @@ --- id: 587d7fb7367417b2b2512c0a -title: Create Many Records with model.create() +title: Criar muitos registros com model.create() challengeType: 2 forumTopicId: 301537 dashedName: create-many-records-with-model-create @@ -8,17 +8,17 @@ dashedName: create-many-records-with-model-create # --description-- -Sometimes you need to create many instances of your models, e.g. when seeding a database with initial data. `Model.create()` takes an array of objects like `[{name: 'John', ...}, {...}, ...]` as the first argument, and saves them all in the db. +Às vezes, você precisa criar muitas instâncias dos seus modelos. Por exemplo, ao fazer o seeding de um banco de dados com os dados iniciais. `Model.create()` recebe um array de objetos como `[{name: 'John', ...}, {...}, ...]` como o primeiro argumento e o salva no banco de dados. # --instructions-- -Modify the `createManyPeople` function to create many people using `Model.create()` with the argument `arrayOfPeople`. +Modifique a função `createManyPeople` para criar muitas pessoas usando `Model.create()` com o argumento `arrayOfPeople`. -**Note:** You can reuse the model you instantiated in the previous exercise. +**Observação:** você pode reutilizar o modelo que você instanciou no exercício anterior. # --hints-- -Creating many db items at once should succeed +Você deve ter sucesso na criação de muitos itens de banco de dados ao mesmo tempo ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.md index ddd4ecd80a..bcff639441 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.md @@ -1,6 +1,6 @@ --- id: 587d7fb8367417b2b2512c0f -title: Perform New Updates on a Document Using model.findOneAndUpdate() +title: Executar novas atualizações em um documento usando model.findOneAndUpdate() challengeType: 2 forumTopicId: 301542 dashedName: perform-new-updates-on-a-document-using-model-findoneandupdate @@ -8,17 +8,17 @@ dashedName: perform-new-updates-on-a-document-using-model-findoneandupdate # --description-- -Recent versions of Mongoose have methods to simplify documents updating. Some more advanced features (i.e. pre/post hooks, validation) behave differently with this approach, so the classic method is still useful in many situations. `findByIdAndUpdate()` can be used when searching by id. +Versões recentes do Mongoose possuem métodos para simplificar a atualização dos documentos. Alguns recursos mais avançados (como os hooks pre/post, validação, entre outros) se comportam de modo diferente com esta abordagem. Assim, o método clássico ainda é útil em muitas situações. `findByIdAndUpdate()` pode ser usado na busca por id. # --instructions-- -Modify the `findAndUpdate` function to find a person by `Name` and set the person's age to `20`. Use the function parameter `personName` as the search key. +Modifique a função `findAndUpdate` para encontrar uma pessoa por `Name` e defina a idade da pessoa como `20`. Use o parâmetro `personName` da função como chave de pesquisa. -**Note:** You should return the updated document. To do that, you need to pass the options document `{ new: true }` as the 3rd argument to `findOneAndUpdate()`. By default, these methods return the unmodified object. +**Observação:** você deve retornar o documento atualizado. Para fazer isso, você precisa passar o documento de opções `{ new: true }` como o terceiro argumento para `findOneAndUpdate()`. Por padrão, esses métodos retornam o objeto não modificado. # --hints-- -findOneAndUpdate an item should succeed +Usar findOneAndUpdate em um item deve ser bem-sucedido ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.md index a3e22a5b1e..ddb340ed0b 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.md @@ -1,6 +1,6 @@ --- id: 587d7fb7367417b2b2512c0b -title: Use model.find() to Search Your Database +title: Use model.find() para procurar no seu banco de dados challengeType: 2 forumTopicId: 301543 dashedName: use-model-find-to-search-your-database @@ -8,17 +8,17 @@ dashedName: use-model-find-to-search-your-database # --description-- -In its simplest usage, `Model.find()` accepts a query document (a JSON object) as the first argument, then a callback. It returns an array of matches. It supports an extremely wide range of search options. Read more in the docs. +Em seu uso mais simples, `Model.find()` aceita um documento de consulta (um objeto JSON) como o primeiro argumento e depois um callback. Ele retorna um array de correspondências. Ele dá suporte a uma variedade extremamente ampla de opções de pesquisa. Leia mais na documentação. # --instructions-- -Modify the `findPeopleByName` function to find all the people having a given name, using Model.find() -\> [Person] +Modifique a função `findPeopleByName` para encontrar todas as pessoas que tenham um determinado nome, usando Model.find() -\> [Person] -Use the function argument `personName` as the search key. +Use o argumento `personName` da função como chave de pesquisa. # --hints-- -Find all items corresponding to a criteria should succeed +Localize todos os itens correspondentes a um critério com sucesso ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.md index 36c2b551e1..4756e02e00 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.md @@ -1,6 +1,6 @@ --- id: 587d7fb7367417b2b2512c0d -title: Use model.findById() to Search Your Database By _id +title: Use model.findById() para procurar no seu banco de dados por _id challengeType: 2 forumTopicId: 301544 dashedName: use-model-findbyid-to-search-your-database-by-id @@ -8,15 +8,15 @@ dashedName: use-model-findbyid-to-search-your-database-by-id # --description-- -When saving a document, MongoDB automatically adds the field `_id`, and set it to a unique alphanumeric key. Searching by `_id` is an extremely frequent operation, so Mongoose provides a dedicated method for it. +Ao salvar um documento, o MongoDB adiciona automaticamente o campo `_id`, e define-o como uma chave alfanumérica única. Procurar por `_id` é uma operação extremamente frequente, então o Mongoose fornece um método dedicado para isso. # --instructions-- -Modify the `findPersonById` to find the only person having a given `_id`, using `Model.findById() -> Person`. Use the function argument `personId` as the search key. +Modifique `findPersonById` para encontrar a única pessoa com um `_id` dado, usando `Model.findById() -> Person`. Use o argumento `personId` da função como chave de pesquisa. # --hints-- -Find an item by Id should succeed +Você deve ter sucesso em encontrar um item por Id ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.md b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.md index e7f9c78278..17f8f22791 100644 --- a/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.md +++ b/curriculum/challenges/portuguese/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.md @@ -1,6 +1,6 @@ --- id: 587d7fb7367417b2b2512c0c -title: Use model.findOne() to Return a Single Matching Document from Your Database +title: Usar model.findOne() para retornar um único documento correspondente a partir do seu banco de dados challengeType: 2 forumTopicId: 301545 dashedName: use-model-findone-to-return-a-single-matching-document-from-your-database @@ -8,15 +8,15 @@ dashedName: use-model-findone-to-return-a-single-matching-document-from-your-dat # --description-- -`Model.findOne()` behaves like `Model.find()`, but it returns only one document (not an array), even if there are multiple items. It is especially useful when searching by properties that you have declared as unique. +`Model.findOne()` se comporta como `Model.find()`, mas retorna apenas um documento (não um array), mesmo que existam vários itens. É especialmente útil ao pesquisar por propriedades que você declarou como exclusivas. # --instructions-- -Modify the `findOneByFood` function to find just one person which has a certain food in the person's favorites, using `Model.findOne() -> Person`. Use the function argument `food` as search key. +Modifique a função `findOneByFood` para encontrar apenas uma pessoa que tenha uma certa comida nos seus favoritos, usando o modelo `Model.findOne() -> Person`. Use o argumento `food` da função como chave de pesquisa. # --hints-- -Find one item should succeed +Você deve ter sucesso em encontrar um item ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-a.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-a.md index 9a24560aa9..6e29989321 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-a.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-a.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c14d -title: Data Analysis Example A +title: Exemplo de análise de dados A challengeType: 11 videoId: nVAaxZ34khk dashedName: data-analysis-example-a @@ -8,34 +8,34 @@ dashedName: data-analysis-example-a # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/FreeCodeCamp-Pandas-Real-Life-Example) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/FreeCodeCamp-Pandas-Real-Life-Example) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What does the shape of our dataframe tell us? +O que nos diz a forma do nosso dataframe? ## --answers-- -The size in gigabytes the dataframe we loaded into memory is. +O tamanho em gigabytes do dataframe que carregamos na memória. --- -How many rows and columns our dataframe has. +Quantas linhas e colunas o dataframe tem. --- -How many rows the source data had before loading. +Quantas linhas os dados de origem tinham antes de serem carregados. --- -How many columns the source data had before loading. +Quantas colunas os dados de origem tinham antes de serem carregados. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-b.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-b.md index 67f603c129..8dc1b3b8e1 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-b.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-analysis-example-b.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c14e -title: Data Analysis Example B +title: Exemplo de análise de dados B challengeType: 11 videoId: 0kJz0q0pvgQ dashedName: data-analysis-example-b @@ -8,30 +8,30 @@ dashedName: data-analysis-example-b # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/FreeCodeCamp-Pandas-Real-Life-Example) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/FreeCodeCamp-Pandas-Real-Life-Example) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What does the `loc` method allow you to do? +O que o método `loc` permite que você faça? ## --answers-- -Retrieve a subset of rows and columns by supplying integer-location arguments. +Recuperar um subconjunto de linhas e colunas fornecendo argumentos de local inteiros. --- -Access a group of rows and columns by supplying label(s) arguments. +Acessar um grupo de linhas e colunas fornecendo argumentos de etiqueta. --- -Returns the first `n` rows based on the integer argument supplied. +Retornar as primeiras `n` linhas baseadas no argumento inteiro fornecido. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-and-visualizations.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-and-visualizations.md index 13cd90fb08..b579d2e161 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-and-visualizations.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-and-visualizations.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c160 -title: Data Cleaning and Visualizations +title: Limpar e visualizar dados challengeType: 11 videoId: mHjxzFS5_Z0 dashedName: data-cleaning-and-visualizations @@ -8,18 +8,18 @@ dashedName: data-cleaning-and-visualizations # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/data-cleaning-rmotr-freecodecamp) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/data-cleaning-rmotr-freecodecamp) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -When using Matplotlib's global API, what does the order of numbers mean here? +Ao usar a API global do matplotlib, o que significa a ordem dos números aqui? ```py plt.subplot(1, 2, 1) @@ -27,15 +27,15 @@ plt.subplot(1, 2, 1) ## --answers-- -My figure will have one column, two rows, and I am going to start drawing in the first (left) plot. +Minha figura terá uma coluna e duas linhas. Eu vou começar a desenhar no primeiro gráfico (à esquerda). --- -I am going to start drawing in the first (left) plot, my figure will have two rows, and my figure will have one column. +Vou começar a desenhar no primeiro gráfico (à esquerda). A minha figura terá duas linhas e a minha figura terá uma coluna. --- -My figure will have one row, two columns, and I am going to start drawing in the first (left) plot. +Minha figura terá uma linha e duas colunas. Eu vou começar a desenhar no primeiro gráfico (à esquerda). ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-duplicates.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-duplicates.md index cf159cead1..1eba6bd56b 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-duplicates.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-duplicates.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c15f -title: Data Cleaning Duplicates +title: Limpar dados duplicados challengeType: 11 videoId: kj7QqjXhH6A dashedName: data-cleaning-duplicates @@ -8,30 +8,30 @@ dashedName: data-cleaning-duplicates # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/data-cleaning-rmotr-freecodecamp) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/data-cleaning-rmotr-freecodecamp) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -The Python method `.duplicated()` returns a boolean Series for your DataFrame. `True` is the return value for rows that: +O método `.duplicated()` do Python retorna uma série booleana para o seu DataFrame. `True` é o valor de retorno para as linhas que: ## --answers-- -contain a duplicate, where the value for the row contains the first occurrence of that value. +contém uma duplicata, onde o valor para a linha contém a primeira ocorrência desse valor. --- -contain a duplicate, where the value for the row is at least the second occurrence of that value. +contém uma duplicata, onde o valor para a linha é, ao menos, a segunda ocorrência desse valor. --- -contain a duplicate, where the value for the row contains either the first or second occurrence. +contém uma duplicata, onde o valor para a linha contém a primeira ou a segunda ocorrência. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-introduction.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-introduction.md index 575be65eef..ed97c8e075 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-introduction.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/data-cleaning-introduction.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c15d -title: Data Cleaning Introduction +title: Introduzir a limpeza de dados challengeType: 11 videoId: ovYNhnltVxY dashedName: data-cleaning-introduction @@ -8,18 +8,18 @@ dashedName: data-cleaning-introduction # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/data-cleaning-rmotr-freecodecamp) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/data-cleaning-rmotr-freecodecamp) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What will the following code print out? +O que será impresso pelo código a seguir? ```py import pandas as pd diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/how-to-use-jupyter-notebooks-intro.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/how-to-use-jupyter-notebooks-intro.md index 1dd69ee8d9..00729feb5b 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/how-to-use-jupyter-notebooks-intro.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/how-to-use-jupyter-notebooks-intro.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c14f -title: How to use Jupyter Notebooks Intro +title: Como usar a introdução aos Jupyter Notebooks challengeType: 11 videoId: h8caJq2Bb9w dashedName: how-to-use-jupyter-notebooks-intro @@ -8,18 +8,18 @@ dashedName: how-to-use-jupyter-notebooks-intro # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/ds-content-interactive-jupyterlab-tutorial) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/ds-content-interactive-jupyterlab-tutorial) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What is **not** allowed in a Jupyter Notebook's cell? +O que **não** é permitido na célula de um Jupyter Notebook? ## --answers-- @@ -27,11 +27,11 @@ Markdown --- -Python code +Código do Python --- -An Excel sheet +Uma planilha do Excel ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-cells.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-cells.md index b886303b16..7883ea5f39 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-cells.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-cells.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c150 -title: Jupyter Notebooks Cells +title: Conhecer as células do Jupyter Notebooks challengeType: 11 videoId: 5PPegAs9aLA dashedName: jupyter-notebooks-cells @@ -8,30 +8,30 @@ dashedName: jupyter-notebooks-cells # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/ds-content-interactive-jupyterlab-tutorial) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/ds-content-interactive-jupyterlab-tutorial) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What are the three main types of Jupyter Notebook Cell? +Quais são os três principais tipos de célula dos Jupyter Notebooks? ## --answers-- -Code, Markdown, and Python +Código, markdown e Python --- -Code, Markdown, and Raw +Código, markdown e bruto --- -Markdown, Python, and Raw +Markdown, Python e bruto ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-importing-and-exporting-data.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-importing-and-exporting-data.md index 7bc910fcc4..ead5d5c999 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-importing-and-exporting-data.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/jupyter-notebooks-importing-and-exporting-data.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c151 -title: Jupyter Notebooks Importing and Exporting Data +title: Importar e exportar os dados dos Jupyter Notebooks challengeType: 11 videoId: k1msxD3JIxE dashedName: jupyter-notebooks-importing-and-exporting-data @@ -8,38 +8,38 @@ dashedName: jupyter-notebooks-importing-and-exporting-data # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/ds-content-interactive-jupyterlab-tutorial) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/ds-content-interactive-jupyterlab-tutorial) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What kind of data can you import and work with in a Jupyter Notebook? +Que tipo de dados você pode importar e trabalhar em um Jupyter Notebook? ## --answers-- -Excel files. +Arquivos do Excel. --- -CSV files. +Arquivos CSV. --- -XML files. +Arquivos XML. --- -Data from an API. +Dados de uma API. --- -All of the above. +Todas as anteriores. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/numpy-operations.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/numpy-operations.md index 0072c84019..ecad220ce4 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/numpy-operations.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/numpy-operations.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c155 -title: Numpy Operations +title: Conhecer operações do NumPy challengeType: 11 videoId: eqSVcJbaPdk dashedName: numpy-operations @@ -8,18 +8,18 @@ dashedName: numpy-operations # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/freecodecamp-intro-to-numpy) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/freecodecamp-intro-to-numpy) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What is the value of `a` after you run the following code? +Qual é o valor de `a` depois de executar o seguinte código? ```py a = np.arange(5) diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/pandas-introduction.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/pandas-introduction.md index 45a30bc050..0102179f9c 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/pandas-introduction.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/pandas-introduction.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c158 -title: Pandas Introduction +title: Introduzir o Pandas challengeType: 11 videoId: 0xACW-8cZU0 dashedName: pandas-introduction @@ -8,18 +8,18 @@ dashedName: pandas-introduction # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/freecodecamp-intro-to-pandas) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/freecodecamp-intro-to-pandas) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What will the following code print out? +O que será impresso pelo código a seguir? ```py import pandas as pd diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/parsing-html-and-saving-data.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/parsing-html-and-saving-data.md index 1585b497b2..633746adac 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/parsing-html-and-saving-data.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/parsing-html-and-saving-data.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c164 -title: Parsing HTML and Saving Data +title: Analisar HTML e salvar dados challengeType: 11 videoId: bJaqnTWQmb0 dashedName: parsing-html-and-saving-data @@ -8,18 +8,18 @@ dashedName: parsing-html-and-saving-data # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/RDP-Reading-Data-with-Python-and-Pandas/tree/master/unit-1-reading-data-with-python-and-pandas/lesson-17-reading-html-tables/files) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/RDP-Reading-Data-with-Python-and-Pandas/tree/master/unit-1-reading-data-with-python-and-pandas/lesson-17-reading-html-tables/files) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What Python library has the `.read_html()` method we can we use for parsing HTML documents and extracting tables? +Qual biblioteca do Python tem o método `.read_html()` que podemos usar para analisar documentos HTML e extrair tabelas? ## --answers-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-functions-and-collections.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-functions-and-collections.md index 75a9a71e77..00b64af46d 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-functions-and-collections.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-functions-and-collections.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c166 -title: Python Functions and Collections +title: Conhecer coleções e funções do Python challengeType: 11 videoId: NzpU17ZVlUw dashedName: python-functions-and-collections @@ -8,30 +8,30 @@ dashedName: python-functions-and-collections # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/ds-content-python-under-10-minutes) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/ds-content-python-under-10-minutes) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -What is the main difference between lists and tuples in Python? +Qual é a principal diferença entre listas e tuplas em Python? ## --answers-- -Tuples are immutable. +Tuplas são imutáveis. --- -Lists are ordered. +Listas são ordenadas. --- -Tuples are unordered. +Tuplas são desordenadas. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-introduction.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-introduction.md index f67c83c389..cf250e667c 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-introduction.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-introduction.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c165 -title: Python Introduction +title: Introduzir o Python challengeType: 11 videoId: PrQV9JkLhb4 dashedName: python-introduction @@ -8,34 +8,34 @@ dashedName: python-introduction # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/ds-content-python-under-10-minutes) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/ds-content-python-under-10-minutes) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -How do we define blocks of code in the body of functions in Python? +Como definimos blocos de código no corpo das funções do Python? ## --answers-- -We use a set of curly braces, one on either side of each new block of our code. +Usamos um conjunto de chaves, um em cada lado de cada novo bloco de nosso código. --- -We use indentation, usually right-aligned 4 spaces. +Usamos a indentação, geralmente 4 espaços alinhados à direita. --- -We do not denote blocks of code. +Não denotamos blocos de código. --- -We could use curly braces or indentation to denote blocks of code. +Poderíamos usar chaves ou indentação para indicar blocos de código. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-iteration-and-modules.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-iteration-and-modules.md index 4d4350768f..b81b069617 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-iteration-and-modules.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/python-iteration-and-modules.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c167 -title: Python Iteration and Modules +title: Realizar a iteração em Python e módulos challengeType: 11 videoId: XzosGWLafrY dashedName: python-iteration-and-modules @@ -8,18 +8,18 @@ dashedName: python-iteration-and-modules # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/ds-content-python-under-10-minutes) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/ds-content-python-under-10-minutes) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -How would you iterate over and print the keys and values of a dictionary named `user`? +Como você iteraria e imprimiria as chaves e valores de um dicionário chamado `user`? ## --answers-- diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/reading-data-introduction.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/reading-data-introduction.md index 5a98490864..a03e9e087d 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/reading-data-introduction.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-course/reading-data-introduction.md @@ -1,6 +1,6 @@ --- id: 5e9a093a74c4063ca6f7c161 -title: Reading Data Introduction +title: Introduzir a leitura de dados challengeType: 11 videoId: cDnt02BcHng dashedName: reading-data-introduction @@ -8,18 +8,18 @@ dashedName: reading-data-introduction # --description-- -*Instead of using notebooks.ai like it shows in the video, you can use Google Colab instead.* +*Ao invés de usar notebooks.ai como foi mostrado no vídeo, você pode usar o Google Colab como substituto.* -More resources: +Mais recursos: -- [Notebooks on GitHub](https://github.com/ine-rmotr-curriculum/RDP-Reading-Data-with-Python-and-Pandas/tree/master/unit-1-reading-data-with-python-and-pandas/lesson-1-reading-csv-and-txt-files/files) -- [How to open Notebooks from GitHub using Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) +- [Notebooks no GitHub](https://github.com/ine-rmotr-curriculum/RDP-Reading-Data-with-Python-and-Pandas/tree/master/unit-1-reading-data-with-python-and-pandas/lesson-1-reading-csv-and-txt-files/files) +- [Como abrir notebooks do GitHub usando o Google Colab.](https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb) # --question-- ## --text-- -Given a file named `certificates.csv` with these contents: +Dado um arquivo chamado `certificates.csv` com este conteúdo:
 Name$Certificates$Time (in months)
@@ -29,7 +29,7 @@ Ahmad$5$9
 Beau$6$12
 
-Fill in the blanks for the missing arguments below: +Preencha as lacunas para os argumentos que faltam abaixo: ```py import csv diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md index 135049889c..559012dffa 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/demographic-data-analyzer.md @@ -1,6 +1,6 @@ --- id: 5e46f7e5ac417301a38fb929 -title: Demographic Data Analyzer +title: Analisador de dados demográficos challengeType: 10 forumTopicId: 462367 dashedName: demographic-data-analyzer @@ -8,17 +8,17 @@ dashedName: demographic-data-analyzer # --description-- -In this challenge you must analyze demographic data using Pandas. You are given a dataset of demographic data that was extracted from the 1994 Census database. +Neste desafio você deve analisar dados demográficos usando o Pandas. Você receberá um conjunto de dados relativos aos dados demográficos que foram extraídos do banco de dados do censo de 1994. -You can access [the full project description and starter code on Replit](https://replit.com/github/freeCodeCamp/boilerplate-demographic-data-analyzer). +Você pode acessar [a descrição completa do projeto e o código inicial no Replit](https://replit.com/github/freeCodeCamp/boilerplate-demographic-data-analyzer). -After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below. +Depois de ir para esse link, faça fork no projeto. Depois que você completar o projeto com base nas instruções do 'README.md', envie o link do seu projeto abaixo. -We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge. +Ainda estamos desenvolvendo a parte instrucional interativa do currículo de análise de dados com Python. Por enquanto, você terá que usar outros recursos para aprender a vencer este desafio. # --hints-- -It should pass all Python tests. +Ele deve passar em todos os testes do Python. ```js diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md index c1e596625d..0272dab040 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/mean-variance-standard-deviation-calculator.md @@ -1,6 +1,6 @@ --- id: 5e46f7e5ac417301a38fb928 -title: Mean-Variance-Standard Deviation Calculator +title: Calculadora de média, variância e desvio padrão challengeType: 10 forumTopicId: 462366 dashedName: mean-variance-standard-deviation-calculator @@ -8,17 +8,17 @@ dashedName: mean-variance-standard-deviation-calculator # --description-- -Create a function that uses Numpy to output the mean, variance, and standard deviation of the rows, columns, and elements in a 3 x 3 matrix. +Crie uma função que use o NumPy para retornar a média, variação e o desvio-padrão das linhas, colunas e elementos em uma matriz de 3 x 3. -You can access [the full project description and starter code on Replit](https://replit.com/github/freeCodeCamp/boilerplate-mean-variance-standard-deviation-calculator). +Você pode acessar [a descrição completa do projeto e o código inicial no Replit](https://replit.com/github/freeCodeCamp/boilerplate-mean-variance-standard-deviation-calculator). -After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below. +Depois de ir para esse link, faça fork no projeto. Depois que você completar o projeto com base nas instruções do 'README.md', envie o link do seu projeto abaixo. -We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge. +Ainda estamos desenvolvendo a parte instrucional interativa do currículo de análise de dados com Python. Por enquanto, você terá que usar outros recursos para aprender a vencer este desafio. # --hints-- -It should pass all Python tests. +Ele deve passar em todos os testes do Python. ```js diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md index d8ef3d60c9..c0c07d91cd 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md @@ -1,6 +1,6 @@ --- id: 5e46f7f8ac417301a38fb92a -title: Medical Data Visualizer +title: Visualizador de dados médicos challengeType: 10 forumTopicId: 462368 dashedName: medical-data-visualizer @@ -8,17 +8,17 @@ dashedName: medical-data-visualizer # --description-- -In this project, you will visualize and make calculations from medical examination data using matplotlib, seaborn, and pandas. +Neste projeto, você vai visualizar e fazer cálculos a partir de dados dos exames médicos usando o matplotlib, o seaborn e o pandas. -You can access [the full project description and starter code on Replit](https://replit.com/github/freeCodeCamp/boilerplate-medical-data-visualizer). +Você pode acessar [a descrição completa do projeto e o código inicial no Replit](https://replit.com/github/freeCodeCamp/boilerplate-medical-data-visualizer). -After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below. +Depois de ir para esse link, faça fork no projeto. Depois que você completar o projeto com base nas instruções do 'README.md', envie o link do seu projeto abaixo. -We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge. +Ainda estamos desenvolvendo a parte instrucional interativa do currículo de análise de dados com Python. Por enquanto, você terá que usar outros recursos para aprender a vencer este desafio. # --hints-- -It should pass all Python tests. +Ele deve passar em todos os testes do Python. ```js diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md index a708eedae1..12e8884630 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/data-analysis-with-python-projects/sea-level-predictor.md @@ -1,6 +1,6 @@ --- id: 5e4f5c4b570f7e3a4949899f -title: Sea Level Predictor +title: Previsor de nível do mar challengeType: 10 forumTopicId: 462370 dashedName: sea-level-predictor @@ -8,17 +8,17 @@ dashedName: sea-level-predictor # --description-- -In this project, you will analyze a dataset of the global average sea level change since 1880. You will use the data to predict the sea level change through year 2050. +Neste projeto, você analisará um conjunto de dados da mudança média do nível do mar global desde 1880. Você utilizará os dados para prever a mudança do nível do mar até ao ano de 2050. -You can access [the full project description and starter code on Replit](https://replit.com/github/freeCodeCamp/boilerplate-sea-level-predictor). +Você pode acessar [a descrição completa do projeto e o código inicial no Replit](https://replit.com/github/freeCodeCamp/boilerplate-sea-level-predictor). -After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below. +Depois de ir para esse link, faça fork no projeto. Depois que você completar o projeto com base nas instruções do 'README.md', envie o link do seu projeto abaixo. -We are still developing the interactive instructional part of the data analysis with Python curriculum. For now, you will have to use other resources to learn how to pass this challenge. +Ainda estamos desenvolvendo a parte instrucional interativa do currículo de análise de dados com Python. Por enquanto, você terá que usar outros recursos para aprender a vencer este desafio. # --hints-- -It should pass all Python tests. +Ele deve passar em todos os testes do Python. ```js diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/accessing-and-changing-elements,-rows,-columns.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/accessing-and-changing-elements,-rows,-columns.md index 3c833be5ad..ba1dc79add 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/accessing-and-changing-elements,-rows,-columns.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/accessing-and-changing-elements,-rows,-columns.md @@ -1,6 +1,6 @@ --- id: 5e9a0a8e09c5df3cc3600ed4 -title: 'Accessing and Changing Elements, Rows, Columns' +title: 'Acessar e mudar elementos, linhas, colunas' challengeType: 11 videoId: v-7Y7koJ_N0 dashedName: accessing-and-changing-elements-rows-columns @@ -10,7 +10,7 @@ dashedName: accessing-and-changing-elements-rows-columns ## --text-- -What code would change the values in the 3rd column of both of the following Numpy arrays to 20? +Qual código alteraria os valores na terceira coluna dos seguintes arrays do NumPy para 20? ```py a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/copying-arrays-warning.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/copying-arrays-warning.md index afe7b8d83e..bd06ac26ae 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/copying-arrays-warning.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/copying-arrays-warning.md @@ -1,6 +1,6 @@ --- id: 5e9a0a8e09c5df3cc3600ed7 -title: Copying Arrays Warning +title: Aviso de cópia de arrays challengeType: 11 videoId: iIoQ0_L0GvA dashedName: copying-arrays-warning @@ -10,7 +10,7 @@ dashedName: copying-arrays-warning ## --text-- -What is the value of `a` after running the following code? +Qual é o valor de `a` depois de executar o seguinte código? ```py import numpy as np diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initialize-array-problem.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initialize-array-problem.md index 34e8f27604..f4bb9858a3 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initialize-array-problem.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initialize-array-problem.md @@ -1,6 +1,6 @@ --- id: 5e9a0a8e09c5df3cc3600ed6 -title: Initialize Array Problem +title: Inicializar problema de arrays challengeType: 11 videoId: 0jGfH8BPfOk dashedName: initialize-array-problem @@ -10,7 +10,7 @@ dashedName: initialize-array-problem ## --text-- -What is another way to produce the following array? +Qual é a outra forma de produzir o array a seguir? ```py [[0. 0. 0. 0. 0. 0. 0.] diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initializing-different-arrays.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initializing-different-arrays.md index a6957cc7e4..804688d840 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initializing-different-arrays.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/initializing-different-arrays.md @@ -1,6 +1,6 @@ --- id: 5e9a0a8e09c5df3cc3600ed5 -title: Initializing Different Arrays +title: Inicializar arrays diferentes challengeType: 11 videoId: CEykdsKT4U4 dashedName: initializing-different-arrays @@ -10,7 +10,7 @@ dashedName: initializing-different-arrays ## --text-- -What will the following code print? +O que será impresso pelo código a seguir? ```py a = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]) diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/loading-data-and-advanced-indexing.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/loading-data-and-advanced-indexing.md index 5afa96f450..409d853583 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/loading-data-and-advanced-indexing.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/loading-data-and-advanced-indexing.md @@ -1,6 +1,6 @@ --- id: 5e9a0a8e09c5df3cc3600eda -title: Loading Data and Advanced Indexing +title: Carregar dados e indexação avançada challengeType: 11 videoId: tUdBZ7pF8Jg dashedName: loading-data-and-advanced-indexing @@ -10,14 +10,14 @@ dashedName: loading-data-and-advanced-indexing ## --text-- -Given a file named `data.txt` with these contents: +Dado um arquivo chamado `data.txt` com este conteúdo:
 29,97,32,100,45
 15,88,5,75,22
 
-What code would produce the following array? +Qual código produziria o array a seguir? ```py [29. 32. 45. 15. 5. 22.] diff --git a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/what-is-numpy.md b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/what-is-numpy.md index 03b2f65fc7..59e4d8a768 100644 --- a/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/what-is-numpy.md +++ b/curriculum/challenges/portuguese/08-data-analysis-with-python/numpy/what-is-numpy.md @@ -1,6 +1,6 @@ --- id: 5e9a0a8e09c5df3cc3600ed2 -title: What is NumPy +title: Conhecer o NumPy challengeType: 11 videoId: 5Nwfs5Ej85Q dashedName: what-is-numpy @@ -10,23 +10,23 @@ dashedName: what-is-numpy ## --text-- -Why are Numpy arrays faster than regular Python lists? +Por que arrays do Numpy são mais rápidos que as listas regulares do Python? ## --answers-- -Numpy does not perform type checking while iterating through objects. +O NumPy não efetua a verificação de tipo durante a iteração de objetos. --- -Numpy uses fixed types. +O NumPy usa tipos fixos. --- -Numpy uses contiguous memory. +O NumPy usa memória contígua. --- -All of the above. +Todas as anteriores. ## --video-solution-- diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md index 10b7e3ad58..8aff533bcd 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/anonymous-message-board.md @@ -1,6 +1,6 @@ --- id: 587d824a367417b2b2512c45 -title: Anonymous Message Board +title: Quadro de mensagens anônimas challengeType: 4 forumTopicId: 301568 dashedName: anonymous-message-board @@ -8,38 +8,38 @@ dashedName: anonymous-message-board # --description-- -Build a full stack JavaScript app that is functionally similar to this: . +Crie um aplicativo full stack em JavaScript que seja funcionalmente semelhante a este: . -Working on this project will involve you writing your code using one of the following methods: +Trabalhar nesse projeto vai fazer com que você escreva seu código usando um dos seguintes métodos: -- Clone [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-messageboard/) and complete your project locally. -- Use [our Replit starter project](https://replit.com/github/freeCodeCamp/boilerplate-project-messageboard) to complete your project. -- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo. +- Clone [este repositório do GitHub](https://github.com/freeCodeCamp/boilerplate-project-messageboard/) e complete o projeto localmente. +- Use [nosso projeto inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-messageboard) para completar o projeto. +- Use um construtor de site de sua escolha para completar o projeto. Certifique-se de incorporar todos os arquivos do nosso repositório no GitHub. -When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. Optionally, also submit a link to your projects source code in the `GitHub Link` field. +Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para ela no campo `Solution Link`. Como opção, envie também um link para o código-fonte do projeto no campo `GitHub Link`. # --instructions-- -1. Set `NODE_ENV` to test without quotes when ready to write tests and DB to your databases connection string (in `.env`) -2. Recommended to create controllers/handlers and handle routing in `routes/api.js` -3. You will add any security features to `server.js` +1. Defina `NODE_ENV` para testar sem aspas quando estiver pronto para escrever testes e BD para a string de conexão dos bancos de dados (em `.env`) +2. Esse é o recomendado para criar controladores/manipuladores e lidar com roteamento em `routes/api.js` +3. Você adicionará todas as funcionalidades de segurança ao `server.js` -Write the following tests in `tests/2_functional-tests.js`: +Escreva os testes a seguir em `tests/2_functional-tests.js`: -- Creating a new thread: POST request to `/api/threads/{board}` -- Viewing the 10 most recent threads with 3 replies each: GET request to `/api/threads/{board}` -- Deleting a thread with the incorrect password: DELETE request to `/api/threads/{board}` with an invalid `delete_password` -- Deleting a thread with the correct password: DELETE request to `/api/threads/{board}` with a valid `delete_password` -- Reporting a thread: PUT request to `/api/threads/{board}` -- Creating a new reply: POST request to `/api/replies/{board}` -- Viewing a single thread with all replies: GET request to `/api/replies/{board}` -- Deleting a reply with the incorrect password: DELETE request to `/api/replies/{board}` with an invalid `delete_password` -- Deleting a reply with the correct password: DELETE request to `/api/replies/{board}` with a valid `delete_password` -- Reporting a reply: PUT request to `/api/replies/{board}` +- Criar um novo tópico: solicitação de POST para `/api/threads/{board}` +- Visualizar os 10 tópicos mais recentes com 3 respostas cada: solicitação GET para `/api/threads/{board}` +- Excluir um tópico com a senha incorreta: solicitação DELETE para `/api/threads/{board}` com uma `delete_password` inválida +- Excluir um tópico com a senha correta: solicitação DELETE para `/api/threads/{board}` com uma `delete_password` válida +- Denunciar um tópico: solicitação de PUT para `/api/threads/{board}` +- Criar uma nova resposta: solicitação de POST para `/api/replies/{board}` +- Visualizar um único tópico com todas as respostas: solicitação GET para `/api/replies/{board}` +- Excluir uma resposta com a senha incorreta: solicitação DELETE para `/api/replies/{board}` com uma `delete_password` inválida +- Excluir uma resposta com a senha correta: solicitação DELETE para `/api/replies/{board}` com uma `delete_password` válida +- Denunciar uma resposta: solicitação de PUT para `/api/replies/{board}` # --hints-- -You can provide your own project, not the example URL. +Você pode fornecer seu próprio projeto, não o exemplo de URL. ```js (getUserInput) => { @@ -51,7 +51,7 @@ You can provide your own project, not the example URL. }; ``` -Only allow your site to be loaded in an iFrame on your own pages. +Permita apenas que o site seja carregado em um iFrame em suas próprias páginas. ```js async (getUserInput) => { @@ -61,7 +61,7 @@ async (getUserInput) => { }; ``` -Do not allow DNS prefetching. +Não permita o pré-carregamento de DNS. ```js async (getUserInput) => { @@ -71,7 +71,7 @@ async (getUserInput) => { }; ``` -Only allow your site to send the referrer for your own pages. +Permita apenas que seu site envie o encaminhador para suas próprias páginas. ```js async (getUserInput) => { @@ -81,7 +81,7 @@ async (getUserInput) => { }; ``` -You can send a POST request to `/api/threads/{board}` with form data including `text` and `delete_password`. The saved database record will have at least the fields `_id`, `text`, `created_on`(date & time), `bumped_on`(date & time, starts same as `created_on`), `reported` (boolean), `delete_password`, & `replies` (array). +Você pode enviar uma solicitação POST para `/api/threads/{board}` com dados de formulário, incluindo `text` e `delete_password`. O registro salvo do banco de dados terá pelo menos os campos `_id`, `text`, `created_on` (data e hora), `bumped_on`(data e hora, começa igual a `created_on`), `reported` (booleano), `delete_password` e `replies` (array). ```js async (getUserInput) => { @@ -113,49 +113,49 @@ async (getUserInput) => { }; ``` -You can send a POST request to `/api/replies/{board}` with form data including `text`, `delete_password`, & `thread_id`. This will update the `bumped_on` date to the comment's date. In the thread's `replies` array, an object will be saved with at least the properties `_id`, `text`, `created_on`, `delete_password`, & `reported`. +Você pode enviar uma solicitação de POST para `/api/replies/{board}` com dados de formulário, incluindo `text`, `delete_password` e `thread_id`. Isto atualizará a data de `bumped_on` para a data do comentário. No array `replies` do tópico, um objeto será salvo com pelo menos as propriedades `_id`, `text`, `created_on`, `delete_password` e `reported`. ```js ``` -You can send a GET request to `/api/threads/{board}`. Returned will be an array of the most recent 10 bumped threads on the board with only the most recent 3 replies for each. The `reported` and `delete_password` fields will not be sent to the client. +Você pode enviar uma solicitação de GET para `/api/threads/{board}`. O conteúdo retornado será um array dos 10 tópicos que mais subiram no quadro apenas com as 3 respostas mais recentes para cada um deles. Os campos `reported` e `delete_password` não serão enviados ao client. ```js ``` -You can send a GET request to `/api/replies/{board}?thread_id={thread_id}`. Returned will be the entire thread with all its replies, also excluding the same fields from the client as the previous test. +Você pode enviar uma solicitação de GET para `/api/replies/{board}?thread_id={thread_id}`. O conteúdo retornado será o tópico inteiro com todas as suas respostas, também excluindo os mesmos campos do client do teste anterior. ```js ``` -You can send a DELETE request to `/api/threads/{board}` and pass along the `thread_id` & `delete_password` to delete the thread. Returned will be the string `incorrect password` or `success`. +Você pode enviar uma solicitação de DELETE para `/api/threads/{board}` e passar adiante `thread_id` e `delete_password` para excluir o tópico. O conteúdo retornado será a string `incorrect password` ou `success`. ```js ``` -You can send a DELETE request to `/api/replies/{board}` and pass along the `thread_id`, `reply_id`, & `delete_password`. Returned will be the string `incorrect password` or `success`. On success, the text of the `reply_id` will be changed to `[deleted]`. +Você pode enviar uma solicitação de DELETE para `/api/replies/{board}` e passar adiante `thread_id`, `reply_id` e `delete_password`. O conteúdo retornado será a string `incorrect password` ou `success`. Em caso de sucesso, o texto de `reply_id` será alterado para `[deleted]`. ```js ``` -You can send a PUT request to `/api/threads/{board}` and pass along the `thread_id`. Returned will be the string `success`. The `reported` value of the `thread_id` will be changed to `true`. +Você pode enviar uma solicitação de PUT para `/api/threads/{board}` e passar adiante a `thread_id`. O conteúdo retornado será a string `success`. O valor `reported` de `thread_id` será alterado para `true`. ```js ``` -You can send a PUT request to `/api/replies/{board}` and pass along the `thread_id` & `reply_id`. Returned will be the string `success`. The `reported` value of the `reply_id` will be changed to `true`. +Você pode enviar uma solicitação de PUT para `/api/replies/{board}` e passar adiante `thread_id` e `reply_id`. O conteúdo retornado será a string `success`. O valor `reported` de `reply_id` será alterado para `true`. ```js ``` -All 10 functional tests are complete and passing. +Todos os 10 testes funcionais foram concluídos e deram aprovação. ```js diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/port-scanner.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/port-scanner.md index d4b4d6cb89..de39e00e3d 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/port-scanner.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/port-scanner.md @@ -1,6 +1,6 @@ --- id: 5e46f979ac417301a38fb932 -title: Port Scanner +title: Scanner de porta challengeType: 10 forumTopicId: 462372 helpCategory: Python @@ -9,26 +9,26 @@ dashedName: port-scanner # --description-- -Create a port scanner using Python. +Crie um scanner de portas usando Python. -You can access [the full project description and starter code on Replit](https://replit.com/github/freeCodeCamp/boilerplate-port-scanner). +Você pode acessar [a descrição completa do projeto e o código inicial no Replit](https://replit.com/github/freeCodeCamp/boilerplate-port-scanner). -After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below. +Depois de ir para esse link, faça fork no projeto. Depois que você completar o projeto com base nas instruções do 'README.md', envie o link do seu projeto abaixo. -We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you some of the Python skills required for this project: +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 um pouco sobre as habilidades em Python de que você precisa este projeto: # --hints-- -It should pass all Python tests. +Ele deve passar em todos os testes do Python. ```js diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md index 99f371813e..8c99ab1173 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/secure-real-time-multiplayer-game.md @@ -1,6 +1,6 @@ --- id: 5e601c775ac9d0ecd8b94aff -title: Secure Real Time Multiplayer Game +title: Jogo multijogador seguro em tempo real challengeType: 4 forumTopicId: 462375 dashedName: secure-real-time-multiplayer-game @@ -8,21 +8,21 @@ dashedName: secure-real-time-multiplayer-game # --description-- -Develop a 2D real time multiplayer game using the HTML Canvas API and [Socket.io](https://socket.io/) that is functionally similar to this: . Working on this project will involve you writing your code using one of the following methods: +Desenvolva um jogo multijogador em tempo real 2D usando a API do canvas do HTML e [Socket.io](https://socket.io/), que é funcionalmente similar ao seguinte: . Trabalhar nesse projeto vai fazer com que você escreva seu código usando um dos seguintes métodos: -- Clone [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-secure-real-time-multiplayer-game/) and complete your project locally. -- Use [our Replit starter project](https://replit.com/github/freeCodeCamp/boilerplate-project-secure-real-time-multiplayer-game) to complete your project. -- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo. +- Clone [este repositório do GitHub](https://github.com/freeCodeCamp/boilerplate-project-secure-real-time-multiplayer-game/) e complete o projeto localmente. +- Use [nosso projeto inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-secure-real-time-multiplayer-game) para completar o projeto. +- Use um construtor de site de sua escolha para completar o projeto. Certifique-se de incorporar todos os arquivos do nosso repositório no GitHub. -When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. Optionally, also submit a link to your project's source code in the `GitHub Link` field. +Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para ela no campo `Solution Link`. Como opção, envie também um link para o código-fonte do projeto no campo `GitHub Link`. # --instructions-- -**Note**: `helmet@^3.21.3` is needed for the user stories. This means you will need to use the previous version of Helmet's docs, for information on how to achieve the user stories. +**Observação**: `helmet@^3.21.3` é necessário para as especificações de usuários. Isto significa que você precisará usar a versão anterior da documentação do Helmet, para obter informações sobre como obter as especificações de usuários. # --hints-- -You can provide your own project, not the example URL. +Você pode fornecer seu próprio projeto, não o exemplo de URL. ```js (getUserInput) => { @@ -34,91 +34,91 @@ You can provide your own project, not the example URL. }; ``` -Multiple players can connect to a server and play. +Vários jogadores podem se conectar a um servidor e jogar. ```js ``` -Each player has an avatar. +Cada jogador tem um avatar. ```js ``` -Each player is represented by an object created by the `Player` class in `Player.mjs`. +Cada jogador é representado por um objeto criado pela classe `Player` em `Player.mjs`. ```js ``` -At a minimum, each player object should contain a unique `id`, a `score`, and `x` and `y` coordinates representing the player's current position. +No mínimo, cada objeto do jogador deve conter um `id` único, um `score` e coordenadas `x` e `y` representando a posição atual do jogador. ```js ``` -The game has at least one type of collectible item. Complete the `Collectible` class in `Collectible.mjs` to implement this. +O jogo tem pelo menos um tipo de item colecionável. Complete a classe `Collectible` em `Collectible.mjs` para implementar isso. ```js ``` -At a minimum, each collectible item object created by the `Collectible` class should contain a unique `id`, a `value`, and `x` and `y` coordinates representing the item's current position. +No mínimo, cada objeto de item colecionável criado pela classe `Collectible` deve conter um `id` único, um `value` e coordenadas `x` e `y` representando a posição atual do item. ```js ``` -Players can use the WASD and/or arrow keys to move their avatar. Complete the `movePlayer` method in `Player.mjs` to implement this. +Os jogadores podem usar as teclas WASD e/ou as setas do teclado para mover seu avatar. Complete o método `movePlayer` em `Player.mjs` para implementar isso. ```js ``` -The `movePlayer` method should accept two arguments: a string of "up", "down", "left", or "right", and a number for the amount of pixels the player's position should change. `movePlayer` should adjust the `x` and `y` coordinates of the player object it's called from. +O método `movePlayer` deve aceitar dois argumentos: uma string para "up", "down", "left" ou "right" e um número para a quantidade de pixels que a posição do jogador deve mudar. `movePlayer` deve ajustar as coordenadas `x` e `y` do objeto do jogador de onde ele é chamado. ```js ``` -The player's score should be used to calculate their rank among the other players. Complete the `calculateRank` method in the `Player` class to implement this. +A pontuação do jogador deve ser usada para calcular a classificação entre os outros jogadores. Complete o método `calculateRank` em `Player` para implementar isso. ```js ``` -The `calculateRank` method should accept an array of objects representing all connected players and return the string `Rank: currentRanking/totalPlayers`. For example, in a game with two players, if Player A has a score of 3 and Player B has a score of 5, `calculateRank` for Player A should return `Rank: 2/2`. +O método `calculateRank` deve aceitar um array de objetos representando todos os jogadores conectados e retornar a string `Rank: currentRanking/totalPlayers`. Por exemplo, em um jogo com dois jogadores, se o jogador A tiver uma pontuação de 3 e o jogador B tiver uma pontuação de 5, `calculateRank` para o Jogador A deve retornar `Rank: 2/2`. ```js ``` -Players can collide with a collectible item. Complete the `collision` method in `Player.mjs` to implement this. +Os jogadores podem colidir com um item colecionável. Complete o método `collision` em `Player.mjs` para implementar isso. ```js ``` -The `collision` method should accept a collectible item's object as an argument. If the player's avatar intersects with the item, the `collision` method should return `true`. +O método `collision` deve aceitar o objeto de um item colecionável como um argumento. Se o avatar do jogador cruzar com o item, o método `collision` deve retornar `true`. ```js ``` -All players are kept in sync. +Todos os jogadores são mantidos em sincronia. ```js ``` -Players can disconnect from the game at any time. +Os jogadores podem se desconectar do jogo a qualquer momento. ```js ``` -Prevent the client from trying to guess / sniff the MIME type. +Impedir que o client tente adivinhar/detectar o tipo MIME. ```js async (getUserInput) => { @@ -128,7 +128,7 @@ async (getUserInput) => { }; ``` -Prevent cross-site scripting (XSS) attacks. +Evitar ataques de cross-site scripting (XSS). ```js async (getUserInput) => { @@ -138,7 +138,7 @@ async (getUserInput) => { }; ``` -Nothing from the website is cached in the client. +Nada do site está armazenado em cache no client. ```js async (getUserInput) => { @@ -154,7 +154,7 @@ async (getUserInput) => { }; ``` -The headers say that the site is powered by "PHP 7.4.3" even though it isn't (as a security measure). +Os cabeçalhos dizem que o site usa "PHP 7.4.3", mesmo que não seja verdade (como uma medida de segurança). ```js async (getUserInput) => { diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/sha-1-password-cracker.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/sha-1-password-cracker.md index 50bb715271..8f666ad60d 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/sha-1-password-cracker.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/sha-1-password-cracker.md @@ -1,6 +1,6 @@ --- id: 5e46f983ac417301a38fb933 -title: SHA-1 Password Cracker +title: Quebrador de senhas SHA-1 challengeType: 10 forumTopicId: 462374 helpCategory: Python @@ -9,26 +9,26 @@ dashedName: sha-1-password-cracker # --description-- -For this project you will learn about the importance of good security by creating a password cracker to figure out passwords that were hashed using SHA-1. +Para este projeto, você vai aprender sobre a importância de boa segurança criando um cracker de senha para descobrir senhas que passaram por hashing usando SHA-1. -You can access [the full project description and starter code on Replit](https://replit.com/github/freeCodeCamp/boilerplate-SHA-1-password-cracker). +Você pode acessar [a descrição completa do projeto e o código inicial no Replit](https://replit.com/github/freeCodeCamp/boilerplate-SHA-1-password-cracker). -After going to that link, fork the project. Once you complete the project based on the instructions in 'README.md', submit your project link below. +Depois de ir para esse link, faça fork no projeto. Depois que você completar o projeto com base nas instruções do 'README.md', envie o link do seu projeto abaixo. -We are still developing the interactive instructional part of the Python curriculum. For now, here are some videos on the freeCodeCamp.org YouTube channel that will teach you some of the Python skills required for this project: +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 um pouco sobre as habilidades em Python de que você precisa este projeto: # --hints-- -It should pass all Python tests. +Ele deve passar em todos os testes do Python. ```js diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md b/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md index 2a0a1ea2fd..e81e08a5db 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-projects/stock-price-checker.md @@ -1,6 +1,6 @@ --- id: 587d824a367417b2b2512c44 -title: Stock Price Checker +title: Verificador de preço de ações challengeType: 4 forumTopicId: 301572 dashedName: stock-price-checker @@ -8,36 +8,36 @@ dashedName: stock-price-checker # --description-- -Build a full stack JavaScript app that is functionally similar to this: . +Crie um aplicativo full stack em JavaScript que seja funcionalmente semelhante a este: . -Since all reliable stock price APIs require an API key, we've built a workaround. Use to get up-to-date stock price information without needing to sign up for your own key. +Como todas as APIs de preço de ações confiáveis requerem uma chave de API, criamos uma solução alternativa. Use para obter informações atualizadas sobre o preço das ações sem precisar se inscrever para ter sua própria chave. -Working on this project will involve you writing your code using one of the following methods: +Trabalhar nesse projeto vai fazer com que você escreva seu código usando um dos seguintes métodos: -- Clone [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-project-stockchecker/) and complete your project locally. -- Use [our Replit starter project](https://replit.com/github/freeCodeCamp/boilerplate-project-stockchecker) to complete your project. -- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo. +- Clone [este repositório do GitHub](https://github.com/freeCodeCamp/boilerplate-project-stockchecker/) e complete o projeto localmente. +- Use [nosso projeto inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-project-stockchecker) para completar o projeto. +- Use um construtor de site de sua escolha para completar o projeto. Certifique-se de incorporar todos os arquivos do nosso repositório no GitHub. -When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. Optionally, also submit a link to your projects source code in the `GitHub Link` field. +Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para ela no campo `Solution Link`. Como opção, envie também um link para o código-fonte do projeto no campo `GitHub Link`. # --instructions-- -1. SET `NODE_ENV` to `test` without quotes and set `DB` to your MongoDB connection string -2. Complete the project in `routes/api.js` or by creating a handler/controller -3. You will add any security features to `server.js` -4. You will create all of the functional tests in `tests/2_functional-tests.js` +1. Defina `NODE_ENV` como `test` sem aspas e `DB` como sua string de conexão ao MongoDB +2. Complete o projeto em `routes/api.js` ou criando um manipulador/controlador +3. Você adicionará todas as funcionalidades de segurança ao `server.js` +4. Você criará todos os testes funcionais em `tests/2_functional-tests.js` -Write the following tests in `tests/2_functional-tests.js`: +Escreva os testes a seguir em `tests/2_functional-tests.js`: -- Viewing one stock: GET request to `/api/stock-prices/` -- Viewing one stock and liking it: GET request to `/api/stock-prices/` -- Viewing the same stock and liking it again: GET request to `/api/stock-prices/` -- Viewing two stocks: GET request to `/api/stock-prices/` -- Viewing two stocks and liking them: GET request to `/api/stock-prices/` +- Visualizar uma ação: faça a solicitação de GET para `/api/stock-prices/` +- Visualizar uma ação e dizer que gostou dela: faça a solicitação de GET para `/api/stock-prices/` +- Visualizar a mesma ação e dizer que gostou dela novamente: faça a solicitação de GET para `/api/stock-prices/` +- Visualizar duas ações: faça a solicitação de GET para `/api/stock-prices/` +- Visualizar duas ações e dizer que gostou delas: faça a solicitação de GET para `/api/stock-prices/` # --hints-- -You can provide your own project, not the example URL. +Você pode fornecer seu próprio projeto, não o exemplo de URL. ```js (getUserInput) => { @@ -47,7 +47,7 @@ You can provide your own project, not the example URL. }; ``` -You should set the content security policies to only allow loading of scripts and CSS from your server. +Você deve definir as políticas de segurança do conteúdo para permitir apenas o carregamento de scripts e CSS do seu servidor. ```js async (getUserInput) => { @@ -62,7 +62,7 @@ async (getUserInput) => { }; ``` -You can send a `GET` request to `/api/stock-prices`, passing a NASDAQ stock symbol to a `stock` query parameter. The returned object will contain a property named `stockData`. +Você pode enviar uma solicitação de `GET` para `/api/stock-prices`, passando um símbolo da ação na NASDAQ para um parâmetro de consulta de `stock`. O objeto retornado conterá uma propriedade chamada `stockData`. ```js async (getUserInput) => { @@ -74,7 +74,7 @@ async (getUserInput) => { }; ``` -The `stockData` property includes the `stock` symbol as a string, the `price` as a number, and `likes` as a number. +A propriedade `stockData` inclui o símbolo de `stock` como uma string, o `price` como um número e `likes` como um número. ```js async (getUserInput) => { @@ -89,13 +89,13 @@ async (getUserInput) => { }; ``` -You can also pass along a `like` field as `true` (boolean) to have your like added to the stock(s). Only 1 like per IP should be accepted. +Você também pode passar adiante um campo `like` como `true` (booleano) para ter sua curtida adicionada ao(s) estoque(s). Apenas 1 curtida por IP deve ser aceita. ```js ``` -If you pass along 2 stocks, the returned value will be an array with information about both stocks. Instead of `likes`, it will display `rel_likes` (the difference between the likes on both stocks) for both `stockData` objects. +Se você passar 2 ações, o valor retornado será um array com informações sobre as duas. Em vez de `likes`, será exibido `rel_likes` (a diferença entre curtidas entre ambas as ações) para os dois objetos de `stockData`. ```js async (getUserInput) => { @@ -110,7 +110,7 @@ async (getUserInput) => { }; ``` -All 5 functional tests are complete and passing. +Todos os 5 testes funcionais foram concluídos e deram aprovação. ```js async (getUserInput) => { diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md index 9d5cba3e75..4e37bb07eb 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/ask-browsers-to-access-your-site-via-https-only-with-helmet.hsts.md @@ -1,6 +1,6 @@ --- id: 587d8248367417b2b2512c3c -title: Ask Browsers to Access Your Site via HTTPS Only with helmet.hsts() +title: Pedir aos navegadores que acessem seu site somente via HTTPS com helmet.hsts() challengeType: 2 forumTopicId: 301573 dashedName: ask-browsers-to-access-your-site-via-https-only-with-helmet-hsts @@ -8,19 +8,19 @@ dashedName: ask-browsers-to-access-your-site-via-https-only-with-helmet-hsts # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). -HTTP Strict Transport Security (HSTS) is a web security policy which helps to protect websites against protocol downgrade attacks and cookie hijacking. If your website can be accessed via HTTPS you can ask user’s browsers to avoid using insecure HTTP. By setting the header Strict-Transport-Security, you tell the browsers to use HTTPS for the future requests in a specified amount of time. This will work for the requests coming after the initial request. +HTTP Strict Transport Security (HSTS) é uma política de segurança na web que ajuda a proteger sites contra ataques com protocolo rebaixado e sequestro de cookies. Se seu site puder ser acessado via HTTPS, você pode pedir aos navegadores do usuário que evitem o uso de HTTP não seguro. Ao definir o cabeçalho Strict-Transport-Security, você avisa aos navegadores para usar HTTPS para futuras solicitações em um período de tempo específico. Isso funcionará para as solicitações que chegarem após o pedido inicial. # --instructions-- -Configure `helmet.hsts()` to use HTTPS for the next 90 days. Pass the config object `{maxAge: timeInSeconds, force: true}`. You can create a variable `ninetyDaysInSeconds = 90*24*60*60;` to use for the `timeInSeconds`. Replit already has hsts enabled. To override its settings you need to set the field "force" to true in the config object. We will intercept and restore the Replit header, after inspecting it for testing. +Configure `helmet.hsts()` para usar HTTPS pelos próximos 90 dias. Passe o objeto de configuração `{maxAge: timeInSeconds, force: true}`. Você pode criar uma variável `ninetyDaysInSeconds = 90*24*60*60;` para usar para `timeInSeconds`. O Replit já tem uma versão hsts habilitada. Para sobrescrever suas configurações, você precisa definir o campo "force" como true no objeto de configuração. Nós vamos interceptar e restaurar o cabeçalho do Replit, depois de inspecioná-lo para testes. -Note: Configuring HTTPS on a custom website requires the acquisition of a domain, and a SSL/TLS Certificate. +Observação: a configuração de HTTPS em um site personalizado requer a aquisição de um domínio e um certificado SSL/TLS. # --hints-- -helmet.hsts() middleware should be mounted correctly +O middleware helmet.hsts() deve ser montado corretamente ```js (getUserInput) => @@ -35,7 +35,7 @@ helmet.hsts() middleware should be mounted correctly ); ``` -maxAge should be equal to 7776000 s (90 days) +A propriedade maxAge deve ser igual a 7776000 s (90 dias) ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md index 1ea172a936..1e2453d66f 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/avoid-inferring-the-response-mime-type-with-helmet.nosniff.md @@ -1,6 +1,6 @@ --- id: 587d8248367417b2b2512c3a -title: Avoid Inferring the Response MIME Type with helmet.noSniff() +title: Evitar inferências da resposta de MIME Type com helmet.noSniff() challengeType: 2 forumTopicId: 301574 dashedName: avoid-inferring-the-response-mime-type-with-helmet-nosniff @@ -8,15 +8,15 @@ dashedName: avoid-inferring-the-response-mime-type-with-helmet-nosniff # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). Browsers can use content or MIME sniffing to override response `Content-Type` headers to guess and process the data using an implicit content type. While this can be convenient in some scenarios, it can also lead to some dangerous attacks. This middleware sets the X-Content-Type-Options header to `nosniff`, instructing the browser to not bypass the provided `Content-Type`. +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). Os navegadores podem usar detecção de conteúdo ou de MIME para substituir os cabeçalhos de resposta `Content-Type` de modo a adivinhar e processar os dados usando um tipo de conteúdo implícito. Embora isso possa ser conveniente em alguns cenários, também pode levar a alguns ataques perigosos. Este middleware define o cabeçalho X-Content-Type-Options para `nosniff`, instruindo o navegador a não ignorar o `Content-Type` fornecido. # --instructions-- -Use the `helmet.noSniff()` method on your server. +Use o método `helmet.noSniff()` no seu servidor. # --hints-- -helmet.noSniff() middleware should be mounted correctly +O middleware helmet.noSniff() deve ser montado corretamente ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md index 8f96da298a..11cc93b852 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/configure-helmet-using-the-parent-helmet-middleware.md @@ -1,6 +1,6 @@ --- id: 587d8249367417b2b2512c40 -title: Configure Helmet Using the ‘parent’ helmet() Middleware +title: Configurar o Helmet usando o middleware 'pai' helmet() challengeType: 2 forumTopicId: 301575 dashedName: configure-helmet-using-the-parent-helmet-middleware @@ -8,11 +8,11 @@ dashedName: configure-helmet-using-the-parent-helmet-middleware # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). -`app.use(helmet())` will automatically include all the middleware introduced above, except `noCache()`, and `contentSecurityPolicy()`, but these can be enabled if necessary. You can also disable or configure any other middleware individually, using a configuration object. +`app.use(helmet())` incluirá automaticamente todo o middleware apresentado acima, exceto `noCache()` e `contentSecurityPolicy()`, mas estes podem ser habilitados, se necessário. Você também pode desativar ou configurar qualquer outro middleware individualmente, usando um objeto de configuração. -**Example:** +**Exemplo:** ```js app.use(helmet({ @@ -29,11 +29,11 @@ app.use(helmet({ })) ``` -We introduced each middleware separately for teaching purposes and for ease of testing. Using the ‘parent’ `helmet()` middleware is easy to implement in a real project. +Apresentamos cada middleware separadamente para fins didáticos e para facilitar os testes. Usar o middleware 'pai' `helmet()` é de fácil implementação em um projeto real. # --hints-- -no tests - it's a descriptive challenge +sem testes - esse é um desafio descritivo ```js assert(true); diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md index b12dedf8de..68ba254b49 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-client-side-caching-with-helmet.nocache.md @@ -1,6 +1,6 @@ --- id: 587d8249367417b2b2512c3e -title: Disable Client-Side Caching with helmet.noCache() +title: Desativar o cache do lado do client com helmet.noCache() challengeType: 2 forumTopicId: 301576 dashedName: disable-client-side-caching-with-helmet-nocache @@ -8,17 +8,17 @@ dashedName: disable-client-side-caching-with-helmet-nocache # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). -If you are releasing an update for your website, and you want the users to always download the newer version, you can (try to) disable caching on client’s browser. It can be useful in development too. Caching has performance benefits, which you will lose, so only use this option when there is a real need. +Se estiver lançando uma atualização para o seu site, e quiser que os usuários façam o download da versão mais recente, você pode (tentar) desabilitar o cache no navegador do client. Isso também pode ser útil para o desenvolvimento. O caching tem benefícios de desempenho, que você vai perder. Então, use esta opção apenas quando houver uma necessidade real. # --instructions-- -Use the `helmet.noCache()` method on your server. +Use o método `helmet.noCache()` no seu servidor. # --hints-- -helmet.noCache() middleware should be mounted correctly +O middleware helmet.noCache() deve ser montado corretamente ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md index 3a855aebb7..c4087c6a63 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/disable-dns-prefetching-with-helmet.dnsprefetchcontrol.md @@ -1,6 +1,6 @@ --- id: 587d8248367417b2b2512c3d -title: Disable DNS Prefetching with helmet.dnsPrefetchControl() +title: Desativar o DNS Prefetching com helmet.dnsPrefetchControl() challengeType: 2 forumTopicId: 301577 dashedName: disable-dns-prefetching-with-helmet-dnsprefetchcontrol @@ -8,17 +8,17 @@ dashedName: disable-dns-prefetching-with-helmet-dnsprefetchcontrol # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). -To improve performance, most browsers prefetch DNS records for the links in a page. In that way the destination ip is already known when the user clicks on a link. This may lead to over-use of the DNS service (if you own a big website, visited by millions people…), privacy issues (one eavesdropper could infer that you are on a certain page), or page statistics alteration (some links may appear visited even if they are not). If you have high security needs you can disable DNS prefetching, at the cost of a performance penalty. +Para melhorar o desempenho, a maioria dos navegadores registra antes do fetching o DNS dos links de uma página. Desta maneira, o IP de destino já é conhecido quando o usuário clica em um link. Isso pode levar a um uso excessivo do serviço de DNS (se você possui um site grande, visitado por milhões de pessoas…), problemas de privacidade (uma escuta pode inferir que você está em uma determinada página), ou em alterações das estatísticas da página (alguns links podem aparecer visitados, mesmo que não sejam). Se você tem elevadas necessidades de segurança, pode desativar a pré-busca de DNS, ao custo de uma penalização de desempenho. # --instructions-- -Use the `helmet.dnsPrefetchControl()` method on your server. +Use o método `helmet.dnsPrefetchControl()` no seu servidor. # --hints-- -helmet.dnsPrefetchControl() middleware should be mounted correctly +O middleware helmet.dnsPrefetchControl() deve ser montado corretamente ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md index 0165afc950..aa9091e4b2 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-asynchronously.md @@ -1,6 +1,6 @@ --- id: 58a25bcff9fc0f352b528e7d -title: Hash and Compare Passwords Asynchronously +title: Fazer o hash e comparar senhas de modo assíncrono challengeType: 2 forumTopicId: 301578 dashedName: hash-and-compare-passwords-asynchronously @@ -8,9 +8,9 @@ dashedName: hash-and-compare-passwords-asynchronously # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/). -As hashing is designed to be computationally intensive, it is recommended to do so asynchronously on your server as to avoid blocking incoming connections while you hash. All you have to do to hash a password asynchronous is call +Como o hashing é projetado para ser computacionalmente intensivo, é recomendável fazê-lo de maneira assíncrona em seu servidor para evitar o bloqueio de conexões de entrada enquanto você faz o hash. Tudo o que você precisa fazer para fazer o hash de uma senha de modo assíncrona é a chamada ```js bcrypt.hash(myPlaintextPassword, saltRounds, (err, hash) => { @@ -20,9 +20,9 @@ bcrypt.hash(myPlaintextPassword, saltRounds, (err, hash) => { # --instructions-- -Add this hashing function to your server(we've already defined the variables used in the function for you to use) and log it to the console for you to see! At this point you would normally save the hash to your database. +Adicione esta função de hashing ao seu servidor (nós já definimos as variáveis usadas na função para você usar) e registramos no console para você ver! Neste momento, você normalmente salvaria o hash no seu banco de dados. -Now when you need to figure out if a new input is the same data as the hash you would just use the compare function. +Agora, quando você precisar descobrir se uma nova entrada é a mesma que o hash, você usaria a função de comparação. ```js bcrypt.compare(myPlaintextPassword, hash, (err, res) => { @@ -30,7 +30,7 @@ bcrypt.compare(myPlaintextPassword, hash, (err, res) => { }); ``` -Add this into your existing hash function(since you need to wait for the hash to complete before calling the compare function) after you log the completed hash and log 'res' to the console within the compare. You should see in the console a hash then 'true' is printed! If you change 'myPlaintextPassword' in the compare function to 'someOtherPlaintextPassword' then it should say false. +Adicione isso à sua função de hash existente (já que você precisa esperar que o hash termine antes de chamar a função de comparação) depois de registrar o hash completo e registra 'res' para o console dentro da comparação. Você deve ver um hash no console. Em seguida, 'true' é impresso! Se você mudar 'myPlaintextPassword' na função de comparação para 'someOtherPlaintextPassword', então ela deve dizer false. ```js bcrypt.hash('passw0rd!', 13, (err, hash) => { @@ -43,11 +43,11 @@ bcrypt.hash('passw0rd!', 13, (err, hash) => { ``` -Submit your page when you think you've got it right. +Envie sua página quando você achar que ela está certa. # --hints-- -Async hash should be generated and correctly compared. +O hash assíncrono deve ser gerado e comparado corretamente. ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md index f7efd69368..eb53b683b3 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hash-and-compare-passwords-synchronously.md @@ -1,6 +1,6 @@ --- id: 58a25bcff9fc0f352b528e7e -title: Hash and Compare Passwords Synchronously +title: Fazer o hash e comparar senhas de modo síncrono challengeType: 2 forumTopicId: 301579 dashedName: hash-and-compare-passwords-synchronously @@ -8,31 +8,31 @@ dashedName: hash-and-compare-passwords-synchronously # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-bcrypt), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-bcrypt/). -Hashing synchronously is just as easy to do but can cause lag if using it server side with a high cost or with hashing done very often. Hashing with this method is as easy as calling +Fazer o hashing de forma síncrona é muito fácil de fazer, mas pode causar lag ao usar o lado do servidor com um alto custo ou com o hashing sendo feito com muita frequência. Com este método, o hashing é tão fácil quanto fazer chamadas ```js var hash = bcrypt.hashSync(myPlaintextPassword, saltRounds); ``` -Add this method of hashing to your code and then log the result to the console. Again, the variables used are already defined in the server so you won't need to adjust them. You may notice even though you are hashing the same password as in the async function, the result in the console is different- this is due to the salt being randomly generated each time as seen by the first 22 characters in the third string of the hash. Now to compare a password input with the new sync hash, you would use the compareSync method: +Adicione este método de hashing ao seu código e, em seguida, registre o resultado no console. Mais uma vez, as variáveis usadas já estão definidas no servidor para que você não precise ajustá-las. Você pode perceber que, apesar de estar fazendo o hashing da mesma senha que na função async, o resultado no console é diferente - isso é devido ao salt gerado aleatoriamente em cada vez, conforme vimos em função dos primeiros 22 caracteres na terceira sequência de hash. Agora, para comparar uma entrada de senha com o novo hash de sincronização, você usaria o método compareSync: ```js var result = bcrypt.compareSync(myPlaintextPassword, hash); ``` -with the result being a boolean true or false. +com o resultado sendo um booleano true ou false. # --instructions-- -Add the function in and log the result to the console to see it working. +Adicione a função e registre o resultado no console para vê-la funcionando. -Submit your page when you think you've got it right. +Envie sua página quando você achar que ela está certa. # --hints-- -Sync hash should be generated and correctly compared. +O hash de sincronização deve ser gerado e comparado corretamente. ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md index fbf4faceb1..a0edc5eb00 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/hide-potentially-dangerous-information-using-helmet.hidepoweredby.md @@ -1,6 +1,6 @@ --- id: 587d8247367417b2b2512c37 -title: Hide Potentially Dangerous Information Using helmet.hidePoweredBy() +title: Esconder informações potencialmente perigosas usando o helmet.hidePoweredBy() challengeType: 2 forumTopicId: 301580 dashedName: hide-potentially-dangerous-information-using-helmet-hidepoweredby @@ -8,13 +8,13 @@ dashedName: hide-potentially-dangerous-information-using-helmet-hidepoweredby # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). -Hackers can exploit known vulnerabilities in Express/Node if they see that your site is powered by Express. `X-Powered-By: Express` is sent in every request coming from Express by default. Use the `helmet.hidePoweredBy()` middleware to remove the X-Powered-By header. +Os hackers podem explorar vulnerabilidades conhecidas no Express/Node se verem que seu site usa o Express. `X-Powered-By: Express` é enviado em todas as solicitações vindas do Express por padrão. Use o middleware `helmet.hidePoweredBy()` para remover o cabeçalho X-Powered-By. # --hints-- -helmet.hidePoweredBy() middleware should be mounted correctly +O middleware helmet.hidePoweredBy() deve ser montado corretamente ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md index 2e89c44399..d373131cd7 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/install-and-require-helmet.md @@ -1,6 +1,6 @@ --- id: 587d8247367417b2b2512c36 -title: Install and Require Helmet +title: Instalar e solicitar o Helmet challengeType: 2 forumTopicId: 301581 dashedName: install-and-require-helmet @@ -8,25 +8,25 @@ dashedName: install-and-require-helmet # --description-- -Working on these challenges will involve you writing your code using one of the following methods: +Trabalhar nesses desafios irá fazer com que você escreva seu código usando um dos seguintes métodos: -- Clone [this GitHub repo](https://github.com/freeCodeCamp/boilerplate-infosec/) and complete these challenges locally. -- Use [our Replit starter project](https://replit.com/github/freeCodeCamp/boilerplate-infosec) to complete these challenges. -- Use a site builder of your choice to complete the project. Be sure to incorporate all the files from our GitHub repo. +- Clone [este repositório do GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/) e complete esses desafios localmente. +- Use [nosso projeto inicial do Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec) para completar esses desafios. +- Use um construtor de site de sua escolha para completar o projeto. Certifique-se de incorporar todos os arquivos do nosso repositório no GitHub. -When you are done, make sure a working demo of your project is hosted somewhere public. Then submit the URL to it in the `Solution Link` field. +Quando terminar, certifique-se de que uma demonstração funcional do seu projeto está hospedada em algum lugar público. Em seguida, envie o URL para ela no campo `Solution Link`. -Helmet helps you secure your Express apps by setting various HTTP headers. +O Helmet ajuda você a proteger seus aplicativos do Express, definindo vários cabeçalhos HTTP. # --instructions-- -All your code for these lessons goes in the `myApp.js` file between the lines of code we have started you off with. Do not change or delete the code we have added for you. +Todo o código para estas aulas vai para o arquivo `myApp.js` entre as linhas de código que fornecemos para você começar. Não altere nem exclua o código que adicionamos para você. -Install Helmet version `3.21.3`, then require it. You can install a specific version of a package with `npm install --save-exact package@version`, or by adding it to your `package.json` directly. +Instale a versão `3.21.3` do Helmet e, em seguida, solicite-a. Você pode instalar uma versão específica de um pacote com o `npm install --save-exact package@version` ou adicionando-a ao seu `package.json` diretamente. # --hints-- -`helmet` version `3.21.3` should be in `package.json` +A versão do `helmet` `3.21.3` deve estar no `package.json` ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md index 33b43cd3be..e432999406 100644 --- a/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md +++ b/curriculum/challenges/portuguese/09-information-security/information-security-with-helmetjs/mitigate-the-risk-of-clickjacking-with-helmet.frameguard.md @@ -1,6 +1,6 @@ --- id: 587d8247367417b2b2512c38 -title: Mitigate the Risk of Clickjacking with helmet.frameguard() +title: Reduzir o risco de clickjacking com o helmet.frameguard() challengeType: 2 forumTopicId: 301582 dashedName: mitigate-the-risk-of-clickjacking-with-helmet-frameguard @@ -8,19 +8,19 @@ dashedName: mitigate-the-risk-of-clickjacking-with-helmet-frameguard # --description-- -As a reminder, this project is being built upon the following starter project on [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), or cloned from [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). +Lembrando que este projeto está sento construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-infosec), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-infosec/). -Your page could be put in a `` or `