Skip to content

Commit 394f27d

Browse files
committed
Fixed: typos and translations
1 parent 5d18cde commit 394f27d

24 files changed

+70
-68
lines changed

pt-br/tutorials/tour/abstract-types.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ tutorial-previous: inner-classes
1111
language: pt-br
1212
---
1313

14-
Em Scala, as classes são parametrizadas com valores (parâmetros de construtor) e com tipos (se [classes genéricas](generic-classes.html)). Por razões de regularidade, só não é possível ter valores como membros de um objeto; tipos juntamente com valores são membros de objetos. Além disso, ambas as formas de membros podem ser concretas e abstratas.
14+
Em Scala, as classes são parametrizadas com valores (os parâmetros de construtor) e com tipos (se as [classes genéricas](generic-classes.html)). Por razões de regularidade, só não é possível ter valores como membros de um objeto; tipos juntamente com valores são membros de objetos. Além disso, ambas as formas de membros podem ser concretas e abstratas.
1515

16-
Aqui está um exemplo que define uma definição de valor diferido e uma definição de tipo abstrato como membros de uma [trait](traits.html) chamada `Buffer`.
16+
Aqui está um exemplo que mostra uma definição de valor diferido e uma definição de tipo abstrato como membros de uma [trait](traits.html) chamada `Buffer`.
1717

1818
```tut
1919
trait Buffer {
@@ -22,9 +22,9 @@ trait Buffer {
2222
}
2323
```
2424

25-
*Tipos Abstratos* são tipos cuja identidade não é precisamente conhecida. No exemplo acima, só sabemos que cada objeto da classe `Buffer` tem um membro de tipo `T`, mas a definição de classe `Buffer` não revela para qual tipo concreto o membro do tipo `T` corresponde. Como definições de valores, podemos sobrescrever definições de tipos em subclasses. Isso nos permite revelar mais informações sobre um tipo abstrato ao limitar o tipo associado (o qual descreve as possíveis instâncias concretas do tipo abstrato).
25+
*Tipos Abstratos* são tipos cuja identidade não é precisamente conhecida. No exemplo acima, só sabemos que cada objeto da classe `Buffer` tem um membro de tipo `T`, mas a definição de classe `Buffer` não revela a qual tipo concreto o membro do tipo `T` corresponde. Como definições de valores, podemos sobrescrever definições de tipos em subclasses. Isso nos permite revelar mais informações sobre um tipo abstrato ao limitar o tipo associado (o qual descreve as possíveis instâncias concretas do tipo abstrato).
2626

27-
No seguinte programa temos uma classe `SeqBuffer` que nos permite armazenar apenas as sequências no buffer ao definir que o tipo `-T` precisa ser um subtipo de `Seq[U]` para um novo tipo abstrato `U`:
27+
No seguinte programa temos uma classe `SeqBuffer` que nos permite armazenar apenas as sequências no buffer ao definir que o tipo `T` precisa ser um subtipo de `Seq[U]` para um novo tipo abstrato `U`:
2828

2929
```tut
3030
abstract class SeqBuffer extends Buffer {
@@ -53,7 +53,7 @@ object AbstractTypeTest1 extends App {
5353
}
5454
```
5555

56-
O tipo de retorno do método `newIntSeqBuf` refere-se a uma especialização da trait `Buffer` no qual o tipo `U` é agora equivalente a `Int`. Declaramos um tipo alias semelhante ao que temos na instanciação da classe anônima dentro do corpo do método `newIntSeqBuf`. Criamos uma nova instância de `IntSeqBuffer` na qual o tipo `T` refere-se a `List [Int]`.
56+
O tipo de retorno do método `newIntSeqBuf` refere-se a uma especialização da trait `Buffer` no qual o tipo `U` é agora equivalente a `Int`. Declaramos um tipo *alias* semelhante ao que temos na instanciação da classe anônima dentro do corpo do método `newIntSeqBuf`. Criamos uma nova instância de `IntSeqBuffer` na qual o tipo `T` refere-se a `List[Int]`.
5757

5858
Observe que muitas vezes é possível transformar os membros de tipo abstrato em parâmetros de tipo de classes e vice-versa. Aqui está uma versão do código acima que usa apenas parâmetros de tipo:
5959

