Skip to content

ua_UA translation added #112

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

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 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 translations/ru_RU/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -1220,4 +1220,4 @@

### Первая Запятая.

Любой проект, который ссылается на этот документ в качестве руководства по стилю, не примет форматирование кода "первой запятой", только если автор специально не укажется этого.
Любой проект, который ссылается на этот документ в качестве руководства по стилю, не примет форматирование кода "первой запятой", только если автор специально не укажется этого.
Copy link
Author

Choose a reason for hiding this comment

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

Accidentally removed line break

123 changes: 62 additions & 61 deletions translations/ua_UA/readme.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
UA
<<<<<<< HEAD
# Принципи написання консистентного, ідіоматичного коду на JavaScript ***

##Це "живий" документ і нові ідеї по покращенню коду завжди заохочуються. Візьміть участь: fork, clone, branch, commit, push, pull request. ***
Expand Down Expand Up @@ -446,7 +446,7 @@ UA
object.hasOwnProperty( prop )
"prop" in object

B. Неявне приведення типів
B. Неявне зведення типів

Представте результат наступного...

Expand Down Expand Up @@ -475,7 +475,7 @@ UA

foo = document.getElementById("foo-input").value;

// Якби ви перевірили тип змінної зараз `typeof foo`, то отрималм б `string`
// Якщо б ви перевірили тип змінної зараз `typeof foo`, то отрималм б `string`
// Це означає, що якщо б ви тестували `foo` ось так:

if ( foo === 1 ) {
Expand All @@ -484,7 +484,7 @@ UA

}

// то `importantTask()` не была викликана, навіит якщо б значення `foo` було б "1"
// то `importantTask()` не була б викликана, навіть якщо б значення `foo` було рівне "1"


// 3.B.1.2
Expand Down Expand Up @@ -592,7 +592,7 @@ UA
!!~array.indexOf("d");
// false

// Зауважту, що вищесказане можна вважати "занадто розумним"
// Зауважте, що вищесказане можна вважати "занадто розумним"
// Краще зробити так:

if ( array.indexOf( "a" ) >= 0 ) {
Expand Down Expand Up @@ -827,7 +827,7 @@ UA
};


// робим наш конструктор глобальним
// робимо наш конструктор глобальним
global.ctor = ctor;

})( this );
Expand Down Expand Up @@ -855,7 +855,7 @@ UA
for(i=0;i<els.length;i++){a.push(els[i]);}
```

Якщо ви пишете такий код, то я сподіваюсь що ви перестанете робити це сьогодні
Якщо ви пишете такий код, то я сподіваюсь що ви перестанете робити це сьогодні.

Ось шматок коду з такою ж логікою, але з кращим найменуванням змінних(і читабельною структурою):

Expand Down Expand Up @@ -925,9 +925,9 @@ UA

```

B. "Лица" `this`
B. "Сторони" `this`

Кроме хорошо известного применения `call` и `apply`, старайтесь использовать `.bind( this )` или его функциональный эквивалент для объявления `СвязаннойФункции` для дальнейшего вызова. Создание алиаса является последней мерой, если другие решения не подходят.
Окрім гарно відомого застосування `call` і `apply`, старайтесь використовувати `.bind( this )` або його функціональний еквівалент для оголошення `Зв’язаної Функції` для подальшого виклику. Створення аліаса являється останньою мірою, якщо всі інші рішеня не підходять.

```

Expand All @@ -936,27 +936,27 @@ UA

this.value = null;

// Откроем асинхронный поток,
// постоянно вызывающий переданную функцию
// Відкриєм асинхронний потік,
// потсійно викликаючий передану функцію
stream.read( opts.path, function( data ) {

// Обновим текущее значение на последнее, полученное из потока
// Оновим поточне значення на останнє, отримане з потоку
this.value = data;

}.bind(this) );

// Ограничим частоту событий, поступающих от Device
// Обмежим частоту подій, що надходять від Device
setInterval(function() {

// Отправим событие
// Відправим подію
this.emit("event");

}.bind(this), opts.freq || 100 );
}

```

Функциональные эквиваленты `.bind` существуют во многих новых библиотеках JavaScript.
Функціональні еквіваленти `.bind` існують в багатьох нових бібліотеках JavaScript.


```javascript
Expand Down Expand Up @@ -1019,7 +1019,7 @@ UA

```

Создайте алиас для `this`, используя `self` (как последняя мера). Такое решение склонно к ошибкам и следует его избегать.
Створіть аліас для `this`, використовуючи `self` (як остання міра). Таке рішення схильне до помилок і варто уникати його.

```javascript

Expand All @@ -1046,9 +1046,10 @@ UA
```


C. Использование `thisArg`
C. Використання `thisArg`

У некоторых из встроенных методов в ES 5.1 есть специальный аргумент `thisArg`, который следует использовать везде, где возможно.
В деяких із вбудованих методів в ES 5.1 є спеціальний аргумент `thisArg`,
яких варто використовувати всюди, де це можливо.

```javascript

Expand All @@ -1060,38 +1061,38 @@ UA

Object.keys( obj ).forEach(function( key ) {

// |this| указывает на `obj`
// |this| вказує на `obj`

console.log( this[ key ] );

}, obj ); // <-- Последний аргумент это `thisArg`
}, obj ); // <-- останній аргумент це `thisArg`

// Выведет...
// Виведе...

// "foo"
// "bar"
// "qux"

```

`thisArg` может быть использован с `Array.prototype.every`, `Array.prototype.forEach`, `Array.prototype.some`, `Array.prototype.map`, `Array.prototype.filter`
`thisArg` може бути використаний з `Array.prototype.every`, `Array.prototype.forEach`, `Array.prototype.some`, `Array.prototype.map`, `Array.prototype.filter`

