Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(pt-br): translate writing-markup-with-jsx page #657

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
168 changes: 84 additions & 84 deletions src/content/learn/writing-markup-with-jsx.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,113 +4,113 @@ title: Writing Markup with JSX

<Intro>

*JSX* is a syntax extension for JavaScript that lets you write HTML-like markup inside a JavaScript file. Although there are other ways to write components, most React developers prefer the conciseness of JSX, and most codebases use it.
*JSX* é uma extensão de sintaxe para JavaScript que permite você escrever códigos com marcações tipo HTML dentro de um arquivo Javascript. Embora existam outras maneiras de se escrever componentes, a maioria dos desenvolvedores React preferem a concisão do JSX e a maioria das bases de código o utiliza.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
*JSX* é uma extensão de sintaxe para JavaScript que permite você escrever códigos com marcações tipo HTML dentro de um arquivo Javascript. Embora existam outras maneiras de se escrever componentes, a maioria dos desenvolvedores React preferem a concisão do JSX e a maioria das bases de código o utiliza.
*JSX* é uma extensão de sintaxe para JavaScript que permite você escrever códigos utilizando tags como faria no HTML dentro de um arquivo Javascript. Embora existam outras maneiras de se escrever componentes, a maioria dos desenvolvedores React preferem a concisão do JSX e a maioria das bases de código o utiliza.

Traduzi markup como tag no PR #660 , acredito que é a melhor palavra para o contexto, já que não temos tradução da palavra markup.


</Intro>

<YouWillLearn>

* Why React mixes markup with rendering logic
* How JSX is different from HTML
* How to display information with JSX
* Porque o React mistura marcações com lógica de renderização
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Porque o React mistura marcações com lógica de renderização
* Por que o React mistura tags com lógica de renderização

O porquê certo neste caso é separado sem acento.
Sugiro a palavra tag para tradução de markup em coerência com #660

* Como o JSX é diferente do HTML
* Como mostrar informações com o JSX

</YouWillLearn>

## JSX: Putting markup into JavaScript {/*jsx-putting-markup-into-javascript*/}
## JSX: Colocando marcação em JavaScript {/*jsx-putting-markup-into-javascript*/}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## JSX: Colocando marcação em JavaScript {/*jsx-putting-markup-into-javascript*/}
## JSX: Colocando tags dentro do JavaScript {/*jsx-putting-markup-into-javascript*/}

Sugiro a palavra tag para tradução de markup em coerência com #660


The Web has been built on HTML, CSS, and JavaScript. For many years, web developers kept content in HTML, design in CSS, and logic in JavaScript—often in separate files! Content was marked up inside HTML while the page's logic lived separately in JavaScript:
A Web foi construída em HTML, CSS e JavaScript. Por muitos anos, os desenvolvedores da Web mantiveram o conteúdo em HTML, o design em CSS e a lógica em JavaScript — muitas vezes em arquivos separados! O conteúdo era marcado dentro do HTML enquanto a lógica da página vivia separadamente no JavaScript:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A Web foi construída em HTML, CSS e JavaScript. Por muitos anos, os desenvolvedores da Web mantiveram o conteúdo em HTML, o design em CSS e a lógica em JavaScript — muitas vezes em arquivos separados! O conteúdo era marcado dentro do HTML enquanto a lógica da página vivia separadamente no JavaScript:
A Web foi construída em HTML, CSS e JavaScript. Por muitos anos, os desenvolvedores da Web mantiveram o conteúdo em HTML, o design em CSS e a lógica em JavaScript — muitas vezes em arquivos separados! O conteúdo era estruturado dentro do HTML enquanto a lógica da página vivia separadamente no JavaScript:


<DiagramGroup>

<Diagram name="writing_jsx_html" height={237} width={325} alt="HTML markup with purple background and a div with two child tags: p and form. ">
<Diagram name="writing_jsx_html" height={237} width={325} alt="Marcação HTML com fundo roxo e um div com duas tags filhas: p e form.">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<Diagram name="writing_jsx_html" height={237} width={325} alt="Marcação HTML com fundo roxo e um div com duas tags filhas: p e form.">
<Diagram name="writing_jsx_html" height={237} width={325} alt="Bloco de código HTML com fundo roxo contendo uma div com duas tags filhas: p e form.">


HTML

</Diagram>

