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

Russian quickstart translation update (and minor changes for other languages) #3312

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion bg/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ irb(main):043:0> g.respond_to?("to_s")
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

В Ruby лесно може да отворим класа отново за модификация. Промените ще
Expand Down
2 changes: 1 addition & 1 deletion de/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ die Variablen eines Objekts zu gewähren.
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

In Ruby kann man eine Klasse jederzeit verändern. Die Änderungen werden
Expand Down
2 changes: 1 addition & 1 deletion en/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ provides an easy way of providing access to an object’s variables.
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

In Ruby, you can reopen a class and modify it. The changes will
Expand Down
2 changes: 1 addition & 1 deletion es/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ una forma fácil para permitir acceder a las variables de un objeto.
irb(main):044:0> class Anfitrion
irb(main):045:1> attr_accessor :nombre
irb(main):046:1> end
=> nil
=> [:nombre, :nombre=]
{% endhighlight %}

En Ruby, puedes volver a abrir una clase y modificarla. Eso no cambia
Expand Down
2 changes: 1 addition & 1 deletion fr/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ pour accéder aux variables d’instances :
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

Il semblerait que nous ayons défini une seconde fois la classe
Expand Down
2 changes: 1 addition & 1 deletion id/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ Ruby menyediakan cara yang mudah untuk mengakses variabel objek.
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

Di Ruby, Anda dapat membuka lagi sebuah kelas dan memodifikasi kelas tersebut.
Expand Down
2 changes: 1 addition & 1 deletion it/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ per permetterci di accedere alle variabili di un oggetto.
irb(main):044:0> class PersonaCordiale
irb(main):045:1> attr_accessor :nome
irb(main):046:1> end
=> nil
=> [:nome, :nome=]
{% endhighlight %}

In Ruby, puoi aprire una classe e modificarla. I cambiamenti vengono
Expand Down
2 changes: 1 addition & 1 deletion ja/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ Rubyはオブジェクトの変数にアクセスできる簡単な方法を用
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

Rubyでは、定義されたクラスをさらに変更できます。
Expand Down
2 changes: 1 addition & 1 deletion ko/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ Ruby는 객체 변수를 접근하게 해주는 편리한 방법을 제공하고
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

Ruby에서는 클래스를 언제나 열어서 정의를 변경할 수 있습니다.
Expand Down
2 changes: 1 addition & 1 deletion pl/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ nam łatwy dostępn do zmiennych obiektu.
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

W Rubim możesz ponownie otworzyć klasę i zmodyfikować ją. To nie zmienia
Expand Down
2 changes: 1 addition & 1 deletion pt/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ de fornecer acesso às variáveis de um objeto.
irb(main):044:0> class Anfitriao
irb(main):045:1> attr_accessor :nome
irb(main):046:1> end
=> nil
=> [:nome, :nome=]
{% endhighlight %}

Em Ruby, podemos abrir uma classe novamente e alterá-la. As mudanças estarão
Expand Down
35 changes: 18 additions & 17 deletions ru/documentation/quickstart/2/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,29 @@ header: |
создать метод!

{% highlight irb %}
irb(main):010:0> def h
irb(main):010:0> def hi
irb(main):011:1> puts "Hello World!"
irb(main):012:1> end
=> nil
=> :hi
{% endhighlight %}

Код `def h` означает начало объявление метода. Он говорит Ruby, что мы
определяем метод, имя которого `h`. Следующая строка – тело метода, та
Код `def hi` означает начало объявление метода. Он говорит Ruby, что мы
определяем метод, имя которого `hi`. Следующая строка – тело метода, та
же строка, что мы видели раньше: `puts "Hello World"`. И, наконец,
последняя строка, `end`, говорит Ruby, что мы завершили объявление
метода. Ответ от Ruby, `=> nil`, говорит нам, что он понял, что мы
завершили объявление метода.
метода. Ответ от Ruby, `=> :hi`, говорит нам, что он понял, что мы
завершили объявление метода. Ответ может быть таким: `=> nil`, в Ruby
версии 2.0 и ниже, но это здесь не важно, поэтому двинемся дальше.

