Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
1 change: 1 addition & 0 deletions INDEX.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ url: https://kotlinlang.ru
* Перевести статьи из раздела "Reference": [Grammar](https://kotlinlang.ru/docs/reference/grammar.html)
* Перевести статьи из раздела "JavaScript": [Calling JavaScript from Kotlin](https://kotlinlang.ru/docs/reference/js-interop.html) и все остальные
* Заново перевести статью [Корутины](https://kotlinlang.ru/docs/reference/coroutines.html) ввиду низкого качества перевода
* Заново перевести статью [Грамматика](https://kotlinlang.ru/docs/grammar.html) ввиду низкого качества перевода
* Перевести статьи из раздела "Tools": [OSGi](https://kotlinlang.ru/docs/reference/kotlin-osgi.html)
* Пометить <b class="keyword">ключевые слова</b> конструкцией `<b class="keyword">keyword-here</b>`

Expand Down
6 changes: 3 additions & 3 deletions all-open-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ url: https://kotlinlang.ru/docs/all-open-plugin.html

## All-open плагин для компилятора

Классы и методы в языке Kotlin имеют модификатор `final` по умолчанию, что приносит массу неудобств при использованиие фреймворков и библиотек, таких как Spring AOP, которые требуют классы с модификатором `open`. Плагин для компилятора *all-open* адаптирует Kotlin под требования фреймворков и добавляет классам специальную аннотацию, благодаря чему их члены открты для использования без приминения модификатора `open`.
Классы и методы в языке Kotlin имеют модификатор `final` по умолчанию, что приносит массу неудобств при использовании фреймворков и библиотек, таких как Spring AOP, которые требуют классы с модификатором `open`. Плагин для компилятора *all-open* адаптирует Kotlin под требования фреймворков и добавляет классам специальную аннотацию, благодаря чему их члены открыты для использования без применения модификатора `open`.

Например, при использовании Spring, вам нужно чтобы открытыми были не все классы, а только те, которые имеют специальные аннотации, такие как `@Configuration` или `@Service`. *All-open* позволяет указывать эти аннотации.

Expand Down Expand Up @@ -39,7 +39,7 @@ plugins {
}
```

Затем укажите список аннтоаций, для которых нужно открыть классы:
Затем укажите список аннотаций, для которых нужно открыть классы:

```groovy
allOpen {
Expand Down Expand Up @@ -270,7 +270,7 @@ plugins {

### Использование в CLI

Также как и в случае с all-open, добавьте JAR-файл плагина в classpath плагина компилятора и укажите нужные аннотации или пресеты:
Так же как и в случае с all-open, добавьте JAR-файл плагина в classpath плагина компилятора и укажите нужные аннотации или пресеты:

```bash
-Xplugin=$KOTLIN_HOME/lib/noarg-compiler-plugin.jar
Expand Down
4 changes: 2 additions & 2 deletions android-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ url: https://kotlinlang.ru/docs/android-overview.html
# Kotlin для Android

<!-- Android mobile development has been Kotlin-first since Google I/O in 2019. -->
Kotlin был объявленны приоритетным языком программирования для Android-разработки на Google I/O в 2019.
Kotlin был объявлен приоритетным языком программирования для Android-разработки на Google I/O в 2019.

<!-- Using Kotlin for Android development, you can benefit from: -->
Используя Kotlin для Android-разработки, вы получаете:
Expand All @@ -37,7 +37,7 @@ According to Google, over 60% of the top 1000 apps on the Play Store use Kotlin.
но и как целая экосистема с надежным инструментарием. Теперь он полностью интегрирован в Android Studio и активно
используется многими компаниями для разработки Android-приложений.
* **Поддержка Kotlin в Android Jetpack и других библиотеках**. [Расширения KTX](https://developer.android.com/kotlin/ktx)
добавляют функции языка Kotlin, такие как корутины, функции-расширения, лямбды и именованные параметры, в существующие
добавляют функции языка Kotlin, такие, как корутины, функции-расширения, лямбды и именованные параметры, в существующие
Android библиотеки.
* **Совместимость с Java**. Вы можете использовать Kotlin вместе с Java в своих приложениях без необходимости переноса
всего вашего кода на Kotlin.
Expand Down
4 changes: 2 additions & 2 deletions annotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ annotation class Fancy
generated API documentation. -->

* [`@Target`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.annotation/-target/index.html) определяет возможные
виды элементов, которые могут быть помечены аннотацией (такие как классы, функции, свойства и выражения);
виды элементов, которые могут быть помечены аннотацией (такие, как классы, функции, свойства и выражения);
* [`@Retention`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.annotation/-retention/index.html) определяет, будет
ли аннотация храниться в скомпилированном классе и будет ли видима через рефлексию (по умолчанию оба утверждения верны);
* [`@Repeatable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.annotation/-repeatable/index.html) позволяет
Expand Down Expand Up @@ -137,7 +137,7 @@ annotation class Deprecated(
automatically convert it to a Java class, so that the Java code can access the annotations and arguments
normally. -->
Если вам нужно определить класс как аргумент аннотации, используйте Kotlin класс
([KClass](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)). Компилятор Kotin
([KClass](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)). Компилятор Kotlin
автоматически сконвертирует его в Java класс, так что код на Java сможет видеть аннотации и их аргументы.

```kotlin
Expand Down
4 changes: 2 additions & 2 deletions ant.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ recommended to use *withKotlin* task: -->
```

<!-- ## Targeting JavaScript with single source folder -->
## Использование в JavaScript с с одной исходной папкой
## Использование в JavaScript с одной исходной папкой

``` xml
<project name="Ant Task Test" default="build">
Expand Down Expand Up @@ -189,7 +189,7 @@ result of translation: -->
<!-- To pass custom raw compiler arguments, you can use `<compilerarg>` elements with either `value` or `line` attributes.
This can be done within the `<kotlinc>`, `<kotlin2js>`, and `<withKotlin>` task elements, as follows: -->
Для выборочной передачи исходных аргументов компилятора используются элементы `<compilerarg>` с атрибутами `value` или `line`.
Это может быть сделано в рамках элементов задач `<kotlinc>`, `<kotlin2js>` и `<withKotlin>` следующим образом :
Это может быть сделано в рамках элементов задач `<kotlinc>`, `<kotlin2js>` и `<withKotlin>` следующим образом:

``` xml
<kotlinc src="${test.data}/hello.kt" output="${temp}/hello.jar">
Expand Down
14 changes: 7 additions & 7 deletions async-programming.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ url: https://kotlinlang.ru/docs/async-programming.html
<!-- For decades, as developers we are confronted with a problem to solve - how to prevent our applications from blocking. Whether
we're developing desktop, mobile, or even server-side applications, we want to avoid having the user wait or what's worse cause
bottlenecks that would prevent an application from scaling. -->
На протяжении десятилетий мы, разработчики, сталкиваемся с проблемой, которую необходимо решить, - как предотвратить
блокировку наших приложений. Независимо от того, разрабатываем ли мы десткопные, мобильные или даже серверные
На протяжении десятилетий мы, разработчики, сталкиваемся с проблемой, которую необходимо решить - как предотвратить
блокировку наших приложений. Независимо от того, разрабатываем ли мы десктопные, мобильные или даже серверные
приложения, мы хотим избежать того, чтобы пользователь ждал или, что еще хуже, создавал узкие места (ориг.:
*bottlenecks*), которые мешали бы масштабированию приложения.

Expand Down Expand Up @@ -82,7 +82,7 @@ allow us to avoid the UI from blocking. This is a very common technique, but has
## Коллбэки

<!-- With callbacks, the idea is to pass one function as a parameter to another function, and have this one invoked once the process has completed. -->
Идея коллбэков (обрытных вызовов, ориг.: callbacks) состоит в том, чтобы передать одну функцию в качестве параметра
Идея коллбэков (обратных вызовов, ориг.: callbacks) состоит в том, чтобы передать одну функцию в качестве параметра
другой функции и вызвать ее после завершения процесса.

```kotlin
Expand All @@ -101,7 +101,7 @@ fun preparePostAsync(callback: (Token) -> Unit) {
```

<!-- This in principle feels like a much more elegant solution, but once again has several issues: -->
В принципе, это выглядит более элегантным решением, но опять же имеет несколько проблем:
В принципе это выглядит более элегантным решением, но опять же имеет несколько проблем:

<!-- * Difficulty of nested callbacks. Usually a function that is used as a callback, often ends up needing its own callback. This leads to a series of nested callbacks which
lead to incomprehensible code. The pattern is often referred to as the titled christmas tree (braces represent branches of the tree).
Expand Down Expand Up @@ -154,8 +154,8 @@ such as loops, exception handling, etc. usually are no longer valid in this mode
* Specific return type. The return type moves away from the actual data that we need and instead returns a new type `Promise` which has to be introspected.
* Error handling can be complicated. The propagation and chaining of errors aren't always straightforward. -->

* Другая модель программирования. Подобно коллбэкам, модель программирования отходит от императивного подхода сверхувниз к композиционной модели с цепными вызовами. Традиционные программные структуры, такие как циклы, обработка исключений и т.д., обычно не применимы в этой модели;
* Различные API. Обычно возникает необходимость изучить совершенно новый API, такие как `thenCompose` или `thenAccept`, которые также могут варьироваться в зависимости от платформы;
* Другая модель программирования. Подобно коллбэкам, модель программирования отходит от императивного подхода сверху вниз к композиционной модели с цепными вызовами. Традиционные программные структуры, такие как циклы, обработка исключений и т.д., обычно не применимы в этой модели;
* Различные API. Обычно возникает необходимость изучить совершенно новый API, такие, как `thenCompose` или `thenAccept`, которые также могут варьироваться в зависимости от платформы;
* Определенный возвращаемый тип. Возвращаемый тип отклоняется от фактических данных, которые нам нужны, и вместо этого возвращает новый тип `Promise`, который необходимо проанализировать;
* Обработка ошибок может быть сложной. Распространение и цепочка ошибок не всегда просты.

Expand All @@ -175,7 +175,7 @@ it really didn't reach mainstream adoption until Netflix ported it over to Java,
the [Observer Pattern](https://en.wikipedia.org/wiki/Observer_pattern) with a series of extensions which allow us to operate on the data. -->
Идея Rx состоит в том, чтобы перейти к так называемым `observable streams` (наблюдаемым потокам), благодаря которым
теперь мы думаем о данных как о потоках (бесконечных объемах данных), и эти потоки можно наблюдать. С практической точки
зрения, Rx - это просто [шаблон наблюдателя](https://en.wikipedia.org/wiki/Observer_pattern) с рядом расширений, которые
зрения, Rx - это просто [шаблон наблюдателя](https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B1%D0%BB%D1%8E%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)) с рядом расширений, которые
позволяют нам оперировать данными.

<!-- In approach it's quite similar to Futures, but one can think of a Future as returning a discrete element, whereas Rx returns a stream. However, similar to the previous, it also introduces
Expand Down
5 changes: 2 additions & 3 deletions basic-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,6 @@ println(1 + 2)
println(2_500_000_000L - 1L)
println(3.14 * 2.71)
println(10.0 / 3)
}
```

<!-- You can also override these operators for custom classes. See [Operator overloading](operator-overloading.md) for details. -->
Expand All @@ -280,7 +279,7 @@ println(10.0 / 3)
#### Деление целых чисел

<!-- Division between integers numbers always returns an integer number. Any fractional part is discarded. -->
Деление целых чисел всегда возвращат целое число. Любая дробная часть отбрасывается.
Деление целых чисел всегда возвращает целое число. Любая дробная часть отбрасывается.

```kotlin
val x = 5 / 2
Expand Down Expand Up @@ -578,7 +577,7 @@ println(s + "def") // abc1def
```

<!-- Note that in most cases using [string templates](#string-templates) or raw strings is preferable to string concatenation. -->
Обратите внимание, что в большинстве случаев использование [cтроковых шаблонов](#string-templates)
Обратите внимание, что в большинстве случаев использование [строковых шаблонов](#string-templates)
или обычных строк предпочтительнее объединения строк.

<a name="string-literals"></a>
Expand Down
3 changes: 1 addition & 2 deletions cancellation-and-timeouts.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ println("main: I'm tired of waiting!")
job.cancel() // cancels the job
job.join() // waits for job's completion
println("main: Now I can quit.")
}
```

<!-- > You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-cancel-01.kt). -->
Expand Down Expand Up @@ -243,7 +242,7 @@ delay(1300L) // delay a bit
println("main: I'm tired of waiting!")
job.cancelAndJoin() // cancels the job and waits for its completion
println("main: Now I can quit.")
}

```

<!-- > You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-cancel-05.kt). -->
Expand Down
2 changes: 1 addition & 1 deletion classes.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ abstract class WildShape : Polygon() {

<!-- If you need to write a function that can be called without having a class instance but that needs access to the internals
of a class (such as a factory method), you can write it as a member of an [object declaration](object-declarations.md) inside that class. -->
Если вам нужно написать функцию, которая может быть использована без создания экземпляра класса, которая имела бы доступ к данным внутри этого класса
Если вам нужно написать функцию, которая может быть использована без создания экземпляра класса, имеющую доступ к данным внутри этого класса
(к примеру, фабричный метод), вы можете написать её как член [объявления объекта](object-declarations.html) внутри этого класса.

<!-- Even more specifically, if you declare a [companion object](object-declarations.md#companion-objects) inside your class,
Expand Down
2 changes: 1 addition & 1 deletion coding-conventions.md
Original file line number Diff line number Diff line change
Expand Up @@ -1317,7 +1317,7 @@ when (x) {
```

<!-- Prefer using `when` if there are three or more options. -->
Предпочтительнее использовать `when`, если есть три и более вариантов.
Предпочтительнее использовать `when`, если есть три и более варианта.

<a name="nullable-boolean-values-in-conditions"></a>

Expand Down
Loading