<Diagram name="writing_jsx_js" height={237} width={325} alt="Three JavaScript handlers with yellow background: onSubmit, onLogin, and onClick.">
<Diagram name="writing_jsx_js" height={237} width={325} alt="Três manipuladores JavaScript com fundo amarelo: onSubmit, onLogin e onClick.">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<Diagram name="writing_jsx_js" height={237} width={325} alt="Três manipuladores JavaScript com fundo amarelo: onSubmit, onLogin e onClick.">
<Diagram name="writing_jsx_js" height={237} width={325} alt="Três funções JavaScript com fundo amarelo: onSubmit, onLogin e onClick.">


JavaScript

</Diagram>

</DiagramGroup>

But as the Web became more interactive, logic increasingly determined content. JavaScript was in charge of the HTML! This is why **in React, rendering logic and markup live together in the same place—components.**
Mas à medida que a Web se tornava mais interativa, a lógica determinava cada vez mais o conteúdo. O JavaScript ficou a cargo do HTML! É por isso que **no React, a lógica de renderização e a marcação vivem juntas no mesmo lugar — os componentes.**
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Mas à medida que a Web se tornava mais interativa, a lógica determinava cada vez mais o conteúdo. O JavaScript ficou a cargo do HTML! É por isso que **no React, a lógica de renderização e a marcação vivem juntas no mesmo lugar — os componentes.**
Mas à medida que a Web se tornava mais interativa, a lógica determinava cada vez mais o conteúdo. O JavaScript se tornou responsável por criar o HTML! É por isso que **no React, a lógica de renderização e a marcação vivem juntas no mesmo lugar — os componentes.**

Sugiro esta modificação porque o original dá um sentido dúbio de que o HTML agora é responsável pelo JS, quando na verdade é o contrário.


<DiagramGroup>

<Diagram name="writing_jsx_sidebar" height={330} width={325} alt="React component with HTML and JavaScript from previous examples mixed. Function name is Sidebar which calls the function isLoggedIn, highlighted in yellow. Nested inside the function highlighted in purple is the p tag from before, and a Form tag referencing the component shown in the next diagram.">
<Diagram name="writing_jsx_sidebar" height={330} width={325} alt="Componente React com HTML e JavaScript de exemplos anteriores misturados. O nome da função é Sidebar que chama a função isLoggedIn, destacada em amarelo. Aninhada dentro da função destacada em roxo está a tag p de antes e uma tag Form referenciando o componente mostrado no próximo diagrama.">

`Sidebar.js` React component
`Sidebar.js` Componente React

</Diagram>

<Diagram name="writing_jsx_form" height={330} width={325} alt="React component with HTML and JavaScript from previous examples mixed. Function name is Form containing two handlers onClick and onSubmit highlighted in yellow. Following the handlers is HTML highlighted in purple. The HTML contains a form element with a nested input element, each with an onClick prop.">
<Diagram name="writing_jsx_form" height={330} width={325} alt="Componente React com HTML e JavaScript de exemplos anteriores misturados. O nome da função é Form contendo dois manipuladores onClick e onSubmit destacados em amarelo. Após os manipuladores, está o HTML destacado em roxo. O HTML contém um elemento de formulário com um elemento de entrada aninhado, cada um com uma propriedade onClick.">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<Diagram name="writing_jsx_form" height={330} width={325} alt="Componente React com HTML e JavaScript de exemplos anteriores misturados. O nome da função é Form contendo dois manipuladores onClick e onSubmit destacados em amarelo. Após os manipuladores, está o HTML destacado em roxo. O HTML contém um elemento de formulário com um elemento de entrada aninhado, cada um com uma propriedade onClick.">
<Diagram name="writing_jsx_form" height={330} width={325} alt="Componente React com HTML e JavaScript de exemplos anteriores misturados. O nome da função é Form contendo duas funções onClick e onSubmit destacados em amarelo. Após as funções, está o HTML destacado em roxo. O HTML contém um elemento de form com um elemento input aninhado, cada um com uma propriedade onClick.">

Sugiro funções para ficar em conformidade e por essa palavra se encaixar melhor no contexto.
Sugiro que a indicação das tags utilizadas não sejam traduzidas.


`Form.js` React component
`Form.js` Componente React

</Diagram>

</DiagramGroup>