## Кратко о повторяющихся жизнях метода

Теперь давайте попробуем вызвать метод несколько раз:

{% highlight irb %}
irb(main):013:0> h
irb(main):013:0> hi
Hello World!
=> nil
irb(main):014:0> h()
irb(main):014:0> hi()
Hello World!
=> nil
{% endhighlight %}
Expand All @@ -53,14 +54,14 @@ Hello World!
нравится, но это не обязательно.

Что если мы хотим сказать hello одному человеку, а не всему миру?
Просто переопределим метод `h`, чтобы он принимал имя как параметр.
Просто переопределим метод `hi`, чтобы он принимал имя как параметр.

{% highlight irb %}
irb(main):015:0> def h(name)
irb(main):015:0> def hi(name)
irb(main):016:1> puts "Hello #{name}!"
irb(main):017:1> end
=> nil
irb(main):018:0> h("Matz")
=> :hi
irb(main):018:0> hi("Matz")
Hello Matz!
=> nil
{% endhighlight %}
Expand All @@ -77,14 +78,14 @@ Hello Matz!
большой буквы:

{% highlight irb %}
irb(main):019:0> def h(name = "World")
irb(main):019:0> def hi(name = "World")
irb(main):020:1> puts "Hello #{name.capitalize}!"
irb(main):021:1> end
=> nil
irb(main):022:0> h "chris"
=> :hi
irb(main):022:0> hi "chris"
Hello Chris!
=> nil
irb(main):023:0> h
irb(main):023:0> hi
Hello World!
=> nil
{% endhighlight %}
Expand Down Expand Up @@ -114,7 +115,7 @@ irb(main):031:1> def say_bye
irb(main):032:2> puts "Bye #{@name}, come back soon."
irb(main):033:2> end
irb(main):034:1> end
=> nil
=> :say_bye
{% endhighlight %}

Новое ключевое слово здесь - `class`. Оно служит для объявления нового
Expand Down
29 changes: 15 additions & 14 deletions ru/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@ Bye Pat, come back soon.

{% highlight irb %}
irb(main):038:0> g.@name
SyntaxError: compile error
(irb):52: syntax error
from (irb):52
SyntaxError: (irb):38: syntax error, unexpected tIVAR, expecting '('
{% endhighlight %}

Неа, не можем этого сделать.
Expand All @@ -53,16 +51,19 @@ SyntaxError: compile error

{% highlight irb %}
irb(main):039:0> Greeter.instance_methods
=> ["method", "send", "object_id", "singleton_methods",
"__send__", "equal?", "taint", "frozen?",
"instance_variable_get", "kind_of?", "to_a",
"instance_eval", "type", "protected_methods", "extend",
"eql?", "display", "instance_variable_set", "hash",
"is_a?", "to_s", "class", "tainted?", "private_methods",
"untaint", "say_hi", "id", "inspect", "==", "===",
"clone", "public_methods", "respond_to?", "freeze",
"say_bye", "__id__", "=~", "methods", "nil?", "dup",
"instance_variables", "instance_of?"]
=> [:say_hi, :say_bye, :instance_of?, :public_send,
:instance_variable_get, :instance_variable_set,
:instance_variable_defined?, :remove_instance_variable,
:private_methods, :kind_of?, :instance_variables, :tap,
:is_a?, :extend, :define_singleton_method, :to_enum,
:enum_for, :<=>, :===, :=~, :!~, :eql?, :respond_to?,
:freeze, :inspect, :display, :send, :object_id, :to_s,
:method, :public_method, :singleton_method, :nil?, :hash,
:class, :singleton_class, :clone, :dup, :itself, :taint,
:tainted?, :untaint, :untrust, :trust, :untrusted?, :methods,
:protected_methods, :frozen?, :public_methods,
:singleton_methods, :!, :==, :!=, :__send__, :equal?,
:instance_eval, :instance_exec, :__id__]
{% endhighlight %}