7. <a name="misc">Разное</a>
7. <a name="misc">Різне</a>

Этот раздел описывает идеи и концепции, которые не должны рассматриваться как догма. Он существуют для того, чтобы посеять сомнения в общепринятых методах в попытке найти более эффективные способы для выполнения общих задач программирования на JavaScript.
Даний розділ описує ідеї і концепції, які не повинні розглядатись як догма. Він існує для того, щоб посіяти сумніви в загальноприйнятих методах в спробах знайти більш ефективні пособи вирішення загальних задач програмування на JavaScript.

A. Использование `switch` следует избегать, потому что современный метод отладки будет скрывать вызовы функций, которые используют `switch`.
A. Використання `switch` варто уникати, тому що сучасний метод відлагодження буде приховувати виклики функцій, які використовують `switch`.

В последних версиях браузеров Firefox и Chrome, кажется, есть значительные улучшения в исполнении функций, которые используют `switch`.
В останніх версіях браузерів Firefox і Chrome, здається, є вагомі покращення в виконанні функцій, які використовують `switch`.
http://jsperf.com/switch-vs-object-literal-vs-module

На заметные улучшения также можно посмотреть тут:
На вагомі покращення також можна поглянути тут:
https://github.com/rwldrn/idiomatic.js/issues/13

```javascript

// 7.A.1.1
// Пример оператора switch
// Приклад оператора switch

switch( foo ) {
case "alpha":
Expand All @@ -1101,66 +1102,66 @@ UA
beta();
break;
default:
// какое-то значение по умолчанию
// якесь значення по замовчуванню
break;
}

// 7.A.1.2
// Лучшим подходом было бы использовать объект или даже модуль:
// Кращим підходом було б використати об’єкт або навіть модуль:

var switchObj = {
alpha: function() {
// выражения
// возвращаем результат
// вирази
// повертаєм результат
},
beta: function() {
// выражения
// возвращаем результат
// вирази
// повертаєм результат
},
_default: function() {
// выражения
// возвращаем результат
// вирази
// повертаєм результат
}
};

var switchModule = (function () {
return {
alpha: function() {
// выражения
// возвращаем результат
// вирази
// повертаєм результат
},
beta: function() {
// выражения
// возвращаем результат
// вирази
// повертаєм результат
},
_default: function() {
// выражения
// возвращаем результат
// вирази
// повертаєм результат
}
};
})();


// 7.A.1.3
// Если `foo` это свойство `switchObj` или `switchModule`, то выполнить метод...
// Якщо `foo` це властивість `switchObj` або `switchModule`, то виконати метод...

( Object.hasOwnProperty.call( switchObj, foo ) && switchObj[ foo ] || switchObj._default )( args );

( Object.hasOwnProperty.call( switchObj, foo ) && switchModule[ foo ] || switchModule._default )( args );

// Если вы знаете возможные значения `foo` и доверяете его источнику, вы можете опустить условие ИЛИ
// оставив только выполнение
// Якщо ви знаєте можливі значення `foo` і довіряєту його джерелу, можете опустити умови АБО
// залишивши тільки виконання

switchObj[ foo ]( args );

switchModule[ foo ]( args );


// Эта модель также поддерживает повторное использование кода.
// Дана можель підтримує повторне використання коду

```

B. "Ранние возвраты" способствуют читабельности кода с незначительной разницей в производительности
B. "Ранні повернення" сприяють читабельності коду з незначною різницею в продуктивності

```javascript

Expand Down Expand Up @@ -1190,13 +1191,13 @@ UA
```


8. <a name="native">"Родные" и "чужие" объекты</a>
8. <a name="native">"Рідні" і "чужі" об’єкти</a>

Основное правило:
Основне правило:

### Не делайте тупых вещей и все будет хорошо.
### Не робіть тупих речей, і все буде добре.

Для лучшего понимания этой концепции, посмотрите вот это видео:
Для кращого розуміння даної концепції, подивіться ось це відео:

#### “Everything is Permitted: Extending Built-ins” by Andrew Dupont (JSConf2011, Portland, Oregon)

Expand All @@ -1205,20 +1206,20 @@ UA
http://blip.tv/jsconf/jsconf2011-andrew-dupont-everything-is-permitted-extending-built-ins-5211542


9. <a name="comments">Комментарии</a>
9. <a name="comments">Коментарі</a>

* Однострочные комментарии на линию выше кода
* Комментарии в несколько строк тоже приветствуются
* Комментарии в конце строки запрещены!
* Стиль JSDoc хорош, но в нем нужно долго разбираться
* Однорядкові коментарі на рядок вище коду
* Коментарі в декілька рядків теж вітаються
* коментарі в кінці рядка забронені!
* Стиль JSDoc гарний, але в ньому потрібно довго розбиратись


10. <a name="language">Код Одного Языка</a>
10. <a name="language">Код однієї мови</a>

Программы должны быть написаны на одном языке (независимо от языка), как требуют того люди, которые сопровождают код.
Програми повинні бути написані на одній мові (незалежно від мови), як потребують того люди, які супроводжують код.

## Приложение
## Додаток

### Первая Запятая.
### Перша Кома.

Любой проект, который ссылается на этот документ в качестве руководства по стилю, не примет форматирование кода "первой запятой", только если автор специально не укажется этого.
Будь-який проект, котрий посилається на даний документ в якості інструкції по стилю, не прийме форматування коду "першої коми", тільки якщо автор спеціально не вкаже цього.