From 703394b1279822c79b4561ffdc3b990107a7e052 Mon Sep 17 00:00:00 2001 From: camperbot Date: Fri, 20 Aug 2021 00:00:51 -0700 Subject: [PATCH] chore(i18n,curriculum): update translations (#43178) --- .../divide-the-grid-into-an-area-template.md | 1 - .../authentication-with-socket.io.md | 14 +++-- .../test-for-truthiness.md | 6 +- .../divide-the-grid-into-an-area-template.md | 1 - .../authentication-with-socket.io.md | 14 +++-- .../test-for-truthiness.md | 6 +- .../divide-the-grid-into-an-area-template.md | 1 - .../slice-and-splice.md | 2 +- ...rstanding-case-sensitivity-in-variables.md | 12 ++-- .../iterate-over-all-properties.md | 2 +- ...k-end-development-and-apis-certificate.yml | 2 +- .../data-visualization-certificate.yml | 2 +- .../information-security-certificate.yml | 2 +- .../legacy-data-visualization-certificate.yml | 2 +- .../quality-assurance-certificate.yml | 4 +- .../relational-databases-certificate.yml | 4 +- .../divide-the-grid-into-an-area-template.md | 15 +++-- .../slice-and-splice.md | 2 +- .../iterate-over-all-properties.md | 2 +- ...-design-with-bootstrap-fluid-containers.md | 2 +- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 4 +- .../build-a-javascript-calculator.md | 4 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- .../target-elements-by-class-using-jquery.md | 2 +- .../react/add-inline-styles-in-react.md | 2 +- .../react/bind-this-to-a-class-method.md | 2 +- .../react/create-a-complex-jsx-element.md | 2 +- .../react/create-a-stateful-component.md | 2 +- .../react/introducing-inline-styles.md | 3 +- .../authentication-with-socket.io.md | 14 +++-- ...sponse-using-chai-http-iii---put-method.md | 44 ++++++++------ .../test-for-truthiness.md | 6 +- ...k-end-development-and-apis-certificate.yml | 28 +++++---- .../data-visualization-certificate.yml | 10 ++-- ...-end-development-libraries-certificate.yml | 28 +++++---- .../legacy-back-end-certificate.yml | 12 ++-- .../legacy-data-visualization-certificate.yml | 18 +++--- .../legacy-front-end-certificate.yml | 18 +++--- .../responsive-web-design-certificate.yml | 10 ++-- ...derstand-absolute-versus-relative-units.md | 2 +- .../delete-html-elements.md | 2 +- .../introduction-to-html5-elements.md | 4 +- .../say-hello-to-html-elements.md | 2 +- .../divide-the-grid-into-an-area-template.md | 1 - .../slice-and-splice.md | 2 +- ...-identical-options-in-switch-statements.md | 2 +- .../iterate-over-all-properties.md | 2 +- ...dd-elements-within-your-bootstrap-wells.md | 2 +- ...ont-awesome-icons-to-all-of-our-buttons.md | 2 +- .../add-font-awesome-icons-to-our-buttons.md | 2 +- ...call-out-optional-actions-with-btn-info.md | 6 +- .../give-each-element-a-unique-id.md | 2 +- ...s-of-a-dangerous-action-with-btn-danger.md | 2 +- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 8 +-- .../build-a-javascript-calculator.md | 4 +- .../build-a-markdown-previewer.md | 6 +- .../build-a-random-quote-machine.md | 6 +- .../jquery/delete-your-jquery-functions.md | 2 +- .../target-elements-by-class-using-jquery.md | 4 +- .../target-elements-by-id-using-jquery.md | 2 +- .../target-even-elements-using-jquery.md | 2 +- ...ml-elements-with-selectors-using-jquery.md | 4 +- .../connect-redux-to-the-messages-app.md | 4 +- .../manage-state-locally-first.md | 2 +- .../react/add-inline-styles-in-react.md | 6 +- .../react/bind-this-to-a-class-method.md | 2 +- ...-conditionally-based-on-component-state.md | 2 +- .../react/compose-react-components.md | 4 +- .../react/create-a-complex-jsx-element.md | 4 +- .../react/create-a-simple-jsx-element.md | 2 +- .../react/create-a-stateful-component.md | 2 +- .../react/introducing-inline-styles.md | 23 ++++--- ...e-re-renders-with-shouldcomponentupdate.md | 4 +- ...ops-to-a-stateless-functional-component.md | 2 +- .../render-a-class-component-to-the-dom.md | 2 +- .../react/render-conditionally-from-props.md | 2 +- .../react/render-html-elements-to-the-dom.md | 2 +- .../use--for-a-more-concise-conditional.md | 2 +- ...ry-expression-for-conditional-rendering.md | 7 ++- .../use-react-to-render-nested-components.md | 2 +- .../react/use-state-to-toggle-an-element.md | 2 +- .../write-a-react-component-from-scratch.md | 2 +- .../copy-an-object-with-object.assign.md | 2 +- .../redux/dispatch-an-action-event.md | 2 +- .../redux/handle-an-action-in-the-store.md | 2 +- .../redux/send-action-data-to-the-store.md | 6 +- ...ch-statement-to-handle-multiple-actions.md | 4 +- .../redux/use-const-for-action-types.md | 2 +- ...ddleware-to-handle-asynchronous-actions.md | 2 +- ...ne-set-of-css-styles-to-another-element.md | 2 +- .../exercise-tracker.md | 42 +++++++++++++ .../url-shortener-microservice.md | 2 +- ...project-with-external-packages-from-npm.md | 2 +- ...sponse-using-chai-http-iii---put-method.md | 54 ++++++++++------- ...esponse-using-chai-http-iv---put-method.md | 30 +++++----- ...sts-on-api-endpoints-using-chai-http-ii.md | 8 +-- ...-tests-on-api-endpoints-using-chai-http.md | 33 +++++----- ...ional-tests-using-a-headless-browser-ii.md | 32 +++++----- ...nctional-tests-using-a-headless-browser.md | 60 +++++++++++-------- ...mulate-actions-using-a-headless-browser.md | 32 +++++----- .../test-for-truthiness.md | 6 +- .../problem-102-triangle-containment.md | 18 +++--- ...problem-103-special-subset-sums-optimum.md | 20 +++---- .../problem-26-reciprocal-cycles.md | 18 +++--- .../problem-27-quadratic-primes.md | 28 ++++----- .../problem-33-digit-cancelling-fractions.md | 14 ++--- .../problem-34-digit-factorials.md | 12 ++-- .../problem-35-circular-primes.md | 26 ++++---- .../problem-36-double-base-palindromes.md | 18 +++--- .../problem-37-truncatable-primes.md | 18 +++--- .../problem-38-pandigital-multiples.md | 16 ++--- .../problem-39-integer-right-triangles.md | 16 ++--- .../problem-40-champernownes-constant.md | 16 ++--- .../problem-41-pandigital-prime.md | 12 ++-- .../project-euler/problem-415-titanic-sets.md | 20 +++---- .../project-euler/problem-416-a-frogs-trip.md | 18 +++--- .../problem-417-reciprocal-cycles-ii.md | 22 +++---- .../problem-418-factorisation-triples.md | 21 +++---- .../problem-419-look-and-say-sequence.md | 37 +++++++----- .../problem-42-coded-triangle-numbers.md | 18 +++--- .../rosetta-code/fractran.md | 2 +- .../rosetta-code/gaussian-elimination.md | 2 +- .../rosetta-code/identity-matrix.md | 18 +++--- .../rosetta-code/iterated-digits-squaring.md | 22 +++---- .../rosetta-code/jaro-distance.md | 40 ++++++------- .../rosetta-code/jortsort.md | 20 +++---- .../rosetta-code/josephus-problem.md | 34 +++++------ 130 files changed, 691 insertions(+), 600 deletions(-) diff --git a/curriculum/challenges/chinese-traditional/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md b/curriculum/challenges/chinese-traditional/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md index a66cce3121..a1d28c9334 100644 --- a/curriculum/challenges/chinese-traditional/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md +++ b/curriculum/challenges/chinese-traditional/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md @@ -2,7 +2,6 @@ id: 5a94fe0569fb03452672e45c title: 將網格劃分爲區域模板 challengeType: 0 -videoUrl: 'https://scrimba.com/p/pByETK/cLLpGAy' forumTopicId: 301130 dashedName: divide-the-grid-into-an-area-template --- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md index 49da7b17f2..2b069246fe 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md @@ -33,11 +33,15 @@ io.use( ); ``` -記得要把 `key` 和 `store` 加到 app 的 `session` 中間件。 這樣,*SocketIO* 才知道該對哪個 session 執行此配置。 +請注意,爲 Socket.IO 配置 Passport 認證與我們爲 API 配置的 `session` 中間件非常相似。 這是因爲它們旨在使用相同的身份驗證方法 — — 從 cookie 獲取會話 id 並驗證它。 + +以前,當我們配置 `session` 中間件的時候,我們沒有爲 session 明確設置 cookie 名稱(`key`)。 這是因爲 `session` 包使用了默認值。 現在我們已經添加了另一個需要從 cookie 訪問相同值的軟件包, 我們需要在兩個配置對象中設置 `key` 值。 + +請將帶有 cookie 名稱的 `key` 添加到匹配 Socket.IO 密鑰的 `session` 中間件。 另外,將 `store` 引用添加到選項中,靠近我們設置 `saveUninitialized: true` 的位置。 這樣,Socket.IO 才知道與哪個 session 關聯。
-接下來,我們可以定義 `success` 與 `fail` 的回調函數: +接下來,定義 `success` 與 `fail` 回調函數: ```js function onAuthorizeSuccess(data, accept) { @@ -53,15 +57,15 @@ function onAuthorizeFail(data, message, error, accept) { } ``` -現在,我們可以通過 `socket.request.user` 訪問用戶數據。 爲此,你可以這樣做: +現在,我們可以通過 `socket.request.user` 訪問用戶對象。 例如,你可以這樣做: ```js console.log('user ' + socket.request.user.name + ' connected'); ``` -這樣,我們可以在 console 裏看到誰連接到了我們的服務器。 +它將在服務器控制檯記錄已連接的用戶! -完成上述要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254)的答案。 +完成以上要求後,請提交你的頁面鏈接。 如果你遇到了問題,可以參考[這裏](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254)的答案。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md index f9df1b7c51..55ea9d8a5f 100644 --- a/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md +++ b/curriculum/challenges/chinese-traditional/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md @@ -13,9 +13,9 @@ dashedName: test-for-truthiness `isTrue()` 僅當給出的值爲 Boolean 的 `true` 時可以通過測試;`isNotTrue()` 則會在給出除 `true` 以外的值時通過測試。 ```js -assert.isTrue(true, 'this will pass with the boolean value true'); -assert.isTrue('true', 'this will NOT pass with the string value "true"'); -assert.isTrue(1, 'this will NOT pass with the number value 1'); +assert.isTrue(true, 'This will pass with the boolean value true'); +assert.isTrue('true', 'This will NOT pass with the string value "true"'); +assert.isTrue(1, 'This will NOT pass with the number value 1'); ``` `isFalse()` 和 `isNotFalse()` 同樣存在,與上面提到的兩個方法類似,只不過它們針對值爲 `false` 的布爾值。 diff --git a/curriculum/challenges/chinese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md b/curriculum/challenges/chinese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md index ddeed94580..12b2cb7cc2 100644 --- a/curriculum/challenges/chinese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md +++ b/curriculum/challenges/chinese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md @@ -2,7 +2,6 @@ id: 5a94fe0569fb03452672e45c title: 将网格划分为区域模板 challengeType: 0 -videoUrl: 'https://scrimba.com/p/pByETK/cLLpGAy' forumTopicId: 301130 dashedName: divide-the-grid-into-an-area-template --- diff --git a/curriculum/challenges/chinese/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md b/curriculum/challenges/chinese/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md index 7d6e91fb2a..29c01baa96 100644 --- a/curriculum/challenges/chinese/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md +++ b/curriculum/challenges/chinese/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md @@ -33,11 +33,15 @@ io.use( ); ``` -记得要把 `key` 和 `store` 加到 app 的 `session` 中间件。 这样,*SocketIO* 才知道该对哪个 session 执行此配置。 +请注意,为 Socket.IO 配置 Passport 认证与我们为 API 配置的 `session` 中间件非常相似。 这是因为它们旨在使用相同的身份验证方法 — — 从 cookie 获取会话 id 并验证它。 + +以前,当我们配置 `session` 中间件的时候,我们没有为 session 明确设置 cookie 名称(`key`)。 这是因为 `session` 包使用了默认值。 现在我们已经添加了另一个需要从 cookie 访问相同值的软件包, 我们需要在两个配置对象中设置 `key` 值。 + +请将带有 cookie 名称的 `key` 添加到匹配 Socket.IO 密钥的 `session` 中间件。 另外,将 `store` 引用添加到选项中,靠近我们设置 `saveUninitialized: true` 的位置。 这样,Socket.IO 才知道与哪个 session 关联。
-接下来,我们可以定义 `success` 与 `fail` 的回调函数: +接下来,定义 `success` 与 `fail` 回调函数: ```js function onAuthorizeSuccess(data, accept) { @@ -53,15 +57,15 @@ function onAuthorizeFail(data, message, error, accept) { } ``` -现在,我们可以通过 `socket.request.user` 访问用户数据。 为此,你可以这样做: +现在,我们可以通过 `socket.request.user` 访问用户对象。 例如,你可以这样做: ```js console.log('user ' + socket.request.user.name + ' connected'); ``` -这样,我们可以在 console 里看到谁连接到了我们的服务器。 +它将在服务器控制台记录已连接的用户! -完成上述要求后,请提交你的页面链接。 如果你遇到了问题,可以参考[这里](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254)的答案。 +完成以上要求后,请提交你的页面链接。 如果你遇到了问题,可以参考[这里](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254)的答案。 # --hints-- diff --git a/curriculum/challenges/chinese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md b/curriculum/challenges/chinese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md index 4f81bd92cc..9835cec656 100644 --- a/curriculum/challenges/chinese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md +++ b/curriculum/challenges/chinese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md @@ -13,9 +13,9 @@ dashedName: test-for-truthiness `isTrue()` 仅当给出的值为 Boolean 的 `true` 时可以通过测试;`isNotTrue()` 则会在给出除 `true` 以外的值时通过测试。 ```js -assert.isTrue(true, 'this will pass with the boolean value true'); -assert.isTrue('true', 'this will NOT pass with the string value "true"'); -assert.isTrue(1, 'this will NOT pass with the number value 1'); +assert.isTrue(true, 'This will pass with the boolean value true'); +assert.isTrue('true', 'This will NOT pass with the string value "true"'); +assert.isTrue(1, 'This will NOT pass with the number value 1'); ``` `isFalse()` 和 `isNotFalse()` 同样存在,与上面提到的两个方法类似,只不过它们针对值为 `false` 的布尔值。 diff --git a/curriculum/challenges/espanol/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md b/curriculum/challenges/espanol/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md index 83df28bcf4..8c9eb51cc6 100644 --- a/curriculum/challenges/espanol/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md +++ b/curriculum/challenges/espanol/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md @@ -2,7 +2,6 @@ id: 5a94fe0569fb03452672e45c title: Divide la cuadrícula en una plantilla de área challengeType: 0 -videoUrl: 'https://scrimba.com/p/pByETK/cLLpGAy' forumTopicId: 301130 dashedName: divide-the-grid-into-an-area-template --- diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md index 19b14abf1f..1e69345ac4 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md @@ -43,7 +43,7 @@ assert.deepEqual( ); ``` -Todos los elementos del primer arreglo deben ser añadidos al segundo arreglo en su orden original. +Todos los elementos del primer arreglo deben ser añadidos al segundo arreglo en su orden original. `frankenSplice([1, 2, 3, 4], [], 0)` debe devolver `[1, 2, 3, 4]`. ```js assert.deepEqual(frankenSplice([1, 2, 3, 4], [], 0), [1, 2, 3, 4]); diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/understanding-case-sensitivity-in-variables.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/understanding-case-sensitivity-in-variables.md index 23f5f585f3..70d7938d8f 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/understanding-case-sensitivity-in-variables.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-javascript/understanding-case-sensitivity-in-variables.md @@ -33,13 +33,13 @@ No crees ninguna variable nueva. # --hints-- -`studlyCapVar` debe definirse y tener un valor de `10`. +`studlyCapVar` debe estar definido y tener un valor de `10`. ```js assert(typeof studlyCapVar !== 'undefined' && studlyCapVar === 10); ``` -`properCamelCase` debe definirse y tener una cadena con valor `A String`. +`properCamelCase` debe estar definido y tener una cadena con valor `A String`. ```js assert( @@ -47,25 +47,25 @@ assert( ); ``` -`titleCaseOver` debe definirse y tener una cadena con valor `9000`. +`titleCaseOver` debe estar definido y tener una cadena con valor `9000`. ```js assert(typeof titleCaseOver !== 'undefined' && titleCaseOver === 9000); ``` -`studlyCapVar` debe usar camelCase tanto en las sección de declaración como de asignación. +`studlyCapVar` debe usar camelCase tanto en las secciones de declaración como de asignación. ```js assert(code.match(/studlyCapVar/g).length === 2); ``` -`properCamelCase` debe usar camelCase tanto en las sección de declaración como de asignación. +`properCamelCase` debe usar camelCase tanto en las secciones de declaración como de asignación. ```js assert(code.match(/properCamelCase/g).length === 2); ``` -`titleCaseOver` debe usar camelCase tanto en las sección de declaración como de asignación. +`titleCaseOver` debe usar camelCase tanto en las secciones de declaración como de asignación. ```js assert(code.match(/titleCaseOver/g).length === 2); diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md index ec36fb94bb..801351115c 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md @@ -8,7 +8,7 @@ dashedName: iterate-over-all-properties # --description-- -Ahora has visto dos tipos de propiedades: propiedades directas y propiedades `prototype`. Las propiedades directas se definen directamente en la propia instancia del objeto. Y las propiedades `prototype` se definen en el `prototype`. +Ahora has visto dos tipos de propiedades: propiedades directas y propiedades `prototype`. Las propiedades directas se definen directamente en la propia instancia del objeto. Y las propiedades prototype se definen en el `prototype`. ```js function Bird(name) { diff --git a/curriculum/challenges/italian/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml b/curriculum/challenges/italian/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml index 4901216228..088e4575dd 100644 --- a/curriculum/challenges/italian/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml +++ b/curriculum/challenges/italian/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml @@ -1,6 +1,6 @@ --- id: 561add10cb82ac38a17523bc -title: Certificato API e microservizi +title: Certificato di sviluppo Back End e API challengeType: 7 isPrivate: true tests: diff --git a/curriculum/challenges/italian/00-certificates/data-visualization-certificate/data-visualization-certificate.yml b/curriculum/challenges/italian/00-certificates/data-visualization-certificate/data-visualization-certificate.yml index d0b341ecd0..f1ba025c21 100644 --- a/curriculum/challenges/italian/00-certificates/data-visualization-certificate/data-visualization-certificate.yml +++ b/curriculum/challenges/italian/00-certificates/data-visualization-certificate/data-visualization-certificate.yml @@ -1,6 +1,6 @@ --- id: 5a553ca864b52e1d8bceea14 -title: Certificato Visualizzazione Dati +title: Certificato Data Visualization challengeType: 7 isPrivate: true tests: diff --git a/curriculum/challenges/italian/00-certificates/information-security-certificate/information-security-certificate.yml b/curriculum/challenges/italian/00-certificates/information-security-certificate/information-security-certificate.yml index cb3f589bfa..aed92cfa9c 100644 --- a/curriculum/challenges/italian/00-certificates/information-security-certificate/information-security-certificate.yml +++ b/curriculum/challenges/italian/00-certificates/information-security-certificate/information-security-certificate.yml @@ -9,7 +9,7 @@ tests: title: Controllo del prezzo delle azioni - id: 587d824a367417b2b2512c45 - title: Pannello messaggi Anonimo + title: Pannello messaggi anonimo - id: 5e46f979ac417301a38fb932 title: Port Scanner diff --git a/curriculum/challenges/italian/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml b/curriculum/challenges/italian/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml index cadf620463..80bfee1ae3 100644 --- a/curriculum/challenges/italian/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml +++ b/curriculum/challenges/italian/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml @@ -9,7 +9,7 @@ tests: title: Costruisci un visualizzatore di Markdown - id: bd7156d8c242eddfaeb5bd13 - title: Costruisci una Classifica Camper + title: Costruisci una Classifica dei Camper - id: bd7155d8c242eddfaeb5bd13 title: Costruisci una scatola delle ricette diff --git a/curriculum/challenges/italian/00-certificates/quality-assurance-certificate/quality-assurance-certificate.yml b/curriculum/challenges/italian/00-certificates/quality-assurance-certificate/quality-assurance-certificate.yml index 54e505e219..39731c7037 100644 --- a/curriculum/challenges/italian/00-certificates/quality-assurance-certificate/quality-assurance-certificate.yml +++ b/curriculum/challenges/italian/00-certificates/quality-assurance-certificate/quality-assurance-certificate.yml @@ -9,10 +9,10 @@ tests: title: Convertitore Metrico-Imperiale - id: 587d8249367417b2b2512c42 - title: Tracciatore di Problemi + title: Tracciatore di problemi - id: 587d824a367417b2b2512c43 - title: Biblioteca Personale + title: Biblioteca personale - id: 5e601bf95ac9d0ecd8b94afd title: Risolutore Sudoku diff --git a/curriculum/challenges/italian/00-certificates/relational-databases-certificate/relational-databases-certificate.yml b/curriculum/challenges/italian/00-certificates/relational-databases-certificate/relational-databases-certificate.yml index 8ff874556c..ca1dd3f821 100644 --- a/curriculum/challenges/italian/00-certificates/relational-databases-certificate/relational-databases-certificate.yml +++ b/curriculum/challenges/italian/00-certificates/relational-databases-certificate/relational-databases-certificate.yml @@ -1,6 +1,6 @@ --- id: 606243f50267e718b1e755f4 -title: Certificato Database Relazionali +title: Certificato Database Relazionale challengeType: 7 isPrivate: true tests: @@ -18,4 +18,4 @@ tests: title: Database della Tavola Periodica - id: 602da04c22201c65d2a019f4 - title: Final Boss + title: Gioco di indovinare il numero diff --git a/curriculum/challenges/italian/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md b/curriculum/challenges/italian/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md index c80e102f3a..196254d58e 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md +++ b/curriculum/challenges/italian/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md @@ -2,7 +2,6 @@ id: 5a94fe0569fb03452672e45c title: Dividere la griglia in un template area challengeType: 0 -videoUrl: 'https://scrimba.com/p/pByETK/cLLpGAy' forumTopicId: 301130 dashedName: divide-the-grid-into-an-area-template --- @@ -15,25 +14,25 @@ Puoi raggruppare le celle della griglia in un'area e dare un nome per grid-template-areas: "header header header" "advert content content" - "footer footer footer"; + "advert footer footer"; ``` -Il codice qui sopra riunisce le tre celle superiori in un'area denominata `header`, le tre celle inferiori in un'area `footer`, e crea due aree nella riga intermedia; `advert` e `content`. **Nota:** Ogni parola nel codice rappresenta una cella e ogni coppia di virgolette rappresenta una riga. In aggiunta alle etichette personalizzate, puoi usare un punto (`.`) per designare una cella vuota nella griglia. +Questo codice raggruppa le celle della griglia in quattro aree; `header`, `advert`, `content` e `footer`. Ogni parola rappresenta una cella e ogni coppia di virgolette rappresenta una riga. # --instructions-- -Posiziona il template dell'area in modo che la cella etichettata `advert` diventi una cella vuota. +Cambia il template in modo che l'area `footer` copra l'intera riga inferiore. La definizione delle aree non avrà alcun effetto visivo in questo momento. Più tardi, farai usare un'area ad un oggetto per vedere come funziona. # --hints-- -La classe `container` dovrebbe avere una proprietà `grid-template-areas` simile all'anteprima ma con `.` al posto dell'area `advert`. +La classe `container` dovrebbe avere una proprietà `grid-template-areas` simile all'esempio ma con con l'area `footer` che si espande attraverso tutta la riga più in basso. ```js assert( __helpers .removeCssComments(code) .match( - /.container\s*?{[\s\S]*grid-template-areas\s*?:\s*?"\s*?header\s*?header\s*?header\s*?"\s*?"\s*?.\s*?content\s*?content\s*?"\s*?"\s*?footer\s*?footer\s*?footer\s*?"\s*?;[\s\S]*}/gi + /.container\s*?{[\s\S]*grid-template-areas\s*?:\s*?"\s*?header\s*?header\s*?header\s*?"\s*?"\s*?advert\s*?content\s*?content\s*?"\s*?"\s*?footer\s*?footer\s*?footer\s*?"\s*?;[\s\S]*}/gi ) ); ``` @@ -63,7 +62,7 @@ assert( /* Only change code below this line */ "header header header" "advert content content" - "footer footer footer"; + "advert footer footer"; /* Only change code above this line */ } @@ -99,7 +98,7 @@ assert( grid-template-areas: "header header header" - ". content content" + "advert content content" "footer footer footer"; } diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md index ea09cc7715..12aea28382 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md @@ -43,7 +43,7 @@ assert.deepEqual( ); ``` -Tutti gli elementi del primo array dovrebbero essere aggiunti al secondo array nel loro ordine originale. +Tutti gli elementi del primo array dovrebbero essere aggiunti al secondo array nel loro ordine originale. `frankenSplice([1, 2, 3, 4], [], 0)` dovrebbe restituire `[1, 2, 3, 4]`. ```js assert.deepEqual(frankenSplice([1, 2, 3, 4], [], 0), [1, 2, 3, 4]); diff --git a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md index 3dfbf989ca..f16584f4fd 100644 --- a/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md +++ b/curriculum/challenges/italian/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md @@ -8,7 +8,7 @@ dashedName: iterate-over-all-properties # --description-- -Ora hai visto due tipi di proprietà: proprietà proprie e proprietà di prototipo (`prototype`). Le proprietà proprie sono definite direttamente nell'istanza dell'oggetto. E le proprietà di prototipo sono definite sul `prototype`. +Ora hai visto due tipi di proprietà: proprietà proprie e proprietà di prototipo (`prototype`). Le proprietà proprie sono definite direttamente nell'istanza dell'oggetto. E le proprietà di prototipo sono definite nel `prototype`. ```js function Bird(name) { diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md b/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md index 3a8f612247..fa38259138 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/bootstrap/use-responsive-design-with-bootstrap-fluid-containers.md @@ -20,7 +20,7 @@ Puoi aggiungere Bootstrap a qualsiasi app inserendo il seguente codice nella par ``` -In questo caso, lo abbiamo già aggiunto per te a questa pagina dietro le quinte. Nota che che usare `>` o `/>` per chiudere il tag `link` è accettabile. +In questo caso, lo abbiamo già aggiunto per te a questa pagina dietro le quinte. Nota che è accettabile usare sia `>` che `/>` per chiudere il tag `link`. Per iniziare, dovremmo annidare tutto il nostro HTML (tranne il tag `link` e l'elemento `style`) in un elemento `div` di classe `container-fluid`. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md index bd66dcf3d7..38d9af99d0 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md @@ -10,7 +10,7 @@ dashedName: build-a-25--5-clock **Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . -Compila le [user stories](https://en.wikipedia.org/wiki/User_story) qui sotto e fai passare tutti i test. Dalle il tuo stile personale. +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery per completare questo progetto. Dovresti usare un framework frontend (come React per esempio) perché questa sezione riguarda l'apprendimento dei framework per il frontend. Ulteriori tecnologie non elencate sopra non sono raccomandate e usarle è a tuo rischio. Stiamo cercando di supportare altri framework per il frontend come Angular e Vue, ma attualmente non sono supportati. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md index 7eee28e0f4..dac95f01bf 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md @@ -10,7 +10,7 @@ dashedName: build-a-drum-machine **Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . -Compila le [user stories](https://en.wikipedia.org/wiki/User_story) qui sotto e fai passare tutti i test. Dalle il tuo stile personale. +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery per completare questo progetto. Dovresti usare un framework frontend (come React per esempio) perché questa sezione riguarda l'apprendimento dei framework per il frontend. Ulteriori tecnologie non elencate sopra non sono raccomandate e usarle è a tuo rischio. Stiamo cercando di supportare altri framework per il frontend come Angular e Vue, ma attualmente non sono supportati. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! @@ -18,7 +18,7 @@ Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, **User Story #2:** All'interno di `#drum-machine` posso vedere un elemento con un corrispondente `id="display"`. -**User Story #3:** Dentro a `#drum-machine` posso vedere 9 elementi tamburo cliccabili, ognuno di classe `drum-pad`, con un id univoco che descrive la clip audio che l'elemento dovrà avviare, e un testo interno che corrisponde a uno dei seguenti tasti sulla tastiera: `Q` `W`, `E`, `A`, `S`, `D`, `Z`, `X`, `C`. I tamburi DEVONO essere in questo ordine. +**User Story #3:** Dentro a `#drum-machine` posso vedere 9 elementi tamburo cliccabili, ognuno di classe `drum-pad`, con un id univoco che descrive la clip audio che l'elemento dovrà avviare, e un testo interno che corrisponde a uno dei seguenti tasti sulla tastiera: `Q`, `W`, `E`, `A`, `S`, `D`, `Z`, `X`, `C`. I tamburi DEVONO essere in questo ordine. **User Story #4:** All'interno di ogni `.drum-pad`, ci dovrebbe essere un elemento HTML5 `audio` che ha un attributo `src` che indica una clip audio, un nome di classe `clip` e un id corrispondente al testo interno del `.drum-pad` genitore (ad es. `id="Q"`, `id="W"`, `id="E"` ecc.). diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md index 13750e40c7..32a179cc7b 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md @@ -10,7 +10,7 @@ dashedName: build-a-javascript-calculator **Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . -Compila le [user stories](https://en.wikipedia.org/wiki/User_story) qui sotto e fai passare tutti i test. Dalle il tuo stile personale. +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery per completare questo progetto. Dovresti usare un framework frontend (come React per esempio) perché questa sezione riguarda l'apprendimento dei framework per il frontend. Ulteriori tecnologie non elencate sopra non sono raccomandate e usarle è a tuo rischio. Stiamo cercando di supportare altri framework per il frontend come Angular e Vue, ma attualmente non sono supportati. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! @@ -26,7 +26,7 @@ Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, **User Story #6:** La mia calcolatrice dovrebbe contenere un elemento per visualizzare i valori con un corrispondente `id="display"`. -**User Story #7:** In qualsiasi momento, premendo il pulsante `clear` dovrebbero essere cancellati i valori di input e output, e la calcolatrice dovrebbe tornare suo stato iniziale; nell'elemento con l'id `display` dovrebbe essere mostrato 0. +**User Story #7:** In qualsiasi momento, premendo il pulsante `clear` dovrebbero essere cancellati i valori di input e output, e la calcolatrice dovrebbe tornare al suo stato iniziale; nell'elemento con l'id `display` dovrebbe essere mostrato 0. **User Story #8:** Quando inserisco dei numeri, dovrei essere in grado di vedere il mio input nell'elemento con l'id `display`. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md index d30c5f1bcb..12727866b5 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md @@ -10,7 +10,7 @@ dashedName: build-a-markdown-previewer **Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . -Compila le [user stories](https://en.wikipedia.org/wiki/User_story) qui sotto e fai passare tutti i test. Dalle il tuo stile personale. +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery per completare questo progetto. Dovresti usare un framework frontend (come React per esempio) perché questa sezione riguarda l'apprendimento dei framework per il frontend. Ulteriori tecnologie non elencate sopra non sono raccomandate e usarle è a tuo rischio. Stiamo cercando di supportare altri framework per il frontend come Angular e Vue, ma attualmente non sono supportati. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md index 5c6ec200a8..e33f1bad65 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md @@ -10,7 +10,7 @@ dashedName: build-a-random-quote-machine **Obiettivo:** Costruisci un'app [CodePen.io](https://codepen.io) funzionalmente simile a questa: . -Compila le [user stories](https://en.wikipedia.org/wiki/User_story) qui sotto e fai passare tutti i test. Dalle il tuo stile personale. +Soddisfa le seguenti [user story](https://en.wikipedia.org/wiki/User_story) e fai passare tutti i test. Usa il tuo stile personale. Puoi utilizzare qualsiasi mix di HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery per completare questo progetto. Dovresti usare un framework frontend (come React per esempio) perché questa sezione riguarda l'apprendimento dei framework per il frontend. Ulteriori tecnologie non elencate sopra non sono raccomandate e usarle è a tuo rischio. Stiamo cercando di supportare altri framework per il frontend come Angular e Vue, ma attualmente non sono supportati. Accetteremo e cercheremo di risolvere tutte le segnalazioni di problemi che utilizzano lo stack tecnologico suggerito per questo progetto. Happy coding! diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md b/curriculum/challenges/italian/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md index c686488862..df72cb1da1 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md @@ -15,7 +15,7 @@ Vedi come abbiamo fatto rimbalzare tutti gli elementi del tuo `button`? Li abbia Hai appena usato la funzione `.addClass()` di jQuery, che ti permette di aggiungere classi agli elementi. -Innanzitutto, individuiamo bene gli elementi `div` con la classe `well` utilizzando il selettore `$(".well")`. +Innanzitutto, individuiamo gli elementi `div` con la classe `well` utilizzando il selettore `$(".well")`. Nota che, proprio come con le dichiarazioni CSS, devi digitare un `.` prima del nome della classe. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/add-inline-styles-in-react.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/add-inline-styles-in-react.md index 5f43c71e3a..c8faa2be06 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/add-inline-styles-in-react.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/add-inline-styles-in-react.md @@ -42,7 +42,7 @@ La variabile `styles` dovrebbe avere una proprietà `border` impostata su un val assert(styles.border === '2px solid purple'); ``` -Il componente dovrebbe presentare un elemento `div`. +Il componente dovrebbe mostrare un elemento `div`. ```js assert( diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/bind-this-to-a-class-method.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/bind-this-to-a-class-method.md index f4d823e602..64f00829d7 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/bind-this-to-a-class-method.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/bind-this-to-a-class-method.md @@ -48,7 +48,7 @@ assert( ); ``` -Cliccando sull'elemento `button` dovrebbe essere eseguito il metodo `handleClick` e dovrebbe essere impostare lo stato `text` a `You clicked!`. +Cliccando sull'elemento `button` dovrebbe essere eseguito il metodo `handleClick` e dovrebbe impostare lo stato `text` a `You clicked!`. ```js async () => { diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-complex-jsx-element.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-complex-jsx-element.md index 0d342c2ae8..b23895f422 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-complex-jsx-element.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-complex-jsx-element.md @@ -40,7 +40,7 @@ Ecco un esempio: Definisci una nuova costante `JSX` che esegua il render di un `div` che contenga i seguenti elementi in ordine: -Un `h1`, un `p`e una lista non ordinata che contiene tre elementi `li`. Puoi includere qualsiasi testo desideri all'interno di ogni elemento. +Un `h1`, un `p` e una lista non ordinata che contiene tre elementi `li`. Puoi includere qualsiasi testo desideri all'interno di ogni elemento. **Nota:** Quando si visualizzano più elementi come questo, è possibile avvolgerli tutti in parentesi, ma non è strettamente necessario. Nota anche che questa sfida utilizza un tag `div` per avvolgere tutti gli elementi figli all'interno di un singolo elemento genitore. Se rimuovi il `div`, il JSX non sarà più transcodificato. Tienilo a mente, perché questo si applicherà anche quando restituirai elementi JSX in componenti React. diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-stateful-component.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-stateful-component.md index 0cab5bc1a1..c09bcef1d4 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-stateful-component.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/create-a-stateful-component.md @@ -1,6 +1,6 @@ --- id: 5a24c314108439a4d4036170 -title: Creare un componente con state +title: Creare un componente con stato challengeType: 6 forumTopicId: 301391 dashedName: create-a-stateful-component diff --git a/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md b/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md index 4302b8e11c..10dcdb470f 100644 --- a/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md +++ b/curriculum/challenges/italian/03-front-end-development-libraries/react/introducing-inline-styles.md @@ -8,7 +8,7 @@ dashedName: introducing-inline-styles # --description-- -Ci sono altri concetti complessi che aggiungono potenti funzionalità al tuo codice React. Ma forse ti stai chiedendo come stilizzare quegli elementi JSX che crei in React. Probabilmente sai che non sarà esattamente come lavorare con HTML a causa del [modo in cui applichi le classi agli elementi JSX](/learn/front-end-development-libraries/react/define-an-html-class-in-jsx). +Ci sono altri concetti complessi che aggiungono potenti funzionalità al tuo codice React. Ma forse ti stai chiedendo come stilizzare quegli elementi JSX che crei in React. Probabilmente sai che non sarà esattamente come lavorare con HTML a causa del [modo in cui applichi le classi agli elementi JSX](/italian/learn/front-end-development-libraries/react/define-an-html-class-in-jsx). Se importi degli stili da un foglio di stile, non è poi così diverso. Applichi una classe al tuo elemento JSX usando l'attributo `className` e applichi gli stili alla classe nel tuo foglio di stile. Un'altra opzione è quella di applicare degli stili in linea, che sono molto comuni nello sviluppo di ReactJS. @@ -31,7 +31,6 @@ Vedi come abbiamo usato camelCase nella proprietà `fontSize`? Questo perché Re Aggiungi un attributo `style` al `div`nell'editor di codice per dare al testo un colore rosso e una dimensione del carattere di `72px`. Nota che è possibile impostare facoltativamente la dimensione del carattere come un numero, omettendo le unità `px` o scrivendole come `72px`. - # --hints-- Il componente dovrebbe mostrare un elemento `div`. diff --git a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md index dae7b37726..78411e8ef7 100644 --- a/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md +++ b/curriculum/challenges/italian/06-quality-assurance/advanced-node-and-express/authentication-with-socket.io.md @@ -33,11 +33,15 @@ io.use( ); ``` -Assicurati di aggiungere la `key` e lo `store` al middleware `session` montato sull'app. Questo è necessario per dire a *SocketIO* a quale sessione riferirsi. +Nota che la configurazione dell'autenticazione Passport per Socket.IO è molto simile a quella che abbiamo preparato per il middleware `session` per l'API. Questo perché utilizzano lo stesso metodo di autenticazione - ottenere l'id di sessione da un cookie e convalidarlo. + +In precedenza, quando abbiamo configurato il middleware `session`, non abbiamo esplicitamente impostato il nome del cookie per la sessione (`key`). Questo perché il pacchetto `session` usava il valore predefinito. Ora che abbiamo aggiunto un altro pacchetto che necessita di accedere allo stesso valore dai cookie, abbiamo bisogno di impostare esplicitamente il valore `key` in entrambi gli oggetti di configurazione. + +Assicurati di aggiungere la `key` con il nome del cookie al middleware `session` che corrisponde alla chiave Socket.IO. Inoltre, aggiungi il riferimento `store` alle opzioni, vicino a dove abbiamo impostato `saveUninitialized: true`. Questo è necessario per dire a Socket.IO a quale sessione deve fare riferimento.
-Ora, definisci le funzioni di callback per `success` e `fail`: +Ora definisci le funzioni di callback per `success` e `fail`: ```js function onAuthorizeSuccess(data, accept) { @@ -61,7 +65,7 @@ console.log('user ' + socket.request.user.name + ' connected'); Scriverà sulla console del server chi si è connesso! -Invia la tua pagina quando pensi che sia corretto. Se dovessi incontrare degli errori, puoi controllare il progetto fino a questo punto [qui](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254). +Invia la tua pagina quando pensi di averlo fatto correttamente. Se dovessi incontrare degli errori, puoi controllare il progetto fino a questo punto [qui](https://gist.github.com/camperbot/1414cc9433044e306dd7fd0caa1c6254). # --hints-- @@ -103,7 +107,7 @@ Invia la tua pagina quando pensi che sia corretto. Se dovessi incontrare degli e ); ``` -passportSocketIo dovrebbe essere richiesta correttamente. +passportSocketIo dovrebbe essere richiesto correttamente. ```js (getUserInput) => @@ -121,7 +125,7 @@ passportSocketIo dovrebbe essere richiesta correttamente. ); ``` -passportSocketIo dovrebbe essere configurata correttamente. +passportSocketIo dovrebbe essere configurato correttamente. ```js (getUserInput) => diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md index 72a60ca79b..ac11a4d392 100644 --- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md +++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md @@ -10,29 +10,37 @@ dashedName: run-functional-tests-on-an-api-response-using-chai-http-iii---put-me Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza su [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), o clonato da [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). -Nel prossimo esempio vedremo come inviare i dati in nel corpo di un payload di richiesta. Stiamo per testare una richiesta PUT. L'endpoint `'/travellers'` accetta un oggetto JSON che prende la struttura: +Quando testi una richiesta `PUT`, invierai spesso dei dati con essa. I dati che includi con la tua richiesta `PUT` sono chiamati corpo della richiesta. -```json -{ - "surname": [last name of a traveller of the past] -} +Per inviare una richiesta `PUT` e un oggetto JSON all'endpoint `'/travellers'`, è possibile utilizzare i metodi `put` e `send` del plugin`chai-http`: + +```js +chai + .request(server) + .put('/travellers') + .send({ + "surname": [last name of a traveller of the past] + }) + ... ``` La rotta risponde con: ```json { - "name": [first name], "surname": [last name], "dates": [birth - death years] + "name": [first name], + "surname": [last name], + "dates": [birth - death years] } ``` -Vedi il codice del server per maggiori dettagli. +Vedi il codice del server per le diverse risposte all'endpoint `'/travellers'`. # --instructions-- -All'interno di `tests/2_functional-tests.js`, modifica il test `'send {surname: "Colombo"}'` (`// #3`): +All'interno di `tests/2_functional-tests.js`, cambia il test `'Send {surname: "Colombo"}'` (`// #3`) e usa i metodi `put` e `send` per testare l'endpoint `'/travellers'`. -Invia la seguente risposta JSON come payload: +Invia il seguente oggetto JSON con la tua richiesta PUT: ```json { @@ -42,12 +50,12 @@ Invia la seguente risposta JSON come payload: Controlla quanto segue, all'interno della callback `request.end`: -1. `status` -2. `type` -3. `body.name` -4. `body.surname` +1. Lo `status` dovrebbe essere `200` +2. Il `type` dovrebbe essere `application/json` +3. Il `body.name` dovrebbe essere `Cristoforo` +4. Il `body.surname` dovrebbe essere `Colombo` -Segui l'ordine di asserzione indicato sopra - facciamo affidamento su di esso. Assicurati di rimuovere `assert.fail()`, una volta finito. +Segui l'ordine di asserzione indicato sopra - facciamo affidamento su di esso. Inoltre, assicurati di rimuovere `assert.fail()` una volta finito. # --hints-- @@ -65,7 +73,7 @@ Tutti i test dovrebbero essere superati. ); ``` -Dovresti verificare che 'res.status' sia 200. +Dovresti verificare che `res.status` sia 200. ```js (getUserInput) => @@ -81,7 +89,7 @@ Dovresti verificare che 'res.status' sia 200. ); ``` -Dovresti verificare che 'res.type' sia 'application/json'. +Dovresti verificare che `res.type` sia `'application/json'`. ```js (getUserInput) => @@ -97,7 +105,7 @@ Dovresti verificare che 'res.type' sia 'application/json'. ); ``` -Dovresti verificare che 'res.body.name' sia 'Cristoforo''. +Dovresti verificare che `res.body.name` sia `'Cristoforo'`. ```js (getUserInput) => @@ -113,7 +121,7 @@ Dovresti verificare che 'res.body.name' sia 'Cristoforo''. ); ``` -Dovresti verificare che 'res.body.surname' sia 'Colombo''. +Dovresti verificare che `res.body.surname` sia `'Colombo'`. ```js (getUserInput) => diff --git a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md index d8318b6d61..3b18675d38 100644 --- a/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md +++ b/curriculum/challenges/italian/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md @@ -13,9 +13,9 @@ Come promemoria, questo progetto verrà costruito a partire dalla seguente bozza `isTrue()` testa per il valore boleano `true` e `isNotTrue()` passa per qualsiasi cosa che non sia il valore booleano `true`. ```js -assert.isTrue(true, 'this will pass with the boolean value true'); -assert.isTrue('true', 'this will NOT pass with the string value "true"'); -assert.isTrue(1, 'this will NOT pass with the number value 1'); +assert.isTrue(true, 'This will pass with the boolean value true'); +assert.isTrue('true', 'This will NOT pass with the string value "true"'); +assert.isTrue(1, 'This will NOT pass with the number value 1'); ``` Esistono anche `isFalse()` e `isNotFalse()`, si comportano in maniera simile alle loro controparti con true tranne per il fatto che testano per il valore booleano `false`. diff --git a/curriculum/challenges/portuguese/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml b/curriculum/challenges/portuguese/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml index ab4cdbb46e..c6c6569f96 100644 --- a/curriculum/challenges/portuguese/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/back-end-development-and-apis-certificate/back-end-development-and-apis-certificate.yml @@ -1,15 +1,21 @@ +--- id: 561add10cb82ac38a17523bc -title: APIs and Microservices Certificate +title: Certificado de APIs e desenvolvimento de back-end challengeType: 7 isPrivate: true tests: - - id: bd7158d8c443edefaeb5bdef - title: Timestamp Microservice - - id: bd7158d8c443edefaeb5bdff - title: Request Header Parser Microservice - - id: bd7158d8c443edefaeb5bd0e - title: URL Shortener Microservice - - id: 5a8b073d06fa14fcfde687aa - title: Exercise Tracker - - id: bd7158d8c443edefaeb5bd0f - title: File Metadata Microservice + - + id: bd7158d8c443edefaeb5bdef + title: Microsserviço de timestamp + - + id: bd7158d8c443edefaeb5bdff + title: Microsserviço conversor de requisição de cabeçalho + - + id: bd7158d8c443edefaeb5bd0e + title: Microsserviço redutor de URL + - + id: 5a8b073d06fa14fcfde687aa + title: Rastreador de exercícios + - + id: bd7158d8c443edefaeb5bd0f + title: Microsserviço de metadados de arquivos diff --git a/curriculum/challenges/portuguese/00-certificates/data-visualization-certificate/data-visualization-certificate.yml b/curriculum/challenges/portuguese/00-certificates/data-visualization-certificate/data-visualization-certificate.yml index 221b7d4056..b740f5eb9c 100644 --- a/curriculum/challenges/portuguese/00-certificates/data-visualization-certificate/data-visualization-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/data-visualization-certificate/data-visualization-certificate.yml @@ -6,16 +6,16 @@ isPrivate: true tests: - id: bd7168d8c242eddfaeb5bd13 - title: Visualize dados com um gráfico de barras + title: Visualizar dados com um gráfico de barras - id: bd7178d8c242eddfaeb5bd13 - title: Visualize dados com um gráfico de dispersão + title: Visualizar dados com um gráfico de dispersão - id: bd7188d8c242eddfaeb5bd13 - title: Visualize dados com um mapa de calor + title: Visualizar dados com um mapa de calor - id: 587d7fa6367417b2b2512bbf - title: Visualize dados com um mapa coroplético + title: Visualizar dados com um mapa coroplético - id: 587d7fa6367417b2b2512bc0 - title: Visualize dados com um diagrama Treemap + title: Visualizar dados com um diagrama Treemap diff --git a/curriculum/challenges/portuguese/00-certificates/front-end-development-libraries-certificate/front-end-development-libraries-certificate.yml b/curriculum/challenges/portuguese/00-certificates/front-end-development-libraries-certificate/front-end-development-libraries-certificate.yml index e46cb47106..83ac3759e5 100644 --- a/curriculum/challenges/portuguese/00-certificates/front-end-development-libraries-certificate/front-end-development-libraries-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/front-end-development-libraries-certificate/front-end-development-libraries-certificate.yml @@ -1,15 +1,21 @@ +--- id: 561acd10cb82ac38a17513bc -title: Front End Libraries Certificate +title: Certificado de desenvolvimento com bibliotecas de front-end challengeType: 7 isPrivate: true tests: - - id: bd7158d8c442eddfaeb5bd13 - title: Build a Random Quote Machine - - id: bd7157d8c242eddfaeb5bd13 - title: Build a Markdown Previewer - - id: 587d7dbc367417b2b2512bae - title: Build a Drum Machine - - id: bd7158d8c442eddfaeb5bd17 - title: Build a JavaScript Calculator - - id: bd7158d8c442eddfaeb5bd0f - title: Build a 25 + 5 Clock + - + id: bd7158d8c442eddfaeb5bd13 + title: Criar uma máquina de citação aleatória + - + id: bd7157d8c242eddfaeb5bd13 + title: Criar um pré-visualizador de markdown + - + id: 587d7dbc367417b2b2512bae + title: Criar uma bateria eletrônica + - + id: bd7158d8c442eddfaeb5bd17 + title: Criar uma calculadora JavaScript + - + id: bd7158d8c442eddfaeb5bd0f + title: Criar um Relógio 25 + 5 diff --git a/curriculum/challenges/portuguese/00-certificates/legacy-back-end-certificate/legacy-back-end-certificate.yml b/curriculum/challenges/portuguese/00-certificates/legacy-back-end-certificate/legacy-back-end-certificate.yml index 22b80752cc..cb2baccbb6 100644 --- a/curriculum/challenges/portuguese/00-certificates/legacy-back-end-certificate/legacy-back-end-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/legacy-back-end-certificate/legacy-back-end-certificate.yml @@ -18,19 +18,19 @@ tests: title: Camada de abstração de pesquisa de imagens - id: bd7158d8c443edefaeb5bd0f - title: Microserviço de metadados de arquivos + title: Microsserviço de metadados de arquivos - id: bd7158d8c443eddfaeb5bdef - title: Crie um aplicativo de votação + title: Criar um aplicativo de votação - id: bd7158d8c443eddfaeb5bdff - title: Crie um aplicativo de coordenação da vida noturna + title: Criar um aplicativo de coordenação da vida noturna - id: bd7158d8c443eddfaeb5bd0e - title: Faça um gráfico do mercado de ações + title: Fazer um gráfico do mercado de ações - id: bd7158d8c443eddfaeb5bd0f - title: Gerencie um clube de negociações de livros + title: Gerenciar um clube de negociações de livros - id: bd7158d8c443eddfaeb5bdee - title: Crie um clone do Pinterest + title: Criar um clone do Pinterest diff --git a/curriculum/challenges/portuguese/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml b/curriculum/challenges/portuguese/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml index 4c5e8dfa3b..7b8e79ef01 100644 --- a/curriculum/challenges/portuguese/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/legacy-data-visualization-certificate/legacy-data-visualization-certificate.yml @@ -6,31 +6,31 @@ isPrivate: true tests: - id: bd7157d8c242eddfaeb5bd13 - title: Crie um pré-visualizador de markdown + title: Criar um pré-visualizador de markdown - id: bd7156d8c242eddfaeb5bd13 - title: Crie um painel de estatísticas dos campers + title: Criar um painel de estatísticas dos campers - id: bd7155d8c242eddfaeb5bd13 - title: Crie uma caixa de receitas + title: Criar uma caixa de receitas - id: bd7154d8c242eddfaeb5bd13 - title: Crie o Jogo da Vida + title: Criar o Jogo da Vida - id: bd7153d8c242eddfaeb5bd13 - title: Crie um jogo de RPG do tipo Dungeon Crawler + title: Criar um jogo de RPG do tipo Dungeon Crawler - id: bd7168d8c242eddfaeb5bd13 - title: Visualize dados com um gráfico de barras + title: Visualizar dados com um gráfico de barras - id: bd7178d8c242eddfaeb5bd13 - title: Visualize dados com um gráfico de dispersão + title: Visualizar dados com um gráfico de dispersão - id: bd7188d8c242eddfaeb5bd13 - title: Visualize dados com um mapa de calor + title: Visualizar dados com um mapa de calor - id: bd7198d8c242eddfaeb5bd13 title: Mostrar contiguidade nacional com um gráfico direcionado de força - id: bd7108d8c242eddfaeb5bd13 - title: Mapeamento de dados através do mundo + title: Mapear dados através do mundo diff --git a/curriculum/challenges/portuguese/00-certificates/legacy-front-end-certificate/legacy-front-end-certificate.yml b/curriculum/challenges/portuguese/00-certificates/legacy-front-end-certificate/legacy-front-end-certificate.yml index 3c62956368..5887afb887 100644 --- a/curriculum/challenges/portuguese/00-certificates/legacy-front-end-certificate/legacy-front-end-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/legacy-front-end-certificate/legacy-front-end-certificate.yml @@ -6,31 +6,31 @@ isPrivate: true tests: - id: bd7158d8c242eddfaeb5bd13 - title: Crie uma página de portfólio pessoal + title: Criar uma página de portfólio pessoal - id: bd7158d8c442eddfaeb5bd13 - title: Crie uma máquina de citação aleatória + title: Criar uma máquina de citação aleatória - id: bd7158d8c442eddfaeb5bd0f - title: Construa um relógio de 25 + 5 + title: Criar um Relógio 25 + 5 - id: bd7158d8c442eddfaeb5bd17 - title: Crie uma calculadora JavaScript + title: Criar uma calculadora JavaScript - id: bd7158d8c442eddfaeb5bd10 title: Exibir o clima local - id: bd7158d8c442eddfaeb5bd1f - title: Use a API de JSON do TwitchTV + title: Usar a API de JSON do TwitchTV - id: bd7158d8c442eddfaeb5bd18 - title: Estilize stories do Camper News + title: Estilizar stories do Camper News - id: bd7158d8c442eddfaeb5bd19 - title: Crie um visualizador da Wikipédia + title: Criar um visualizador da Wikipédia - id: bd7158d8c442eedfaeb5bd1c - title: Crie um jogo da velha + title: Criar um jogo da velha - id: bd7158d8c442eddfaeb5bd1c - title: Crie um Genius + title: Criar um Genius diff --git a/curriculum/challenges/portuguese/00-certificates/responsive-web-design-certificate/responsive-web-design-certificate.yml b/curriculum/challenges/portuguese/00-certificates/responsive-web-design-certificate/responsive-web-design-certificate.yml index ccd2e55ee5..69fd8146f0 100644 --- a/curriculum/challenges/portuguese/00-certificates/responsive-web-design-certificate/responsive-web-design-certificate.yml +++ b/curriculum/challenges/portuguese/00-certificates/responsive-web-design-certificate/responsive-web-design-certificate.yml @@ -6,16 +6,16 @@ isPrivate: true tests: - id: bd7158d8c442eddfaeb5bd18 - title: Crie uma página de homenagem + title: Criar uma página de homenagem - id: 587d78af367417b2b2512b03 - title: Crie um formulário de pesquisa + title: Criar um formulário de pesquisa - id: 587d78af367417b2b2512b04 - title: Crie uma página inicial para um produto + title: Criar uma página inicial para um produto - id: 587d78b0367417b2b2512b05 - title: Crie uma página de documentação técnica + title: Criar uma página de documentação técnica - id: bd7158d8c242eddfaeb5bd13 - title: Crie uma página de portfólio pessoal + title: Criar uma página de portfólio pessoal diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/understand-absolute-versus-relative-units.md b/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/understand-absolute-versus-relative-units.md index 69577e96bf..ae5e771d10 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/understand-absolute-versus-relative-units.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/basic-css/understand-absolute-versus-relative-units.md @@ -1,6 +1,6 @@ --- id: bad82fee1322bd9aedf08721 -title: Diferenças entre unidades absolutas e relativas +title: Diferenciar entre unidades absolutas e relativas challengeType: 0 videoUrl: 'https://scrimba.com/c/cN66JSL' forumTopicId: 301089 diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/delete-html-elements.md b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/delete-html-elements.md index 4b767ef026..c54b860fca 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/delete-html-elements.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/delete-html-elements.md @@ -11,7 +11,7 @@ dashedName: delete-html-elements A tela do nosso telefone não possui muito espaço vertical. -Vamos remover os elementos desnecessário para podermos começar a construir nosso CatPhotoApp. +Vamos remover os elementos desnecessários para podermos começar a construir nosso CatPhotoApp. # --instructions-- diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/introduction-to-html5-elements.md b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/introduction-to-html5-elements.md index a1606d3a00..1091b00baf 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/introduction-to-html5-elements.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/introduction-to-html5-elements.md @@ -13,7 +13,7 @@ O HTML5 apresenta tags HTML mais descritivas. Essas tags incluem `main`, `header Essas tags conferem uma estrutura descritiva ao seu HTML, tornam seu HTML mais fácil de ler e ajudam com a otimização dos mecanismos de busca (SEO) e com a acessibilidade. A tag `main` do HTML5 ajuda os mecanismos de busca e outros desenvolvedores a encontrar o conteúdo principal de sua página. -Vemos abaixo um exemplo de uso de um elemento `main` com dois elementos filhos dentre dele: +Vemos abaixo um exemplo de uso de um elemento `main` com dois elementos filhos dentro dele: ```html
@@ -53,7 +53,7 @@ O elemento `p` deve conter as primeiras palavras do texto adicional `kitty ipsum assert.isTrue(/Purr\s+jump\s+eat/gi.test($('p').text())); ``` -O seu código deve ter um elemento `main`. +O código deve ter um elemento `main`. ```js assert($('main').length === 1); diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/say-hello-to-html-elements.md b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/say-hello-to-html-elements.md index 6c48e7e780..90a00e245f 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/say-hello-to-html-elements.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/basic-html-and-html5/say-hello-to-html-elements.md @@ -9,7 +9,7 @@ dashedName: say-hello-to-html-elements # --description-- -Bem-vindo aos desafios sobre HTML da freeCodeCamp. Eles guiarão você no aprendizado sobre desenvolvimento web. +Boas-vindas aos desafios de código em HTML do freeCodeCamp. Eles guiarão você no aprendizado sobre desenvolvimento web. Em primeiro lugar, você construirá uma página simples usando HTML. Você poderá editar o código em seu editor, que se encontra incorporado a esta página. diff --git a/curriculum/challenges/portuguese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md b/curriculum/challenges/portuguese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md index 86d4b1c8ef..007dcf17ee 100644 --- a/curriculum/challenges/portuguese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md +++ b/curriculum/challenges/portuguese/01-responsive-web-design/css-grid/divide-the-grid-into-an-area-template.md @@ -2,7 +2,6 @@ id: 5a94fe0569fb03452672e45c title: Dividir o grid em áreas challengeType: 0 -videoUrl: 'https://scrimba.com/p/pByETK/cLLpGAy' forumTopicId: 301130 dashedName: divide-the-grid-into-an-area-template --- diff --git a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md index 6a767069ae..2330879780 100644 --- a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md +++ b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md @@ -43,7 +43,7 @@ assert.deepEqual( ); ``` -Todos os elementos do primeiro array devem ser adicionados no segundo array em suas ordens originais. +Todos os elementos do primeiro array devem ser adicionados no segundo array em suas ordens originais. `frankenSplice([1, 2, 3, 4], [], 0)` deve retornar `[1, 2, 3, 4]`. ```js assert.deepEqual(frankenSplice([1, 2, 3, 4], [], 0), [1, 2, 3, 4]); diff --git a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/multiple-identical-options-in-switch-statements.md b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/multiple-identical-options-in-switch-statements.md index 4392546562..2d725d17f7 100644 --- a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/multiple-identical-options-in-switch-statements.md +++ b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/multiple-identical-options-in-switch-statements.md @@ -1,6 +1,6 @@ --- id: 56533eb9ac21ba0edf2244df -title: Várias opções idênticas em instruções switch +title: Lidar com várias opções idênticas em instruções switch challengeType: 1 videoUrl: 'https://scrimba.com/c/cdBKWCV' forumTopicId: 18242 diff --git a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md index 10f5caa79c..fc9233488d 100644 --- a/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md +++ b/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/object-oriented-programming/iterate-over-all-properties.md @@ -8,7 +8,7 @@ dashedName: iterate-over-all-properties # --description-- -Até agora você já viu dois tipos de propriedades: as propriedades own properties e `prototype`. Propriedades próprias (ou Own properties) são definidas diretamente na própria instância do objeto. E as propriedades `prototype` são definidas no `prototype`. +Até agora você já viu dois tipos de propriedades: as propriedades own properties e `prototype`. Propriedades próprias (ou Own properties) são definidas diretamente na própria instância do objeto. E as propriedades do protótipo são definidas em `prototype`. ```js function Bird(name) { diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md index 4a8197539c..aa9818b904 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-elements-within-your-bootstrap-wells.md @@ -29,7 +29,7 @@ Você deve ter o total de 6 elementos `button`. assert($('button') && $('button').length > 5); ``` -Todos os elementos `button` devem conter tag de fechamento. +Todos os elementos `button` devem ter tags de fechamento. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md index 6d6eb371cb..b0783e3b58 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-all-of-our-buttons.md @@ -12,7 +12,7 @@ dashedName: add-font-awesome-icons-to-all-of-our-buttons # --description-- -Font Awesome é uma biblioteca conveniente de ícones. Estes ícones podem ser fontes da web ou gráficos vetoriais. Estes ícones são tratados assim como as fontes. Você pode especificar seu tamanho utilizando pixels, e eles vão assumir o tamanho de fonte dos elementos pais do HTML. +Font Awesome é uma biblioteca conveniente de ícones. Estes ícones podem ser fontes da web ou gráficos vetoriais. Estes ícones são tratados assim como as fontes. Você pode especificar seu tamanho utilizando pixels, e eles irão assumir o tamanho de fonte de seus elementos HTML parentes. # --instructions-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md index a85fdba817..247fb3245a 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/add-font-awesome-icons-to-our-buttons.md @@ -12,7 +12,7 @@ dashedName: add-font-awesome-icons-to-our-buttons # --description-- -Font Awesome é uma biblioteca conveniente de ícones. Estes ícones podem ser fontes da web ou gráficos vetoriais. Estes ícones são tratados assim como as fontes. Você pode especificar seu tamanho utilizando pixels, e eles vão assumir o tamanho de fonte dos elementos pais do HTML. +Font Awesome é uma biblioteca conveniente de ícones. Estes ícones podem ser fontes da web ou gráficos vetoriais. Estes ícones são tratados assim como as fontes. Você pode especificar seu tamanho utilizando pixels, e eles irão assumir o tamanho de fonte de seus elementos HTML parentes. Você pode incluir o Font Awesome em qualquer aplicativo, adicionando o seguinte código ao topo do seu HTML: diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md index cacb5a3097..b5edca7543 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/call-out-optional-actions-with-btn-info.md @@ -8,11 +8,11 @@ dashedName: call-out-optional-actions-with-btn-info # --description-- -O Bootstrap vem com várias cores predefinidas para botões. A classe `btn-info` é usada para chamar atenção para ações opcionais que o usuário pode tomar. +O Bootstrap vem com diversas cores predefinidas para botões. A classe `btn-info` é usada para chamar atenção para ações opcionais que o usuário pode tomar. Crie um novo botão do Bootstrap no nível de blocos abaixo do botão `Like` com o texto `Info`, e adicione as classes `btn-info` e `btn-block` do Bootstrap a ele. -Observe que esses botões ainda precisam das classes `btn` e `btn-block`. +Note que esses botões ainda precisam das classes `btn` e `btn-block`. # --hints-- @@ -34,7 +34,7 @@ O novo botão deve ter a classe `btn-info`. assert($('button').hasClass('btn-info')); ``` -Todos os seus elementos `button` deve ter tags de fechamento. +Todos os elementos `button` devem ter tags de fechamento. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/give-each-element-a-unique-id.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/give-each-element-a-unique-id.md index 7dde696858..c9a686f024 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/give-each-element-a-unique-id.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/give-each-element-a-unique-id.md @@ -12,7 +12,7 @@ Nós também queremos ser capazes de usar jQuery para selecionar cada botão a p Dê a cada um dos botões um id único, começando com `target1` e terminando com `target6`. -Certifique-se de que `target1` até `target3` estão em `#left-well`, e `target4` até `target6` estão em `#right well`. +Certifique-se de que `target1` até `target3` estão em `#left-well`, e `target4` até `target6` estão em `#right-well`. # --hints-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/warn-your-users-of-a-dangerous-action-with-btn-danger.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/warn-your-users-of-a-dangerous-action-with-btn-danger.md index abdd79e5ac..9e8d44b7a8 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/warn-your-users-of-a-dangerous-action-with-btn-danger.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/bootstrap/warn-your-users-of-a-dangerous-action-with-btn-danger.md @@ -12,7 +12,7 @@ O Bootstrap vem com diversas cores predefinidas para botões. A classe `btn-dang Crie um botão com o texto `Delete` e dê a ele a classe `btn-danger`. -Observe que esses botões ainda precisam das classes `btn` e `btn-block`. +Note que esses botões ainda precisam das classes `btn` e `btn-block`. # --hints-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md index 04f45871bc..ee373d65d4 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-25-5-clock.md @@ -12,7 +12,7 @@ dashedName: build-a-25--5-clock Atenda às [especificações de usuário abaixo](https://en.wikipedia.org/wiki/User_story) e obtenha aprovação em todos os testes. Dê a ele o seu próprio estilo pessoal. -Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery para completar este projeto. Você deve usar um framework de front-end (como React, por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! +Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e JQuery para completar este projeto. Você deve usar um framework de front-end (como React por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! **Especificação de usuário nº 1:** eu consigo ver um elemento com `id="break-label"` que contém uma string (por exemplo, "Duração do intervalo"). diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md index c939c449ab..ed0306430d 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-drum-machine.md @@ -10,9 +10,9 @@ dashedName: build-a-drum-machine **Objetivo:** Construa um app [CodePen.io](https://codepen.io) que seja funcionalmente semelhante a: . -Atenda às [especificações de usuário](https://en.wikipedia.org/wiki/User_story) abaixo para passar em todos os testes. Dê a ele o seu próprio estilo pessoal. +Atenda às [especificações de usuário abaixo](https://en.wikipedia.org/wiki/User_story) e obtenha aprovação em todos os testes. Dê a ele o seu próprio estilo pessoal. -Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery para completar este projeto. Você deve usar um framework de front-end (como React, por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! +Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e JQuery para completar este projeto. Você deve usar um framework de front-end (como React por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! **Especificação de usuário nº 1:** eu devo ser capaz de ver um contêiner externo com um `id="drum-machine"` correspondente que contém todos os outros elementos. @@ -28,9 +28,9 @@ Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, Reac **Especificação de usuário nº 7:** quando um `.drum-pad` é acionado, uma string descrevendo o clipe de áudio associado é exibido como o texto interno do elemento `#display` (cada string precisa ser única). -Você pode fazer o seu projeto usando este modelo da CodePen e clicando em `Save` para criar seu próprio pen. Como alternativa, use este link da nossa CDN para executar os testes em qualquer ambiente que você preferir: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +Você pode construir seu projeto com usando este template CodePen e clicando `Save` para criar seu próprio pen. Ou você pode usar esse link CDN para rodar os testes em qualquer ambiente que você goste:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` -Quando tiver terminado, envie o URL do seu projeto depois de ele haver passado em todos os testes. +Quando você terminar, envie a URL para o seu projeto em trabalho com todos os testes passando. # --solutions-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md index e87031347f..e61fe5e35f 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator.md @@ -12,7 +12,7 @@ dashedName: build-a-javascript-calculator Atenda às [especificações de usuário abaixo](https://en.wikipedia.org/wiki/User_story) e obtenha aprovação em todos os testes. Dê a ele o seu próprio estilo pessoal. -Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery para completar este projeto. Você deve usar um framework de front-end (como React, por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! +Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e JQuery para completar este projeto. Você deve usar um framework de front-end (como React por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! **Especificação de usuário nº 1:** minha calculadora deve conter um elemento clicável contendo um `=` (sinal de igualdade) com o `id="equals"` correspondente. @@ -38,7 +38,7 @@ Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, Reac **Especificação de usuário nº 12:** eu devo ser capaz de executar qualquer operação (`+`, `-`, `*`, `/`) em números contendo pontos decimais. -**User Story #13:** Se 2 ou mais operadores forem inseridos consecutivamente, a operação executada deve ser o último operador inserido, excluindo o símbolo de negação (`-`). Por exemplo, se `5 + * 7 =` for inserido, o resultado deve ser `35` (ou seja, `5 * 7`); se `5 * - 5 =` for inserido, o resultado deve ser `-25` (ou seja, `5 * (-5)`). +**Especificação de usuário nº 13:** Se 2 ou mais operadores forem inseridos consecutivamente, a operação executada deve ser o último operador inserido, excluindo o símbolo de negação (`-`). Por exemplo, se `5 + * 7 =` for inserido, o resultado deve ser `35` (ou seja, `5 * 7`); se `5 * - 5 =` for inserido, o resultado deve ser `-25` (ou seja, `5 * (-5)`). **Especificação de usuário nº 14:** pressionar um operador imediatamente após um `=` deve iniciar um novo cálculo que opera no resultado da avaliação anterior. diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md index 5d43a45def..11b9de70eb 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-markdown-previewer.md @@ -12,7 +12,7 @@ dashedName: build-a-markdown-previewer Atenda às [especificações de usuário abaixo](https://en.wikipedia.org/wiki/User_story) e obtenha aprovação em todos os testes. Dê a ele o seu próprio estilo pessoal. -Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery para completar este projeto. Você deve usar um framework de front-end (como React, por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! +Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e JQuery para completar este projeto. Você deve usar um framework de front-end (como React por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! **Especificação de usuário nº 1:** eu consigo ver um elemento `textarea` com o `id="editor"` correspondente. @@ -28,9 +28,9 @@ Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, Reac **Bônus opcional (você não precisa de aprovação nesse teste):** meu pré-visualizador de marcação interpreta o retorno de carro e o renderiza como elementos `br` (quebra de linha). -Você pode fazer o seu projeto usando este modelo da CodePen e clicando em `Save` para criar seu próprio pen. Como alternativa, use este link da nossa CDN para executar os testes em qualquer ambiente que você preferir: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +Você pode construir seu projeto com usando este template CodePen e clicando `Save` para criar seu próprio pen. Ou você pode usar esse link CDN para rodar os testes em qualquer ambiente que você goste:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` -Quando tiver terminado, envie o URL do seu projeto depois de ele haver passado em todos os testes. +Quando você terminar, envie a URL para o seu projeto em trabalho com todos os testes passando. # --solutions-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md index 28f2fbe8cb..9909c4667d 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/front-end-development-libraries-projects/build-a-random-quote-machine.md @@ -12,7 +12,7 @@ dashedName: build-a-random-quote-machine Atenda às [especificações de usuário abaixo](https://en.wikipedia.org/wiki/User_story) e obtenha aprovação em todos os testes. Dê a ele o seu próprio estilo pessoal. -Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e jQuery para completar este projeto. Você deve usar um framework de front-end (como React, por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! +Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux e JQuery para completar este projeto. Você deve usar um framework de front-end (como React por exemplo) porque essa seção trata de aprender frameworks de front-end. Tecnologias adicionais não listadas acima não são recomendadas e usá-las é por sua conta e risco. Estamos buscando apoiar outros frameworks de front-end, como Angular e Vue, mas eles não são atualmente suportados. Vamos aceitar e tentar corrigir todos os relatórios de problemas que usem o conjunto de tecnologias sugeridas para esse projeto. Boa programação! **Especificação de usuário nº 1:** eu consigo ver um elemento wrapper com o `id="quote-box"` correspondente. @@ -36,9 +36,9 @@ Você pode usar qualquer mistura de HTML, JavaScript, CSS, Bootstrap, SASS, Reac **Especificação de usuário nº 11:** o elemento wrapper `#quote-box` deve ser centralizado horizontalmente. Execute testes com o zoom do navegador em 100% e com a página maximizada. -Você pode fazer o seu projeto usando este modelo da CodePen e, logo após, clicar em `Save` para criar seu próprio projeto. Como alternativa, use este link da nossa CDN para executar os testes em qualquer ambiente que você preferir: `https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` +Você pode construir seu projeto com usando este template CodePen e clicando `Save` para criar seu próprio pen. Ou você pode usar esse link CDN para rodar os testes em qualquer ambiente que você goste:`https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js` -Quando tiver terminado, envie o URL do seu projeto depois de ele haver passado em todos os testes. +Quando você terminar, envie a URL para o seu projeto em trabalho com todos os testes passando. **Observação:** o Twitter não permite que links sejam carregados em um iframe. Tente usar o atributo `target="_blank"` ou `target="_top"` no elemento `#tweet-quote` se o seu tweet não carregar. `target="_top"` vai substituir a aba atual para garantir que o seu trabalho foi salvo. diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/delete-your-jquery-functions.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/delete-your-jquery-functions.md index 2f3d4d2ed4..8583605f5c 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/delete-your-jquery-functions.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/delete-your-jquery-functions.md @@ -35,7 +35,7 @@ Você deve deixar o `$(document).ready(function() {` no início do seu elemento assert(code.match(/\$\(document\)\.ready\(function\(\)\s?\{/g)); ``` -Você deve deixar intacto o fechamento `});` da função `document.ready`. +Você deve deixar intacto o fechamento `})` da função `document.ready`. ```js assert(code.match(/.*\s*\}\);/g)); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md index 3341eb2ace..d9496b382c 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-class-using-jquery.md @@ -19,9 +19,9 @@ Primeiro, vamos ter como alvo seus elementos `div` com a classe `well` usando o Observe que, assim como com declarações CSS, você digita um `.` antes do nome da classe. -Em seguida, use a função `.addClass()` do jQuery para adicionar as classes `animated e shake`. +Em seguida, use a função `.addClass()` do jQuery para adicionar as classes `animated` e `shake`. -Por exemplo, você poderia fazer todos os elementos com a classe `text-primary` sacudir adicionando o seguinte ao seu `$(document).ready(function() {`: +Por exemplo, você poderia fazer todos os elementos com a classe `text-primary` sacudir adicionando o seguinte à sua `document ready function`: ```js $(".text-primary").addClass("animated shake"); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-id-using-jquery.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-id-using-jquery.md index e77ab308b6..f9f1035397 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-id-using-jquery.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-elements-by-id-using-jquery.md @@ -17,7 +17,7 @@ Primeiro, vamos tomar como alvo seu elemento `button` com o id `target3` usando Note que, assim como as declarações CSS, você digita um `#` antes do nome do id. -Em seguida use a função `.addClass` do jQuery para adicionar as classes `animated` e `fadeOut`. +Em seguida use a função `.addClass()` do jQuery para adicionar as classes `animated` e `fadeOut`. Aqui está como você faria o elemento `button` com o id `target6` desaparecer: diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-even-elements-using-jquery.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-even-elements-using-jquery.md index a4f2b59774..ac4f1c624b 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-even-elements-using-jquery.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-even-elements-using-jquery.md @@ -13,7 +13,7 @@ dashedName: target-even-elements-using-jquery Você também pode ter como alvo elementos baseados em suas posições usando os seletores `:odd` ou `:even`. -Note que jQuery é indexado a zero, o que significa que o primeiro elemento em uma seleção tem a posição 0. Isso pode ser um pouco confuso, pois, contra-intuitivamente, `:odd` seleciona o segundo elemento (position1), fourth element (position 3) e assim por diante. +Note que jQuery é indexado a zero, o que significa que o primeiro elemento em uma seleção tem a posição 0. Isso pode ser um pouco confuso, pois, contraintuitivamente, `:odd` seleciona o segundo elemento (position1), fourth element (position 3) e assim por diante. Aqui está como você teria como alvo todos os elementos ímpares com a classe `target` e dar a eles as classes: diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-html-elements-with-selectors-using-jquery.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-html-elements-with-selectors-using-jquery.md index b913badc71..e0e03521cf 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-html-elements-with-selectors-using-jquery.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/jquery/target-html-elements-with-selectors-using-jquery.md @@ -23,7 +23,7 @@ Por exemplo, vamos fazer todos os nossos elementos `button` quicar. Basta adicio $("button").addClass("animated bounce"); ``` -Note que nós já incluímos ambas as bibliotecas jQuery e Animate.css por trás dos panos para que você possa utilizá-las no editor. Então você está usando jQuery para aplicar a classe `bounce` do Animate.css ao seus elementos `button`. +Note que nós já incluímos ambas as bibliotecas jQuery e Animate.css por trás dos panos para que você possa utilizá-las no editor. Então você está usando jQuery para aplicar a classe `bounce` do Animate.css ao seus elementos `button`. # --hints-- @@ -39,7 +39,7 @@ Você deve usar apenas jQuery para adicionar essas classes ao elemento. assert(!code.match(/class.*animated/g)); ``` -Seu código jQuery deve estar dentro da função `$(document).ready()`. +Seu código jQuery deve estar dentro da função `$(document).ready();`. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app.md index f87655676e..9a546a9d1c 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/connect-redux-to-the-messages-app.md @@ -18,7 +18,7 @@ O editor de código tem todo o código que você escreveu nesta seção até ago # --hints-- -O `AppWrapper` deve ser renderizardo na página. +O `AppWrapper` deve ser renderizado na página. ```js assert( @@ -40,7 +40,7 @@ assert( ); ``` -O componente `Presentational` deve renderizar os elementos `h2`, `input`, `button`, e `ul`. +O componente `Presentational` deve renderizar os elementos `h2`, `input`, `button` e `ul`. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/manage-state-locally-first.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/manage-state-locally-first.md index be58042b20..2679af7bd2 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/manage-state-locally-first.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react-and-redux/manage-state-locally-first.md @@ -20,7 +20,7 @@ Finalmente, use o `ul` para mapear em cima do array `messages` e o renderize na # --hints-- -O componente `DisplayMessages` deve inicializar com o estado igual a `{ input: "", messages: []}`. +O componente `DisplayMessages` deve inicializar com o estado igual a `{ input: "", messages: [] }`. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/add-inline-styles-in-react.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/add-inline-styles-in-react.md index ebf2aca110..03002c8113 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/add-inline-styles-in-react.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/add-inline-styles-in-react.md @@ -1,6 +1,6 @@ --- id: 5a24c314108439a4d4036182 -title: Adicione estilos em linha no React +title: Adicionar estilos em linha no React challengeType: 6 forumTopicId: 301378 dashedName: add-inline-styles-in-react @@ -8,7 +8,7 @@ dashedName: add-inline-styles-in-react # --description-- -Você pode ter percebido no último desafio que existem diversas outras diferenças de sintaxe de estilos HTML em linha em adição ao atributo `style` definido para um objeto JavaScript. Primeiro, os nomes de certas propriedades de estilo CSS usam camel case. Por exemplo, o último desafio definiu o tamanho da fonte com `fontSize` ao invés de `font-size`. Palavras com hifens como `font-size` são sintaxes inválidas para propriedades de objeto JavaScript, então React usa camel case. Como regra, qualquer propriedades de estilos com hífen são escritas usando camel case em JSX. +Você pode ter percebido no último desafio que existem diversas outras diferenças de sintaxe de estilos HTML em linha em adição ao atributo `style` definido para um objeto JavaScript. Primeiro, os nomes de certas propriedades de estilo CSS usam camel case. Por exemplo, o último desafio definiu o tamanho da fonte com `fontSize` ao invés de `font-size`. Palavras com hifens como `font-size` são sintaxes inválidas para propriedades de objeto JavaScript, então React usa camel case. Como regra, qualquer propriedades de estilos com hífen são escritas usando camel case em JSX. Todas as unidades de valor de comprimento das propriedades (como `height`,`width`, e `fontSize`) são assumidos para estar em `px` a não ser que seja especificado outra forma. Se você quiser usar `em`, por exemplo, você envolve o valor e as unidades em aspas, como `{fontSize: "4em"}`. Além dos valores de comprimento que tem como padrão `px`, todas os outros valores de propriedade devem estar entre aspas. @@ -30,7 +30,7 @@ A variável `styles` devem ter a propriedade `color` definida com o valor `purpl assert(styles.color === 'purple'); ``` -A variável `styles` devem ter a propriedade `fontSize` definida com o valor `40`. +A variável `styles` deve ter a propriedade `fontSize` definida com o valor `40`. ```js assert(styles.fontSize === 40); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/bind-this-to-a-class-method.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/bind-this-to-a-class-method.md index a0180a9e92..da10d53094 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/bind-this-to-a-class-method.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/bind-this-to-a-class-method.md @@ -24,7 +24,7 @@ Assim que você completar os passos acima você deve ser capaz de clicar o botã # --hints-- -`MyComponent` deve retornar um elemento `div` o qual envolve dois elementos, os elementos `button` e `h1`, nessa ordem. +`MyComponent` deve retornar um elemento `div` o qual envolve dois elementos, os elementos button e `h1`, nessa ordem. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/change-inline-css-conditionally-based-on-component-state.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/change-inline-css-conditionally-based-on-component-state.md index d5837494eb..bc3578630f 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/change-inline-css-conditionally-based-on-component-state.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/change-inline-css-conditionally-based-on-component-state.md @@ -10,7 +10,7 @@ dashedName: change-inline-css-conditionally-based-on-component-state Nesse ponto, você já viu diversas aplicações de renderização condicional e o uso de estilos em linha. Aqui está mais um exemplo que combina ambos esses tópicos. Você também pode renderizar CSS condicionalmente baseado no estado de um componente React. Para fazer isso, você verifica por uma condição, e se essa condição for atendida, você modifica o objeto styles que foi atribuído aos elementos do JSX no método de renderização. -É importante entender esse paradigma porque é uma mudança dramática da abordagem mais tradicional de aplicar estilos ao modificar diretamente os elementos DOM (o que é muito comum com jQuery, por exemplo). Nessa abordagem, você precisa monitorar quando um elemento mudar e também lidar com a manipulação diretamente. Pode se tornar difícil acompanhar as mudanças, tornando a interface de usuário potencialmente imprevisível. Quando você define um objeto estilo baseado em uma condição, você descreve como a interface deve se parecer com uma função do estado da aplicação. Há um fluxo claro de informação que só avança em uma direção. Esse é o método preferido ao escrever aplicações com React. +É importante entender esse paradigma porque é uma mudança dramática da abordagem mais tradicional de aplicar estilos ao modificar diretamente os elementos DOM (o que é muito comum com jQuery, por exemplo). Nessa abordagem, você precisa monitorar quando um elemento mudar e também lidar com a manipulação diretamente. Pode se tornar difícil acompanhar as mudanças, tornando a interface de usuário potencialmente imprevisível. Quando você define um objeto estilo baseado em uma condição, você descreve como a interface deve se parecer com uma função do estado da aplicação. Há um fluxo claro de informação que só avança em uma direção. Esse é o método preferido ao escrever aplicações com React. # --instructions-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/compose-react-components.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/compose-react-components.md index f8d2dde2cd..bd8348bd7e 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/compose-react-components.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/compose-react-components.md @@ -29,7 +29,7 @@ assert( ); ``` -O componente `TypesOfFood` deve retornar o component `Fruits`. +O componente `TypesOfFood` deve retornar o componente `Fruits`. ```js assert( @@ -55,7 +55,7 @@ assert( ); ``` -O componente `Fruits` deve retornar o componente `Vegetables` abaixo do componente `Fruits`. +O componente `TypesOfFood` deve retornar o componente `Vegetables` abaixo do componente `Fruits`. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-complex-jsx-element.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-complex-jsx-element.md index c367228e99..68750ceae5 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-complex-jsx-element.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-complex-jsx-element.md @@ -52,7 +52,7 @@ A constante `JSX` deve retornar um elemento `div`. assert(JSX.type === 'div'); ``` -O `div` deve conter uma tag `h1` como o primeiro elemento. +A `div` deve conter uma tag `h1` como o primeiro elemento. ```js assert(JSX.props.children[0].type === 'h1'); @@ -64,7 +64,7 @@ A `div` deve conter uma tag `p` como o segundo elemento. assert(JSX.props.children[1].type === 'p'); ``` -O `div` deve conter uma tag `ul` como o terceiro elemento. +A `div` deve conter uma tag `ul` como o terceiro elemento. ```js assert(JSX.props.children[2].type === 'ul'); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-simple-jsx-element.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-simple-jsx-element.md index 9a4ec8d617..1be303f1db 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-simple-jsx-element.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-simple-jsx-element.md @@ -12,7 +12,7 @@ O React é uma biblioteca de visualização de código aberto criada e mantida p React usa a sintaxe de extensão do JavaScript chamada JSX que o permite escrever HTML diretamente no JavaScript. Isso possui diversos benefícios. Ela permite a você usar todo o poder programático do JavaScript dentro do HTML, e ajuda a manter o seu código legível. Em grande parte, JSX é semelhante ao HTML que você já aprendeu, no entanto existem algumas diferenças chaves que cobriremos durante esses desafios. -Por exemplo, porque o JSX é uma extensão sintática de JavaScript, você realmente pode escrever JavaScript diretamente dentro do JSX. Para isso, você simplesmente inclui o código que você quer que seja tratado como JavaScript dentro de chaves: `{'this is treated as JavaScript code'}`. Mantenha isso em mente, já que é utilizado em diversos desafios futuros. +Por exemplo, porque o JSX é uma extensão sintática de JavaScript, você realmente pode escrever JavaScript diretamente dentro do JSX. Para isso, você simplesmente inclui o código que você quer que seja tratado como JavaScript dentro de chaves: `{ 'this is treated as JavaScript code' }`. Mantenha isso em mente, já que é utilizado em diversos desafios futuros. No entanto, porque JSX não é JavaScript válido, código JSX precisa ser compilado em JavaScript. O transpilador Babel é uma ferramenta popular para esse processo. Para sua conveniência, já está adicionado por trás dos panos para esses desafios. Se por acaso você escrever JSX inválido sintaticamente, você verá o primeiro teste nesses desafios falhar. diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-stateful-component.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-stateful-component.md index 9b2ddd1b63..35bcaf0513 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-stateful-component.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/create-a-stateful-component.md @@ -10,7 +10,7 @@ dashedName: create-a-stateful-component Um dos tópicos mais importantes em React é `state`. State consiste em qualquer dado que sua aplicação precisar saber, que pode ser alterado durante o tempo. Você quer que seus aplicativos respondam a mudanças de estado e apresentem uma interface atualizada quando necessário. React oferece uma boa solução para o gerenciamento de estados de aplicações web modernas. -Você pode criar um estado em um componente React ao declarar a propriedade `state` na classe do componente no seu `constructor`. Isso inicializa o componente com `state` quando é criado. A propriedade `state` deve ser definida para um `objeto` JavaScript. Declarando, ele se parece com isso: +Você pode criar um estado em um componente React ao declarar a propriedade `state` na classe do componente no seu `constructor`. Isso inicializa o componente com `state` quando é criado. A propriedade `state` deve ser definida para um `object` JavaScript. Declarando, ele se parece com isso: ```jsx this.state = { diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/introducing-inline-styles.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/introducing-inline-styles.md index 00b3123d90..61d7747f73 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/introducing-inline-styles.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/introducing-inline-styles.md @@ -1,6 +1,6 @@ --- id: 5a24c314108439a4d4036181 -title: Introducing Inline Styles +title: Introduzir estilos em linha challengeType: 6 forumTopicId: 301395 dashedName: introducing-inline-styles @@ -8,33 +8,32 @@ dashedName: introducing-inline-styles # --description-- -There are other complex concepts that add powerful capabilities to your React code. But you may be wondering about the more simple problem of how to style those JSX elements you create in React. You likely know that it won't be exactly the same as working with HTML because of [the way you apply classes to JSX elements](/learn/front-end-development-libraries/react/define-an-html-class-in-jsx). +Existem outros conceitos complexos que adicionam recursos poderosos ao seu código React. Mas você pode estar se perguntando sobre o problema mais simples de como estilizar esses elementos JSX que você cria em React. Você provavelmente sabe que não será exatamente o mesmo que trabalhar com HTML por causa [da forma como aplica classes aos elementos JSX](/learn/front-end-development-libraries/react/define-an-html-class-in-jsx). -If you import styles from a stylesheet, it isn't much different at all. You apply a class to your JSX element using the `className` attribute, and apply styles to the class in your stylesheet. Another option is to apply inline styles, which are very common in ReactJS development. +Se você importar estilos de uma folha de estilos, não é muito diferente. Você aplica uma classe ao seu elemento JSX usando o atributo `className` e aplica estilos à classe em sua folha de estilos. Outra opção é aplicar estilos em linha, que são muito comuns no desenvolvimento de ReactJS. -You apply inline styles to JSX elements similar to how you do it in HTML, but with a few JSX differences. Here's an example of an inline style in HTML: +Você aplica estilos em linha em elementos JSX similares a como você faz isso em HTML, mas com algumas diferenças em JSX. Aqui está um exemplo de estilo integrado em HTML: ```jsx
Mellow Yellow
``` -JSX elements use the `style` attribute, but because of the way JSX is transpiled, you can't set the value to a `string`. Instead, you set it equal to a JavaScript `object`. Here's an example: +Elementos JSX usam o atributo `style`, mas por causa da forma como o JSX é transpilado, você não pode definir o valor para uma `string`. Em vez disso, você o definiu para ser igual a um `object` em JavaScript. Exemplo: ```jsx
Mellow Yellow
``` -Notice how we camelCase the `fontSize` property? This is because React will not accept kebab-case keys in the style object. React will apply the correct property name for us in the HTML. +Percebeu como colocamos em camelCase a propriedade `fontSize`? Isso é porque o React não aceitará chaves hifenizadas (em kebab-case) no objeto de estilo. React aplicará o nome de propriedade correto para nós no HTML. # --instructions-- -Add a `style` attribute to the `div` in the code editor to give the text a color of red and font size of `72px`. - -Note that you can optionally set the font size to be a number, omitting the units `px`, or write it as `72px`. +Adicione um atributo `style` para o `div` no editor de código para dar ao texto a cor vermelha e tamanho da fonte de `72px`. +Note que você pode opcionalmente definir o tamanho da fonte como um número. omitindo as unidades `px`, ou escreva-o como `72px`. # --hints-- -The component should render a `div` element. +O componente deve renderizar um elemento `div`. ```js assert( @@ -45,7 +44,7 @@ assert( ); ``` -The `div` element should have a color of `red`. +O elemento `div` deve ter a cor `red`. ```js assert( @@ -56,7 +55,7 @@ assert( ); ``` -The `div` element should have a font size of `72px`. +O elemento `div` deve ter um tamanho de fonte de `72px`. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/optimize-re-renders-with-shouldcomponentupdate.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/optimize-re-renders-with-shouldcomponentupdate.md index 81a0219306..cac2ca1d61 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/optimize-re-renders-with-shouldcomponentupdate.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/optimize-re-renders-with-shouldcomponentupdate.md @@ -10,7 +10,7 @@ dashedName: optimize-re-renders-with-shouldcomponentupdate Até agora, se qualquer componente recebe um novo `state` ou novas `props`, ele se renderiza novamente com todos os seus filhos. Normalmente isto está ok. Mas React fornece um método de ciclo de vida que você pode chamar quando componentes filhos recebem um novo `state` ou `props`, e declarar especificamente se os componentes devem atualizar ou não. O método é `shouldComponentUpdate()`, e leva `nextProps` e `nextState` como parâmetros. -Esse método é uma maneira útil de otimizar o desempenho. Por exemplo, o comportamento padrão é que seu componente renderiza novamente quando recebe novas `props`, mesmo que as `props` não tenham mudado. Você pode usar `shouldComponentUpdate()` para evitar isso comparando as `props`. O método deve retornar um valor `booleano` que indica ao React se deve ou não atualizar o componente. Você pode comparar os "props" atuais (`this.props`) para os próximos props (`nextProps`) para determinar se você precisa atualizar ou não, e retorne `true` ou `false` de acordo. +Esse método é uma maneira útil de otimizar o desempenho. Por exemplo, o comportamento padrão é que seu componente renderiza novamente quando recebe novas `props`, mesmo que as `props` não tenham mudado. Você pode usar `shouldComponentUpdate()` para evitar isso comparando as `props`. O método deve retornar um valor `boolean` que indica ao React se deve ou não atualizar o componente. Você pode comparar os "props" atuais (`this.props`) para os próximos props (`nextProps`) para determinar se você precisa atualizar ou não, e retorne `true` ou `false` de acordo. # --instructions-- @@ -45,7 +45,7 @@ assert( ); ``` -O componente
OnlyEvens` deve retornar uma tag h1` que renderiza o valor de `this.props.value`. +O componente `OnlyEvens` deve retornar uma tag `h1` que renderiza o valor de `this.props.value`. ```js (() => { diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/pass-props-to-a-stateless-functional-component.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/pass-props-to-a-stateless-functional-component.md index 701f13f679..ea4af9d850 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/pass-props-to-a-stateless-functional-component.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/pass-props-to-a-stateless-functional-component.md @@ -22,7 +22,7 @@ Você usa **atributos HTML personalizados** criados por você e suportados por R const Welcome = (props) =>

Hello, {props.user}!

``` -É padrão chamar esse valor `"props"` e, quando lidar com componentes funcionais sem estado, você basicamente considera isso como um argumento para uma função que retorna JSX. Você pode acessar o valor do argumento no corpo da função. Com componentes de classe, você verá que isto é um pouco diferente. +É padrão chamar esse valor `props` e, quando lidar com componentes funcionais sem estado, você basicamente considera isso como um argumento para uma função que retorna JSX. Você pode acessar o valor do argumento no corpo da função. Com componentes de classe, você verá que isto é um pouco diferente. # --instructions-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-a-class-component-to-the-dom.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-a-class-component-to-the-dom.md index ce34a31953..048a23ea42 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-a-class-component-to-the-dom.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-a-class-component-to-the-dom.md @@ -16,7 +16,7 @@ Componentes do React são passados a `ReactDOM.render()` um pouco diferente dos # --instructions-- -Os componentes `Fruits` e `Vegetables` são definidos para você nos bastidores. Renderize ambos os componentes como filhos do componente `TypesOfFood` e, em seguida, renderize `TypesOfFood` para o DOM. Há uma `div` com `id='challenge-node'` disponível para você usar. +Os componentes `Fruits` e `Vegetables` são definidos para você nos bastidores. Renderize ambos os componentes como filhos do componente `TypesOfFood` e, em seguida, renderize `TypesOfFood` para o DOM. Há um `div` com `id='challenge-node'` disponível para você usar. # --hints-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md index ad40743622..80e9d5cae5 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-conditionally-from-props.md @@ -8,7 +8,7 @@ dashedName: render-conditionally-from-props # --description-- -Até agora, você viu como usar o `if/else`, `&&`, e o operador ternário (`condition ? expressionIfTrue : expressionIfFalse`) para tomar decisões condicionais sobre o que renderizar e quando. No entanto, resta um tópico importante para discutir que permite que você combine todos esses conceitos com outro poderoso recurso React: props. Usar props para renderizar código condicionalmente é muito comum entre desenvolvedores React — isto é, eles usam o valor de uma determinada propriedade para tomar decisões automaticamente sobre o que renderizar. +Até agora, você viu como usar a condição `if/else`, `&&` e o operador ternário (`condition ? expressionIfTrue : expressionIfFalse`) para tomar decisões condicionais sobre o que renderizar e quando. No entanto, resta um tópico importante para discutir que permite que você combine todos esses conceitos com outro poderoso recurso React: props. Usar props para renderizar código condicionalmente é muito comum entre desenvolvedores React — isto é, eles usam o valor de uma determinada propriedade para tomar decisões automaticamente sobre o que renderizar. Neste desafio, você vai configurar um componente filho para tomar decisões de renderização com base em props. Você também usará o operador ternário, mas você pode ver como vários dos outros conceitos que foram abordados nos últimos desafios poderão ser igualmente úteis neste contexto. diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-html-elements-to-the-dom.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-html-elements-to-the-dom.md index f54ce9c64f..50ae9265df 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-html-elements-to-the-dom.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/render-html-elements-to-the-dom.md @@ -16,7 +16,7 @@ Como você esperaria, `ReactDOM.render()` deve ser chamado após as declaraçõe # --instructions-- -O editor de código tem um componente JSX simples. Use o método `ReactDOM.render()` para renderizar este componente na página. Você pode passar elementos JSX definidos diretamente como o primeiro argumento e usar `document.getElementById()` para selecionar o nó do DOM onde renderizá-los. Há uma `div` com `id='challenge-node'` disponível para você usar. Certifique-se de não alterar a constante `JSX`. +O editor de código tem um componente JSX simples. Use o método `ReactDOM.render()` para renderizar este componente na página. Você pode passar elementos JSX definidos diretamente como o primeiro argumento e usar `document.getElementById()` para selecionar o nó do DOM onde renderizá-los. Há um `div` com `id='challenge-node'` disponível para você usar. Certifique-se de não alterar a constante `JSX`. # --hints-- diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use--for-a-more-concise-conditional.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use--for-a-more-concise-conditional.md index b584b92a5c..aab80194a5 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use--for-a-more-concise-conditional.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use--for-a-more-concise-conditional.md @@ -1,6 +1,6 @@ --- id: 5a24c314108439a4d4036185 -title: Use && para uma forma mais concisa do condicional +title: Use && for a More Concise Conditional challengeType: 6 forumTopicId: 301413 dashedName: use--for-a-more-concise-conditional diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-a-ternary-expression-for-conditional-rendering.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-a-ternary-expression-for-conditional-rendering.md index 7626aef70f..d681b75282 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-a-ternary-expression-for-conditional-rendering.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-a-ternary-expression-for-conditional-rendering.md @@ -22,15 +22,16 @@ Uma vez que o componente está renderizando informações na página, os usuári # --hints-- -O componente `CheckUserAge` deve renderizar com um único elemento `input` e um único elemento
button`.

+O componente `CheckUserAge` deve renderizar com um único elemento `input` e um único elemento`button`. -
assert(
+```js
+assert(
   Enzyme.mount(React.createElement(CheckUserAge)).find('div').find('input')
     .length === 1 &&
     Enzyme.mount(React.createElement(CheckUserAge)).find('div').find('button')
       .length === 1
 );
-`
+``` O state do componente `CheckUserAge` deve ser inicializado com uma propriedade de `userAge` e uma propriedade `input`, ambos definidos com o valor de uma string vazia. diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-react-to-render-nested-components.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-react-to-render-nested-components.md index 1c9ae576ea..7c09499c95 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-react-to-render-nested-components.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-react-to-render-nested-components.md @@ -42,7 +42,7 @@ assert( ); ``` -O componente `TypesOfFood` deve retornar os elementos `h2` e `ul`. +O componente `TypesOfFruit` deve retornar os elementos `h2` e `ul`. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md index 712c60a2c3..d3fa8e48a3 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/use-state-to-toggle-an-element.md @@ -36,7 +36,7 @@ Observe que você tem que envolver o objeto literalmente entre parênteses, caso # --instructions-- -`MyComponent` tem uma propriedade `visibilty` que foi inicializada como `false`. O método de renderização retorna uma view se o valor de `visibility` for verdadeiro e uma view diferente se for falsa. +`MyComponent` tem uma propriedade `visibility` que foi inicializada como `false`. O método de renderização retorna uma view se o valor de `visibility` for verdadeiro e uma view diferente se for falsa. Atualmente, não há forma de atualizar a propriedade `visibility` no `state` do componente. O valor deve alternar entre verdadeiro e falso. Há um manipulador de cliques no botão que aciona um método de classe chamado `toggleVisibility()`. Passe uma função para `setState` para definir esse método para que o `state` de `visibility` alterne para o valor oposto quando o método for chamado. Se `visibility` for `false`, o método define para `true`, e vice-versa. diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/write-a-react-component-from-scratch.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/write-a-react-component-from-scratch.md index 1c0378cf82..e62b347d66 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/react/write-a-react-component-from-scratch.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/react/write-a-react-component-from-scratch.md @@ -40,7 +40,7 @@ assert( ); ``` -`MyComponent` deve existir e ser rendizado no DOM. +`MyComponent` deve existir e ser renderizado no DOM. ```js assert(document.getElementById('challenge-node').childNodes.length === 1); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/copy-an-object-with-object.assign.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/copy-an-object-with-object.assign.md index 605d23c587..7f7a0f18fc 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/copy-an-object-with-object.assign.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/copy-an-object-with-object.assign.md @@ -8,7 +8,7 @@ dashedName: copy-an-object-with-object-assign # --description-- -Os últimos desafios funcionaram com arrays, mas também existem maneiras de ajudar a impor a imutabilidade do state quando o state for um `object`. Uma ferramenta útil para lidar com objetos é o `Object.assign()`. `Object.assign()` recebe um objeto alvo e objetos fonte e mapeia propriedades dos objetos de origem para o objeto alvo. Qualquer propriedades correspondentes são substituídas por propriedades nos objetos de origem. Esse comportamento é comumente usado para fazer cópias rasas de objetos, passando um objeto vazio como o primeiro argumento seguido do(s) objeto(s) que você deseja copiar. Exemplo: +Os últimos desafios funcionaram com arrays, mas também existem maneiras de ajudar a impor a imutabilidade do state quando o state for um `object`. Uma ferramenta útil para lidar com objetos é a utilidade do `Object.assign()`. `Object.assign()` recebe um objeto alvo e objetos fonte e mapeia propriedades dos objetos de origem para o objeto alvo. Qualquer propriedades correspondentes são substituídas por propriedades nos objetos de origem. Esse comportamento é comumente usado para fazer cópias rasas de objetos, passando um objeto vazio como o primeiro argumento seguido do(s) objeto(s) que você deseja copiar. Exemplo: ```js const newObject = Object.assign({}, obj1, obj2); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/dispatch-an-action-event.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/dispatch-an-action-event.md index 81f2124aa9..113711af0c 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/dispatch-an-action-event.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/dispatch-an-action-event.md @@ -29,7 +29,7 @@ Chamando a função `loginAction` deve retornar um objeto com a propriedade `typ assert(loginAction().type === 'LOGIN'); ``` -A store deve ser inicializada com um objeto com a propriedade `login` definido como `false`. +A store deve ser inicializada com um objeto com a propriedade `login` definida como `false`. ```js assert(store.getState().login === false); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/handle-an-action-in-the-store.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/handle-an-action-in-the-store.md index b4a9a9b2ec..0e8b208b96 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/handle-an-action-in-the-store.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/handle-an-action-in-the-store.md @@ -18,7 +18,7 @@ O editor de código tem o exemplo anterior, bem como o início de uma função ` # --hints-- -Chamar a função `loginAction` deve retornar um objeto com a propriedade `type` definida para a string `LOGIN`. +Chamar a função `loginAction` deve retornar um objeto com a propriedade type definida para a string `LOGIN`. ```js assert(loginAction().type === 'LOGIN'); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/send-action-data-to-the-store.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/send-action-data-to-the-store.md index 56db60380d..6a8a3b84fe 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/send-action-data-to-the-store.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/send-action-data-to-the-store.md @@ -12,9 +12,9 @@ Até agora você aprendeu como enviar ações para a store do Redux, mas até ag # --instructions-- -Há dois criadores de ações básicos, `notesReducer()` e um `addNoteText()`, definidos no editor de código. Finalize o corpo da função `addNodeText()` para que ela retorne um objeto `action`. O objeto deve incluir a propriedade `type` com o valor `ADD_NOTE` e também uma propriedade `text` definida para o dado `note` que foi passado ao criador de ação. Quando você chama o criador de ação, você passará uma informação note específica que você pode acessar para o objeto. +Há dois criadores de ações básicos, `notesReducer()` e um `addNoteText()`, definidos no editor de código. Finalize o corpo da função `addNoteText()` para que ela retorne um objeto `action`. O objeto deve incluir a propriedade `type` com o valor `ADD_NOTE` e também uma propriedade `text` definida para o dado `note` que foi passado ao criador de ação. Quando você chama o criador de ação, você passará uma informação note específica que você pode acessar para o objeto. -Em seguida, termine de escreve a instrução `switch` no `notesReducer()`. Você precisa adicionar um caso que lide com ações do `addNodeText()`. Esse caso deve ser acionado sempre que há uma ação do tipo `ADD_NOTE` e ele deve retornar a propriedade `text` na `action` chegando como o novo `state`. +Em seguida, termine de escreve a instrução `switch` no `notesReducer()`. Você precisa adicionar um caso que lide com ações do `addNoteText()`. Esse caso deve ser acionado sempre que há uma ação do tipo `ADD_NOTE` e ele deve retornar a propriedade `text` na `action` chegando como o novo `state`. A ação é despachada no final do código. Quando terminar, rode o código e olhe o console. Isso é tudo que é necessário para enviar dados específicos de ações ao store e o usar quando você atualizar o `state` do store. @@ -31,7 +31,7 @@ assert( ); ``` -Despachar uma ação do tipo `ADD_NOTE` com o criador de ação `addNodeText` deve atualizar o `state` para a string passada para o criador da ação. +Despachar uma ação do tipo `ADD_NOTE` com o criador de ação `addNoteText` deve atualizar o `state` para a string passada para o criador da ação. ```js assert( diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-a-switch-statement-to-handle-multiple-actions.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-a-switch-statement-to-handle-multiple-actions.md index 6742c27d5e..33e272c4f5 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-a-switch-statement-to-handle-multiple-actions.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-a-switch-statement-to-handle-multiple-actions.md @@ -18,13 +18,13 @@ O editor de código tem uma store, actions e criadores de actions configurados p # --hints-- -Chamar a função `loginUser` deve retornar um objeto com a propriedade `type` definida para a string `LOGIN`. +Chamar a função `loginUser` deve retornar um objeto com a propriedade type definida para a string `LOGIN`. ```js assert(loginUser().type === 'LOGIN'); ``` -Chamar a função `logoutUser` deve retornar um objeto com a propriedade `type` definida para a string `LOGOUT`. +Chamar a função `logoutUser` deve retornar um objeto com a propriedade type definida para a string `LOGOUT`. ```js assert(logoutUser().type === 'LOGOUT'); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-const-for-action-types.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-const-for-action-types.md index 68904b0702..2f852c090e 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-const-for-action-types.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-const-for-action-types.md @@ -67,7 +67,7 @@ assert( ); ``` -A função `authReducer` deve lidar com vários tipos de ação com um comando `switch`. +A função `authReducer` deve lidar com vários tipos de ação com um comando switch. ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-middleware-to-handle-asynchronous-actions.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-middleware-to-handle-asynchronous-actions.md index 735fe00587..55f5e95fdf 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-middleware-to-handle-asynchronous-actions.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/redux/use-middleware-to-handle-asynchronous-actions.md @@ -28,7 +28,7 @@ O criador de ação `requestingData` deve retornar um objeto de tipo igual ao va assert(requestingData().type === REQUESTING_DATA); ``` -O criador de ação `receivedData` deve retornar um objeto de tipo igual ao valor de `REQUESTING_DATA`. +O criador de ação `receivedData` deve retornar um objeto de tipo igual ao valor de `RECEIVED_DATA`. ```js assert(receivedData('data').type === RECEIVED_DATA); diff --git a/curriculum/challenges/portuguese/03-front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element.md b/curriculum/challenges/portuguese/03-front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element.md index c66ccebc5c..c8b5183ce6 100644 --- a/curriculum/challenges/portuguese/03-front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element.md +++ b/curriculum/challenges/portuguese/03-front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element.md @@ -8,7 +8,7 @@ dashedName: extend-one-set-of-css-styles-to-another-element # --description-- -Sass tem um recurso chamado `extend` que faz com que seja fácil pegar emprestado as regras CSS de um elemento e construr a partir delas em outro. +Sass tem um recurso chamado `extend` que faz com que seja fácil pegar emprestado as regras CSS de um elemento e construir a partir delas em outro. Por exemplo, o bloco abaixo de regras CSS estiliza uma classe `.panel`. Tem um `background-color`, um `height` e um `border`. diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md index b5ae9d1eb0..c5588391b4 100644 --- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md +++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/exercise-tracker.md @@ -16,6 +16,48 @@ Crie um aplicativo full stack em JavaScript que seja funcionalmente semelhante a 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-- + +Suas respostas devem ter as seguintes estruturas. + +Exercício: + +```js +{ + username: "fcc_test" + description: "test", + duration: 60, + date: "Mon Jan 01 1990", + _id: "5fb5853f734231456ccb3b05" +} +``` + +Usuário: + +```js +{ + username: "fcc_test", + _id: "5fb5853f734231456ccb3b05" +} +``` + +Log: + +```js +{ + username: "fcc_test", + count: 1, + _id: "5fd01a41c5b5cf05d080502f", + log: [{ + description: "test", + duration: 60, + date: "Mon Jan 01 1990", + }] +} +``` + +**Dica:** para a propriedade `date`, o método `toDateString` da API `Date` pode ser usado para conseguir o resultado esperado. + # --hints-- Você deve fornecer seu próprio projeto, não o exemplo de URL. diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md index f506839432..298bdc2617 100644 --- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md +++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/back-end-development-and-apis-projects/url-shortener-microservice.md @@ -88,7 +88,7 @@ async (getUserInput) => { }; ``` -Se você passar um URL inválido que não siga o formato válido `http://www.example.com` , a resposta em JSON conterá `{ error: 'invalid url' }` +Se você passar um URL inválido que não siga o formato válido `http://www.example.com`, a resposta em JSON conterá `{ error: 'invalid url' }` ```js async (getUserInput) => { diff --git a/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md b/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md index b827ea9209..12326f1873 100644 --- a/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md +++ b/curriculum/challenges/portuguese/05-back-end-development-and-apis/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.md @@ -28,7 +28,7 @@ Adicione a versão "2.14.0" do pacote "moment" ao campo `dependencies` do seu ar # --hints-- -"dependencies" deve incluir o "moment" +As "dependencies" devem incluir o "moment" ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md index c2e1d185ef..d8d8a6ea87 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iii---put-method.md @@ -10,29 +10,37 @@ dashedName: run-functional-tests-on-an-api-response-using-chai-http-iii---put-me Lembrando que este projeto está sendo construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). -No próximo exemplo, veremos como enviar dados em uma payload de solicitação (corpo). Vamos testar uma solicitação de PUT. O endpoint `'/travellers'` aceita um objeto JSON que tem essa estrutura: +Ao testar uma solicitação de `PUT`, você geralmente envia dados com ela. Os dados que você inclui com sua solicitação de `PUT` são chamados de corpo (body) da solicitação. + +Para enviar uma solicitação de `PUT` e um objeto JSON para o endpoint `'/travellers'`, você pode usar os métodos `put` e `send` do plugin `chai-http`: + +```js +chai + .request(server) + .put('/travellers') + .send({ + "surname": [last name of a traveller of the past] + }) + ... +``` + +A rota responderá com: ```json { - "surname": [last name of a traveller of the past] + "name": [first name], + "surname": [last name], + "dates": [birth - death years] } ``` -A rota responde com: - -```json -{ - "name": [first name], "surname": [last name], "dates": [birth - death years] -} -``` - -Veja o código do servidor para mais detalhes. +Consulte o código do servidor para ver as diferentes respostas para o endpoint `'/travellers'`. # --instructions-- -Dentro de `tests/2_functional-tests.js`, altere o teste `'send {surname: "Colombo"}'` test (`// #3`): +Em `tests/2_functional-tests.js`, altere o teste `'Send {surname: "Colombo"}'` (`// #3`) e use os métodos `put` e `send` para testar o endpoint `'/travellers'`. -Enviar a seguinte resposta JSON como payload: +Envie o objeto JSON a seguir com a sua solicitação de PUT: ```json { @@ -40,14 +48,14 @@ Enviar a seguinte resposta JSON como payload: } ``` -Verifique o seguinte, dentro da função de callback de `request.end`: +Verifique o seguinte dentro da função de callback de `request.end`: -1. `status` -2. `type` -3. `body.name` -4. `body.surname` +1. O `status` deve ser `200` +2. O `type` deve ser `application/json` +3. O `body.name` deve ser `Cristoforo` +4. O `body.surname` deve ser `Colombo` -Siga a ordem de declarações acima, pois dependemos disso. Não se esqueça de remover `assert.fail()` assim que o teste terminar. +Siga a ordem de declarações acima, pois dependemos disso. Além disso, não se esqueça de remover `assert.fail()` assim que o teste terminar. # --hints-- @@ -65,7 +73,7 @@ Todos os testes devem passar. ); ``` -Você deve testar se 'res.status' será 200. +Você deve testar se `res.status` será 200. ```js (getUserInput) => @@ -81,7 +89,7 @@ Você deve testar se 'res.status' será 200. ); ``` -Você deve testar se 'res.type' será 'application/json'. +Você deve testar se `res.type` será `'application/json'`. ```js (getUserInput) => @@ -97,7 +105,7 @@ Você deve testar se 'res.type' será 'application/json'. ); ``` -Você deve testar se 'res.body.name' será 'Cristoforo'. +Você deve testar se `res.body.name` será `'Cristoforo'`. ```js (getUserInput) => @@ -113,7 +121,7 @@ Você deve testar se 'res.body.name' será 'Cristoforo'. ); ``` -Você deve testar se 'res.body.surname' será 'Colombo'. +Você deve testar se `res.body.surname` será `'Colombo'`. ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md index 0be7c7dab4..5a418a1dc2 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-an-api-response-using-chai-http-iv---put-method.md @@ -8,15 +8,17 @@ dashedName: run-functional-tests-on-an-api-response-using-chai-http-iv---put-met # --description-- -Lembrando que este projeto está sendo construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). Este exercício é semelhante ao anterior. Vejamos mais detalhes aqui. +Lembrando que este projeto está sendo construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). -Agora que vimos como é feito, é a sua vez de fazer do zero. +Este exercício é semelhante ao anterior. + +Agora que você sabe como testar uma solicitação de `PUT`, é sua vez de fazer isso do zero. # --instructions-- -Dentro de `tests/2_functional-tests.js`, altere o teste `'send {surname: "da Verrazzano"}'` test (`// #4`): +Em `tests/2_functional-tests.js`, altere o teste `'Send {surname: "da Verrazzano"}'` (`// #4`) e use os métodos `put` e `send` para testar o endpoint `'/travellers'`. -Envie a resposta em JSON a seguir como payload para a rota `/travellers`: +Envie o objeto JSON a seguir com a sua solicitação de PUT: ```json { @@ -24,14 +26,14 @@ Envie a resposta em JSON a seguir como payload para a rota `/travellers`: } ``` -Verifique o seguinte, dentro de uma função de callback de `request.end`: +Verifique o seguinte dentro da função de callback de `request.end`: -1. `status` -2. `type` -3. `body.name` -4. `body.surname` +1. O `status` deve ser `200` +2. O `type` deve ser `application/json` +3. O `body.name` deve ser `Giovanni` +4. O `body.surname` deve ser `da Verrazzano` -Siga a ordem de declarações acima, pois dependemos disso. Não se esqueça de remover `assert.fail()` assim que o teste terminar. +Siga a ordem de declarações acima, pois dependemos disso. Além disso, não se esqueça de remover `assert.fail()` assim que o teste terminar. # --hints-- @@ -49,7 +51,7 @@ Todos os testes devem passar ); ``` -Você deve testar se 'res.status' será 200 +Você deve testar que `res.status` seja 200 ```js (getUserInput) => @@ -65,7 +67,7 @@ Você deve testar se 'res.status' será 200 ); ``` -Você deve testar se 'res.type' será 'application/json' +Você deve testar se `res.type` será `'application/json'` ```js (getUserInput) => @@ -81,7 +83,7 @@ Você deve testar se 'res.type' será 'application/json' ); ``` -Você deve testar se 'res.body.name' será 'Giovanni' +Você deve testar se `res.body.name` será `'Giovanni'` ```js (getUserInput) => @@ -97,7 +99,7 @@ Você deve testar se 'res.body.name' será 'Giovanni' ); ``` -Você deve testar se 'res.body.surname' será 'da Verrazzano' +Você deve testar se `res.body.surname` será `'da Verrazzano'` ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md index 9967f981d7..0e2a67d475 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http-ii.md @@ -12,9 +12,9 @@ Lembrando que este projeto está sendo construído a partir do [Replit](https:// # --instructions-- -Dentro de `tests/2_functional-tests.js`, altere o teste `'Test GET /hello with your name'` (`// #2`) para afirmar o `status` e a resposta `text` para fazer o teste passar. +Dentro de `tests/2_functional-tests.js`, altere o teste `'Test GET /hello with your name'` (`// #2`) para afirmar o `status` e o `text` da resposta para fazer o teste passar. -Envie seu nome na consulta, acrescentando `?name=` à rota. O endpoint responde com `'hello '`. +Envie seu nome como consulta do URL, acrescentando `?name=` à rota. O endpoint responde com `'hello '`. # --hints-- @@ -32,7 +32,7 @@ Todos os testes devem passar ); ``` -Você deve testar se 'res.status' == 200 +Você deve testar que `res.status` == 200 ```js (getUserInput) => @@ -48,7 +48,7 @@ Você deve testar se 'res.status' == 200 ); ``` -Você deve testar se 'res.text' == 'hello Guest' +Você deve testar se `res.text` == `'hello '` ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md index e29d4feaa6..eb0eae01ed 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-on-api-endpoints-using-chai-http.md @@ -10,37 +10,36 @@ dashedName: run-functional-tests-on-api-endpoints-using-chai-http Lembrando que este projeto está sendo construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). -O Mocha permite testar operações assíncronas. Há uma pequena (GRANDE) diferença. Você consegue identificar? +O Mocha permite que você teste operações assíncronas, como chamadas para endpoints de API, com um plugin chamado `chai-http`. -Podemos testar os endpoints de API usando um plugin, chamado `chai-http`. Vamos ver como isso funciona. E lembre-se: as chamadas de API são assíncronas. - -A seguir, vemos um exemplo de um teste usando `chai-http` para a suite `'GET /hello?name=[name] => "hello [name]"'`. O teste envia uma string de nome em uma string de consulta de url (`?name=John`) usando uma solicitação de `GET` para o `server`. Na função de callback do método `end`, o objeto de resposta (`res`) é recebido e contém a propriedade `status`. O primeiro `assert.equal` verifica se o status é igual a `200`. O segundo `assert.equal` verifica se a string de resposta (`res.text`) é igual a `"hello John"`. +A seguir, vemos um exemplo de um teste usando `chai-http` para a suite chamada `'GET /hello?name=[name] => "hello [name]"'`: ```js suite('GET /hello?name=[name] => "hello [name]"', function () { - test("?name=John", function (done) { + test('?name=John', function (done) { chai .request(server) - .get("/hello?name=John") + .get('/hello?name=John') .end(function (err, res) { - assert.equal(res.status, 200, "response status should be 200"); - assert.equal( - res.text, - "hello John", - 'response should be "hello John"' - ); + assert.equal(res.status, 200, 'Response status should be 200'); + assert.equal(res.text, 'hello John', 'Response should be "hello John"'); done(); }); }); +}); ``` -Observe o parâmetro `done` na função de callback do teste. Chamá-la no final sem um argumento é necessário para sinalizar uma conclusão assíncrona bem-sucedida. +O teste envia uma solicitação de `GET` para o servidor com um nome (name) como a string de consulta do URL (`?name=John`). Na função de callback do método `end`, o objeto de resposta (`res`) é recebido e contém a propriedade `status`. + +O primeiro `assert.equal` verifica se o status é igual a `200`. O segundo `assert.equal` verifica se a string de resposta (`res.text`) é igual a `"hello John"`. + +Além disso, observe o parâmetro `done` na função de callback do teste. Chamá-la sem um argumento no final de um teste é necessário para sinalizar que a operação assíncrona está completa. # --instructions-- -Dentro de `tests/2_functional-tests.js`, altere o teste `'Test GET /hello with no name'` (`// #1`) para afirmar o `status` e a resposta `text` para fazer o teste passar. Não altere os argumentos passados às afirmações. +Dentro de `tests/2_functional-tests.js`, altere o teste `'Test GET /hello with no name'` (`// #1`) para afirmar o `status` e o `text` da resposta para fazer o teste passar. Não altere os argumentos passados para as assertivas. -Não deve haver nome na consulta. O endpoint responde com `hello Guest`. +Não deve haver consulta de URL. Não deve haver consulta de name no URL. O endpoint responde com `hello Guest`. # --hints-- @@ -58,7 +57,7 @@ Todos os testes devem passar ); ``` -Você deve testar se 'res.status' == 200 +Você deve testar que `res.status` == 200 ```js (getUserInput) => @@ -74,7 +73,7 @@ Você deve testar se 'res.status' == 200 ); ``` -Você deve testar se 'res.text' == 'hello Guest' +Você deve testar se `res.text` == `'hello Guest'` ```js (getUserInput) => diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md index 08fe4723f4..4cba1c220b 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser-ii.md @@ -12,17 +12,17 @@ Lembrando que este projeto está sendo construído a partir do [Replit](https:// # --instructions-- -Dentro de `tests/2_functional-tests.js`, no teste `'submit "surname" : "Vespucci" - write your e2e test...'` (`// #6`), automatize o preenchimento e o envio do formulário desde o início: +Em `tests/2_functional-tests.js`, no teste `'Submit the surname "Vespucci" in the HTML form'` (`// #5`), automatize o seguinte: -1. Preencha o formulário com o `surname` `Vespucci` -2. Envie-o pressionando o botão `'submit'` +1. Preencha o formulário com o surname `Vespucci` +2. Pressione o botão Submit -Dentro da função de callback: +Na callback `pressButton`: -1. avalie se o status é `200` -2. avalie se o texto dentro do elemento `span#name` é `'Amerigo'` -3. avalie se o texto dentro do elemento `span#surname` é `'Vespucci'` -4. avalie se o(s) elemento(s) `span#dates` existe(m) e sua contagem é `1` +1. Avalie se o status é OK `200` +2. Avalie se o texto dentro do elemento `span#name` é `'Amerigo'` +3. Avalie se o texto dentro do elemento `span#surname` é `'Vespucci'` +4. Avalie se o(s) elemento(s) `span#dates` existe(m) e sua contagem é `1` Não se esqueça de remover a chamada `assert.fail()`. @@ -32,7 +32,7 @@ Todos os testes devem passar. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=6').then( (data) => { assert.equal(data.state, 'passed'); }, @@ -46,7 +46,7 @@ Você deve avaliar se a solicitação do navegador headless foi bem-sucedida. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=6').then( (data) => { assert.equal(data.assertions[0].method, 'browser.success'); }, @@ -56,11 +56,11 @@ Você deve avaliar se a solicitação do navegador headless foi bem-sucedida. ); ``` -Você deve avaliar se o texto dentro do elemento 'span#name' é 'Amerigo'. +Você deve avaliar se o texto dentro do elemento `span#name` é `'Amerigo'`. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=6').then( (data) => { assert.equal(data.assertions[1].method, 'browser.text'); assert.match(data.assertions[1].args[0], /('|")span#name\1/); @@ -72,11 +72,11 @@ Você deve avaliar se o texto dentro do elemento 'span#name' é 'Amerigo'. ); ``` -Você deve avaliar se o texto dentro do elemento 'span#surname' é 'Vespucci'. +Você deve avaliar se o texto dentro do elemento `span#surname` é `'Vespucci'`. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=6').then( (data) => { assert.equal(data.assertions[2].method, 'browser.text'); assert.match(data.assertions[2].args[0], /('|")span#surname\1/); @@ -88,11 +88,11 @@ Você deve avaliar se o texto dentro do elemento 'span#surname' é 'Vespucci'. ); ``` -Você deve avaliar se o elemento 'span#dates' existe e que sua contagem é 1. +Você deve avaliar se o elemento `span#dates` existe e que sua contagem é 1. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=6').then( (data) => { assert.equal(data.assertions[3].method, 'browser.elements'); assert.match(data.assertions[3].args[0], /('|")span#dates\1/); diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md index c406ae8190..12af74e49b 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/run-functional-tests-using-a-headless-browser.md @@ -10,21 +10,29 @@ dashedName: run-functional-tests-using-a-headless-browser Lembrando que este projeto está sendo construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). -Na visualização principal em HTML, fornecemos um formulário de entrada. Ele envia dados para o endpoint de `PUT /travellers` que usamos acima com uma solicitação Ajax. Quando a requisição é concluída com sucesso, o código do cliente anexa um `
` contendo a informação retornada pela chamada ao DOM. Aqui está um exemplo de como interagir com este formulário: +Na página, há um formulário de entrada. Ele envia dados para o endpoint de `PUT /travellers` como uma solicitação AJAX. + +Quando a requisição é concluída com sucesso, o código do client anexa um `
` contendo a informação na resposta ao DOM. + +Aqui está um exemplo de como usar o Zombie.js para interagir com o formulário: ```js -test('#test - submit the input "surname" : "Polo"', function (done) { - browser.fill('surname', 'Polo').pressButton('submit', function () { - browser.assert.success(); - browser.assert.text('span#name', 'Marco'); - browser.assert.text('span#surname', 'Polo'); - browser.assert.elements('span#dates', 1); - done(); +test('Submit the surname "Polo" in the HTML form', function (done) { + browser.fill('surname', 'Polo').then(() => { + browser.pressButton('submit', () => { + browser.assert.success(); + browser.assert.text('span#name', 'Marco'); + browser.assert.text('span#surname', 'Polo'); + browser.assert.elements('span#dates', 1); + done(); + }); }); -} +}); ``` -Primeiramente, o método `fill` do objeto `browser` preenche o campo `surname` do formulário com o valor `'Polo'`. Imediatamente depois, o método `pressButton` invoca o listener de evento `submit` do formulário. O método `pressButton` é assíncrono. +Primeiramente, o método `fill` do objeto `browser` preenche o campo `surname` do formulário com o valor `'Polo'`. `fill` retorna uma promise. Assim, `then` está encadeado a ela. + +Na callback de `then`, o método `pressButton` do objeto `browser` é usado para invocar o listener de eventos `submit` do formulário. O método `pressButton` é assíncrono. Então, assim que uma resposta é recebida da solicitação de AJAX, algumas afirmações são feitas confirmando: @@ -37,17 +45,17 @@ Finalmente, a função de callback `done` é invocada, o que é necessário devi # --instructions-- -Dentro de `tests/2_functional-tests.js`, no teste `'submit "surname" : "Colombo" - write your e2e test...'` (`// #5`), automatize o preenchimento e o envio do formulário: +Em `tests/2_functional-tests.js`, no teste `'Submit the surname "Colombo" in the HTML form'` (`// #5`), automatize o seguinte: -1. Preencha o formulário -2. Envie-o pressionando o botão `'submit'`. +1. Preencha o formulário com o surname `Colombo` +2. Pressione o botão Submit -Dentro da função de callback: +Na callback `pressButton`: -1. avalie se o status é OK `200` -2. avalie se o texto dentro do elemento `span#name` é `'Cristoforo'` -3. avalie se o texto dentro do elemento `span#surname` é `'Colombo'` -4. avalie se o(s) elemento(s) `span#dates` existe(m) e sua contagem é `1` +1. Avalie se o status é OK `200` +2. Avalie se o texto dentro do elemento `span#name` é `'Cristoforo'` +3. Avalie se o texto dentro do elemento `span#surname` é `'Colombo'` +4. Avalie se o(s) elemento(s) `span#dates` existe(m) e sua contagem é `1` Não se esqueça de remover a chamada `assert.fail()`. @@ -57,7 +65,7 @@ Todos os testes devem passar. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( (data) => { assert.equal(data.state, 'passed'); }, @@ -71,7 +79,7 @@ Você deve avaliar se a solicitação do navegador headless foi bem-sucedida. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( (data) => { assert.equal(data.assertions[0].method, 'browser.success'); }, @@ -81,11 +89,11 @@ Você deve avaliar se a solicitação do navegador headless foi bem-sucedida. ); ``` -Você deve avaliar se o texto dentro do elemento 'span#name' é 'Cristoforo'. +Você deve avaliar se o texto dentro do elemento `span#name` é `'Cristoforo'`. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( (data) => { assert.equal(data.assertions[1].method, 'browser.text'); assert.match(data.assertions[1].args[0], /('|")span#name\1/); @@ -97,11 +105,11 @@ Você deve avaliar se o texto dentro do elemento 'span#name' é 'Cristoforo'. ); ``` -Você deve avaliar se o texto dentro do elemento 'span#surname' é 'Colombo'. +Você deve avaliar se o texto dentro do elemento `span#surname` é `'Colombo'`. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( (data) => { assert.equal(data.assertions[2].method, 'browser.text'); assert.match(data.assertions[2].args[0], /('|")span#surname\1/); @@ -113,11 +121,11 @@ Você deve avaliar se o texto dentro do elemento 'span#surname' é 'Colombo'. ); ``` -Você deve avaliar se o elemento 'span#dates' existe e que sua contagem é 1. +Você deve avaliar se o elemento `span#dates` existe e que sua contagem é 1. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( (data) => { assert.equal(data.assertions[3].method, 'browser.elements'); assert.match(data.assertions[3].args[0], /('|")span#dates\1/); diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md index af609f0c9e..afa65b72a8 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/simulate-actions-using-a-headless-browser.md @@ -9,37 +9,35 @@ dashedName: simulate-actions-using-a-headless-browser Lembrando que este projeto está sendo construído a partir do [Replit](https://replit.com/github/freeCodeCamp/boilerplate-mochachai), ou pose ser clonado no [GitHub](https://github.com/freeCodeCamp/boilerplate-mochachai/). -Nos próximos desafios vamos simular a interação humana com uma página usando um dispositivo chamado 'navegador headless'. +Nos próximos desafios, você vai simular a interação humana com uma página usando um navegador headless. -Um navegador headless é um navegador da web sem interface gráfica. Esse tipo de ferramenta é particularmente útil para testar páginas da web, já que é capaz de renderizar e entender HTML, CSS e JavaScript da mesma maneira que um navegador. +Navegadores headless são navegadores da web sem uma interface gráfica. Eles são capazes de renderizar e interpretar HTML, CSS e JavaScript da mesma maneira que um navegador regular faria, o que os torna particularmente úteis para testar páginas da web. -Para estes desafios, estamos usando o Zombie.JS. É um navegador leve que é totalmente baseado no JS, sem depender de binários adicionais a serem instalados. Esse recurso o torna utilizável em um ambiente como o Replit. Existem muitas outras opções (mais poderosas). +Para os desafios a seguir, você usará o Zombie.js, que é um navegador headless leve que não depende de binários adicionais para ser instalado. Esse recurso o torna utilizável em ambientes limitados, como o Replit. Porém, existem muitas outras opções mais poderosas de navegador headless. -O Mocha permite que você prepare o terreno executando algum código antes dos testes reais. Isto pode ser útil, por exemplo, para criar itens no banco de dados, que serão utilizados em testes sucessivos. +O Mocha permite que você execute código antes de qualquer um dos testes ser executado. Isso pode ser útil para fazer coisas como adicionar entradas que serão usadas no resto dos testes a um banco de dados. -Com um navegador headless, antes dos testes reais, precisamos **visitar** a página que vamos inspecionar. O 'hook' `suiteSetup` é executado apenas uma vez na inicialização da suite. Outros tipos de hook diferentes podem ser executados antes de cada teste, após cada teste, ou no final de uma suite. Consulte a documentação do Mocha para obter mais informações. +Com um navegador headless, antes de executar os testes, você precisa **visitar** a página que você vai testar. + +O hook `suiteSetup` é executado apenas uma vez no começo da suite de teste. + +Há vários outros tipos de hook que podem ser executados antes de cada teste, após cada teste, ou no final de uma suite de testes. Consulte a documentação do Mocha para obter mais informações. # --instructions-- Dentro de `tests/2_functional-tests.js`, imediatamente após a declaração de `Browser`, adicione o URL do seu projeto à propriedade `site` da variável: ```js -Browser.site = 'https://sincere-cone.gomix.me'; // Your URL here +Browser.site = 'https://boilerplate-mochachai.your-username.repl.co'; // Your URL here ``` -Se você estiver testando em um ambiente local, substitua a linha acima por - -```js -Browser.localhost('example.com', process.env.PORT || 3000); -``` - -Dentro de `tests/2_functional-tests.js`, no nível de root da suite `'Functional Tests with Zombie.js'`, instancie uma nova instância do objeto `Browser` com o seguinte código: +Então, no nível de root da suite `'Functional Tests with Zombie.js'`, instancie uma nova instância do objeto `Browser` com o seguinte código: ```js const browser = new Browser(); ``` -Em seguida, use o hook `suiteSetup` para direcionar o `browser` para a rota `/` com o seguinte código: +Depois, use o hook `suiteSetup` para direcionar o `browser` para a rota `/` com o seguinte código: ```js suiteSetup(function(done) { @@ -53,11 +51,9 @@ Todos os testes devem passar. ```js (getUserInput) => - $.get(getUserInput('url') + '/_api/get-tests?type=functional').then( + $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( (data) => { - data.slice(0, 4).forEach((test) => { - assert.equal(test.state, 'passed'); - }) + assert.equal(data.state, 'passed'); }, (xhr) => { throw new Error(xhr.responseText); diff --git a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md index 8b8d0b96bc..281a1f0c4e 100644 --- a/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md +++ b/curriculum/challenges/portuguese/06-quality-assurance/quality-assurance-and-testing-with-chai/test-for-truthiness.md @@ -13,9 +13,9 @@ Lembrando que este projeto está sendo construído a partir do [Replit](https:// `isTrue()` testará o valor booleano `true` e `isNotTrue()` passará quando receber qualquer coisa menos o valor booleano de `true`. ```js -assert.isTrue(true, 'this will pass with the boolean value true'); -assert.isTrue('true', 'this will NOT pass with the string value "true"'); -assert.isTrue(1, 'this will NOT pass with the number value 1'); +assert.isTrue(true, 'This will pass with the boolean value true'); +assert.isTrue('true', 'This will NOT pass with the string value "true"'); +assert.isTrue(1, 'This will NOT pass with the number value 1'); ``` `isFalse()` e `isNotFalse()` também existem e se comportam da mesma forma que seus correspondentes true, exceto porque buscam o valor booleano `false`. diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-102-triangle-containment.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-102-triangle-containment.md index 9705afbc6f..a330746eab 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-102-triangle-containment.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-102-triangle-containment.md @@ -1,6 +1,6 @@ --- id: 5900f3d21000cf542c50fee5 -title: 'Problem 102: Triangle containment' +title: 'Problema 102: Contenção Triangular' challengeType: 5 forumTopicId: 301726 dashedName: problem-102-triangle-containment @@ -8,9 +8,9 @@ dashedName: problem-102-triangle-containment # --description-- -Three distinct points are plotted at random on a Cartesian plane, for which -1000 ≤ x, y ≤ 1000, such that a triangle is formed. +Três pontos distintos são colocados aleatoriamente em um plano cartesiano, para o qual -1000 ≤ x, y ≤ 1000, de modo que um triângulo seja formado. -Consider the following two triangles: +Considere o seguinte exemplo com dois triângulos: ```js const exampleTriangles = [ @@ -19,31 +19,31 @@ const exampleTriangles = [ ]; ``` -It can be verified that first triangle contains the origin, whereas second triangle does not. +É possível verificar que o primeiro triângulo contém a origem, ao passo que o segundo triângulo não. -Using the `triangles` array containing coordinates of triangles, find the number of triangles for which the interior contains the origin. +Usando o array `triangles` contendo coordenadas de triângulos, descubra o número de triângulos para os quais o interior contém a origem. # --hints-- -`triangleContainment(exampleTriangles)` should return a number. +`triangleContainment(exampleTriangles)` deve retornar um número. ```js assert(typeof triangleContainment(_exampleTriangles) === 'number'); ``` -`triangleContainment(exampleTriangles)` should return `1`. +`triangleContainment(exampleTriangles)` deve retornar `1`. ```js assert.strictEqual(triangleContainment(_exampleTriangles), 1); ``` -`triangleContainment(testTriangles1)` should return `19`. +`triangleContainment(testTriangles1)` deve retornar `19`. ```js assert.strictEqual(triangleContainment(_testTriangles1), 19); ``` -`triangleContainment(testTriangles2)` should return `228`. +`triangleContainment(testTriangles2)` deve retornar `228`. ```js assert.strictEqual(triangleContainment(_testTriangles2), 228); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-103-special-subset-sums-optimum.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-103-special-subset-sums-optimum.md index 677153bd67..14fad9ffe6 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-103-special-subset-sums-optimum.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-103-special-subset-sums-optimum.md @@ -1,6 +1,6 @@ --- id: 5900f3d61000cf542c50fee7 -title: 'Problem 103: Special subset sums: optimum' +title: 'Problema 103: Quantidade especial de subconjuntos: ideal' challengeType: 5 forumTopicId: 301727 dashedName: problem-103-special-subset-sums-optimum @@ -8,26 +8,26 @@ dashedName: problem-103-special-subset-sums-optimum # --description-- -Let $S(A)$ represent the sum of elements in set A of size n. We shall call it a special sum set if for any two non-empty disjoint subsets, B and C, the following properties are true: +Vamos $S(A)$ representar a soma dos elementos no conjunto A, de tamanho n. Vamos chamá-la de uma soma especial definida se, para dois subconjuntos disjuntos, B e C, as seguintes propriedades são verdadeiras: -1. $S(B) ≠ S(C)$; that is, sums of subsets cannot be equal. -2. If B contains more elements than C then $S(B) > S(C)$. +1. $S(B) ≠ S(C)$; ou seja, somas de subconjuntos não podem ser iguais. +2. Se B contém mais elementos que C, $S(B) > S(C)$. -If $S(A)$ is minimised for a given n, we shall call it an optimum special sum set. The first five optimum special sum sets are given below. +Se $S(A)$ for minimizado por um determinado n, vamos chamar de um conjunto de soma especial ideal. Os primeiros cinco conjuntos de somas especiais ideais são fornecidos abaixo. $$\begin{align} & n = 1: \\{1\\} \\\\ & n = 2: \\{1, 2\\} \\\\ & n = 3: \\{2, 3, 4\\} \\\\ & n = 4: \\{3, 5, 6, 7\\} \\\\ & n = 5: \\{6, 9, 11, 12, 13\\} \\\\ \end{align}$$ -It seems that for a given optimum set, $A = \\{a_1, a_2, \ldots, a_n\\}$, the next optimum set is of the form $B = \\{b, a_1 + b, a_2 + b, \ldots, a_n + b\\}$, where b is the "middle" element on the previous row. +Parece que, para um determinado conjunto ideal, $A = \\{a_1, a_2, \ldots, a_n\\}$, o próximo conjunto ideal é do formato $B = \\{b, a_1 + b, a_2 + b, \ldots, a_n + b\\}$, onde b é o elemento do "meio" na linha anterior. -By applying this "rule" we would expect the optimum set for $n = 6$ to be $A = \\{11, 17, 20, 22, 23, 24\\}$, with $S(A) = 117$. However, this is not the optimum set, as we have merely applied an algorithm to provide a near optimum set. The optimum set for $n = 6$ is $A = \\{11, 18, 19, 20, 22, 25\\}$, with $S(A) = 115$ and corresponding set string: `111819202225`. +Aplicando esta "regra", esperaríamos que o conjunto ideal para $n = 6$ fosse $A = \\{11, 17, 20, 22, 23, 24\\}$, com $S(A) = 117$. No entanto, este não é o conjunto ideal, já que apenas aplicamos um algoritmo para fornecer um conjunto quase ideal. O conjunto ideal para $n = 6$ é $A = \\{11, 18, 19, 20, 22, 25\\}$, com $S(A) = 115$ e string correspondente do conjunto: `111819202225`. -Given that A is an optimum special sum set for $n = 7$, find its set string. +Dado que A é uma soma especial ideal para $n = 7$, encontre sua string definida. -**Note:** This problem is related to Problem 105 and Problem 106. +**Observação:** este problema está relacionado ao Problema 105 e ao Problema 106. # --hints-- -`optimumSpecialSumSet()` should return the string `20313839404245`. +`optimumSpecialSumSet()` deve retornar a string `20313839404245`. ```js assert.strictEqual(optimumSpecialSumSet(), '20313839404245'); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-26-reciprocal-cycles.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-26-reciprocal-cycles.md index d6ee972f90..ded9c24642 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-26-reciprocal-cycles.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-26-reciprocal-cycles.md @@ -1,6 +1,6 @@ --- id: 5900f3861000cf542c50fe99 -title: 'Problem 26: Reciprocal cycles' +title: 'Problema 26: Dízimas periódicas' challengeType: 5 forumTopicId: 301908 dashedName: problem-26-reciprocal-cycles @@ -8,41 +8,41 @@ dashedName: problem-26-reciprocal-cycles # --description-- -A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given: +Em uma fração unitária, o numerador é 1. A representação decimal das frações unitárias com denominadores de 2 a 10 é a seguinte:
1/2 = 0.5
1/3 = 0.(3)
1/4 = 0.25
1/5 = 0.2
1/6 = 0.1(6)
1/7 = 0.(142857)
1/8 = 0.125
1/9 = 0.(1)
1/10 = 0.1
-Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle. +A expressão 0.1(6) significa 0.16666666... e tem um ciclo recorrente (que se repete) de 1 algarismo. Podemos notar que 1/7 tem um ciclo recorrente de 6 dígitos. -Find the value of `d` < `n` for which 1/d contains the longest recurring cycle in its decimal fraction part. +Calcule o valor de `d` < `n` onde 1/d contém o ciclo recorrente mais longo na parte decimal. # --hints-- -`reciprocalCycles(700)` should return a number. +`reciprocalCycles(700)` deve retornar um número. ```js assert(typeof reciprocalCycles(700) === 'number'); ``` -`reciprocalCycles(700)` should return 659. +`reciprocalCycles(700)` deve retornar 659. ```js assert(reciprocalCycles(700) == 659); ``` -`reciprocalCycles(800)` should return 743. +`reciprocalCycles(800)` deve retornar 743. ```js assert(reciprocalCycles(800) == 743); ``` -`reciprocalCycles(900)` should return 887. +`reciprocalCycles(900)` deve retornar 887. ```js assert(reciprocalCycles(900) == 887); ``` -`reciprocalCycles(1000)` should return 983. +`reciprocalCycles(1000)` deve retornar 983. ```js assert(reciprocalCycles(1000) == 983); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-27-quadratic-primes.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-27-quadratic-primes.md index a694ee2a59..7eca3e43a1 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-27-quadratic-primes.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-27-quadratic-primes.md @@ -1,6 +1,6 @@ --- id: 5900f3871000cf542c50fe9a -title: 'Problem 27: Quadratic primes' +title: 'Problema 27: Primos quadráticos' challengeType: 5 forumTopicId: 301919 dashedName: problem-27-quadratic-primes @@ -8,51 +8,51 @@ dashedName: problem-27-quadratic-primes # --description-- -Euler discovered the remarkable quadratic formula: +Euler descobriu a notável fórmula do segundo grau:
$n^2 + n + 41$
-It turns out that the formula will produce 40 primes for the consecutive integer values $0 \\le n \\le 39$. However, when $n = 40, 40^2 + 40 + 41 = 40(40 + 1) + 41$ is divisible by 41, and certainly when $n = 41, 41^2 + 41 + 41$ is clearly divisible by 41. +Essa fórmula vai produzir 40 números primos para os valores inteiros consecutivos $0 \\le n \\le 39$. No entanto, quando temos $n = 40, 40^2 + 40 + 41 = 40(40 + 1) + 41$ é divisível por 41, e certamente quando temos $n = 41, 41^2 + 41 + 41$ é claramente divisível por 41. -The incredible formula $n^2 - 79n + 1601$ was discovered, which produces 80 primes for the consecutive values $0 \\le n \\le 79$. The product of the coefficients, −79 and 1601, is −126479. +Uma fórmula incrível foi descoberta, $n^2 - 79n + 1601$, que produz 80 primos para os valores de $0 \\le n \\le 79$ consecutivos. O produto dos coeficientes, −79 e 1601, é -126479. -Considering quadratics of the form: +Considerando os quadráticos da fórmula:
- $n^2 + an + b$, where $|a| < range$ and $|b| \le range$
- where $|n|$ is the modulus/absolute value of $n$
- e.g. $|11| = 11$ and $|-4| = 4$
+ $n^2 + an + b$, onde $➲ a├< range$ e $├b├\le range$
+ onde $├n├$ é o valor modulo/absoluto de $n$
+ exemplo: $➲ 11├= 11$ e $├-4^\\= 4$
-Find the product of the coefficients, $a$ and $b$, for the quadratic expression that produces the maximum number of primes for consecutive values of $n$, starting with $n = 0$. +Encontre o produto dos coeficientes, $a$ e $b$, para a expressão do segundo grau que produz o número máximo de primos para valores consecutivos de $n$, começando com $n = 0$. # --hints-- -`quadraticPrimes(200)` should return a number. +`quadraticPrimes(200)` deve retornar um número. ```js assert(typeof quadraticPrimes(200) === 'number'); ``` -`quadraticPrimes(200)` should return -4925. +`quadraticPrimes(200)` deve retornar -4925. ```js assert(quadraticPrimes(200) == -4925); ``` -`quadraticPrimes(500)` should return -18901. +`quadraticPrimes(500)` deve retornar -18901. ```js assert(quadraticPrimes(500) == -18901); ``` -`quadraticPrimes(800)` should return -43835. +`quadraticPrimes(800)` deve retornar -43835. ```js assert(quadraticPrimes(800) == -43835); ``` -`quadraticPrimes(1000)` should return -59231. +`quadraticPrimes(1000)` deve retornar -59231. ```js assert(quadraticPrimes(1000) == -59231); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-33-digit-cancelling-fractions.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-33-digit-cancelling-fractions.md index ec7756e945..03801a6686 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-33-digit-cancelling-fractions.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-33-digit-cancelling-fractions.md @@ -1,6 +1,6 @@ --- id: 5900f38d1000cf542c50fea0 -title: 'Problem 33: Digit cancelling fractions' +title: 'Problema 33: Frações com cancelamento de dígitos' challengeType: 5 forumTopicId: 301987 dashedName: problem-33-digit-cancelling-fractions @@ -8,23 +8,23 @@ dashedName: problem-33-digit-cancelling-fractions # --description-- -The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that 49/98 = 4/8, which is correct, is obtained by cancelling the 9s. +A fração 49/98 é uma fração curiosa, já que um matemático inexperiente, na tentativa de simplificá-la, pode acreditar, erroneamente, que 49/98 = 4/8 pelo cancelamento dos dígitos 9. Embora o resultado esteja correto, o raciocínio não está. -We shall consider fractions like, 30/50 = 3/5, to be trivial examples. +Devemos considerar frações como, por exemplo, 30/50 = 3/5, como exemplos triviais. -There are exactly four non-trivial examples of this type of fraction, less than one in value, and containing two digits in the numerator and denominator. +Existem exatamente quatro exemplos não triviais desse tipo de fração, com resultado inferior a 1 e que contêm dois dígitos no numerador e no denominador. -If the product of these four fractions is given in its lowest common terms, find the value of the denominator. +Se o produto dessas quatro frações é dado por seus mínimos divisores comuns, encontre o valor do denominador. # --hints-- -`digitCancellingFractions()` should return a number. +`digitCancellingFractions()` deve retornar um número. ```js assert(typeof digitCancellingFractions() === 'number'); ``` -`digitCancellingFractions()` should return 100. +`digitCancellingFractions()` deve retornar 100. ```js assert.strictEqual(digitCancellingFractions(), 100); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-34-digit-factorials.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-34-digit-factorials.md index 080d068344..b1538fd20d 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-34-digit-factorials.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-34-digit-factorials.md @@ -1,6 +1,6 @@ --- id: 5900f38e1000cf542c50fea1 -title: 'Problem 34: Digit factorials' +title: 'Problema 34: Dígitos dos fatoriais' challengeType: 5 forumTopicId: 301998 dashedName: problem-34-digit-factorials @@ -8,21 +8,21 @@ dashedName: problem-34-digit-factorials # --description-- -145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145. +145 é um número curioso, pois 1! + 4! + 5! = 1 + 24 + 120 = 145. -Find the numbers and the sum of the numbers which are equal to the sum of the factorial of their digits. +Calcule os números e a soma dos números que são iguais à soma do fatorial de seus dígitos. -**Note:** as 1! = 1 and 2! = 2 are not sums they are not included. +**Observação:** como 1! = 1 e 2! = 2 não são somas, eles não estão incluídos. # --hints-- -`digitFactorial()` should return an object. +`digitFactorial()` deve retornar um objeto. ```js assert.typeOf(digitFactorial(), 'object'); ``` -`digitFactorial()` should return { sum: 40730, numbers: [145, 40585] }. +`digitFactorial()` deve retornar { sum: 40730, numbers: [145, 40585] }. ```js assert.deepEqual(digitFactorial(), { sum: 40730, numbers: [145, 40585] }); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-35-circular-primes.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-35-circular-primes.md index d3d74989d6..5b1e345910 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-35-circular-primes.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-35-circular-primes.md @@ -1,6 +1,6 @@ --- id: 5900f38f1000cf542c50fea2 -title: 'Problem 35: Circular primes' +title: 'Problema 35: Números primos circulares' challengeType: 5 forumTopicId: 302009 dashedName: problem-35-circular-primes @@ -8,55 +8,55 @@ dashedName: problem-35-circular-primes # --description-- -The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime. +O número 197 é chamado de primo circular porque todas as rotações dos dígitos: 197, 971 e 719 formam números primos. -There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97. +Há treze números primos menores que 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79 e 97. -How many circular primes are there below `n`, whereas 100 ≤ `n` ≤ 1000000? +Quantos números primos circulares existem abaixo de `n`, onde 100 ≤ `n` ≤ 1000000? -**Note:** +**Observação:** -Circular primes individual rotation can exceed `n`. +A rotação dos números primos circulares pode ser maior que `n`. # --hints-- -`circularPrimes(100)` should return a number. +`circularPrimes(100)` deve retornar um número. ```js assert(typeof circularPrimes(100) === 'number'); ``` -`circularPrimes(100)` should return 13. +`circularPrimes(100)` deve retornar 13. ```js assert(circularPrimes(100) == 13); ``` -`circularPrimes(100000)` should return 43. +`circularPrimes(100000)` deve retornar 43. ```js assert(circularPrimes(100000) == 43); ``` -`circularPrimes(250000)` should return 45. +`circularPrimes(250000)` deve retornar 45. ```js assert(circularPrimes(250000) == 45); ``` -`circularPrimes(500000)` should return 49. +`circularPrimes(500000)` deve retornar 49. ```js assert(circularPrimes(500000) == 49); ``` -`circularPrimes(750000)` should return 49. +`circularPrimes(750000)` deve retornar 49. ```js assert(circularPrimes(750000) == 49); ``` -`circularPrimes(1000000)` should return 55. +`circularPrimes(1000000)` deve retornar 55. ```js assert(circularPrimes(1000000) == 55); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-36-double-base-palindromes.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-36-double-base-palindromes.md index 359211b530..c530472ee2 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-36-double-base-palindromes.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-36-double-base-palindromes.md @@ -1,6 +1,6 @@ --- id: 5900f3901000cf542c50fea3 -title: 'Problem 36: Double-base palindromes' +title: 'Problema 36: Palíndromos de base dupla' challengeType: 5 forumTopicId: 302020 dashedName: problem-36-double-base-palindromes @@ -8,39 +8,39 @@ dashedName: problem-36-double-base-palindromes # --description-- -The decimal number, 585 = 10010010012 (binary), is palindromic in both bases. +O número decimal, 585 = 10010012 (binário), é um palíndromo em ambas as bases. -Find the sum of all numbers, less than `n`, whereas 1000 ≤ `n` ≤ 1000000, which are palindromic in base 10 and base 2. +Calcule a soma de todos os números, menores que `n`, onde 1000 ≤ `n` ≤ 1000000, que são palíndromos na base 10 e base 2. -(Please note that the palindromic number, in either base, may not include leading zeros.) +(Note que um número palindrômico, em qualquer base, pode não começar com números zero.) # --hints-- -`doubleBasePalindromes(1000)` should return a number. +`doubleBasePalindromes(1000)` deve retornar um número. ```js assert(typeof doubleBasePalindromes(1000) === 'number'); ``` -`doubleBasePalindromes(1000)` should return 1772. +`doubleBasePalindromes(1000)` deve retornar 1772. ```js assert(doubleBasePalindromes(1000) == 1772); ``` -`doubleBasePalindromes(50000)` should return 105795. +`doubleBasePalindromes(50000)` deve retornar 105795. ```js assert(doubleBasePalindromes(50000) == 105795); ``` -`doubleBasePalindromes(500000)` should return 286602. +`doubleBasePalindromes(500000)` deve retornar 286602. ```js assert(doubleBasePalindromes(500000) == 286602); ``` -`doubleBasePalindromes(1000000)` should return 872187. +`doubleBasePalindromes(1000000)` deve retornar 872187. ```js assert(doubleBasePalindromes(1000000) == 872187); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-37-truncatable-primes.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-37-truncatable-primes.md index 7cac6e4ddb..56b0580723 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-37-truncatable-primes.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-37-truncatable-primes.md @@ -1,6 +1,6 @@ --- id: 5900f3911000cf542c50fea4 -title: 'Problem 37: Truncatable primes' +title: 'Problema 37: Números primos truncáveis' challengeType: 5 forumTopicId: 302031 dashedName: problem-37-truncatable-primes @@ -8,39 +8,39 @@ dashedName: problem-37-truncatable-primes # --description-- -The number 3797 has an interesting property. Being prime itself, it is possible to continuously remove digits from left to right, and remain prime at each stage: 3797, 797, 97, and 7. Similarly we can work from right to left: 3797, 379, 37, and 3. +O número 3797 tem uma propriedade interessante. Além de ser um número primo, se você remover 1 algarismo da esquerda para a direita, o resultado ainda assim é um número primo: 3797, 797, 97 e 7. Também podemos remover da direita para a esquerda: 3797, 379, 37 e 3. -Find the sum of the only `n` (8 ≤ `n` ≤ 11) primes that are both truncatable from left to right and right to left. +Calcule a soma dos números primos `n` (8 ≤ `n` ≤ 11) que podem ser truncados da esquerda para a direita e vice-versa. -NOTE: 2, 3, 5, and 7 are not considered to be truncatable primes. +Observação: 2, 3, 5 e 7 não são considerados números primos truncáveis. # --hints-- -`truncatablePrimes(8)` should return a number. +`truncatablePrimes(8)` deve retornar um número. ```js assert(typeof truncatablePrimes(8) === 'number'); ``` -`truncatablePrimes(8)` should return 1986. +`truncatablePrimes(8)` deve retornar 1986. ```js assert(truncatablePrimes(8) == 1986); ``` -`truncatablePrimes(9)` should return 5123. +`truncatablePrimes(9)` deve retornar 5123. ```js assert(truncatablePrimes(9) == 5123); ``` -`truncatablePrimes(10)` should return 8920. +`truncatablePrimes(10)` deve retornar 8920. ```js assert(truncatablePrimes(10) == 8920); ``` -`truncatablePrimes(11)` should return 748317. +`truncatablePrimes(11)` deve retornar 748317. ```js assert(truncatablePrimes(11) == 748317); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-38-pandigital-multiples.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-38-pandigital-multiples.md index 1c3f0c56c6..d171be64c8 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-38-pandigital-multiples.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-38-pandigital-multiples.md @@ -1,6 +1,6 @@ --- id: 5900f3931000cf542c50fea5 -title: 'Problem 38: Pandigital multiples' +title: 'Problema 38: Múltiplos pandigitais' challengeType: 5 forumTopicId: 302042 dashedName: problem-38-pandigital-multiples @@ -8,31 +8,31 @@ dashedName: problem-38-pandigital-multiples # --description-- -Take the number 192 and multiply it by each of 1, 2, and 3: +Pegue o número 192 e multiplique-o por cada um entre 1, 2 e 3: $$\begin{align} 192 × 1 = 192\\\\ 192 × 2 = 384\\\\ 192 × 3 = 576\\\\ \end{align}$$ -By concatenating each product we get the 1 to 9 pandigital, 192384576. We will call 192384576 the concatenated product of 192 and (1, 2, 3). +Ao concatenar cada produto, chegamos ao total 192384576. Esse resultado possui 9 dígitos e usa todos os número de 1 a 9 pelo menos uma vez. Chamaremos 192384576 o produto concatenado de 192 e (1, 2, 3). -The same can be achieved by starting with 9 and multiplying by 1, 2, 3, 4, and 5, giving the pandigital, 918273645, which is the concatenated product of 9 and (1, 2, 3, 4, 5). +O mesmo pode ser alcançado começando por 9 e multiplicando por 1, 2, 3, 4 e 5. O resultado é o pandigital 918273645, que é o produto concatenado de 9 e (1, 2, 3, 4, 5). -What is the largest 1 to `k` pandigital `k`-digit number that can be formed as the concatenated product of an integer with (1, 2, ..., `n`) where `n` > 1? +Qual é o maior número pandigital de 1 a `k` com `k` dígitos que pode ser formado como o produto concatenado de um inteiro com (1, 2, ..., `n`) onde `n` > 1? # --hints-- -`pandigitalMultiples(8)` should return a number. +`pandigitalMultiples(8)` deve retornar um número. ```js assert(typeof pandigitalMultiples(8) === 'number'); ``` -`pandigitalMultiples(8)` should return `78156234`. +`pandigitalMultiples(8)` deve retornar `78156234`. ```js assert.strictEqual(pandigitalMultiples(8), 78156234); ``` -`pandigitalMultiples(9)` should return `932718654`. +`pandigitalMultiples(9)` deve retornar `932718654`. ```js assert.strictEqual(pandigitalMultiples(9), 932718654); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-39-integer-right-triangles.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-39-integer-right-triangles.md index d19bb816b7..3bac1a9850 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-39-integer-right-triangles.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-39-integer-right-triangles.md @@ -1,6 +1,6 @@ --- id: 5900f3931000cf542c50fea6 -title: 'Problem 39: Integer right triangles' +title: 'Problema 39: Triângulos retângulo' challengeType: 5 forumTopicId: 302054 dashedName: problem-39-integer-right-triangles @@ -8,39 +8,39 @@ dashedName: problem-39-integer-right-triangles # --description-- -If `p` is the perimeter of a right angle triangle with integral length sides, {a,b,c}, there are exactly three solutions for p = 120. +Se `p` é o perímetro de um triângulo retângulo e o comprimento de seus lados são números inteiros, {a,b,c}, existem exatamente três soluções para p = 120. {20,48,52}, {24,45,51}, {30,40,50} -For which value of `p` ≤ `n`, is the number of solutions maximized? +Para qual valor de `p` ≤ `n`, o número de soluções é maximizado? # --hints-- -`intRightTriangles(500)` should return a number. +`intRightTriangles(500)` deve retornar um número. ```js assert(typeof intRightTriangles(500) === 'number'); ``` -`intRightTriangles(500)` should return 420. +`intRightTriangles(500)` deve retornar 420. ```js assert(intRightTriangles(500) == 420); ``` -`intRightTriangles(800)` should return 720. +`intRightTriangles(800)` deve retornar 720. ```js assert(intRightTriangles(800) == 720); ``` -`intRightTriangles(900)` should return 840. +`intRightTriangles(900)` deve retornar 840. ```js assert(intRightTriangles(900) == 840); ``` -`intRightTriangles(1000)` should return 840. +`intRightTriangles(1000)` deve retornar 840. ```js assert(intRightTriangles(1000) == 840); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-40-champernownes-constant.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-40-champernownes-constant.md index f7f6c8f51f..fdf3961aae 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-40-champernownes-constant.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-40-champernownes-constant.md @@ -1,6 +1,6 @@ --- id: 5900f3941000cf542c50fea7 -title: 'Problem 40: Champernowne''s constant' +title: 'Problema 40: Constante de Champernowne' challengeType: 5 forumTopicId: 302066 dashedName: problem-40-champernownes-constant @@ -8,37 +8,37 @@ dashedName: problem-40-champernownes-constant # --description-- -An irrational decimal fraction is created by concatenating the positive integers: +Uma fração decimal irracional é criada concatenando os números inteiros positivos: 0.12345678910**1**112131415161718192021... -It can be seen that the 12th digit of the fractional part is 1. +Podemos notar que o 12º algarismo da parte fracionária é 1. -If *dn* represents the *n*th digit of the fractional part, find the value of the following expression. +Se *dn* representa o *n*-ésimo dígito da parte fracionária, encontre o valor da expressão a seguir: d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000 # --hints-- -`champernownesConstant(100)` should return a number. +`champernownesConstant(100)` deve retornar um número. ```js assert(typeof champernownesConstant(100) === 'number'); ``` -`champernownesConstant(100)` should return 5. +`champernownesConstant(100)` deve retornar 5. ```js assert.strictEqual(champernownesConstant(100), 5); ``` -`champernownesConstant(1000)` should return 15. +`champernownesConstant(1000)` deve retornar 15. ```js assert.strictEqual(champernownesConstant(1000), 15); ``` -`champernownesConstant(1000000)` should return 210. +`champernownesConstant(1000000)` deve retornar 210. ```js assert.strictEqual(champernownesConstant(1000000), 210); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-41-pandigital-prime.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-41-pandigital-prime.md index 41465478fc..130765b66c 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-41-pandigital-prime.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-41-pandigital-prime.md @@ -1,6 +1,6 @@ --- id: 5900f3951000cf542c50fea8 -title: 'Problem 41: Pandigital prime' +title: 'Problema 41: Número primo pandigital' challengeType: 5 forumTopicId: 302078 dashedName: problem-41-pandigital-prime @@ -8,25 +8,25 @@ dashedName: problem-41-pandigital-prime # --description-- -We shall say that an `n`-digit number is pandigital if it makes use of all the digits 1 to `n` exactly once. For example, 2143 is a 4-digit pandigital and is also prime. +Dizemos que um número de `n` dígitos é pandigital se ele usar todos os dígitos de 1 a `n` exatamente uma vez. Por exemplo, 2143 é um número pandigital de 4 algarismos e também é um número primo. -What is the largest `n`-length digit pandigital prime that exists? +Qual é o maior número primo pandigital de comprimento `n` que existe? # --hints-- -`pandigitalPrime(4)` should return a number. +`pandigitalPrime(4)` deve retornar um número. ```js assert(typeof pandigitalPrime(4) === 'number'); ``` -`pandigitalPrime(4)` should return 4231. +`pandigitalPrime(4)` deve retornar 4231. ```js assert(pandigitalPrime(4) == 4231); ``` -`pandigitalPrime(7)` should return 7652413. +`pandigitalPrime(7)` deve retornar 7652413. ```js assert(pandigitalPrime(7) == 7652413); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-415-titanic-sets.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-415-titanic-sets.md index 951684acc0..ab71c30048 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-415-titanic-sets.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-415-titanic-sets.md @@ -1,6 +1,6 @@ --- id: 5900f50c1000cf542c51001e -title: 'Problem 415: Titanic sets' +title: 'Problema 415: Conjuntos titânicos' challengeType: 5 forumTopicId: 302084 dashedName: problem-415-titanic-sets @@ -8,22 +8,22 @@ dashedName: problem-415-titanic-sets # --description-- -A set of lattice points S is called a titanic set if there exists a line passing through exactly two points in S. +Um conjunto de pontos de uma rede diagonal $S$ é chamado de conjunto titânico se existir uma linha que passe por exatamente dois pontos em $S$. -An example of a titanic set is S = {(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)}, where the line passing through (0, 1) and (2, 0) does not pass through any other point in S. +Um exemplo de um conjunto titânico é $S = \\{(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)\\}$, onde a linha passando por (0, 1) e (2, 0) não passa por nenhum outro ponto em $S$. -On the other hand, the set {(0, 0), (1, 1), (2, 2), (4, 4)} is not a titanic set since the line passing through any two points in the set also passes through the other two. +Por outro lado, o conjunto {(0, 0), (1, 1), (2, 2), (4, 4)} não é um conjunto titânico, já que a linha que passa por dois pontos quaisquer no conjunto também passa pelos outros dois. -For any positive integer N, let T(N) be the number of titanic sets S whose every point (x, y) satisfies 0 ≤ x, y ≤ N. It can be verified that T(1) = 11, T(2) = 494, T(4) = 33554178, T(111) mod 108 = 13500401 and T(105) mod 108 = 63259062. +Para qualquer inteiro positivo $N$, consideremos que $T(N)$ é o número de conjuntos titânicos $S$ em que cada ponto ($x$, $y$) satisfaz $0 ≤ x$, $y ≤ N$. Pode-se verificar que $T(1) = 11$, $T(2) = 494$, $T(4) = 33\\,554\\,178$, $T(111)\bmod {10}^8 = 13\\,500\\,401$ e $T({10}^5)\bmod {10}^8 = 63\\,259\\,062$. -Find T(1011) mod 108. +Encontre $T({10}^{11})\bmod {10}^8$. # --hints-- -`euler415()` should return 55859742. +`titanicSets()` deve retornar `55859742`. ```js -assert.strictEqual(euler415(), 55859742); +assert.strictEqual(titanicSets(), 55859742); ``` # --seed-- @@ -31,12 +31,12 @@ assert.strictEqual(euler415(), 55859742); ## --seed-contents-- ```js -function euler415() { +function titanicSets() { return true; } -euler415(); +titanicSets(); ``` # --solutions-- diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-416-a-frogs-trip.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-416-a-frogs-trip.md index 96e9fe1bb0..a3475fd12d 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-416-a-frogs-trip.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-416-a-frogs-trip.md @@ -1,6 +1,6 @@ --- id: 5900f50e1000cf542c510020 -title: 'Problem 416: A frog''s trip' +title: 'Problema 416: A viagem de um sapo' challengeType: 5 forumTopicId: 302085 dashedName: problem-416-a-frogs-trip @@ -8,18 +8,20 @@ dashedName: problem-416-a-frogs-trip # --description-- -A row of n squares contains a frog in the leftmost square. By successive jumps the frog goes to the rightmost square and then back to the leftmost square. On the outward trip he jumps one, two or three squares to the right, and on the homeward trip he jumps to the left in a similar manner. He cannot jump outside the squares. He repeats the round-trip travel m times. +Uma fileira de $n$ quadrados contém um sapo no quadrado mais à esquerda. Em sucessivos pulos, o sapo vai para o quadrado mais à direita e depois volta para o quadrado mais à esquerda. Na viagem de ida, ele pula um, dois ou três quadrados para a direita. Na viagem de volta para casa, ele pula para a esquerda de uma maneira parecida. Ele não pode pular fora dos quadrados. Ele repete a viagem de ida e volta $m$ vezes. -Let F(m, n) be the number of the ways the frog can travel so that at most one square remains unvisited. For example, F(1, 3) = 4, F(1, 4) = 15, F(1, 5) = 46, F(2, 3) = 16 and F(2, 100) mod 109 = 429619151. +Considere que $F(m, n)$ é o número de maneiras pelas quais o sapo pode viajar, sendo que, no máximo, um quadrado pode permanecer sem ser visitado. -Find the last 9 digits of F(10, 1012). +Por exemplo, $F(1, 3) = 4$, $F(1, 4) = 15$, $F(1, 5) = 46$, $F(2, 3) = 16$ e $F(2, 100)\bmod {10}^9 = 429\\,619\\,151$. + +Encontre os últimos 9 dígitos de $F(10, {10}^{12})$. # --hints-- -`euler416()` should return 898082747. +`frogsTrip()` deve retornar `898082747`. ```js -assert.strictEqual(euler416(), 898082747); +assert.strictEqual(frogsTrip(), 898082747); ``` # --seed-- @@ -27,12 +29,12 @@ assert.strictEqual(euler416(), 898082747); ## --seed-contents-- ```js -function euler416() { +function frogsTrip() { return true; } -euler416(); +frogsTrip(); ``` # --solutions-- diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-417-reciprocal-cycles-ii.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-417-reciprocal-cycles-ii.md index e73dd646e8..636f277786 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-417-reciprocal-cycles-ii.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-417-reciprocal-cycles-ii.md @@ -1,6 +1,6 @@ --- id: 5900f50d1000cf542c51001f -title: 'Problem 417: Reciprocal cycles II' +title: 'Problema 417: Dízimas periódicas' challengeType: 5 forumTopicId: 302086 dashedName: problem-417-reciprocal-cycles-ii @@ -8,24 +8,24 @@ dashedName: problem-417-reciprocal-cycles-ii # --description-- -A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with denominators 2 to 10 are given: +Em uma fração unitária, o numerador é 1. A representação decimal das frações unitárias com denominadores de 2 a 10 é a seguinte: -1/2= 0.5 1/3= 0.(3) 1/4= 0.25 1/5= 0.2 1/6= 0.1(6) 1/7= 0.(142857) 1/8= 0.125 1/9= 0.(1) 1/10= 0.1 +$$\begin{align} & \frac{1}{2} = 0.5 \\\\ & \frac{1}{3} = 0.(3) \\\\ & \frac{1}{4} = 0.25 \\\\ & \frac{1}{5} = 0.2 \\\\ & \frac{1}{6} = 0.1(6) \\\\ & \frac{1}{7} = 0.(142857) \\\\ & \frac{1}{8} = 0.125 \\\\ & \frac{1}{9} = 0.(1) \\\\ & \frac{1}{10} = 0.1 \\\\ \end{align}$$ -Where 0.1(6) means 0.166666..., and has a 1-digit recurring cycle. It can be seen that 1/7 has a 6-digit recurring cycle. +A expressão $0.1(6)$ significa $0.16666666\dots$, e tem um ciclo recorrente de 1 algarismo. Pode ser visto que $\frac{1}{7}$ tem um ciclo recorrente de 6 dígitos. -Unit fractions whose denominator has no other prime factors than 2 and/or 5 are not considered to have a recurring cycle. We define the length of the recurring cycle of those unit fractions as 0. +Frações unitárias cujo denominador não tem outros fatores primos além de 2 e/ou 5 não são consideradas como tendo um ciclo recorrente. Definimos 0 como o comprimento do ciclo recorrente dessas frações unitárias. -Let L(n) denote the length of the recurring cycle of 1/n. You are given that ∑L(n) for 3 ≤ n ≤ 1 000 000 equals 55535191115. +Considere que $L(n)$ denota o comprimento do ciclo recorrente de $\frac{1}{n}$. Você recebe a informação de que $\sum L(n)$ por $3 ≤ n ≤ 1\\,000\\,000$ é igual a $55\\,535\\,191\\,115$. -Find ∑L(n) for 3 ≤ n ≤ 100 000 000 +Calcule $\sum L(n)$ por $3 ≤ n ≤ 100\\,000\\,000$. # --hints-- -`euler417()` should return 446572970925740. +`reciprocalCyclesTwo()` deve retornar `446572970925740`. ```js -assert.strictEqual(euler417(), 446572970925740); +assert.strictEqual(reciprocalCyclesTwo(), 446572970925740); ``` # --seed-- @@ -33,12 +33,12 @@ assert.strictEqual(euler417(), 446572970925740); ## --seed-contents-- ```js -function euler417() { +function reciprocalCyclesTwo() { return true; } -euler417(); +reciprocalCyclesTwo(); ``` # --solutions-- diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-418-factorisation-triples.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-418-factorisation-triples.md index ac11b1083f..c6502c485f 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-418-factorisation-triples.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-418-factorisation-triples.md @@ -1,6 +1,6 @@ --- id: 5900f50f1000cf542c510021 -title: 'Problem 418: Factorisation triples' +title: 'Problema 418: Trios de fatoração' challengeType: 5 forumTopicId: 302087 dashedName: problem-418-factorisation-triples @@ -8,22 +8,23 @@ dashedName: problem-418-factorisation-triples # --description-- -Let n be a positive integer. An integer triple (a, b, c) is called a factorisation triple of n if: 1 ≤ a ≤ b ≤ c +Considere $n$ um inteiro positivo. Um trio de números inteiros ($a$, $b$, $c$) é chamado de trio de fatoração de $n$ se: -a·b·c = n. +- $1 ≤ a ≤ b ≤ c$ +- $a \times b \times c = n$. -Define f(n) to be a + b + c for the factorisation triple (a, b, c) of n which minimises c / a. One can show that this triple is unique. +Defina $f(n)$ como $a + b + c$ para o trio da fatoração ($a$, $b$, $c$) de $n$ que minimiza $\frac{c}{a}$. Podemos mostrar que esse trio é único. -For example, f(165) = 19, f(100100) = 142 and f(20!) = 4034872. +Por exemplo, $f(165) = 19$, $f(100\\,100) = 142$ e $f(20!) = 4\\,034\\,872$. -Find f(43!). +Encontre $f(43!)$. # --hints-- -`euler418()` should return 1177163565297340400. +`factorisationTriples()` deve retornar `1177163565297340400`. ```js -assert.strictEqual(euler418(), 1177163565297340400); +assert.strictEqual(factorisationTriples(), 1177163565297340400); ``` # --seed-- @@ -31,12 +32,12 @@ assert.strictEqual(euler418(), 1177163565297340400); ## --seed-contents-- ```js -function euler418() { +function factorisationTriples() { return true; } -euler418(); +factorisationTriples(); ``` # --solutions-- diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-419-look-and-say-sequence.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-419-look-and-say-sequence.md index 2d9f365090..4adbf773f9 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-419-look-and-say-sequence.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-419-look-and-say-sequence.md @@ -1,6 +1,6 @@ --- id: 5900f5101000cf542c510022 -title: 'Problem 419: Look and say sequence' +title: 'Problema 419: Sequência para olhar e dizer' challengeType: 5 forumTopicId: 302088 dashedName: problem-419-look-and-say-sequence @@ -8,34 +8,41 @@ dashedName: problem-419-look-and-say-sequence # --description-- -The look and say sequence goes 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... +A sequência para olhar e dizer é 1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... -The sequence starts with 1 and all other members are obtained by describing the previous member in terms of consecutive digits. +A sequência começa com 1 e todos os outros membros são obtidos descrevendo o membro anterior em termos de dígitos consecutivos. -It helps to do this out loud: +Ajuda ler os dígitos em voz alta: -1 is 'one one' → 11 +1 é 'um um' $→ 11$ -11 is 'two ones' → 21 +11 é 'dois um' $→ 21$ -21 is 'one two and one one' → 1211 +21 é 'um dois e um um' $→ 1211$ -1211 is 'one one, one two and two ones' → 111221 +1211 é 'um um, um dois e dois um' $→ 111221$ -111221 is 'three ones, two twos and one one' → 312211 +111221 is 'três um, dois dois e um um' $→ 312211$ ... -Define A(n), B(n) and C(n) as the number of ones, twos and threes in the n'th element of the sequence respectively. One can verify that A(40) = 31254, B(40) = 20259 and C(40) = 11625. +Defina $A(n)$, $B(n)$ e $C(n)$ como o número de uns, dois e três no $n$'ésimo elemento da sequência, respectivamente. Podemos verificar se $A(40) = 31\\,254$, $B(40) = 20\\,259$ e $C(40) = 11\\,625$. -Find A(n), B(n) and C(n) for n = 1012. Give your answer modulo 230 and separate your values for A, B and C by a comma. E.g. for n = 40 the answer would be 31254,20259,11625 +Calcule $A(n)$, $B(n)$ e $C(n)$ para $n = {10}^{12}$. Dê o modulo $2^{30}$ de sua respostas como uma string e separe seus valores para $A$, $B$ e $C$ por uma vírgula. Ex: para $n = 40$, a resposta seria `31254,20259,11625`. # --hints-- -`euler419()` should return 998567458, 1046245404, 43363922. +`lookAndSaySequence()` deve retornar uma string. ```js -assert.strictEqual(euler419(), 998567458, 1046245404, 43363922); +assert(typeof lookAndSaySequence() === 'string'); +``` + + +`lookAndSaySequence()` deve retornar a string `998567458,1046245404,43363922`. + +```js +assert.strictEqual(lookAndSaySequence(), '998567458,1046245404,43363922'); ``` # --seed-- @@ -43,12 +50,12 @@ assert.strictEqual(euler419(), 998567458, 1046245404, 43363922); ## --seed-contents-- ```js -function euler419() { +function lookAndSaySequence() { return true; } -euler419(); +lookAndSaySequence(); ``` # --solutions-- diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-42-coded-triangle-numbers.md b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-42-coded-triangle-numbers.md index bc3de08623..d085370f5b 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-42-coded-triangle-numbers.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/project-euler/problem-42-coded-triangle-numbers.md @@ -1,6 +1,6 @@ --- id: 5900f3961000cf542c50fea9 -title: 'Problem 42: Coded triangle numbers' +title: 'Problema 42: Números triangulares codificados' challengeType: 5 forumTopicId: 302089 dashedName: problem-42-coded-triangle-numbers @@ -8,41 +8,41 @@ dashedName: problem-42-coded-triangle-numbers # --description-- -The `n`th term of the sequence of triangle numbers is given by, `tn` = ½`n`(`n`+1); so the first ten triangle numbers are: +O `n`-ésimo termo da sequência de números triangulares é dado por, `tn` = ½`n`(`n`+1). Os primeiros dez números triangulares são:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
-By converting each letter in a word to a number corresponding to its alphabetical position and adding these values we form a word value. For example, the word value for SKY is 19 + 11 + 25 = 55 = `t`10. If the word value is a triangle number then we shall call the word a triangle word. +Ao converter cada letra de uma palavra para o número correspondente a sua posição alfabética e somar esses valores, nós formamos o valor (numérico) da palavra. Por exemplo, o valor da palavra SKY é 19 + 11 + 25 = 55 = `t`10. Se o valor da palavra é um número triangular, então vamos chamar a palavra de uma palavra triângulo. -Using words array of `n`-length, how many are triangle words? +Usando o array de palavras de comprimento `n`, quantas são palavras triangulares? # --hints-- -`codedTriangleNumbers(1400)` should return a number. +`codedTriangleNumbers(1400)` deve retornar um número. ```js assert(typeof codedTriangleNumbers(1400) === 'number'); ``` -`codedTriangleNumbers(1400)` should return 129. +`codedTriangleNumbers(1400)` deve retornar 129. ```js assert(codedTriangleNumbers(1400) == 129); ``` -`codedTriangleNumbers(1500)` should return 137. +`codedTriangleNumbers(1500)` deve retornar 137. ```js assert(codedTriangleNumbers(1500) == 137); ``` -`codedTriangleNumbers(1600)` should return 141. +`codedTriangleNumbers(1600)` deve retornar 141. ```js assert(codedTriangleNumbers(1600) == 141); ``` -`codedTriangleNumbers(1786)` should return 162. +`codedTriangleNumbers(1786)` deve retornar 162. ```js assert(codedTriangleNumbers(1786) == 162); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/fractran.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/fractran.md index 1151bb3a23..6f99106c0f 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/fractran.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/fractran.md @@ -23,7 +23,7 @@ Conway forneceu um programa para números primos em FRACTRAN: $\\dfrac{17}{91}$, $\\dfrac{78}{85}$, $\\dfrac{19}{51}$, $\\dfrac{23}{38}$, $\\dfrac{29}{33}$, $\\dfrac{77}{29}$, $\\dfrac{95}{23}$, $\\dfrac{77}{19}$, $\\dfrac{1}{17}$, $\\dfrac{11}{13}$, $\\dfrac{13}{11}$, $\\dfrac{15}{14}$, $\\dfrac{15}{2}$, $\\dfrac{55}{1}$ -Começando com $n=2$, este programa em FRACTRAN mudará $n$ para $15=2\\vezes (\\frac{15}{2})$, então $825=15\\vezes (\\frac{55}{1})$, gerando a seguinte sequência de inteiros: +Começando com $n=2$, este programa em FRACTRAN mudará $n$ para $15=2\\times (\\frac{15}{2})$, então $825=15\\times (\\frac{55}{1})$, gerando a seguinte sequência de inteiros: $2$, $15$, $825$, $725$, $1925$, $2275$, $425$, $390$, $330$, $290$, $770$, $\\ldots$ diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/gaussian-elimination.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/gaussian-elimination.md index b351d379c6..8d159c7a1d 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/gaussian-elimination.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/gaussian-elimination.md @@ -10,7 +10,7 @@ dashedName: gaussian-elimination Escreva uma função para calcular \\(Ax = b\\) usando a eliminação gaussiana e, em seguida, a substituição reversa. -\\(A\\) sendo uma matriz \\(n \\vezes n\\). Além disso, \\(x\\) e \\(b\\) são vetores \\(n\\) por 1. +\\(A\\) sendo uma matriz \\(n \\times n\\). Além disso, \\(x\\) e \\(b\\) são vetores \\(n\\) por 1. Para melhorar a precisão, use pivô parcial e escala. diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/identity-matrix.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/identity-matrix.md index a8465da648..827cb23b5f 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/identity-matrix.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/identity-matrix.md @@ -1,6 +1,6 @@ --- id: 5a23c84252665b21eecc7eb1 -title: Identity matrix +title: Matriz identidade challengeType: 5 forumTopicId: 302290 dashedName: identity-matrix @@ -8,7 +8,7 @@ dashedName: identity-matrix # --description-- -An *identity matrix* is a square matrix of size \\( n \\times n \\), where the diagonal elements are all `1`s (ones), and all the other elements are all `0`s (zeroes). +Uma *matriz identidade* é uma matriz quadrada de tamanho \\( n \\times n \\), onde os elementos diagonais são todos `1` (um) e todos os outros elementos são `0`(zero).
  • \(\displaystyle I_{n}=\begin{bmatrix} 1 & 0 & 0 \cr 0 & 1 & 0 \cr 0 & 0 & 1 \cr \end{bmatrix}\)
  • @@ -16,41 +16,41 @@ An *identity matrix* is a square matrix of size \\( n \\times n \\), where the d # --instructions-- -Write a function that takes a number `n` as a parameter and returns the identity matrix of order \\( n \\times n \\). +Escreva uma função que recebe um número `n` como um parâmetro e retorna a matriz identidade de ordem \\( n \\times n \\). # --hints-- -`idMatrix` should be a function. +`idMatrix` deve ser uma função. ```js assert(typeof idMatrix == 'function'); ``` -`idMatrix(1)` should return an array. +`idMatrix(1)` deve retornar um array. ```js assert(Array.isArray(idMatrix(1))); ``` -`idMatrix(1)` should return `[ [ 1 ] ]`. +`idMatrix(1)` deve retornar `[ [ 1 ] ]`. ```js assert.deepEqual(idMatrix(1), results[0]); ``` -`idMatrix(2)` should return `[ [ 1, 0 ], [ 0, 1 ] ]`. +`idMatrix(2)` deve retornar `[ [ 1, 0 ], [ 0, 1 ] ]`. ```js assert.deepEqual(idMatrix(2), results[1]); ``` -`idMatrix(3)` should return `[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]`. +`idMatrix(3)` deve retornar `[ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ]`. ```js assert.deepEqual(idMatrix(3), results[2]); ``` -`idMatrix(4)` should return `[ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]`. +`idMatrix(4)` deve retornar `[ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]`. ```js assert.deepEqual(idMatrix(4), results[3]); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/iterated-digits-squaring.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/iterated-digits-squaring.md index bbed591151..f867185348 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/iterated-digits-squaring.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/iterated-digits-squaring.md @@ -1,6 +1,6 @@ --- id: 5a23c84252665b21eecc7ec1 -title: Iterated digits squaring +title: Elevar ao quadrado os dígitos iterados challengeType: 5 forumTopicId: 302291 dashedName: iterated-digits-squaring @@ -8,7 +8,7 @@ dashedName: iterated-digits-squaring # --description-- -If you add the square of the digits of a Natural number (an integer bigger than zero), you always end with either 1 or 89: +Se você somar o quadrado dos dígitos de um número natural (um número inteiro maior que zero), você sempre terminará com 1 ou 89:
    15 -> 26 -> 40 -> 16 -> 37 -> 58 -> 89
     7 -> 49 -> 97 -> 130 -> 10 -> 1
    @@ -16,53 +16,53 @@ If you add the square of the digits of a Natural number (an integer bigger than
     
     # --instructions--
     
    -Write a function that takes a number as a parameter and returns 1 or 89 after performing the mentioned process.
    +Escreva uma função que receba um número na forma de um parâmetro e retorne 1 ou 89 depois de executar o processo mencionado.
     
     # --hints--
     
    -`iteratedSquare` should be a function.
    +`iteratedSquare` deve ser uma função.
     
     ```js
     assert(typeof iteratedSquare == 'function');
     ```
     
    -`iteratedSquare(4)` should return a number.
    +`iteratedSquare(4)` deve retornar um número.
     
     ```js
     assert(typeof iteratedSquare(4) == 'number');
     ```
     
    -`iteratedSquare(4)` should return `89`.
    +`iteratedSquare(4)` deve retornar `89`.
     
     ```js
     assert.equal(iteratedSquare(4), 89);
     ```
     
    -`iteratedSquare(7)` should return `1`.
    +`iteratedSquare(7)` deve retornar `1`.
     
     ```js
     assert.equal(iteratedSquare(7), 1);
     ```
     
    -`iteratedSquare(15)` should return `89`.
    +`iteratedSquare(15)` deve retornar `89`.
     
     ```js
     assert.equal(iteratedSquare(15), 89);
     ```
     
    -`iteratedSquare(20)` should return `89`.
    +`iteratedSquare(20)` deve retornar `89`.
     
     ```js
     assert.equal(iteratedSquare(20), 89);
     ```
     
    -`iteratedSquare(70)` should return `1`.
    +`iteratedSquare(70)` deve retornar `1`.
     
     ```js
     assert.equal(iteratedSquare(70), 1);
     ```
     
    -`iteratedSquare(100)` should return `1`.
    +`iteratedSquare(100)` deve retornar `1`.
     
     ```js
     assert.equal(iteratedSquare(100), 1);
    diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jaro-distance.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jaro-distance.md
    index d348acaee7..db0df4e17f 100644
    --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jaro-distance.md
    +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jaro-distance.md
    @@ -1,6 +1,6 @@
     ---
     id: 5a23c84252665b21eecc7ec2
    -title: Jaro distance
    +title: Distância de Jaro
     challengeType: 5
     forumTopicId: 302292
     dashedName: jaro-distance
    @@ -8,28 +8,28 @@ dashedName: jaro-distance
     
     # --description--
     
    -The Jaro distance is a measure of similarity between two strings. The higher the Jaro distance for two strings is, the more similar the strings are. The score is normalized such that `0` equates to no similarity and `1` is an exact match.
    +A distância de Jaro é uma medida de semelhança entre duas strings. Quanto maior a distância de Jaro entre as duas strings, mais parecidas elas são. A pontuação é normalizada, de modo que `0` é igual a nenhuma similaridade e `1` é uma correspondência exata.
     
    -**Definition**
    +**Definição**
     
    -The Jaro distance \\( d_j \\) of two given strings \\(s_1\\) and \\(s_2\\) is
    +A distância de Jaro \\( d_j \\) de duas strings fornecidas \\(s_1\\) e \\(s_2\\) é
     
     \\begin{align}d_j = \\begin{cases}0& & \\text{if }m=0 \\\\\\\\{\\frac {1}{3}}\\left({\\frac {m}{|s\_{1}|}}+{\\frac {m}{|s\_{2}|}}+{\\frac {m-t}{m}}\\right)& & \\text{otherwise}\\end{cases}\\end{align}
     
    -Where:
    +Onde:
     
     
      -
    • \(m\) is the number of matching characters;
    • -
    • \(t\) is half the number of transpositions.
    • +
    • \(m\) é o número de caracteres correspondentes;
    • +
    • \(t\) é a metade do número de transposições.
    -Two characters from \\(s_1\\) and \\(s_2\\) respectively, are considered *matching* only if they are the same and not farther than \\(\\left\\lfloor\\frac{\\max(|s_1|,|s_2|)}{2}\\right\\rfloor-1\\). +Dois caracteres de \\(s_1\\) e \\(s_2\\), respectivamente, são considerados *correspondentes* somente se forem iguais e não mais distante do que \\(\\left\\lfloor\\frac{\\max(|s_1|,|s_2|)}{2}\\right\\rfloor-1\\). -Each character of \\(s_1\\) is compared with all its matching characters in \\(s_2\\) . The number of matching (but different sequence order) characters divided by 2 defines the number of *transpositions*. +Cada caractere de \\(s_1\\) é comparado com todos os seus caracteres correspondentes em \\(s_2\\) . O número de caracteres correspondentes (mas em ordem sequencial diferente) dividido por 2 define o número de *transposições*. -**Example** +**Exemplo** -Given the strings \\(s_1\\) *DWAYNE* and \\(s_2\\) *DUANE* we find: +Dadas as strings \\(s_1\\) *DWAYNE* e \\(s_2\\) *DUANE*, encontramos:
    • \(m = 4\)
    • @@ -38,51 +38,51 @@ Given the strings \\(s_1\\) *DWAYNE* and \\(s_2\\) *DUANE* we find:
    • \(t = 0\)
    -We find a Jaro score of: \\(d_j = \\frac{1}{3}\\left(\\frac{4}{6} + \\frac{4}{5} + \\frac{4-0}{4}\\right) = 0.822\\). +Encontramos uma pontuação de Jaro de: \\(d_j = \\frac{1}{3}\\left(\\frac{4}{6} + \\frac{4}{5} + \\frac{4-0}{4}\\right) = 0.822\\). # --instructions-- -Write a function a that takes two strings as parameters and returns the associated Jaro distance. +Escreva uma função que receba duas strings como parâmetros e retorne a distância de Jaro associada. # --hints-- -`jaro` should be a function. +`jaro` deve ser uma função. ```js assert(typeof jaro == 'function'); ``` -`jaro("MARTHA", "MARHTA")` should return a number. +`jaro("MARTHA", "MARHTA")` deve retornar um número. ```js assert(typeof jaro('MARTHA', 'MARHTA') == 'number'); ``` -`jaro("MARTHA", "MARHTA")` should return `0.9444444444444445`. +`jaro("MARTHA", "MARHTA")` deve retornar `0.9444444444444445`. ```js assert.equal(jaro('MARTHA', 'MARHTA'), 0.9444444444444445); ``` -`jaro("DIXON", "DICKSONX")` should return `0.7666666666666666`. +`jaro("DIXON", "DICKSONX")` deve retornar `0.7666666666666666`. ```js assert.equal(jaro('DIXON', 'DICKSONX'), 0.7666666666666666); ``` -`jaro("JELLYFISH", "SMELLYFISH")` should return `0.8962962962962964`. +`jaro("JELLYFISH", "SMELLYFISH")` deve retornar `0.8962962962962964`. ```js assert.equal(jaro('JELLYFISH', 'SMELLYFISH'), 0.8962962962962964); ``` -`jaro("HELLOS", "CHELLO")` should return `0.888888888888889`. +`jaro("HELLOS", "CHELLO")` deve retornar `0.888888888888889`. ```js assert.equal(jaro('HELLOS', 'CHELLO'), 0.888888888888889); ``` -`jaro("ABCD", "BCDA")` should return `0.8333333333333334`. +`jaro("ABCD", "BCDA")` deve retornar `0.8333333333333334`. ```js assert.equal(jaro('ABCD', 'BCDA'), 0.8333333333333334); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jortsort.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jortsort.md index 0f121b99ee..c3c4c04ef9 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jortsort.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/jortsort.md @@ -8,55 +8,55 @@ dashedName: jortsort # --description-- -jortSort is a sorting toolset that makes the user do the work and guarantees efficiency because you don't have to sort ever again. It was originally presented by Jenn "Moneydollars" Schiffer at the prestigious [JSConf](https://www.youtube.com/watch?v=pj4U_W0OFoE). +jortSort é um conjunto de ferramentas de ordenação que faz com que o usuário faça o trabalho e garante a eficiência porque você não tem que organizar novamente. Ele foi apresentado originalmente por Jenn "Moneydollars" Schiffer na prestigiada conferência [JSConf](https://www.youtube.com/watch?v=pj4U_W0OFoE). -jortSort should be a function that takes a single array of comparable objects as its argument. It then sorts the array in ascending order and compares the sorted array to the originally provided array. If the arrays match (i.e. the original array was already sorted), the function returns true. If the arrays do not match (i.e. the original array was not sorted), the function returns false. +jortSort deve ser uma função que recebe um único array de objetos comparáveis como argumento. Ela ordena o array em ordem ascendente e compara o array ordenado ao array fornecido inicialmente. Se os arrays corresponderem (ou seja, se o array original já foi ordenado), a função retorna true. Se os arrays não corresponderem (ou seja, se o array original não estiver ordenado), a função retorna false. # --hints-- -`jortsort` should be a function. +`jortsort` deve ser uma função. ```js assert(typeof jortsort == 'function'); ``` -`jortsort([1,2,3,4,5])` should return a boolean. +`jortsort([1,2,3,4,5])` deve retornar um booleano. ```js assert(typeof jortsort([1, 2, 3, 4, 5]) == 'boolean'); ``` -`jortsort([1,2,3,4,5])` should return `true`. +`jortsort([1,2,3,4,5])` deve retornar `true`. ```js assert.equal(jortsort([1, 2, 3, 4, 5]), true); ``` -`jortsort([1,2,13,4,5])` should return `false`. +`jortsort([1,2,13,4,5])` deve retornar `false`. ```js assert.equal(jortsort([1, 2, 13, 4, 5]), false); ``` -`jortsort([12,4,51,2,4])` should return `false`. +`jortsort([12,4,51,2,4])` deve retornar `false`. ```js assert.equal(jortsort([12, 4, 51, 2, 4]), false); ``` -`jortsort([1,2])` should return `true`. +`jortsort([1,2])` deve retornar `true`. ```js assert.equal(jortsort([1, 2]), true); ``` -`jortsort([5,4,3,2,1])` should return `false`. +`jortsort([5,4,3,2,1])` deve retornar `false`. ```js assert.equal(jortsort([5, 4, 3, 2, 1]), false); ``` -`jortsort([1,1,1,1,1])` should return `true`. +`jortsort([1,1,1,1,1])` deve retornar `true`. ```js assert.equal(jortsort([1, 1, 1, 1, 1]), true); diff --git a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/josephus-problem.md b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/josephus-problem.md index 6e8314e204..241cdac90f 100644 --- a/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/josephus-problem.md +++ b/curriculum/challenges/portuguese/10-coding-interview-prep/rosetta-code/josephus-problem.md @@ -1,6 +1,6 @@ --- id: 5a23c84252665b21eecc7ec5 -title: Josephus problem +title: O problema de Josephus challengeType: 5 forumTopicId: 302294 dashedName: josephus-problem @@ -8,65 +8,65 @@ dashedName: josephus-problem # --description-- -[Josephus problem](https://en.wikipedia.org/wiki/Josephus problem) is a math puzzle with a grim description: $n$ prisoners are standing on a circle, sequentially numbered from $0$ to $n-1$. +O [problema de Josephus](https://en.wikipedia.org/wiki/Josephus problem) é um desafio de matemática com uma descrição macabra: $n$ prisoneiros estão de pé, em círculo, sequencialmente numerados de $0$ a $n-1$. -An executioner walks along the circle, starting from prisoner $0$, removing every $k$-th prisoner and killing him. +Um carrasco caminha pelo círculo, começando pelo prisioneiro $0$, removendo cada $k$-ésimo prisioneiro e matando-o. -As the process goes on, the circle becomes smaller and smaller, until only one prisoner remains, who is then freed. +À medida que o processo avança, o círculo torna-se cada vez menor, até ficar apenas um prisioneiro, que é depois libertado. -For example, if there are $n=5$ prisoners and $k=2$, the order the prisoners are killed in (let's call it the "killing sequence") will be 1, 3, 0, and 4, and the survivor will be #2. +Por exemplo, se houver $n=5$ prisioneiros e $k=2$, a ordem em que os prisioneiros são mortos (vamos chamá-la de "sequência de morte") será 1, 3, 0 e 4. O sobrevivente, então, será o nº 2. -Given any $n, k > 0$, find out which prisoner will be the final survivor. +Dado qualquer $n, sendo k > 0$, descubra qual prisioneiro será o sobrevivente ao final. -In one such incident, there were 41 prisoners and every 3rd prisoner was being killed ($k=3$). +Em um incidente deste tipo, havia 41 prisoneiros e o 3o prisioneiro na sequência era morto ($k=3$). -Among them was a clever chap name Josephus who worked out the problem, stood at the surviving position, and lived on to tell the tale. +Entre eles, havia um homem inteligente, chamado Josephus, que desvendou o problema, ficou na posição do sobrevivente e viveu para contar a história. -Which number was he? +Qual era o número dele? # --instructions-- -Write a function that takes the initial number of prisoners and 'k' as parameter and returns the number of the prisoner that survives. +Escreva uma função que recebe o número inicial de prisioneiros e 'k' como parâmetros, devolvendo o número do prisioneiro que sobrevive. # --hints-- -`josephus` should be a function. +`josephus` deve ser uma função. ```js assert(typeof josephus == 'function'); ``` -`josephus(30,3)` should return a number. +`josephus(30,3)` deve retornar um número. ```js assert(typeof josephus(30, 3) == 'number'); ``` -`josephus(30,3)` should return `28`. +`josephus(30,3)` deve retornar `28`. ```js assert.equal(josephus(30, 3), 28); ``` -`josephus(30,5)` should return `2`. +`josephus(30,5)` deve retornar `2`. ```js assert.equal(josephus(30, 5), 2); ``` -`josephus(20,2)` should return `8`. +`josephus(20,2)` deve retornar `8`. ```js assert.equal(josephus(20, 2), 8); ``` -`josephus(17,6)` should return `1`. +`josephus(17,6)` deve retornar `1`. ```js assert.equal(josephus(17, 6), 1); ``` -`josephus(29,4)` should return `1`. +`josephus(29,4)` deve retornar `1`. ```js assert.equal(josephus(29, 4), 1);