Repository navigation
Conversation
gabifs
left a comment
There was a problem hiding this comment.
Obrigado pela tradução! Deixei algumas sugestões para deixar o texto mais natural em português.
| # Object.keys, values, entries | ||
|
|
||
| Let's step away from the individual data structures and talk about the iterations over them. | ||
| Vamos dar um passo atrás das estruturas de dados individuais e falar sobre como iterar sobre elas. |
There was a problem hiding this comment.
"Dar um passo atrás de algo" passa a ideia de recuar para trás de alguma coisa, não de deixar o assunto de lado. Sugestão:
| Vamos dar um passo atrás das estruturas de dados individuais e falar sobre como iterar sobre elas. | |
| Vamos deixar de lado as estruturas de dados individuais e falar sobre como iterar sobre elas. |
| No capítulo anterior, vimos os métodos `map.keys()`, `map.values()`, `map.entries()`. | ||
|
|
||
| These methods are generic, there is a common agreement to use them for data structures. If we ever create a data structure of our own, we should implement them too. | ||
| Esses métodos são genéricos, existe um acordo comum para usá-los em estruturas de dados. Se um dia criarmos nossa própria estrutura de dados, devemos implementá-los também. |
There was a problem hiding this comment.
Aqui a vírgula ficou igual à do inglês e a frase ficou corrida. Além disso, "acordo comum" não transmite bem a ideia de "convention". Que tal:
| Esses métodos são genéricos, existe um acordo comum para usá-los em estruturas de dados. Se um dia criarmos nossa própria estrutura de dados, devemos implementá-los também. | |
| Esses métodos são genéricos: há uma convenção de usá-los em estruturas de dados. Se um dia criarmos nossa própria estrutura de dados, devemos implementá-los também. |
| |-------------|------------------|--------------| | ||
| | Call syntax | `map.keys()` | `Object.keys(obj)`, but not `obj.keys()` | | ||
| | Returns | iterable | "real" Array | | ||
| | Sintaxe de chamada | `map.keys()` | `Object.keys(obj)`, mas não `obj.keys()` | |
There was a problem hiding this comment.
Detalhe: "Sintaxe de chamada" ficou mais largo que a célula do cabeçalho, então as colunas da tabela ficaram desalinhadas no markdown. A tabela é exibida normalmente; é só para facilitar a leitura do código-fonte. Dá para reajustar o espaçamento do cabeçalho e do separador?
| A primeira diferença é que precisamos chamar `Object.keys(obj)`, e não `obj.keys()`. | ||
|
|
||
| Why so? The main reason is flexibility. Remember, objects are a base of all complex structures in JavaScript. So we may have an object of our own like `data` that implements its own `data.values()` method. And we still can call `Object.values(data)` on it. | ||
| Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)` sobre ele. |
There was a problem hiding this comment.
"Chamar ... sobre ele" é tradução literal de "call ... on it" e soa estranho em português. Dá para tirar essa parte:
| Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)` sobre ele. | |
| Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)`. |
| Por que assim? O principal motivo é flexibilidade. Lembre-se, objetos são a base de todas as estruturas complexas em JavaScript. Então podemos ter um objeto nosso, chamado `data`, que implementa seu próprio método `data.values()`. E ainda assim podemos chamar `Object.values(data)` sobre ele. | ||
|
|
||
| The second difference is that `Object.*` methods return "real" array objects, not just an iterable. That's mainly for historical reasons. | ||
| A segunda diferença é que os métodos `Object.*` retornam objetos "array de verdade", e não apenas um iterável. Isso é, principalmente, por motivos históricos. |
There was a problem hiding this comment.
"Objetos 'array de verdade'" e "Isso é, principalmente, por motivos históricos" ficaram bem próximos do original em inglês. Sugestão mais natural:
| A segunda diferença é que os métodos `Object.*` retornam objetos "array de verdade", e não apenas um iterável. Isso é, principalmente, por motivos históricos. | |
| A segunda diferença é que os métodos `Object.*` retornam arrays "de verdade", e não apenas iteráveis. Isso se deve principalmente a motivos históricos. |
| ``` | ||
|
|
||
| It may look difficult at first sight, but becomes easy to understand after you use it once or twice. We can make powerful chains of transforms this way. | ||
| Pode parecer difícil à primeira vista, mas fica fácil de entender depois que você usa uma ou duas vezes. Dá pra montar cadeias de transformações bem poderosas dessa forma. |
There was a problem hiding this comment.
"Pra" não aparece em nenhum outro lugar do 1-js/. Para manter o tom informal, mas correto, do resto do tutorial:
| Pode parecer difícil à primeira vista, mas fica fácil de entender depois que você usa uma ou duas vezes. Dá pra montar cadeias de transformações bem poderosas dessa forma. | |
| Pode parecer difícil à primeira vista, mas fica fácil de entender depois que você usa uma ou duas vezes. Dá para montar cadeias de transformações bem poderosas dessa forma. |
| Existe um objeto `salaries` com um número qualquer de salários. | ||
|
|
||
| Write the function `sumSalaries(salaries)` that returns the sum of all salaries using `Object.values` and the `for..of` loop. | ||
| Escreva a função `sumSalaries(salaries)` que retorna a soma de todos os salários, usando `Object.values` e o laço `for..of`. |
There was a problem hiding this comment.
Gostei do uso de "laço" em vez de "loop", que segue a orientação de evitar palavras estrangeiras. Os capítulos mais antigos ainda usam "loop", mas isso pode ficar para outro PR.
| Tente deixar o código o mais curto possível. | ||
|
|
||
| P.S. Ignore symbolic properties, count only "regular" ones. | ||
| P.S. Ignore propriedades simbólicas, conte apenas as "normais". |
There was a problem hiding this comment.
"Apenas as 'normais'" ficou um pouco vago: o leitor pode não saber quais propriedades contar. Sugestão:
| P.S. Ignore propriedades simbólicas, conte apenas as "normais". | |
| P.S. Ignore propriedades simbólicas, conte apenas as propriedades "comuns" (com chaves do tipo string). |
Outra opção é manter "normais", desde que o termo seja usado da mesma forma em todo o capítulo.
|
Obrigado, @gabifs! Apliquei as sugestões de naturalidade ("deixar de lado", "convenção", removi o "sobre ele" literal, suavizei a frase sobre arrays "de verdade"), troquei "pra" por "para" pra manter o registro do resto do 1-js/, ajustei o espaçamento da tabela, e deixei o P.S. do segundo exercício mais específico sobre quais propriedades contar. |
Tradução do artigo "Object.keys, values, entries" para o português, incluindo os dois exercícios.
Conforme comentado na #1.