Ого! Это куча методов. А мы объявили всего два. Что здесь происходит?
Expand Down Expand Up @@ -102,7 +103,7 @@ irb(main):043:0> g.respond_to?("to_s")
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

В Ruby вы можете открыть класс снова и изменить его. Изменения будут
Expand Down
64 changes: 32 additions & 32 deletions ru/documentation/quickstart/4/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ end
ее значение nil, он просто печатает три точки. Нет смысла приветствовать
несуществующее, верно?

## Циклы и повторы – так же известные как итерации
## Циклы и повторы – также известные как итерации

Если объект, записанный в переменной `@names` откликается на метод
`each`, значит он является объектом на котором вы можете итерировать. И
итерируя по нему вы можете приветствовать каждого человека за раз. И
наконец, если `@names` является чем-то совсем другим, просто превратим
ее в строку автоматически и поприветствуем.
Если объект, записанный в переменной `@names`, откликается на метод
`each`, значит он является объектом, на котором вы можете итерировать.
И, итерируя по нему, вы можете приветствовать каждого человека за раз.
И, наконец, если переменная `@names` является чем-то совсем другим,
просто превратим её в строку автоматически и поприветствуем.

Давайте взглянем на итератор повнимательнее:

Expand All @@ -64,14 +64,14 @@ end
{% endhighlight %}

`each` – это метод, который принимает блок кода и запускает этот блок
кода для каждого элемента в списке. И в примере выше, код между `do` и
`end`, это просто некий блок. Блок это что-то вроде анонимной функции
кода для каждого элемента в списке. И в примере выше код между `do` и
`end`это просто некий блок. Блок это что-то вроде анонимной функции
или `лямбды`. Переменная между знаками (|) – это параметр для данного
блока, как раз тот самый элемент списка, на которым будет производится
действие в блоке кода.

Что происходит здесь, это то, что каждая запись в списке, `name`,
привязана к элементу в списке, и таким образом выражение `puts "Hello
Что происходит здесь, это то, что каждая запись в списке`name`
привязана к элементу в списке, и, таким образом, выражение `puts "Hello
#{name}!"` будет выполнено с этим элементом.

Большинство других языков программирования поддерживают прохождение по
Expand All @@ -86,17 +86,17 @@ for (i=0; i<number_of_elements; i++)