@@ -75,5 +75,5 @@ object AbstractTypeTest2 extends App {
7575
}
7676
```
7777

78-
Note que temos que usar [anotação de variância](variances.html) aqui; Caso contrário, não seríamos capazes de ocultar o tipo implementado pela sequência concreta do objeto retornado por `newIntSeqBuf`. Além disso, há casos em que não é possível substituir tipos abstratos com parâmetros de tipo.
78+
Note que temos que usar [anotação de variância](variances.html) aqui; Caso contrário, não seríamos capazes de ocultar o tipo implementado pela sequência concreta do objeto retornado pelo método `newIntSeqBuf`. Além disso, há casos em que não é possível substituir tipos abstratos com parâmetros de tipo.
7979

pt-br/tutorials/tour/annotations.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ language: pt-br
1313

1414
Anotações associam meta-informação com definições.
1515

16-
Uma cláusula de anotação simples tem a forma `@C` ou `@C(a1,..., an)`. Aqui, `C` é um construtor de uma classe `C`, que deve estar em conformidade com a classe `scala.Annotation`. Todos os argumentos de construtor fornecidos `a1, .., an` devem ser expressões constantes (isto é, expressões em literais numéricos, strings, classe, enumerações Java e matrizes uni-dimensionais).
16+
Uma cláusula de anotação simples tem a forma `@C` ou `@C(a1,..., an)`. Aqui, `C` é um construtor de uma classe `C`, que deve estar em conformidade com a classe `scala.Annotation`. Todos os argumentos de construtor fornecidos `a1, .., an` devem ser expressões constantes (isto é, expressões em literais numéricos, strings, literais de classes, enumerações Java e matrizes uni-dimensionais).
1717

18-
Uma cláusula de anotação se aplica à primeira definição ou declaração que a segue. Mais de uma cláusula de anotação pode preceder uma definição e uma declaração. Não importa a ordem em que essas cláusulas são declaradas.
18+
Uma cláusula de anotação se aplica à primeira definição ou declaração que a segue. Mais de uma cláusula de anotação pode preceder uma definição e uma declaração. Não importa a ordem em que essas cláusulas são declaradas.
1919

20-
O significado das cláusulas de anotação é _implementação-dependente_. Na plataforma Java, as seguintes anotações Scala têm um significado padrão.
20+
O significado das cláusulas de anotação é _dependente da implementação_. Na plataforma Java, as seguintes anotações Scala têm um significado padrão.
2121

2222
| Scala | Java |
2323
| ------ | ------ |
@@ -72,7 +72,7 @@ public class AnnotaTest {
7272
}
7373
```
7474

75-
Se comentar a anotação `throws` na classe `Reader` o complidor produz a seguinte mensagem de erro ao compilar o programa principal Java:
75+
Comentando-se a anotação `throws` na classe `Reader` o compilador produz a seguinte mensagem de erro ao compilar o programa principal Java:
7676

7777
```
7878
Main.java:11: exception java.io.IOException is never thrown in body of
@@ -142,7 +142,7 @@ O elemento `mail` foi especificado com um valor padrão, portanto não precisamo
142142
public class MyClass extends HisClass ...
143143
```
144144

145-
A Scala proporciona mais flexibilidade a respeito disso:
145+
Scala proporciona mais flexibilidade a respeito disso:
146146

147147
```
148148
@SourceURL("http://coders.com/",

pt-br/tutorials/tour/anonymous-function-syntax.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ new Function1[Int, Int] {
2525
}
2626
```
2727

28-
Também é possível definir funções com mútiplos parâmetros:
28+
Também é possível definir funções com múltiplos parâmetros:
2929

3030
```tut
3131
(x: Int, y: Int) => "(" + x + ", " + y + ")"
3232
```
3333

34-
or sem parâmetros:
34+
ou sem parâmetros:
3535

3636
```tut
3737
() => { System.getProperty("user.dir") }

pt-br/tutorials/tour/automatic-closures.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
layout: tutorial
3-
title: Automatic Type-Dependent Closure Construction
3+
title: Construção Automática de Closures de Tipo-Dependente
44

55
disqus: true
66

@@ -11,7 +11,9 @@ tutorial-previous: operators
1111
language: pt-br
1212
---
1313

14-
O Scala permite nomes de funções sem parâmetros como parâmetros de métodos. Quando um tal método é chamado, os parâmetros reais para nomes de função sem parâmetros não são avaliados e uma função nula é passada em vez disso, tal função encapsula a computação do parâmetro correspondente (isso é conhecido por avaliação *call-by-name*).
14+
_Nota de tradução: A palavra `closure` em pode ser traduzida como encerramento/fechamento, porém é preferível utilizar a notação original_
15+
16+
Scala permite funções sem parâmetros como parâmetros de métodos. Quando um tal método é chamado, os parâmetros reais para nomes de função sem parâmetros não são avaliados e uma função nula é passada em vez disso, tal função encapsula a computação do parâmetro correspondente (isso é conhecido por avaliação *call-by-name*).
1517

1618
O código a seguir demonstra esse mecanismo:
1719

@@ -30,11 +32,11 @@ object TargetTest1 extends App {
3032
}
3133
```
3234

