Browse Source

docs/*uk Update Ukrainian translation

[ci skip]

close #8287
tags/2.0.6
Vadym Chenin 10 years ago committed by Carsten Brandt
parent
commit
790bb942f0
  1. 16
      docs/guide-uk/README.md
  2. 143
      docs/guide-uk/intro-upgrade-from-v1.md
  3. 6
      docs/guide-uk/intro-yii.md
  4. 4
      docs/internals-uk/automation.md
  5. 4
      docs/internals-uk/getting-started.md
  6. 233
      docs/internals-uk/git-workflow.md
  7. 22
      docs/internals-uk/report-an-issue.md
  8. 146
      docs/internals-uk/translation-workflow.md
  9. 12
      docs/internals-uk/versions.md
  10. 52
      docs/internals-uk/view-code-style.md
  11. 1
      docs/internals/translation-teams.md

16
docs/guide-uk/README.md

@ -54,7 +54,7 @@ All Rights Reserved.
* **TBD** [Відповіді](runtime-responses.md) * **TBD** [Відповіді](runtime-responses.md)
* **TBD** [Сесії та кукі](runtime-sessions-cookies.md) * **TBD** [Сесії та кукі](runtime-sessions-cookies.md)
* **TBD** [Обробка помилок](runtime-handling-errors.md) * **TBD** [Обробка помилок](runtime-handling-errors.md)
* **TBD** [Логування](runtime-logging.md) * **TBD** [Журналювання](runtime-logging.md)
Основні поняття Основні поняття
@ -88,7 +88,7 @@ All Rights Reserved.
------------------------------- -------------------------------
* **TBD** [Створення форм](input-forms.md) * **TBD** [Створення форм](input-forms.md)
* **TBD** [Валідація вводу](input-validation.md) * **TBD** [Перевірка вводу](input-validation.md)
* **TBD** [Завантаження файлів](input-file-uploading.md) * **TBD** [Завантаження файлів](input-file-uploading.md)
* **TBD** [Збір табличного вводу](input-tabular-input.md) * **TBD** [Збір табличного вводу](input-tabular-input.md)
* **TBD** [Робота з декількома моделями](input-multiple-models.md) * **TBD** [Робота з декількома моделями](input-multiple-models.md)
@ -143,7 +143,7 @@ RESTful веб-сервіси
Інструменти розробника Інструменти розробника
---------------------- ----------------------
* **TBD** [Відладочна панель та відладчик](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.md) * **TBD** [Панель налагодження та відладчик](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide-uk/README.md)
* **TBD** [Генерація коду з Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide-uk/README.md) * **TBD** [Генерація коду з Gii](https://github.com/yiisoft/yii2-gii/blob/master/docs/guide-uk/README.md)
* [Генератор документації API (en)](https://github.com/yiisoft/yii2-apidoc) * [Генератор документації API (en)](https://github.com/yiisoft/yii2-apidoc)
@ -166,7 +166,7 @@ RESTful веб-сервіси
* **TBD** [Створення додатка з нуля](tutorial-start-from-scratch.md) * **TBD** [Створення додатка з нуля](tutorial-start-from-scratch.md)
* **TBD** [Консольні команди](tutorial-console.md) * **TBD** [Консольні команди](tutorial-console.md)
* **TBD** [Основні валідатори](tutorial-core-validators.md) * **TBD** [Основні валідатори](tutorial-core-validators.md)
* **TBD** [Інтернаціонализація](tutorial-i18n.md) * **TBD** [Інтернаціоналізація](tutorial-i18n.md)
* **TBD** [Робота з поштою](tutorial-mailing.md) * **TBD** [Робота з поштою](tutorial-mailing.md)
* **TBD** [Вдосконалення продуктивності](tutorial-performance-tuning.md) * **TBD** [Вдосконалення продуктивності](tutorial-performance-tuning.md)
* **TBD** [Робота на shared хостингу](tutorial-shared-hosting.md) * **TBD** [Робота на shared хостингу](tutorial-shared-hosting.md)
@ -192,7 +192,7 @@ RESTful веб-сервіси
Хелпери Хелпери
------- -------
* [Огляд](helper-overview.md) * **TBD** [Огляд хелперів](helper-overview.md)
* [ArrayHelper](helper-array.md) * **TBD** [ArrayHelper](helper-array.md)
* [Html](helper-html.md) * **TBD** [Html](helper-html.md)
* [Url](helper-url.md) * **TBD** [Url](helper-url.md)

143
docs/guide-uk/intro-upgrade-from-v1.md

@ -8,16 +8,16 @@
Якщо раніше ви не використовували Yii 1.1, ви можете пропустити цей розділ і перейти до розділу Якщо раніше ви не використовували Yii 1.1, ви можете пропустити цей розділ і перейти до розділу
"[Встановлення Yii](start-installation.md)". "[Встановлення Yii](start-installation.md)".
Також врахуйте, що Yii 2.0 включає більше нового функціоналу, ніж той, що буде описано тут. Наполегливо рекомендується, Також врахуйте, що Yii 2.0 надає більше нового функціоналу, ніж той, що буде описано тут. Наполегливо рекомендується
що ви прочитаєте весь посібник, щоб дізнатися який функціонал було додано. Можливо, що необхідний функціонал, прочитати посібник повністю, щоб дізнатися весь доступний функціонал. Можливо, що необхідний функціонал,
який ви до цього розробляли самі, тепер є частиною фреймворка. який ви до цього розробляли самі, тепер є частиною фреймворку.
Встановлення Встановлення
------------ ------------
Yii 2.0 повністю заснований на [Composer](https://getcomposer.org/), який де факто є менеджером залежностей для PHP. Yii 2.0 використовує [Composer](https://getcomposer.org/), який де-факто є менеджером пакунків для PHP.
Установка фреймворка, також як і розширень, здійснюється через Composer. Більш детальні відомості по встановленню Yii 2.0 Встановлення фреймворка, також як і розширень, здійснюється через Composer. Більш детальні відомості по встановленню Yii 2.0
приведені в розділі [Встановлення Yii](start-installation.md). Відомості про те, як створювати розширення для Yii 2.0 приведені в розділі [Встановлення Yii](start-installation.md). Відомості про те, як створювати розширення для Yii 2.0
або адаптувати вже наявні розширення для версії 1.1 під версію 2.0, наведені в розділі або адаптувати вже наявні розширення для версії 1.1 під версію 2.0, наведені в розділі
[Створення розширень](structure-extensions.md#creating-extensions). [Створення розширень](structure-extensions.md#creating-extensions).
@ -39,17 +39,17 @@ Yii 2.0 використовує PHP 5.4 або вище, який включа
- [Пізнє статичне звʼязування (LSB)](http://php.net/manual/en/language.oop5.late-static-bindings.php); - [Пізнє статичне звʼязування (LSB)](http://php.net/manual/en/language.oop5.late-static-bindings.php);
- [Класи для дати та часу](http://php.net/manual/en/book.datetime.php); - [Класи для дати та часу](http://php.net/manual/en/book.datetime.php);
- [Трейти](http://php.net/manual/en/language.oop5.traits.php); - [Трейти](http://php.net/manual/en/language.oop5.traits.php);
- [Інтернаціонализація (Intl)](http://php.net/manual/en/book.intl.php); Yii 2.0 використовує розширення PHP `intl` - [Інтернаціонализація (intl)](http://php.net/manual/en/book.intl.php); Yii 2.0 використовує розширення PHP `intl`
для різного функціоналу інтернаціоналізації. для різного функціоналу інтернаціоналізації.
Простори імен Простори імен
------------- -------------
Одним з основних змін в Yii 2.0 є використання просторів імен. Майже кожен клас фреймворку знаходиться у просторі імен, Однією з основних змін в Yii 2.0 є використання просторів імен. Майже кожен клас фреймворку знаходиться у просторі імен,
наприклад, `yii\web\Request`. Префікс "С" більше не використовується в іменах класів. Угода іменування відповідає наприклад, `yii\web\Request`. Префікс "С" більше не використовується в іменах класів. Схема іменування
структурі каталога, в якій розташовується клас. Наприклад, `yii\web\Request` означає, що відповідний клас знаходиться зараз відповідає структурі директорій. Наприклад, `yii\web\Request` означає, що відповідний клас знаходиться
у файлі `web/Request.php` в каталогу Yii фреймворка. (Завдяки завантажувачу класів Yii, ви можете використовувати у файлі `web/Request.php` в директорії фреймворка. (Завдяки завантажувачу класів Yii, ви можете використовувати
будь-який клас фреймворку без необхідності безпосередньо підключати його). будь-який клас фреймворку без необхідності безпосередньо підключати його).
@ -57,8 +57,8 @@ Yii 2.0 використовує PHP 5.4 або вище, який включа
------------------- -------------------
В Yii 2.0 клас `CComponent` із версії 1.1 був розділений на два класи: [[yii\base\Object]] і [[yii\base\Component]]. В Yii 2.0 клас `CComponent` із версії 1.1 був розділений на два класи: [[yii\base\Object]] і [[yii\base\Component]].
Клас [[yii\base\Object|Object]] є простим базовим класом, який дозволяє використовувати Клас [[yii\base\Object|Object]] є простим базовим класом, який дозволяє керувати [властивостями обʼєкта](concept-properties.md)
[геттери та сеттери](concept-properties.md) для властивостей. Клас [[yii\base\Component|Component]] наслідується за допомогою геттерів та сеттерів. Клас [[yii\base\Component|Component]] наслідується
від класа [[yii\base\Object|Object]] та підтримує [події](concept-events.md) та [поведінки](concept-behaviors.md). від класа [[yii\base\Object|Object]] та підтримує [події](concept-events.md) та [поведінки](concept-behaviors.md).
Якщо вашому класу не потрібно використовувати функціонал подій та поведінок, ви можете використати Якщо вашому класу не потрібно використовувати функціонал подій та поведінок, ви можете використати
@ -95,7 +95,7 @@ class MyClass extends \yii\base\Object
ключ-значення для ініціалізації властивостей обʼєкта. Ви можете перевизначити метод [[yii\base\Object::init()|init()]] ключ-значення для ініціалізації властивостей обʼєкта. Ви можете перевизначити метод [[yii\base\Object::init()|init()]]
для ініціалізації обʼєкту після того, як до нього була застосована конфігурація. для ініціалізації обʼєкту після того, як до нього була застосована конфігурація.
Слідуючи цій угоді, ви зможете створювати і конфігурувати нові обʼєкти за допомогою масиву конфігурації: Дотримуючись цієї угоди, ви зможете створювати і конфігурувати нові обʼєкти за допомогою масиву конфігурації:
```php ```php
$object = Yii::createObject([ $object = Yii::createObject([
@ -105,14 +105,14 @@ $object = Yii::createObject([
], [$param1, $param2]); ], [$param1, $param2]);
``` ```
Більш детальна інформація про конфігурацію представлена у розділі [Конфігурації обʼєктів](concept-configurations.md). Більш детальна інформація про конфігурацію представлена у розділі [Конфігурації](concept-configurations.md).
Події Події
----- -----
В Yii1, події створювалися за допомогою оголошення методу `on` (наприклад, `onBeforeSave`). В Yii 1, події створювалися за допомогою оголошення методу `on` (наприклад, `onBeforeSave`).
В Yii2 ви можете тепер використовувати будь-яке імʼя події. Ви ініціюєте подію за допомогою виклику методу В Yii 2 ви можете тепер використовувати будь-яке імʼя події. Ви ініціюєте подію за допомогою виклику методу
[[yii\base\Component::trigger()|trigger()]]. [[yii\base\Component::trigger()|trigger()]].
```php ```php
@ -124,44 +124,43 @@ $component->trigger($eventName, $event);
```php ```php
$component->on($eventName, $handler); $component->on($eventName, $handler);
// To detach the handler, use: // прибрати обробник:
// $component->off($eventName, $handler); // $component->off($eventName, $handler);
``` ```
Є також і інші покращення у функціоналі подій. Більш детальна інформація про конфігурація представлена у розділі Є також інші покращення у функціоналі подій. Більш детальна інформація представлена у розділі [Події](concept-events.md).
[Події](concept-events.md).
Псевдоніми шляху Псевдоніми шляху
---------------- ----------------
Yii 2.0 розширює спосіб використання псевдонімів шляху як для файлів і каталогів, так і для URL. Yii 2.0 розширює спосіб використання псевдонімів шляху як для файлів та директорій, так і для URL.
У Yii 2.0 тепер також потрібно, щоб імʼя псевдоніма починалося із символу `@`, для розмежування псевдонімів від У Yii 2.0 тепер також потрібно, щоб імʼя псевдоніма починалося із символу `@`, для розмежування псевдонімів від
звичайних шляхів файлів/каталогів і URL. Наприклад, псевдонім `@yii` відповідає каталогу встановлення Yii. звичайних шляхів файлів/директорій і URL. Наприклад, псевдонім `@yii` відповідає директорії встановлення Yii.
Псевдоніми шляху використовуються в багатьох місцях коду Yii. Наприклад, [[yii\caching\FileCache::cachePath]] Псевдоніми шляху підтримуються в багатьох місцях коду Yii. Наприклад, [[yii\caching\FileCache::cachePath]]
може використовувати як псевдонім шляху, так і звичайний шлях до каталогу. може мати значення як псевдоніму шляху, так і звичайного шляху до директорії.
Псевдоніми шляху тісно повʼязані з простором імен класів. Рекомендується, що ви визначите псевдонім шляху Псевдоніми шляху тісно повʼязані з простором імен класів. Рекомендується призначити псевдонім шляху
для кожного базового простору імен, таким чином завантажувач класів Yii може використовуватися без будь-якої для кожного базового простору імен, таким чином завантажувач класів Yii може використовуватися без будь-якої
додаткової конфігурації. Наприклад, `@yii` відповідає каталогу встановлення Yii, тому клас `yii\webRequest` додаткової конфігурації. Наприклад, оскільки `@yii` посилається на директорію де встановленно Yii, клас `yii\web\Request`
може бути завантажений. Якщо ви використовуєте сторонні бібліотеки, такі як Zend Framework, ви можете також визначити може бути завантажений автоматично. Якщо ви використовуєте сторонні бібліотеки, такі як Zend Framework, ви можете також визначити
псевдонім шляху `@Zend`, який відповідає каталогу встановлення фреймворка. Одного разу зробивши це - Yii буде псевдонім шляху `@Zend`, який відповідає директорії встановлення цього фреймворка. Після чого Yii буде
здатний автоматично завантажувати будь-який клас Zend Framework. здатний автоматично завантажувати будь-який клас Zend Framework.
Більш детальна інформація про конфігурації представлена у розділі [Псевдонімів](concept-aliases.md). Більш детальна інформація про псевдоніми шляху представлена у розділі [Псевдоніми](concept-aliases.md).
Представлення Представлення
------------- -------------
Однією із основних змін в Yii2 є те, що спеціальна змінна `$this` у представленні більше не відповідає Однією із основних змін в Yii2 є те, що спеціальна змінна `$this` у представленні більше не відповідає
поточному контролеру або віджету. Замість цього, `$this` тепер відповідає обʼєкту *представлення*, нової можливості, поточному контролеру або віджету. Замість цього, `$this` тепер відповідає обʼєкту *представлення*, новій можливості,
яка була введена у версії 2.0. Обʼєкт представлення має тип [[yii\web\View]], який являє собою частину *представлення* яка була введена у версії 2.0. Обʼєкт представлення має тип [[yii\web\View]], який являє собою частину *представлення*
у шаблоні проектування MVC. Якщо ви хочете отримати доступ до контролера або віджету, то використовуйте вираз `$this->context`. у шаблоні проектування Модель-Представления-Контролер (MVC). Якщо ви хочете отримати доступ до контролера або віджету, то використовуйте вираз `$this->context`.
Для рендеринга часткових представлень тепер використовується метод `$this->render()`, а не `$this->renderPartial()`. Для формування часткових представлень тепер використовується метод `$this->render()`, а не `$this->renderPartial()`.
Результат виклику методу `render` тепер повинен бути виведений безпосередньо, так як `render` повертає результат Результат виклику методу `render` тепер повинен бути виведений безпосередньо, так як `render` повертає результат,
рендеринга, а не відображає його одразу. Наприклад, а не відображає його одразу. Наприклад,
```php ```php
echo $this->render('_item', ['item' => $item]); echo $this->render('_item', ['item' => $item]);
@ -169,7 +168,7 @@ echo $this->render('_item', ['item' => $item]);
Крім використання PHP у якості основного шаблонізатору, Yii 2.0 також включає офіційні розширення для основних Крім використання PHP у якості основного шаблонізатору, Yii 2.0 також включає офіційні розширення для основних
популярних шаблонізаторів: Smarty і Twig. Шаблонізатор Prado більше не підтримується. Для використання вказаних популярних шаблонізаторів: Smarty і Twig. Шаблонізатор Prado більше не підтримується. Для використання вказаних
шаблонізаторів вам необхідно налаштувати компонент додатка `view` за допомогою вказівки властивостей шаблонізаторів вам необхідно сконфігурувати компонент додатка `view` за допомогою налаштування властивості
[[yii\base\View::$renderers|View::$renderers]]. [[yii\base\View::$renderers|View::$renderers]].
Більш детальна інформація представлена у розділі [Шаблонізатори](tutorial-template-engines.md). Більш детальна інформація представлена у розділі [Шаблонізатори](tutorial-template-engines.md).
@ -196,15 +195,15 @@ public function scenarios()
``` ```
У прикладі вище, оголошено два сценарії: `backend` і `frontend`. Для сценарію `backend` обидва атрибута `email` і `role` У прикладі вище, оголошено два сценарії: `backend` і `frontend`. Для сценарію `backend` обидва атрибута `email` і `role`
є безпечними і можуть бути масово привласнені. Для сценарію `frontend` атрибут `email` може бути масово присвоєний, є безпечними та можуть бути масово призначені. Для сценарію `frontend` атрибут `email` може бути масово призначений,
а атрибут `role` - ні. Обидва атрибути `email` та `role` повинні бути перевірені за допомогою правил валідації. але атрибут `role` - ні. Обидва атрибути `email` та `role` повинні бути перевірені за допомогою правил валідації.
Метод [[yii\base\Model::rules()|rules()]] як і раніше використовується для оголошення правил валідації. Метод [[yii\base\Model::rules()|rules()]] як і раніше використовується для оголошення правил валідації.
Зверніть увагу, що у звʼязку з появою нового методу [[yii\base\Model::scenarios()|scenarios()]] - Зверніть увагу, що у звʼязку з появою нового методу [[yii\base\Model::scenarios()|scenarios()]],
більше не підтримується валідатор `unsafe`. більше не підтримується валідатор `unsafe`.
У більшості випадків вам не потрібно перевизначати метод [[yii\base\Model::scenarios()|scenarios()]], У більшості випадків вам не потрібно перевизначати метод [[yii\base\Model::scenarios()|scenarios()]],
якщо метод [[yii\base\Model::rules()|rules()]] повністю вказує всі існуючі сценарії і якщо немає потреби якщо метод [[yii\base\Model::rules()|rules()]] повністю вказує всі сценарії, що існують, та якщо немає потреби
в оголошенні атрибутів небезпечними. в оголошенні атрибутів небезпечними.
Більш детальна інформація представлена у розділі [Моделі](structure-models.md). Більш детальна інформація представлена у розділі [Моделі](structure-models.md).
@ -216,7 +215,7 @@ public function scenarios()
В якості базового класу для контролерів в Yii 2.0 використовується [[yii\web\Controller]], який є В якості базового класу для контролерів в Yii 2.0 використовується [[yii\web\Controller]], який є
аналогічним `CController` у Yii 1.1. Базовим класом для всіх дій є [[yii\base\Action]]. аналогічним `CController` у Yii 1.1. Базовим класом для всіх дій є [[yii\base\Action]].
Однією із основних змін є те, що дія контролера тепер має повернути результат замість того, щоб напряму виводити його: Однією із основних змін є те, що дія контролера тепер має повернути результат замість того, щоб безпосередньо виводити його:
```php ```php
@ -269,8 +268,10 @@ ActiveForm::end();
представлення із темізованим файлом. Наприклад, якщо використовується співставлення шляхів представлення із темізованим файлом. Наприклад, якщо використовується співставлення шляхів
`['/web/views' => '/web/themes/basic']`, то темізована версія файлу представлення `/web/views/site/index.php` буде `['/web/views' => '/web/themes/basic']`, то темізована версія файлу представлення `/web/views/site/index.php` буде
знаходитися у `/web/themes/basic/site/index.php`. З цієї причини теми можуть бути застосовані до будь-якого файлу знаходитися у `/web/themes/basic/site/index.php`. З цієї причини теми можуть бути застосовані до будь-якого файлу
представлення, навіть до представлення, яке відрендерене всередині контексту контролера або віджету. Також, більше представлення, навіть до представлення, яке сформоване за межами контексту контролера або віджету.
не існує компонента `CThemeManager`. Замість цього, `theme` є конфігурованою властивістю компонента додатка `view`.
Також, більше не існує компонента `CThemeManager`. Замість цього є властивість `theme` компонента додатка `view`,
яку можна сконфігурувати.
Більш детальна інформація представлена у розділі [Темізація](output-theming.md). Більш детальна інформація представлена у розділі [Темізація](output-theming.md).
@ -278,7 +279,7 @@ ActiveForm::end();
Консольні додатки Консольні додатки
----------------- -----------------
Консольні додатки тепер організовані як контролери, аналогічно веб додаткам. Консольні контролери Консольні додатки тепер організовані як контролери, аналогічно веб-додаткам. Консольні контролери
повинні бути успадковані від класу [[yii\console\Controller]], аналогічного `CConsoleCommand` у версії 1.1. повинні бути успадковані від класу [[yii\console\Controller]], аналогічного `CConsoleCommand` у версії 1.1.
Для виконання консольної команди, використовуйте `yii <маршрут>`, де `<маршрут>` це маршрут контролера Для виконання консольної команди, використовуйте `yii <маршрут>`, де `<маршрут>` це маршрут контролера
@ -295,10 +296,10 @@ I18N
---- ----
У Yii 2.0 були прибрані вбудовані форматтери часу та чисел на користь У Yii 2.0 були прибрані вбудовані форматтери часу та чисел на користь
[PECL intl PHP розширення](http://pecl.php.net/package/intl). [PECL розширення PHP intl](http://pecl.php.net/package/intl).
Переклад повідомлень тепер здійснюється через компонент додатка `i18n`. Даний компонент управляє безліччю вихідних сховищ Переклад повідомлень тепер здійснюється через компонент додатка `i18n`. Даний компонент управляє наборами джерел
повідомлень, що дозволяє вам використовувати різні сховища для вихідних повідомлень залежно від категорії повідомлення. повідомлень, що дозволяє вам використовувати різні джерела повідомлень, залежно від категорії повідомлення.
Більш детальна інформація представлена у розділі [Інтернаціоналізація](tutorial-i18n.md). Більш детальна інформація представлена у розділі [Інтернаціоналізація](tutorial-i18n.md).
@ -306,7 +307,7 @@ I18N
Фільтри дій Фільтри дій
----------- -----------
Фільтри дій тепер зроблені за допомогою поведінок. Для визначення нового фільтру - успадкуйте від [[yii\base\ActionFilter]]. Фільтри дій тепер зроблені за допомогою поведінок. Новостворюваний фільтр необхідно успадкувати від [[yii\base\ActionFilter]].
Для використання фільтра - прикріпіть його до контролера у якості поведінки. Наприклад, для використання фільтра Для використання фільтра - прикріпіть його до контролера у якості поведінки. Наприклад, для використання фільтра
[[yii\filters\AccessControl]] слід зробити наступне: [[yii\filters\AccessControl]] слід зробити наступне:
@ -332,8 +333,8 @@ public function behaviors()
У Yii 2.0 представлена нова можливість *звʼязки ресурсів*, яка замінює концепт пакетів скриптів у Yii 1.1. У Yii 2.0 представлена нова можливість *звʼязки ресурсів*, яка замінює концепт пакетів скриптів у Yii 1.1.
Звʼязка ресурсів - це колекція файлів ресурсів (наприклад, Javascript файли, CSS файли, файли зображень, і т. п.) Звʼязка ресурсів - це колекція файлів ресурсів (наприклад: Javascript файли, CSS файли, файли зображень, і т. п.)
у певній папці. Кожна звʼязка ресурсів представленакласом, успадкованим від [[yii\web\AssetBundle]]. у певній директорії. Кожна звʼязка ресурсів представлена класом, успадкованим від [[yii\web\AssetBundle]].
Звʼязка ресурсів стає доступною через веб, за допомогою реєстрації її методом [[yii\web\AssetBundle::register()]]. Звʼязка ресурсів стає доступною через веб, за допомогою реєстрації її методом [[yii\web\AssetBundle::register()]].
На відміну від Yii 1.1, сторінка, яка реєструє звʼязку ресурсів, автоматично буде містити посилання на На відміну від Yii 1.1, сторінка, яка реєструє звʼязку ресурсів, автоматично буде містити посилання на
Javascript і CSS файли, які зазначені у звʼязці. Javascript і CSS файли, які зазначені у звʼязці.
@ -352,7 +353,7 @@ Javascript і CSS файли, які зазначені у звʼязці.
* [[yii\helpers\FileHelper]] * [[yii\helpers\FileHelper]]
* [[yii\helpers\Json]] * [[yii\helpers\Json]]
Більш детальна інформація представлена у розділі [Хелпери](helper-overview.md). Більш детальна інформація представлена у розділі [Огляд хелперів](helper-overview.md).
Форми Форми
@ -373,7 +374,7 @@ Yii 2.0 вводить нове поняття *поле* для побудов
<?php yii\widgets\ActiveForm::end(); ?> <?php yii\widgets\ActiveForm::end(); ?>
``` ```
Більш детальна інформація представлена у розділі [Робота з формами](input-forms.md). Більш детальна інформація представлена у розділі [Створення форм](input-forms.md).
Конструктор запитів Конструктор запитів
@ -381,7 +382,7 @@ Yii 2.0 вводить нове поняття *поле* для побудов
У версії 1.1, побудова запиту була розкидана серед декількох класів, включаючи `CDbCommand`, У версії 1.1, побудова запиту була розкидана серед декількох класів, включаючи `CDbCommand`,
`CDbCriteria` та `CDbCommandBuilder`. У Yii 2.0 запит до БД представлений в рамках обʼєкта [[yii\db\Query|Query]], `CDbCriteria` та `CDbCommandBuilder`. У Yii 2.0 запит до БД представлений в рамках обʼєкта [[yii\db\Query|Query]],
який може бути перетворений у SQL вираз за допомогою [[yii\db\QueryBuilder|QueryBuilder]]. Наприклад, який може бути перетворений у SQL-вираз за допомогою [[yii\db\QueryBuilder|QueryBuilder]]. Наприклад,
```php ```php
$query = new \yii\db\Query(); $query = new \yii\db\Query();
@ -402,10 +403,10 @@ $rows = $command->queryAll();
Active Record Active Record
------------- -------------
У Yii 2.0 внесено безліч змін в роботу [Active Record](db-active-record.md). Два основних з них включають в себе У Yii 2.0 внесено безліч змін в роботу [Active Record](db-active-record.md). Основними двома є
побудову запитів і роботу із звʼязками. побудова запитів і робота із звʼязками.
Клас `CDbCriteria` у версії 1.1 був замінений на [[yii\db\ActiveQuery]] у Yii 2.0. Це клас успадковується від Клас `CDbCriteria` у версії 1.1 був замінений на [[yii\db\ActiveQuery]] у Yii 2.0. Цей клас успадковується від
[[yii\db\Query]] і таким чином отримує всі методи, які необхідні для побудови запиту. Для побудови запиту вам слід [[yii\db\Query]] і таким чином отримує всі методи, які необхідні для побудови запиту. Для побудови запиту вам слід
викликати метод [[yii\db\ActiveRecord::find()]]: викликати метод [[yii\db\ActiveRecord::find()]]:
@ -417,7 +418,7 @@ $customers = Customer::find()
->all(); ->all();
``` ```
Для оголошення звʼязку слід просто оголосити геттер, який повертає обʼєкт [[yii\db\ActiveQuery|ActiveQuery]]. Для оголошення звʼязку слід просто призначити геттер, який повертає обʼєкт [[yii\db\ActiveQuery|ActiveQuery]].
Імʼя властивості, яке визначене геттером, представляє собою назву звʼязку. Наприклад, наступний код оголошує звʼязок Імʼя властивості, яке визначене геттером, представляє собою назву звʼязку. Наприклад, наступний код оголошує звʼязок
`orders` (у версії 1.1 вам потрібно було б оголосити звʼязки в одному центральному місці - `relations()`): `orders` (у версії 1.1 вам потрібно було б оголосити звʼязки в одному центральному місці - `relations()`):
@ -445,15 +446,15 @@ Yii 2.0 здійснює жадібне завантаження (eager loading)
Замість того, щоб повертати обʼєкти [[yii\db\ActiveRecord|ActiveRecord]], ви можете використовувати метод Замість того, щоб повертати обʼєкти [[yii\db\ActiveRecord|ActiveRecord]], ви можете використовувати метод
[[yii\db\ActiveQuery::asArray()|asArray()]] при побудові запиту, для вибірки великої кількості записів. [[yii\db\ActiveQuery::asArray()|asArray()]] при побудові запиту, для вибірки великої кількості записів.
Це змусить повернути результат запиту у якості масива, що може суттєво знизити час, який потрібен ЦПУ і памʼяті Це змусить повернути результат запиту у якості масиву, що може суттєво знизити витрати процесорного часу і памʼяті
при великій кількості записів. Наприклад: при великій кількості записів. Наприклад:
```php ```php
$customers = Customer::find()->asArray()->all(); $customers = Customer::find()->asArray()->all();
``` ```
Ще одна зміна повʼязана з тим, що ви більше не можете визначати значення по-замовчуванням як властивостей. Ще одна зміна повʼязана з тим, що ви більше не можете визначати значення атрибутів за замовчуванням з допомогою public властивостей.
Ви повинні встановити їх у методі `init` вашого класу, якщо це потрібно. Ви можете встановити їх у методі `init` вашого класу запису, якщо це потрібно.
```php ```php
public function init() public function init()
@ -463,21 +464,21 @@ public function init()
} }
``` ```
Також у версії 1.1 були деякі проблеми із перевизначенням конструктора ActiveRecord. Дані проблеми не присутні Також у версії 1.1 були деякі проблеми із перевизначенням конструктора ActiveRecord. Дані проблеми відсутні
у версії 2.0. Зверніть увагу, що при додаванні параметрів у конструктор, вам, можливо, знадобиться перевизначити метод у версії 2.0. Зверніть увагу, що при додаванні параметрів у конструктор, вам, можливо, знадобиться перевизначити метод
[[yii\db\ActiveRecord::instantiate()]]. Перевизначення може не знадобитися, якщо параметри, передані в конструктор [[yii\db\ActiveRecord::instantiate()]]. Перевизначення може не знадобитися, якщо параметри, передані в конструктор
матимуть значення за умовчанням, наприклад `null`. матимуть значення за умовчанням, наприклад `null`.
Існує також безліч інших покращень у ActiveRecord. Більш детальна інформація про конфігурацію представлена у розділі Є також безліч інших змін та покращень у ActiveRecord. Більш детальна інформація про них представлена у розділі
[Active Record](db-active-record.md). [Active Record](db-active-record.md).
Поведінки Active Record Поведінки Active Record
----------------------- -----------------------
У версії 2.0 ми позбулися від класу базової поведінки `CActiveRecordBehavior`. Якщо ви хочете створити поведінку У версії 2.0 розробники позбулися класу базової поведінки `CActiveRecordBehavior`. Новостворюваний клас поведінки Active Record
Active Record, ви повинні будете розширити класс `yii\base\Behavior`. Якщо класу поведінки необхідно реагувати на має бути успадкованим безпосередньо від класу `yii\base\Behavior`. Якщо класу поведінки необхідно реагувати на
деякі події власника, ви повинні перевизначити метод `events()`, як показано нижче, деякі події власника, потрібно перевизначити метод `events()`, як показано нижче,
```php ```php
namespace app\components; namespace app\components;
@ -508,17 +509,17 @@ User та IdentityInterface
------------------------- -------------------------
Клас `CWebUser` у версії 1.1 тепер замінений класом [[yii\web\User]], а також більше не існує класу `CUserIdentity`. Клас `CWebUser` у версії 1.1 тепер замінений класом [[yii\web\User]], а також більше не існує класу `CUserIdentity`.
Замість цього, ви повинні надати реалізацію інтерфейсу [[yii\web\IdentityInterface]], що набагато простіше у використанні. Замість цього, необхідно реалізувати інтерфейс [[yii\web\IdentityInterface]], що набагато простіше у використанні.
Більш детальна інформація представлена у розділах [Аутентифікація](security-authentication.md), Більш детальна інформація представлена у розділах [Аутентифікація](security-authentication.md),
[Авторизація](security-authorization.md) та [Шаблон додатка advanced](tutorial-advanced-app.md). [Авторизація](security-authorization.md) та [Розширений шаблон додатка](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-uk/README.md).
Управління URL Керування URL
-------------- -------------
Робота з URL в Yii 2.0 аналогічна тій, що була у версії 1.1. Основна зміна полягає в тому, що тепер підтримуються Робота з URL в Yii 2.0 аналогічна тій, що була у версії 1.1. Основне покращення полягає в тому, що тепер підтримуються
додаткові параметри. Наприклад, якщо у вас є правило, оголошене наступним чином, то воно співпаде з `post/popular` та додаткові параметри. Наприклад, якщо у вас є правило, оголошене нижче, то воно співпаде з `post/popular` та
`post/1/popular`. У версії 1.1 вам довелося б використовувати два правила для отримання того ж результату. `post/1/popular`. У версії 1.1 вам довелося б використовувати два правила для отримання того ж результату.
```php ```php
@ -529,11 +530,11 @@ User та IdentityInterface
] ]
``` ```
Більш детальна інформація представлена у розділі [Розбір та генерація URL](runtime-routing.md). Більш детальна інформація представлена у розділі [Маршрутизація та створення URL](runtime-routing.md).
Використання Yii 1.1 разом із 2.x Використання Yii 1.1 разом із 2.x
--------------------------------- ---------------------------------
Інформація про використання коду для Yii 1.1 разом із Yii 2.0 представлена у розділі Інформація про використання коду для Yii 1.1 разом із Yii 2.0 представлена у розділі
[Одночасне використання Yii 1.1 та 2.0](tutorial-yii-integration.md). [Робота із стороннім кодом](tutorial-yii-integration.md).

6
docs/guide-uk/intro-yii.md

@ -11,7 +11,7 @@ Yii – це високопродуктивний компонентний PHP
Yii – це універсальний фреймворк і може бути задіяний у всіх типах веб-додатків, що використовують PHP. Yii – це універсальний фреймворк і може бути задіяний у всіх типах веб-додатків, що використовують PHP.
Завдяки його компонентній структурі і відмінній підтримці кешування, фреймворк особливо підходить для розробки Завдяки його компонентній структурі і відмінній підтримці кешування, фреймворк особливо підходить для розробки
таких великих проектів як портали, форуми, системи керування контентом (CMS), інтернет-магазини або RESTful-додатки. таких великих проектів як портали, форуми, системи керування вмістом (CMS), інтернет-магазини або RESTful-додатки.
Порівняння Yii з іншими фреймворками Порівняння Yii з іншими фреймворками
@ -41,7 +41,7 @@ Yii — не проект однієї людини. Він підтримуєт
На даний момент існує дві основні версії Yii: 1.1 та 2.0. Версія 1.1 є попереднім поколінням і знаходиться у стані підтримки. На даний момент існує дві основні версії Yii: 1.1 та 2.0. Версія 1.1 є попереднім поколінням і знаходиться у стані підтримки.
Версія 2.0 - це повністю переписаний Yii, що використовує останні технології і протоколи, такі як Composer, PSR, простори імен, Версія 2.0 - це повністю переписаний Yii, що використовує останні технології і протоколи, такі як Composer, PSR, простори імен,
типажі (traits) і багато іншого. 2.0 - поточне покоління фреймворка. На цій версії будуть зосереджені основні зусилля трейти і багато іншого. 2.0 - поточне покоління фреймворка. На цій версії будуть зосереджені основні зусилля
кілька наступних років. Даний посібник призначений в основному для версії 2.0. кілька наступних років. Даний посібник призначений в основному для версії 2.0.
@ -53,4 +53,4 @@ Yii 2.0 потребує PHP 5.4.0 та вище. Щоб дізнатися ви
Для розробки на Yii необхідне загальне розуміння ООП, так як фреймворк повністю слідує цій парадигмі. Для розробки на Yii необхідне загальне розуміння ООП, так як фреймворк повністю слідує цій парадигмі.
Також слід вивчити такі сучасні можливості PHP як [простори імен](http://www.php.net/manual/en/language.namespaces.php) Також слід вивчити такі сучасні можливості PHP як [простори імен](http://www.php.net/manual/en/language.namespaces.php)
і [типажі](http://www.php.net/manual/en/language.oop5.traits.php). і [трейти](http://www.php.net/manual/en/language.oop5.traits.php).

4
docs/internals-uk/automation.md

@ -6,10 +6,10 @@
- Створення мапи класів `classes.php` у кореневій директорії фреймворку. - Створення мапи класів `classes.php` у кореневій директорії фреймворку.
Виконати `./build/build classmap` для її створення. Виконати `./build/build classmap` для її створення.
- Створення анотацій `@property` у файлах класів, що описують властивості представлені функціями для отримання (getters) та призначення (setters) властивостей. - Створення анотацій `@property` у файлах класів, що описують властивості представлені геттерами та сеттерами.
Виконати `./build/build php-doc/property` для їх оновлення. Виконати `./build/build php-doc/property` для їх оновлення.
- Виправлення стилю кодування та інших невеличких проблем у коментарях phpdoc. - Виправлення стилю кодування та інших невеличких проблем у коментарях phpdoc.
Виконати `./build/build php-doc/fix` для виправлення. Виконати `./build/build php-doc/fix` для виправлення.
Перед тим як створювати коміт, необхідно перевіряти зміни, оскільки команда не є досконалою й можливі не бажані зміни. Перед тим як створювати комміт, необхідно перевіряти зміни, оскільки команда не є досконалою й можливі не бажані зміни.
Можна використовувати `git add -p` для перегляду змін. Можна використовувати `git add -p` для перегляду змін.

4
docs/internals-uk/getting-started.md

@ -0,0 +1,4 @@
Підготовка до розробки Yii 2
============================
Інформація про те, як налаштувати середовище для розробки представлена у розділі [Робота з Git для учасників Yii 2](git-workflow.md).

233
docs/internals-uk/git-workflow.md

@ -0,0 +1,233 @@
Робота з Git для учасників Yii 2
================================
Ви бажаєте взяти участь в розробці Yii? Чудово! Але, щоб підвищити шанси швидкого прийняття ваших змін, будь ласка,
дотримуйтесь наступних кроків. Якщо ви новачок у Git та GitHub, спершу можете ознайомитись із
[довідкою GitHub](http://help.github.com/), [тренером Git](https://try.github.com)
або почитати книгу [Магія Git](http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/uk/)
чи [Розділ Git у Вікіпідручнику](http://uk.wikibooks.org/wiki/Git), щоб краще зрозуміти внутрішню структуру Git.
Підготовка вашого середовища розробки
-------------------------------------
Наступні кроки створять середовище розробки для Yii, яке ви зможете використовувати для роботи
над основним кодом фреймворку Yii. Ці кроки необхідні лише тоді, коли ви вперше долучаєтесь до співпраці.
### 1. [Створіть форк](http://help.github.com/fork-a-repo/) репозиторію Yii на GitHub та клонуйте свій форк у своє середовище розробки
```
git clone git@github.com:ВАШЕ-ІМ’Я-НА-GITHUB/yii2.git
```
Якщо у вас виникли проблеми із роботою Git з GitHub в Linux, або ви отримали помилку заборони доступу "Permission Denied (publickey)",
то вам необхідно [налаштувати Git для роботи з GitHub](https://help.github.com/articles/set-up-git/#platform-linux).
### 2. Додайте головний репозиторій Yii як додатковий віддалений репозиторій із назвою "upstream"
Перейдіть у директорію, в яку ви клонували Yii, зазвичай "yii2". Потім виконайте наведену команду:
```
git remote add upstream git://github.com/yiisoft/yii2.git
```
### 3. Підготуйте середовище тестування
Наступні кроки не обов'язкові, якщо ви хочете працювати лише над перекладом або документацією.
- виконайте `composer update` для встановлення залежностей (припускається, що ви маєте [глобально встановлений composer](https://getcomposer.org/doc/00-intro.md#globally)).
- виконайте `php build/build dev/app basic` для клонування базового додатку та встановлення його залежностей.
Ця команда встановить сторонні пакунки composer як завжди, а також створить посилання з репозиторію yii2
на поточний репозиторій. Таким чином ви будете мати один екземпляр встановленого коду.
Якщо необхідно, зробіть те ж саме для розширеного додатку: `php build/build dev/app advanced`.
Ця команда може використовуватись для оновлення залежностей, вона викликає `composer update` в процесі виконання.
**Тепер ви маєте робочий майданчик для експериментів з Yii 2.**
Наступні кроки не обов’язкові.
### Модульні тести
Ви можете виконати модульні тести, запустивши `phpunit` у кореневій директорії репозиторію. Якщо у вас phpunit не встановлений глобально,
ви можете запускати `php vendor/bin/phpunit`.
Деякі тести потребують додатково встановлення та налаштування баз даних. Ви можете створити `tests/data/config.local.php` для перевизначення
налаштувань сконфігурованих у `tests/data/config.php`.
Можливо обмежити тести групою тестів, що покривають область над якою ви працюєте, наприклад, щоб запустити тести для валідаторів
та redis, виконайте `phpunit --group=validators,redis`. Для отримання списку доступних груп виконайте `phpunit --list-groups`.
### Розширення
Для роботи з розширеннями необхідно клонувати відповідні репозиторії. Наступна команда зробить це для вас:
```
php build/build dev/ext <extension-name>
```
де `<extension-name>` є назвою розширення, наприклад `redis`.
Якщо бажаєте протестувати розширення в одному із шаблонів додатку, просто додайте його до `composer.json` додатку, як ви будете
робити зазвичай. Наприклад, додайте `"yiisoft/yii2-redis": "*"` до секції `require` базового додатку.
Команда `php build/build dev/app basic` встановить розширення та його залежності й створить
символьне посилання на `extensions/redis`, тому ви можете працювати безпосередньо в директорії репозиторію yii2,
а не у специфічній для composer директорії vendor.
Робота з помилками та функціоналом
----------------------------------
Отримавши середовище розробки, як було описано вище, ви можете розпочати роботу над функціоналом або виправленням помилок.
### 1. Переконайтесь, що створено питання стосовно речі, над якою ви працюєте, якщо це потребує багатьох зусиль для виконання
Усі нові можливості та виправлення помилок повинні мати пов’язане запитання, яке забезпечує єдину точку посилання для обговорення
та документації. Витратьте декілька хвилин на перегляд списку створених питань, щоб знайти ті, що стосуються внеску, який ви
збираєтесь зробити. Якщо знайдете таке у списку запитань, потім, будь ласка, залиште коментар із зазначенням, що ви
збираєтесь працювати над цим. Якщо не знайшли створеного питання, що стосується того, над чим ви збираєтесь працювати, будь ласка
[створіть нове запитання](report-an-issue.md) або відправте "pull request" безпосередньо, якщо це не складне виправлення. Це дозволить команді
розробників розглянути вашу пропозицію та надавати відповідний зворотний зв’язок протягом шляху.
> Для невеликих змін, проблем документації або простих виправлень нема потреби створювати питання, достатньо відправити "pull request" у цих випадках.
### 2. Отримайте останній код з головної гілки Yii
```
git fetch upstream
```
З цього необхідно розпочинати кожний новий внесок, щоб бути впевненим, що ви працюєте з найновішим кодом.
### 3. Створіть нову гілку для вашого внеску на базі поточної основної гілки Yii
> Це дуже важливо, тому що ви не зможете відправляти більше, ніж один "pull request" від вашого імені, у разі
використання основної (master) гілки.
Кожні окремі виправлення помилок або зміни повинні мати власні гілки. Назви гілок повинні бути наочними та починатись з
номеру питання, яке пов’язане із вашим кодом. Якщо ви працюєте не над специфічним питанням, просто пропустіть номер.
Наприклад:
```
git checkout upstream/master
git checkout -b 999-name-of-your-branch-goes-here
```
### 4. Робіть вашу магію, пишіть ваш код
Переконайтесь, що він працює :)
Модульні тести завжди вітаються. Протестований та добре покритий код надзвичайно полегшує перевірку вашого внеску.
Провальні модульні тести як опис проблеми також приймаються.
### 5. Оновіть журнал змін (CHANGELOG)
Додайте до файлу CHANGELOG зроблені вами зміни у верхній частині документу під заголовком
"Work in progress", запис у журналі змін повинен виглядати подібно до наведеного прикладу:
```
Bug #999: a description of the bug fix (Your Name)
Enh #999: a description of the enhancement (Your Name)
```
`#999` - це номер питання, на яке посилається виправлення помилки (`Bug`) або покращення (`Enh`).
Записи журналу змін повинні бути згруповані за типом (`Bug`, `Enh`) та сортовані за номером питання.
Для дуже малих виправлень, наприклад, друкарських помилок та змін у документації, нема потреби оновлювати CHANGELOG.
### 6. Створіть комміт ваших змін
Додайте файли/зміни, призначені для комміту, в [буферну зону](http://gitref.org/basic/#add) за допомогою команди:
```
git add path/to/my/file.php
```
Використовуйте опцію `-p` для відбору змін, які ви бажаєте додати до вашого комміту.
Створіть комміт з описовим повідомленням. Переконайтесь, що вказали номер питання як `#XXX`, щоб GitHub
автоматично пов’язав ваш комміт із питанням:
```
git commit -m "A brief description of this change which fixes #999 goes here"
```
### 7. Додайте останній код Yii з upstream до вашої гілки
```
git pull upstream master
```
Це гарантує, що ви матимете останній код у вашій гілці перед тим, як відправити "pull request". Якщо є будь-які конфлікти поєднання,
треба виправити їх одразу та знову створити комміт. Це забезпечить команду розробників Yii можливістю легко приєднати ваші зміни
одним натисканням кнопки.
### 8. Вирішивши будь-які конфлікти, відправте ваш код до GitHub
```
git push -u origin 999-name-of-your-branch-goes-here
```
Опція `-u` забезпечує те, що ваша гілка відтепер оброблятиметься автоматично при запитах push та pull до GitHub гілки.
Це означає, якщо ви виконаєте `git push` наступного разу, програма буде знати куди відправляти. Це корисно, якщо ви
бажаєте пізніше додавати більше коммітів у "pull request".
### 9. Відправте ["pull request"](http://help.github.com/send-pull-requests/) до upstream.
Перейдіть до вашого репозиторію на GitHub та натисніть "Pull Request", оберіть вашу гілку справа та внесіть трохи деталей
у полі коментарю. Щоб пов’язати "pull request" із запитанням, внесіть десь у коментарі `#999`, де 999 - це номер питання.
> Зауважте, що кожний "pull request" повинен стосуватись окремої зміни. Для багатьох змін, не пов’язаних між собою,
будь ласка, відправляйте "pull request" окремо для кожної.
### 10. Дехто перевірить ваш код
Дехто перевірить ваш код, й, можливо, вас попросять внести деякі зміни. У цьому випадку перейдіть до кроку #6 (нема потреби
відправляти інший "pull request", якщо ваш поточний досі відкритий). Якщо ваш код прийнято, то він буде поєднаний з головною гілкою
та стане частиною наступного релізу Yii. Якщо ж ні, не сумуйте, різні люди потребують різних можливостей, та Yii
не може бути всім для всіх, ваш код залишатиметься доступним на GitHub для людей, які його потребують.
### 11. Проведіть чистку
Після того, як ваш код був прийнятий або відхилений, можете видалити гілки, над якими ви працювали, із локального репозиторію
та з `origin`.
```
git checkout master
git branch -D 999-name-of-your-branch-goes-here
git push origin --delete 999-name-of-your-branch-goes-here
```
### Примітка:
Для виявлення регресу на ранніх стадіях кожне поєднання з кодовою базою Yii на GitHub опрацьовується у
[Travis CI](http://travis-ci.org) для автоматичного запуску тестів. Оскільки основна команда розробників не бажає
перевантажувати сервіс, додавайте [`[ci skip]`](http://about.travis-ci.org/docs/user/how-to-skip-a-build/) до
опису поєднання, якщо ваш "pull request":
* зачіпає лише файли javascript, css або файли зображень,
* оновлює документацію,
* змінює лише фіксовані текстові рядки (наприклад, оновлення перекладу)
Це захистить travis від запуску тестів на змінах, які не покриті тестами.
### Огляд команд (для досвідчених учасників)
```
git clone git@github.com:YOUR-GITHUB-USERNAME/yii2.git
git remote add upstream git://github.com/yiisoft/yii2.git
```
```
git fetch upstream
git checkout upstream/master
git checkout -b 999-name-of-your-branch-goes-here
/* робіть вашу магію; оновіть журнал змін, якщо необхідно */
git add path/to/my/file.php
git commit -m "A brief description of this change which fixes #999 goes here"
git pull upstream master
git push -u origin 999-name-of-your-branch-goes-here
```

22
docs/internals-uk/report-an-issue.md

@ -0,0 +1,22 @@
Повідомлення про проблему
=========================
Будь ласка, дотримуйтесь рекомендацій, зазначених нижче, при створенні питання, щоб прискорити його вирішення:
* Подавайте інформацію, включаючи: версію PHP та Yii, тип операційної системи та веб-сервера, тип та версію браузера.
* Додавайте **повний** вивід про помилку, якщо є. Скріншот, що пояснює проблему, дуже вітається.
* Опишіть кроки, які призводять до помилки. Було б ще краще, надати код для відтворення проблеми.
* Якщо можливо створіть модульний тест, навіть провальний, та [надішліть його як "pull request"](git-workflow.md).
Якщо проблема повʼязана з одним із офіційних розширень, будь ласка, повідомляйте про неї у репозиторії цього розширення.
Якщо ви не впевнені, [повідомляйте у головному репозиторії](https://github.com/yiisoft/yii2/issues/new) (<https://github.com/yiisoft/yii2/issues>).
**Не повідомляйте про проблему, якщо:**
* Ви хочете спитати як використовувати ту чи іншу можливість Yii. Для цього користуйтесь [форумом](http://www.yiiframework.com/forum/index.php/forum/42-general-discussions-for-yii-20/) або [чатом](http://www.yiiframework.com/chat/).
* Проблема стосується безпеки. Будь ласка, [звертайтесь безпосередньо до розробників](http://www.yiiframework.com/security/), щодо проблем з безпекою.
**Уникайте дублювання питань**
Перед тим, як повідомити про проблему, будь ласка, здійсніть пошук серед [створених запитань](https://github.com/yiisoft/yii2/issues),
можливо про проблему вже повідомили або проблема вже вирішена. Також переконайтесь, що маєте останню версію Yii та у разі оновлення перевірте чи проблема при цьому присутня.

146
docs/internals-uk/translation-workflow.md

@ -0,0 +1,146 @@
Процес перекладу
================
Yii перекладається на багато різних мов, щоб бути корисним для міжнародних додатків та розробників. Основними двома областями,
де вітається співпраця є документація та повідомлення фреймворку.
Повідомлення фреймворку
-----------------------
Фреймворк має два типи повідомлень: виключення, які призначені для розробників й ніколи не перекладаються, та повідомлення
видимі кінцевому користувачу, такі як помилки перевірки.
Щоб розпочати переклад повідомлень необхідно:
1. Перейти до директорії `framework` та виконати команду `./yii message/extract messages/config.php`.
2. Перекласти повідомлення у файлі `framework/messages/uk/yii.php`. Зберегти файл у кодуванні UTF-8.
3. [Відправити "pull request"](git-workflow.md).
Для підтримання перекладу в актуальному стані можна знову використовувати команду `./yii message/extract messages/config.php`.
Це автоматично здобуде нові повідомлення, зберігаючи при цьому вже перекладені.
У файлі перекладу кожний ключ елементу масиву представляє повідомлення, а значення елементу масиву представляє переклад.
Якщо значення порожнє, повідомлення вважається не перекладеним. Переклади повідомлень, які вже не потребують перекладу,
замкнуті між парами знаків '@@'. Текст перекладу може містити формат кількох форм множини.
Ознайомтесь з розділом посібника [Інтернаціоналізація](../guide-uk/tutorial-i18n.md) для більш детальної інформації.
Документація
------------
Переклад документації знаходиться у `docs/<original>-uk`, де `<original>` відповідає оригінальній директорії,
наприклад `guide` або `internals`.
Після завершення розпочатої роботи можна отримати звіт про стан перекладу за допомогою виклику спеціальної команди з
директорії `build`:
```
php build translation "../docs/guide" "../docs/guide-uk" "Ukrainian guide translation report" > report_guide_uk.html
```
У разі необхідності встановіть [Composer](https://getcomposer.org/) в кореневій директорії вашого локального репозиторію.
### Список документів
Перелік документів, що потребують перекладу, можна знайти за нижченаведеними посиланнями:
- [список документів для guide-uk](https://ethercalc.org/yii2.docs.guide-uk);
- [список документів для internals-uk](https://ethercalc.org/yii2.docs.internals-uk).
Перед тим, як розпочати переклад, переконайтесь, що їм ніхто не займається, та запишіть себе у списку документів.
В залежності від прогресу оберіть відповідний статус перекладу:
- В роботі — переклад готується перекладачем до відправлення "pull request";
- Ревізія — відправлений переклад перевіряється ревізором;
- Перекладено — переклад прийнято до головної (master) гілки проекту.
За додатковою інформацією можете звертатись до учасників української [команди перекладачів](../internals/translation-teams.md).
### Переклад зображень
Зображення до документації знаходяться у вкладеній директорії `images`. Усі вони створенні програмою [yED](http://www.yworks.com/en/products/yfiles/yed/).
При необхідності перекладу оригінальний файл копіюється в директорію `images` перекладу, перекладається та зберігається у форматі png.
Перелік зображень, що потребують перекладу, можна знайти за нижченаведеним посиланням:
- [список зображень для guide-uk](https://ethercalc.org/yii2.docs.guide-uk.images).
### Переклад спеціальних повідомлень
- Tip → Підказка
- Note → Примітка
- Info → Інформація
### Список термінів
- action — дія;
- active record — (не перекладається);
- (advanced/basic) application — (розширений/базовий) додаток;
- attach handler — прикріпити обробник;
- attribute of the model — атрибут моделі;
- branch — гілка;
- cache — кеш;
- camel case — (не перекладається);
- column — колонка;
- commit — комміт;
- configuration — конфігурація;
- content — вміст;
- contributor — учасник;
- controller — контролер;
- cookies — кукі;
- customization — (тонке) налаштування;
- debug mode — режим налагодження (див. production mode);
- debugger — відладчик;
- (root) directory — (коренева) директорія;
- eager loading — жадібне завантаження (див. lazy loading);
- email address — email адреса;
- environment — середовище;
- exception — виключення;
- PHP extension — розширення PHP;
- field (of the table) — поле/атрибут (таблиці);
- fixture — фікстура;
- fork — форк;
- framework — фреймворк;
- front-controller — фронт-контролер;
- getter — геттер;
- (event) handler — обробник (події);
- hash — хеш;
- help - довідка;
- helper - хелпер;
- id — ідентифікатор;
- image — зображення;
- instance — екземпляр;
- issue — питання/проблема; // в залежності від контексту
- lazy loading — відкладене завантаження;
- log, logging — журнал, журналювання;
- method — метод (обʼєкта/класу);
- merge — поєднання;
- model — модель, модель даних;
- model form — модель форми;
- parameter — параметр (методу/функції);
- to parse — обробляти;
- placeholder — заповнювач;
- production mode — режим провадження (див. debug mode);
- property — властивість (обʼєкта);
- pull request — (не перекладається);
- query builder — конструктор запитів;
- to render, rendering — формувати, формування;
- related, relation — повʼязаний, звʼязок;
- repo, repository — репозиторій;
- resolve request — попередня обробка запиту;
- route, routing — маршрут, маршрутизація;
- row (of the table) — рядок (таблиці);
- setter — сеттер;
- staging area — буферна зона;
- string — текстовий рядок;
- tabular input — табличний ввід;
- template engine — шаблонізатор;
- theming — темізація;
- trait — трейт;
- unit tests — модульні тести;
- to validate — перевіряти;
- valid — коректний;
- validator — валідатор;
- validation — перевірка;
- validator class — клас валідатора;
- versioning — версіонування;
- view — представлення.

12
docs/internals-uk/versions.md

@ -23,10 +23,10 @@
* 100%-ва зворотна сумісність, що гарантує оновлення без проблем. Виключенням можуть бути лише проблеми безпеки, які потребують порушення зворотної сумісності * 100%-ва зворотна сумісність, що гарантує оновлення без проблем. Виключенням можуть бути лише проблеми безпеки, які потребують порушення зворотної сумісності
* Цикл релізу близько 1-2 місяців * Цикл релізу близько 1-2 місяців
* Не має необхідності у пре-релізах (альфа, бета, реліз-кандидат) * Не має необхідності у пре-релізах (альфа, бета, реліз-кандидат)
* Регулярно об'єднуються з головною (майстер) гілкою (щонайменш раз у тиждень вручну) * Регулярно обʼєднуються з головною (master) гілкою (щонайменш раз у тиждень вручну)
## Молодші (майнор) релізи `2.X.0` ## Молодші (мінорні) релізи `2.X.0`
Зворотно несумісні релізи, що містять великі доповнення та зміни, які можуть порушувати зворотну сумісність. Оновлення з ранніх версій Зворотно несумісні релізи, що містять великі доповнення та зміни, які можуть порушувати зворотну сумісність. Оновлення з ранніх версій
може бути не простим, але у наявності повна інструкція по оновленню або навіть скрипт. може бути не простим, але у наявності повна інструкція по оновленню або навіть скрипт.
@ -40,10 +40,10 @@
* Потребують маркетингових зусиль та публікування у головних новинах * Потребують маркетингових зусиль та публікування у головних новинах
## Головні (мажор) релізи `X.0.0` ## Основні (мажорні) релізи `X.0.0`
Це наче 2.0 після 1.0. Такий перехід, вірогідніше, буде не частіше ніж кожні 3-5 років, у зв'язку з просуванням сторонніх технологій Це наче 2.0 після 1.0. Такий перехід, вірогідніше, буде не частіше ніж кожні 3-5 років, у звʼязку з просуванням сторонніх технологій
(наприклад, оновлення PHP з 5.0 до 5.4). (наприклад, оновлення PHP з 5.0 до 5.4).
> Примітка: Офіційні розширення використовують таку ж саму політику призначення версій але можуть публікуватись незалежно від > Примітка: Офіційні розширення використовують таку ж саму політику призначення версій, але можуть публікуватись незалежно від
фреймворку, тобто номера версій фреймворку та розширення не повинні обов'язково збігатсь. фреймворку, тобто номера версій фреймворку та розширення не повинні обовʼязково збігатися.

52
docs/internals-uk/view-code-style.md

@ -0,0 +1,52 @@
Оформлення коду представлень у Yii2
===================================
Нижченаведений стиль кодування використовується у представленнях основи Yii 2.x та у представленнях офіційних розширень.
Ми не наполягаємо на використанні цього стилю для вашого додатка. Вільно обирайте те, що підходить вам більше.
```php
<?php
// Початковий тег PHP, за яким йде пустий рядок, є обовʼязковим для усіх файлів шаблонів.
// Опис вхідних змінних, які передає контролер.
/* @var $this yii\base\View */
/* @var $form yii\widgets\ActiveForm */
/* @var $posts app\models\Post[] */
/* @var $contactMessage app\models\ContactMessage */
// Пустий рядок після є необхідним.
// Декларування класів з просторів імен.
use yii\helpers\Html;
use yii\widgets\ActiveForm;
// Пустий рядок після є необхідним.
// Призначення властивостей контексту, виклики їх сеттерів, інші речі.
$this->title = 'Posts';
?>
<!-- Для foreach, for, if, і т.п. краще використовувати роздільні блоки PHP. -->
<?php foreach ($posts as $post): ?>
<!-- Тут зверніть увагу на відступи. -->
<h2><?= Html::encode($post['title']) ?></h2>
<p><?= Html::encode($post['shortDescription']) ?></p>
<!-- `endforeach;`, `endfor;`, `endif;`, і т.п. потрібно використовувати замість `}` у випадку використання багатьох блоків PHP -->
<?php endforeach; ?>
<!-- При декларуванні віджету код може міститись як на одному так і на багатьох рядках. -->
<?php $form = ActiveForm::begin([
'options' => ['id' => 'contact-message-form'],
'fieldConfig' => ['inputOptions' => ['class' => 'common-input']],
]); ?>
<!-- Тут зверніть увагу на відступи. -->
<?= $form->field($contactMessage, 'name')->textInput() ?>
<?= $form->field($contactMessage, 'email')->textInput() ?>
<?= $form->field($contactMessage, 'subject')->textInput() ?>
<?= $form->field($contactMessage, 'body')->textArea(['rows' => 6]) ?>
<div class="form-actions">
<?= Html::submitButton('Обробити', ['class' => 'common-button']) ?>
</div>
<!-- Виклик завершення віджету має окремий блок PHP. -->
<?php ActiveForm::end(); ?>
<!-- Кінцевий знак нового рядка є обовʼязковим. -->
```

1
docs/internals/translation-teams.md

@ -62,3 +62,4 @@ Ukrainian
- **Alexandr Bordun [@borales](https://github.com/Borales), admin@yiiframework.com.ua** - **Alexandr Bordun [@borales](https://github.com/Borales), admin@yiiframework.com.ua**
- Roman Bahatyi [@RichWeber](https://github.com/RichWeber), rbagatyi@gmail.com - Roman Bahatyi [@RichWeber](https://github.com/RichWeber), rbagatyi@gmail.com
- Igor Zozulinskyi [@3y3ik](https://github.com/3y3ik) - Igor Zozulinskyi [@3y3ik](https://github.com/3y3ik)
- Vadym Chenin [@vchenin](https://github.com/vchenin), vchenin@meta.ua

Loading…
Cancel
Save