Keeping a button's rendering logic and markup together ensures that they stay in sync with each other on every edit. Conversely, details that are unrelated, such as the button's markup and a sidebar's markup, are isolated from each other, making it safer to change either of them on their own.
Manter a lógica de renderização e a marcação de um botão juntas garante que eles permaneçam sincronizados entre si em todas as edições. Por outro lado, os detalhes não relacionados, como a marcação do botão e a marcação da barra lateral, são isolados uns dos outros, tornando mais seguro alterar qualquer um deles por conta própria.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Manter a lógica de renderização e a marcação de um botão juntas garante que eles permaneçam sincronizados entre si em todas as edições. Por outro lado, os detalhes não relacionados, como a marcação do botão e a marcação da barra lateral, são isolados uns dos outros, tornando mais seguro alterar qualquer um deles por conta própria.
Manter a lógica de renderização e as tags de um botão juntas garante que elas permaneçam sincronizadas entre si em todas as edições. Por outro lado, os detalhes não relacionados, como as tags do botão e as tags da barra lateral, são isolados uns dos outros, tornando mais seguro alterar qualquer um deles por conta própria.


Each React component is a JavaScript function that may contain some markup that React renders into the browser. React components use a syntax extension called JSX to represent that markup. JSX looks a lot like HTML, but it is a bit stricter and can display dynamic information. The best way to understand this is to convert some HTML markup to JSX markup.
Cada componente do React é uma função JavaScript que pode conter alguma marcação que o React renderiza no navegador. Os componentes do React usam uma extensão de sintaxe chamada JSX para representar essa marcação. O JSX se parece muito com o HTML, mas é um pouco mais rígido e pode exibir informações dinâmicas. A melhor maneira de entender isso é converter alguma marcação HTML em marcação JSX.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Cada componente do React é uma função JavaScript que pode conter alguma marcação que o React renderiza no navegador. Os componentes do React usam uma extensão de sintaxe chamada JSX para representar essa marcação. O JSX se parece muito com o HTML, mas é um pouco mais rígido e pode exibir informações dinâmicas. A melhor maneira de entender isso é converter alguma marcação HTML em marcação JSX.
Cada componente React é uma função JavaScript que pode conter tags que o React renderiza no navegador. Componentes React utilizam uma extensão de sintaxe chamada JSX para representar essas tags. JSX parece muito com HTML, mas é um pouco mais rígido e pode exibir informações de forma dinâmica.

Sugiro esta tradução para ficar em conformidade com o texto traduzido na PR #660


<Note>