33-
A função `whileLoop` tem dois parâmetros `cond` e `body`. Quando a função é aplicada, os parâmetros reais não são avaliados. Mas sempre que os parâmetros formais são usados no corpo de `whileLoop`, as funções nulas criadas implicitamente serão avaliadas em seu lugar. Assim, o nosso método `whileLoop` implementa um while-loop Java-like com um esquema de implementação recursiva.
35+
A função `whileLoop` recebe dois parâmetros: `cond` e `body`. Quando a função é aplicada, os parâmetros reais não são avaliados. Mas sempre que os parâmetros formais são usados no corpo de `whileLoop`, as funções nulas criadas implicitamente serão avaliadas em seu lugar. Assim, o nosso método `whileLoop` implementa um while-loop Java-like com um esquema de implementação recursiva.
3436

3537
Podemos combinar o uso de [operadores infix/postfix](operators.html) com este mecanismo para criar declarações mais complexas (com uma sintaxe agradável).
3638

37-
Aqui está a implementação de uma instrução que executa loop ao menos que uma condição seja satisfeita:
39+
Aqui está a implementação de uma instrução que executa loop a menos que uma condição seja satisfeita:
3840

3941
```tut
4042
object TargetTest2 extends App {
@@ -54,7 +56,7 @@ object TargetTest2 extends App {
5456
}
5557
```
5658

57-
A função `loop` apenas aceita um corpo de um loop e retorna uma instância da classe` LoopUnlessCond` (que encapsula este objeto de corpo). Note que o corpo ainda não foi avaliado. A classe `LoopUnlessCond` tem um método `unless` que podemos usar como um *operador infix*. Dessa forma, obtemos uma sintaxe bastante natural para nosso novo loop: `loop { <stats> } unless ( <cond> )`.
59+
A função `loop` aceita apenas um corpo e retorna uma instância da classe` LoopUnlessCond` (que encapsula este objeto de corpo). Note que o corpo ainda não foi avaliado. A classe `LoopUnlessCond` tem um método `unless` que podemos usar como um *operador infix*. Dessa forma, obtemos uma sintaxe bastante natural para nosso novo loop: `loop { <stats> } unless ( <cond> )`.
5860

5961
Aqui está a saída de quando o `TargetTest2` é executado:
6062

pt-br/tutorials/tour/case-classes.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ Scala suporta o conceito de _classes case_. Classes case são classes regulares
1515

1616
* Imutáveis por padrão
1717
* Decompostas por meio de [correspondência de padrões](pattern-matching.html)
18-
* Comparadas por igualdade estrututal ao invés de referência
18+
* Comparadas por igualdade estrutural ao invés de referência
1919
* Sucintas para instanciar e operar
2020

21-
Aqui um exemplo para hierarquia de tipos de notificação que consiste em uma super classe abstrata `Notification` e três tipos concretos de notificação implementados com classes case `Email`, `SMS`, e `VoiceRecording`.
21+
Aqui temos um exemplo de hierarquia de tipos para *Notification* que consiste em uma super classe abstrata `Notification` e três tipos concretos de notificação implementados com classes case `Email`, `SMS`, e `VoiceRecording`.
2222

2323
```tut
2424
abstract class Notification
@@ -75,7 +75,7 @@ Somos iguais!
7575
SMS é: SMS(12345, Hello!)
7676
```
7777

78-
Com classes case, você pode utilizar **correspondência de padrões** para manipular seus dados. Aqui um exemplo de uma função que escreve como saída diferente mensagens dependendo do tipo de notificação recebida:
78+
Com classes case, você pode utilizar **correspondência de padrões** para manipular seus dados. Aqui temos um exemplo de uma função que escreve como saída diferente mensagens dependendo do tipo de notificação recebida:
7979