Это работает, но это не так элегантно. Вам нужно заводить переменную типа
`i`, понимать, сколько элементов в списке, и объяснять языку, как он
должен проходить по списку. Путь Ruby намного элегантней, все детали
исполнения скрыты внутри `each` метода, и все что вам нужно сделать
это сказать, что нужно сделать с элементами списка. Внутри метод `each`
вызывает `yield "Albert'", затем `yield "Brenda"` и так далее с
должен проходить по списку. Путь Ruby намного элегантней: все детали
исполнения скрыты внутри `each` методаи все что вам нужно сделать
– это сказать: что нужно сделать с элементами списка. Внутри метод
`each` вызывает `yield "Albert'"`, затем `yield "Brenda"` и так далее с
остальными именами.

## Блоки, прекрасные блестки на грани Ruby
## Блоки: прекрасные блёстки на грани Ruby

Реальная сила блоков видна, когда вы работаете с более сложными
сущностями, чем списки. За выполнением простых деталей внутри метода, вы
также можете осуществлять там некую настройку, декомпозицию, отлавливать
сущностями, чем списки. Помимо выполнения простых деталей внутри метода,
вы также можете осуществлять там некую настройку, декомпозицию, отлавливать
ошибки – все может быть скрыто от пользователя.

{% highlight ruby %}
Expand All @@ -113,23 +113,23 @@ def say_bye
end
{% endhighlight %}

Метод `say_bye` не использует `each`, вместо этого он проверяет, что
`@names` откликается на метод `join`, и если так, использует его. В
другом случае, он просто печатает переменную в виде строки. Этот метод
не волнует настоящий *тип* переменной, просто действует в зависимости
от методов, которые тот поддерживает. Это так же известно под названием
Метод `say_bye` не использует `each` вместо этого он проверяет, что
`@names` откликается на метод `join`, и если так использует его. В
другом случае он просто печатает переменную в виде строки. Этот метод
не волнует настоящий *тип* переменной, он просто действует в зависимости
от методов, которые тот поддерживает. Это также известно под названием
"Duck Typing" (Утиная типизация), как в известной фразе – "если оно
ходит как утка, если оно крякает как утка – это утка". Выигрыш от этого
в том, что вам не обязательно ограничивать типы переменных, которые
ходит как утка и крякает как утка – это утка". Выигрыш от этого в том,
что вам не обязательно ограничивать типы переменных, которые
поддерживаются. Если кто-то захочет использовать ваш метод с неким новым
классом списка, пока тот поддерживает вызов метода `join` с аналогичной
другим спискам семантикой – все будет работать как запланировано.

## Запускаем скрипт

Итак, это был MegaGreeter класс, остальное в файле, это лишь вызовы
Итак, это был MegaGreeter класс; остальное в файле это лишь вызовы
метода на этом классе. Последний трюк, на который стоит обратить
внимание, это следующая строка:
внимание это следующая строка:

{% highlight ruby %}
if __FILE__ == $0
Expand All @@ -139,17 +139,17 @@ if __FILE__ == $0
файла. `$0` – это имя файла, которое было использовано при запуске
программы. Данная проверка говорит: "Если это тот самый файл, который
был запущен изначально…". Это позволяет файлу быть использованным как
библиотека, и не выполнять код в данном контексте. Но если файл
библиотека и не выполнять код в данном контексте. Но если файл
используется как выполняемый – тогда выполняем этот код.

## Считайте, что вы в теме

Итак, это конец краткого тура по Ruby. Там еще столько для изучения,
Итак, это конец краткого тура по Ruby. Там еще столько для изучения:
различные структуры, которые предлагает Ruby; использование блоков и
`yield`; модули и примеси; и многое-многое другое. Я надеюсь, что эти
небольшие примеры оставят в вас приятное послевкусие от Ruby и вы
`yield`; модули и примеси и многое-многое другое. Я надеюсь, что эти
небольшие примеры оставят у вас приятное послевкусие от Ruby и вы
захотите узнать его еще лучше!

Если так, пожалуйста просмотрите нашу
Если так, пожалуйста, просмотрите нашу
[Документацию](/ru/documentation/), которая содержит в себе ссылки на
руководства и введения, все они бесплатно доступны онлайн.
руководства и введения все они бесплатно доступны онлайн.
2 changes: 1 addition & 1 deletion tr/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ nesnenin değişkenlerine erişmek için kolay bir yol sunar.
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

Ruby’de bir sınıfı açıp değiştirebilirsiniz. Yapılan değişiklikler
Expand Down
2 changes: 1 addition & 1 deletion vi/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ truy xuất dữ liệu tới các biến của một đối tượng.
irb(main):044:0> class ChàoMừng
irb(main):045:1> attr_accessor :tên
irb(main):046:1> end
=> nil
=> [:tên, :tên=]
{% endhighlight %}

Trong Ruby, bạn có thể mở một lớp ở phía trên và sửa nó. Sự thay đổi sẽ xuất
Expand Down
2 changes: 1 addition & 1 deletion zh_cn/documentation/quickstart/3/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ irb(main):043:0> g.respond_to?("to_s")
irb(main):044:0> class Greeter
irb(main):045:1> attr_accessor :name
irb(main):046:1> end
=> nil
=> [:name, :name=]
{% endhighlight %}

在 Ruby 里,您可以把一个类打开然后改变它。这些改变会对以后生成的甚至是已经生成的对象产生即时效果。 下面我们来建一个新的 Greeter
Expand Down
Loading