JSX and React are two separate things. They're often used together, but you *can* [use them independently](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#whats-a-jsx-transform) of each other. JSX is a syntax extension, while React is a JavaScript library.
JSX e React são duas coisas separadas. Eles são comumente utilizados juntos, mas você *pode* [usá-los independentemente](https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#whats-a-jsx-transform) um do outro. JSX é uma extensão de sintaxe, enquanto o React é uma biblioteca Javascript.

</Note>

## Converting HTML to JSX {/*converting-html-to-jsx*/}
## Convertendo HTML em JSX {/*converting-html-to-jsx*/}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Convertendo HTML em JSX {/*converting-html-to-jsx*/}
## Convertendo HTML para JSX {/*converting-html-to-jsx*/}


Suppose that you have some (perfectly valid) HTML:
Suponha que você possua um HTML (perfeitamente válido):

```html
<h1>Hedy Lamarr's Todos</h1>
<h1>Ferramentas do Hedy Lamarr</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
class="photo"
>
<ul>
<li>Invent new traffic lights
<li>Rehearse a movie scene
<li>Improve the spectrum technology
<li>Inventar novos semáforos
<li>Ensaiar uma cena de filme
<li>Melhorar a tecnologia espectral
</ul>
```

And you want to put it into your component:
E você quer colocar dentro do seu componente:

```js
export default function TodoList() {
export default function ListaDeTarefas() {
return (
// ???
)
}
```

If you copy and paste it as is, it will not work:
Se você copiar e colar como está, não funcionará:


<Sandpack>

```js
export default function TodoList() {
export default function ListaDeTarefas() {
return (
// This doesn't quite work!
<h1>Hedy Lamarr's Todos</h1>
// Isso não funciona muito bem!
<h1>Tarefas do Hedy Lamarr</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
class="photo"
class="foto"
>
<ul>
<li>Invent new traffic lights
<li>Rehearse a movie scene
<li>Improve the spectrum technology
<li>Inventar novos semáforos
<li>Ensaiar uma cena de filme
<li>Melhorar a tecnologia espectral
</ul>
);
}
Expand All @@ -122,29 +122,29 @@ img { height: 90px }

</Sandpack>

This is because JSX is stricter and has a few more rules than HTML! If you read the error messages above, they'll guide you to fix the markup, or you can follow the guide below.
Isso ocorre porque o JSX é mais rígido e possui algumas regras a mais que o HTML! Se você ler as mensagens de erro acima, elas o guiarão para corrigir a marcação ou você poderá seguir o guia abaixo.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Isso ocorre porque o JSX é mais rígido e possui algumas regras a mais que o HTML! Se você ler as mensagens de erro acima, elas o guiarão para corrigir a marcação ou você poderá seguir o guia abaixo.
Isso ocorre porque o JSX é mais rígido e possui algumas regras a mais que o HTML! Se você ler as mensagens de erro acima, elas o guiarão para corrigir as tags ou você poderá seguir o guia abaixo.


<Note>

Most of the time, React's on-screen error messages will help you find where the problem is. Give them a read if you get stuck!
Na maioria das vezes, as mensagens de erro na tela do React irão ajudá-lo a encontrar onde está o problema. Dê uma lida se você ficar travado!

</Note>

## The Rules of JSX {/*the-rules-of-jsx*/}
## As Regras do JSX {/*the-rules-of-jsx*/}

### 1. Return a single root element {/*1-return-a-single-root-element*/}
### 1. Retornar um único elemento raiz {/*1-return-a-single-root-element*/}

To return multiple elements from a component, **wrap them with a single parent tag.**
Para retornar vários elementos de um componente, **envolva-os com uma única tag pai.**

For example, you can use a `<div>`:
Por exemplo, você pode usar uma `<div>`:

```js {1,11}
<div>
<h1>Hedy Lamarr's Todos</h1>
<h1>Tarefas do Hedy Lamarr</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
class="photo"
class="foto"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
class="foto"
class="photo"

Pelas diretrizes, não devemos traduzir nomes de variáveis, classes, etc. No máximo comentários ou textos se for pertinente

>
<ul>
...
Expand All @@ -153,11 +153,11 @@ For example, you can use a `<div>`:
```


If you don't want to add an extra `<div>` to your markup, you can write `<>` and `</>` instead:
Se você não quiser adicionar uma `<div>` extra à sua marcação, você pode escrever `<>` e `</>` em vez disso:

```js {1,11}
<>
<h1>Hedy Lamarr's Todos</h1>
<h1>Tarefas do Hedy Lamarr</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
Expand All @@ -169,81 +169,81 @@ If you don't want to add an extra `<div>` to your markup, you can write `<>` and
</>
```

This empty tag is called a *[Fragment.](/reference/react/Fragment)* Fragments let you group things without leaving any trace in the browser HTML tree.
Essa tag vazia é chamada de *[Fragmento.](/reference/react/Fragment)* Os fragmentos permitem que você agrupe coisas sem deixar rastros na árvore HTML do navegador.

<DeepDive>

#### Why do multiple JSX tags need to be wrapped? {/*why-do-multiple-jsx-tags-need-to-be-wrapped*/}
#### Por que várias tags JSX precisam ser agrupadas? {/*why-do-multiple-jsx-tags-need-to-be-wrapped*/}

JSX looks like HTML, but under the hood it is transformed into plain JavaScript objects. You can't return two objects from a function without wrapping them into an array. This explains why you also can't return two JSX tags without wrapping them into another tag or a Fragment.
JSX se parece com HTML, mas por detrás das cortinas é transformado em objetos JavaScript simples. Você não pode retornar dois objetos de uma função sem envolvê-los em uma matriz. Isso explica por que você também não pode retornar duas tags JSX sem envolvê-las em outra tag ou Fragmento.

</DeepDive>

### 2. Close all the tags {/*2-close-all-the-tags*/}
### 2. Fechar todas as tags {/*2-close-all-the-tags*/}

JSX requires tags to be explicitly closed: self-closing tags like `<img>` must become `<img />`, and wrapping tags like `<li>oranges` must be written as `<li>oranges</li>`.
O JSX requer que as tags sejam explicitamente fechadas: tags de fechamento automático como `<img>` devem se tornar `<img />`, e tags de empacotamento como `<li>laranjas` devem ser escritas como `<li>laranjas</li> `.

This is how Hedy Lamarr's image and list items look closed:
É assim que a imagem e os itens da lista de Hedy Lamarr ficam fechados:

```js {2-6,8-10}
<>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
class="photo"
class="foto"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
class="foto"
class="photo"

/>
<ul>
<li>Invent new traffic lights</li>
<li>Rehearse a movie scene</li>
<li>Improve the spectrum technology</li>
<li>Inventar novos semáforos</li>
<li>Ensaiar uma cena de filme</li>
<li>Melhorar a tecnologia espectral</li>
</ul>
</>
```

### 3. camelCase <s>all</s> most of the things! {/*3-camelcase-salls-most-of-the-things*/}
### 3. camelCase <s>em todas</s> na maioria das coisas! {/*3-camelcase-salls-most-of-the-things*/}

JSX turns into JavaScript and attributes written in JSX become keys of JavaScript objects. In your own components, you will often want to read those attributes into variables. But JavaScript has limitations on variable names. For example, their names can't contain dashes or be reserved words like `class`.
JSX se transforma em JavaScript e atributos escritos em JSX se tornam chaves de objetos JavaScript. Em seus próprios componentes, muitas vezes você desejará ler esses atributos em variáveis. Mas JavaScript tem limitações em nomes de variáveis. Por exemplo, seus nomes não podem conter hífens ou palavras reservadas como `class`.

This is why, in React, many HTML and SVG attributes are written in camelCase. For example, instead of `stroke-width` you use `strokeWidth`. Since `class` is a reserved word, in React you write `className` instead, named after the [corresponding DOM property](https://developer.mozilla.org/en-US/docs/Web/API/Element/className):
É por isso que, no React, muitos atributos HTML e SVG são escritos em camelCase. Por exemplo, em vez de `stroke-width` você usa `strokeWidth`. Já que `class` é uma palavra reservada, no React você escreve `className`, nomeado após a [propriedade DOM correspondente](https://developer.mozilla.org/en-US/docs/Web/API/Element/className):

```js {4}
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
className="photo"
className="foto"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
className="foto"
className="photo"

/>
```

You can [find all these attributes in the list of DOM component props.](/reference/react-dom/components/common) If you get one wrong, don't worry—React will print a message with a possible correction to the [browser console.](https://developer.mozilla.org/docs/Tools/Browser_Console)
Você pode [encontrar todos esses atributos na lista de propriedades do componente DOM.](/reference/react-dom/components/common) Se você errar, não se preocupe — o React imprimirá uma mensagem com uma possível correção para o [console do navegador.](https://developer.mozilla.org/docs/Tools/Browser_Console)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Você pode [encontrar todos esses atributos na lista de propriedades do componente DOM.](/reference/react-dom/components/common) Se você errar, não se preocupe — o React imprimirá uma mensagem com uma possível correção para o [console do navegador.](https://developer.mozilla.org/docs/Tools/Browser_Console)
Você pode [encontrar todos esses atributos na lista de propriedades do componente DOM.](/reference/react-dom/components/common) Se você fizer algo de errado, não se preocupe — o React imprimirá uma mensagem com uma possível correção para o [console do navegador.](https://developer.mozilla.org/docs/Tools/Browser_Console)


<Pitfall>

For historical reasons, [`aria-*`](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) and [`data-*`](https://developer.mozilla.org/docs/Learn/HTML/Howto/Use_data_attributes) attributes are written as in HTML with dashes.
Por razões históricas, [`aria-*`](https://developer.mozilla.org/docs/Web/Accessibility/ARIA) e [`data-*`](https://developer.mozilla.org/docs/Learn/HTML/Howto/Use_data_attributes) são escritos como em HTML com hífens.

</Pitfall>

### Pro-tip: Use a JSX Converter {/*pro-tip-use-a-jsx-converter*/}
### Dica: use um conversor JSX {/*pro-tip-use-a-jsx-converter*/}

Converting all these attributes in existing markup can be tedious! We recommend using a [converter](https://transform.tools/html-to-jsx) to translate your existing HTML and SVG to JSX. Converters are very useful in practice, but it's still worth understanding what is going on so that you can comfortably write JSX on your own.
Converter todos esses atributos em marcação pode ser tedioso! Recomendamos o uso de um [conversor](https://transform.tools/html-to-jsx) para traduzir seu HTML e SVG existentes para JSX. Os conversores são muito úteis na prática, mas ainda vale a pena entender o que está acontecendo para que você possa escrever JSX confortavelmente por conta própria.

Here is your final result:
Aqui está seu resultado final:

<Sandpack>

```js
export default function TodoList() {
export default function ListaDeTarefas() {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
export default function ListaDeTarefas() {
export default function TodoList() {

return (
<>
<h1>Hedy Lamarr's Todos</h1>
<h1>Tarefas do Hedy Lamarr</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
className="photo"
className="foto"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
className="foto"
className="photo"

/>
<ul>
<li>Invent new traffic lights</li>
<li>Rehearse a movie scene</li>
<li>Improve the spectrum technology</li>
<li>Inventar novos semáforos</li>
<li>Ensaiar uma cena de filme</li>
<li>Melhorar a tecnologia espectral</li>
</ul>
</>
);
Expand All @@ -258,34 +258,34 @@ img { height: 90px }

<Recap>

Now you know why JSX exists and how to use it in components:
Agora você sabe porque o JSX existe e como usá-lo em componentes:

* React components group rendering logic together with markup because they are related.
* JSX is similar to HTML, with a few differences. You can use a [converter](https://transform.tools/html-to-jsx) if you need to.
* Error messages will often point you in the right direction to fixing your markup.
* Os componentes do React agrupam a lógica de renderização junto com a marcação porque estão relacionados.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Os componentes do React agrupam a lógica de renderização junto com a marcação porque estão relacionados.
* Os componentes do React agrupam a lógica de renderização junto com as tags porque estão relacionados.

Sugiro a palavra tag para tradução de markup em coerência com #660

* O JSX é semelhante ao HTML, com algumas diferenças. Se necessário, pode utilizar um [conversor] (https://transform.tools/html-to-jsx).
* As mensagens de erro geralmente indicam a direção certa para corrigir sua marcação.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* As mensagens de erro geralmente indicam a direção certa para corrigir sua marcação.
* As mensagens de erro geralmente indicam a direção certa para corrigir suas tags.

Sugiro a palavra tag para tradução de markup em coerência com #660


</Recap>



<Challenges>

#### Convert some HTML to JSX {/*convert-some-html-to-jsx*/}
#### Converta um HTML para JSX {/*convert-some-html-to-jsx*/}

This HTML was pasted into a component, but it's not valid JSX. Fix it:
Este HTML foi colado em um componente, mas não é um JSX válido. Conserte-o:

<Sandpack>

```js
export default function Bio() {
return (
<div class="intro">
<h1>Welcome to my website!</h1>
<h1>Bem-vindo ao meu site!</h1>
</div>
<p class="summary">
You can find my thoughts here.
<p class="resumo">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p class="resumo">
<p class="summary">

Você pode encontrar meus pensamentos aqui.
<br><br>
<b>And <i>pictures</b></i> of scientists!
<b>E <i>fotos</b></i> de cientistas!
</p>
);
}
Expand All @@ -300,15 +300,15 @@ export default function Bio() {
-webkit-text-fill-color: transparent;
}

.summary {
.resumo {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.resumo {
.summary{

padding: 20px;
border: 10px solid gold;
}
```

</Sandpack>

Whether to do it by hand or using the converter is up to you!
Se vai fazê-lo manualmente ou utilizando um conversor, você decide!

<Solution>

Expand All @@ -319,12 +319,12 @@ export default function Bio() {
return (
<div>
<div className="intro">
<h1>Welcome to my website!</h1>
<h1>Bem vindo ao meu site!</h1>
</div>
<p className="summary">
You can find my thoughts here.
<p className="resumo">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<p className="resumo">
<p className="summary">

Você pode encontrar meus pensamentos aqui.
<br /><br />
<b>And <i>pictures</i></b> of scientists!
<b>E <i>fotos</i></b> de cientistas!
</p>
</div>
);
Expand All @@ -340,7 +340,7 @@ export default function Bio() {
-webkit-text-fill-color: transparent;
}

.summary {
.resumo {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
.resumo {
.summary {

padding: 20px;
border: 10px solid gold;
}
Expand Down