8080
```tut
8181
def mostrarNotificacao(notificacao: Notification): String = {
@@ -114,17 +114,17 @@ def mostrarNotificacaoEspecial(notificacao: Notification, emailEspecial: String,
114114
}
115115
}
116116
117-
val NUMERO_ESPECIAL = "55555"
118-
val EMAIL_ESPECIAL = "jane@mail.com"
117+
val NumeroEspecial = "55555"
118+
val EmailEspecial = "jane@mail.com"
119119
val algumSMS = SMS("12345", "Você está aí?")
120120
val algumaMsgVoz = VoiceRecording("Tom", "voicerecording.org/id/123")
121121
val emailEspecial = Email("jane@mail.com", "Beber hoje a noite?", "Estou livre depois das 5!")
122122
val smsEspecial = SMS("55555", "Estou aqui! Onde está você?")
123123
124-
println(mostrarNotificacaoEspecial(algumSMS, EMAIL_ESPECIAL, NUMERO_ESPECIAL))
125-
println(mostrarNotificacaoEspecial(algumaMsgVoz, EMAIL_ESPECIAL, NUMERO_ESPECIAL))
126-
println(mostrarNotificacaoEspecial(smsEspecial, EMAIL_ESPECIAL, NUMERO_ESPECIAL))
127-
println(mostrarNotificacaoEspecial(smsEspecial, EMAIL_ESPECIAL, NUMERO_ESPECIAL))
124+
println(mostrarNotificacaoEspecial(algumSMS, EmailEspecial, NumeroEspecial))
125+
println(mostrarNotificacaoEspecial(algumaMsgVoz, EmailEspecial, NumeroEspecial))
126+
println(mostrarNotificacaoEspecial(smsEspecial, EmailEspecial, NumeroEspecial))
127+
println(mostrarNotificacaoEspecial(smsEspecial, EmailEspecial, NumeroEspecial))
128128
129129
// Saída:
130130
// Você recebeu um SMS de 12345! Mensagem: Você está aí?

pt-br/tutorials/tour/classes.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ tutorial-previous: unified-types
1111
language: pt-br
1212
---
1313

14-
Classes em Scala são templates estáticos que podem ser instânciados como vários objetos em tempo de execução.
14+
Classes em Scala são templates estáticos que podem ser instanciados como vários objetos em tempo de execução.
1515
Aqui uma definição de classe que define a classe `Ponto`:
1616

1717
```tut
@@ -27,7 +27,7 @@ class Ponto(var x: Int, var y: Int) {
2727

2828
Classes em Scala são parametrizadas com argumentos de construtor. O código acima define dois argumentos de construtor, `x` e `y`; ambos são acessíveis por todo o corpo da classe.
2929

30-
A classe também inclui dois métodos, `move` and `toString`. `move` recebe dois parâmetros inteiros mas não retorna um valor (o tipo de retorno `Unit` equivale ao `void` em linguagens como Java). `toString`, por outro lado, não recebe parâmetro algum mas retorna um valor `String`. Dado que `toString` sobrescreve o método pré-definido `toString`, é marcado com a palavra-chave `override`.
30+
A classe também inclui dois métodos, `move` and `toString`. `move` recebe dois parâmetros inteiros mas não retorna um valor (o tipo de retorno `Unit` equivale ao `void` em linguagens como Java). `toString`, por outro lado, não recebe parâmetro algum mas retorna um valor `String`. Dado que `toString` sobrescreve o método pré-definido `toString`, o mesmo é marcado com a palavra-chave `override`.
3131

3232
Perceba que em Scala, não é necessário declarar `return` para então retornar um valor. O valor retornado em um método é simplesmente o último valor no corpo do método. No caso do método `toString` acima, a expressão após o sinal de igual é avaliada e retornada para quem chamou a função.
3333

@@ -46,7 +46,7 @@ object Classes {
4646

4747
O programa define uma aplicação executável chamada Classes como um [Objeto Singleton](singleton-objects) dentro do método `main`. O método `main` cria um novo `Ponto` e armazena o valor em `pt`. Perceba que valores definidos com o construtor `val` são diferentes das variáveis definidas com o construtor `var` (veja acima a classe `Ponto`), `val` não permite atualização do valor, ou seja, o valor é uma constante.
4848

49-
Aqui a saída do programa:
49+
Aqui está a saída do programa:
5050

5151
```
5252
(1, 2)

pt-br/tutorials/tour/compound-types.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ def cloneAndReset(obj: Cloneable with Resetable): Cloneable = {
4646
}
4747
```
4848

49-
Os tipos de compostos podem consistir em vários tipos de objeto e eles podem ter um único refinamento que pode ser usado para restrigird a assinatura de membros de objetos existentes.
49+
Os tipos de compostos podem consistir em vários tipos de objeto e eles podem ter um único refinamento que pode ser usado para restrigir a assinatura de membros de objetos existentes.
5050

51-
A forma geral é: `A com B com C ... { refinamento }`
51+
A forma geral é: `A with B with C ... { refinamento }`
5252

5353
Um exemplo para o uso de refinamentos é dado na página sobre [tipos abstratos](abstract-types.html).

pt-br/tutorials/tour/currying.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ tutorial-previous: nested-functions
1111
language: pt-br
1212
---
1313

14-
_Nota de tradução: Currying é uma técnica de programação funcional nomeada em honra ao matemático e lógico Haskell Curry. Por essa razão a palavra Currying não será traduzida. Entende-se que é uma ação, uma técnica básica de Programação Funcional._
14+
_Nota de tradução: Currying é uma técnica de programação Funcional nomeada em honra ao matemático e lógico Haskell Curry. Por essa razão a palavra Currying não será traduzida. Entende-se que é uma ação, uma técnica básica de Programação Funcional._
1515

1616
Métodos podem definir múltiplas listas de parâmetros. Quando um método é chamado com uma lista menor de parâmetros, então será retornada uma função que recebe a lista que parâmetros que falta como argumentos.
1717

0 commit comments

Comments
 (0)