This commit is contained in:
BlackCumin 2026-05-12 18:20:10 +00:00 committed by GitHub
commit 319a850533
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

278
docs/CONTRIBUTING-uk.md Normal file
View file

@ -0,0 +1,278 @@
*[Доступно на інших мовах](README.md#translations)*
<!----><a id="contributor-license-agreement"></a>
## Ліцензійна згода з користувачем
Беручи участь, ви погоджуєтеся з [ЛІЦЕНЗІЄЮ](../LICENSE) цього репозиторію.
<!----><a id="contributor-code-of-conduct"></a>
## Кодекс поведінки учасника
Беручи участь, ви погоджуєтеся дотримуватися [Кодексу поведінки](CODE_OF_CONDUCT-uk.md) цього репозиторію.
<!----><a id="in-a-nutshell"></a>
## У двох словах
1. «Посилання для легкого завантаження книги» не завжди є посиланням на *безкоштовну* книгу. Будь ласка, розміщуйте тільки безкоштовний контент. Переконайтеся, що це справді безкоштовно. Ми не приймаємо посилання на сторінки, для отримання книг з яких *потрібна* адреса електронної пошти на чинному домені. Однак ми вітаємо списки, які лише запитують її.
2. Вам не обов'язково знати Git: якщо ви знайшли щось цікаве, чого *ще немає в цьому репозиторії*, будь ласка, відкрийте [Issue](https://github.com/EbookFoundation/free-programming-books/issues) зі своїми пропозиціями.
- Якщо ви знайомі з Git, будь ласка, зробіть форк репозиторію і надішліть пулреквест (PR).
3. У нас є 6 видів списків. Оберіть відповідний:
- *Книги*: PDF, HTML, ePub, сайт на основі gitbook.io, репозиторій Git і т. п.
- *Курси*: курс - це навчальний матеріал, який не є книгою. [Це курс](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/).
- *Інтерактивні навчальні посібники*: інтерактивний веб-сайт, який дозволяє користувачу вводити код або команди й оцінювати результат (під «результатом» ми не маємо на увазі «оцінку»). Наприклад: [Спробуйте Haskell](http://tryhaskell.org), [Спробуйте GitHub](http://try.github.io).
- *Ігрові платформи*: це інтерактивні веб-сайти, ігри або настільні програми для вивчення програмування. Тут можна писати, компілювати (або запускати) і ділитися фрагментами коду. Часто на ігрових платформах є можливість створювати форки і експериментувати з кодом.
- *Подкасти і скринкасти*: подкасти і скринкасти.
- *Набори завдань та змагання з програмування*: веб-сайт або програма, які дозволяють вам оцінити свої навички програмування, вирішуючи прості або складні завдання, з перевіркою коду або без неї, з порівнянням результатів з результатами інших користувачів або без нього.
4. Обов'язково дотримуйтеся [посібника, наведеного нижче](#guidelines), і [форматування Markdown](#formatting) файлів.
5. GitHub Actions запустить тести, щоб переконатися, що ваші **списки відсортовані за абеткою** і **відповідають правилам форматування**. **Обов'язково перевірте**, щоб ваші зміни пройшли перевірку.
<!----><a id="guidelines"></a>
### Посібник
- Переконайтеся, що книга безкоштовна. За потреби перевірте ще раз. Адміністраторам допоможе, якщо ви опишете в PR, чому вважаєте, що книга безкоштовна.
- Ми не приймаємо файли, розміщені на Google Drive, Dropbox, Mega, Scribd, Issuu та інших подібних платформах для завантаження файлів.
- Вставляйте посилання в алфавітному порядку, як описано [нижче](#alphabetical-order).
- Використовуйте посилання з найбільш авторитетного джерела (тобто сайт автора кращий, ніж сайт редактора, який кращий, ніж сторонній сайт)
- не з файлових хостингів (зокрема, але не обмежуючись, посиланнями на Dropbox і Google Drive)
- завжди віддавайте перевагу посиланню `https` замість посилання `http`, якщо вони розміщені в одному домені й обслуговують той самий контент
- у кореневих доменах видаляйте скісну риску в кінці: `http://example.com` замість `http://example.com/`
- завжди віддавайте перевагу самому короткому посиланню: `http://example.com/dir/` краще, ніж `http://example.com/dir/index.html`
- уникайте сервісів скорочення посилань
- Зазвичай перевагу віддають посиланню на "актуальну" версію, а не на конкретну: `http://example.com/dir/book/current/` краще, ніж `http://example.com/dir/book/v1.0.0/index.html`
- Якщо посилання має протермінований сертифікат/самопідписаний сертифікат/SSL-сертифікат будь-якого іншого типу:
1. *замініть його* еквівалентом http, якщо це можливо (оскільки додавання винятків може бути утрудненим на мобільних пристроях).
2. *залиште його*, якщо версія http недоступна, але посилання все ще доступне через `https` шляхом додавання винятку в браузері або ігнорування попередження.
3. *видаліть його* в іншому випадку.
- Якщо посилання існує в декількох форматах, додайте окреме посилання з приміткою про кожний формат.
- Якщо ресурс існує в різних місцях в Інтернеті
- використовуйте посилання з найбільш авторитетним джерелом (це означає, що сайт автора краще, ніж сайт редактора, краще, ніж сторонній сайт)
- якщо вони посилаються на різні випуски і ви вважаєте, що ці випуски достатньо різні, щоб їх варто було зберігати, додайте окреме посилання з приміткою про кожний випуск (див. [Issue #2353](https://github.com/EbookFoundation/free-programming-books/issues/2353), щоб обговорити форматування).
- Віддавайте перевагу атомарним коммітам (по одному комміту на кожне додавання/видалення/модифікацію) більшим коммітам. Не потрібно збирати всі комміти в один перед тим, як відправити PR. (Ми ніколи не будемо наполягати на цьому, оскільки це просто питання зручності для супроводжуючих)
- Якщо книга старіша, вкажіть дату публікації в назві.
- Вкажіть ім'я автора або імена там, де це необхідно. Ви можете скоротити списки авторів за допомогою «`та ін.`» («`et al.`»).
- якщо книга не закінчена і робота над нею триває, додайте помітку «`в процесі`», як описано [нижче](#in_process).
- якщо ресурс відновлюється за допомогою [*Internet Archive's Wayback Machine*](https://web.archive.org) (або аналогічного сервісу), додайте помітку "`archived`", як описано [нижче](#archived). Найкраще використовувати свіжі й повні версії.
- якщо перед завантаженням запитують адресу електронної пошти або налаштування облікового запису, додайте в дужках примітку відповідною мовою, наприклад: `(адресу електронної пошти *запитують*, але вона не потрібна для завантаження)`.
<!----><a id="formatting"></a>
### Форматування
- Усі списки являють собою файли з розширенням `.md`. Спробуйте ознайомитися з синтаксисом [Markdown](https://guides.github.com/features/mastering-markdown/). Це легко!
- Усі списки починаються з індексу. Ідея полягає в тому, щоб перелічити й пов'язати там усі розділи та підрозділи. Зберігайте їх в алфавітному порядку.
- У розділах використовуються заголовки рівня 3 (`###`), а в підрозділах використовуються заголовки рівня 4 (`####`).
Ідея полягає в тому, щоб мати:
- `2` пусті рядки між останнім посиланням і новим розділом.
- `1` пустий рядок між заголовком і першим посиланням його розділу.
- `0` пустих рядків між двома посиланнями.
- `1` пустий рядок наприкінці кожного `.md` файла.
Приклад:
```text
[...]
* [Чудова книга](http://example.com/example.html)
(пустий рядок)
(пустий рядок)
### Приклад
(пустий рядок)
* [Інша чудова книга](http://example.com/book.html)
* [Ще одна чудова книга](http://example.com/other.html)
```
- Не вставляйте пробіл між `]` і `(`:
```text
ПОГАНО : * [Інша чудова книга] (http://example.com/book.html)
ДОБРЕ: * [Інша чудова книга](http://example.com/book.html)
```
- Якщо ви вказуєте автора, використовуйте ` - ` (тире, оточене одиночними пробілами):
```text
ПОГАНО : * [Інша чудова книга](http://example.com/book.html)- Джон Доу
ДОБРЕ: * [Інша чудова книга](http://example.com/book.html) - Джон Доу
```
- Відокремлюйте посилання та його формат пробілом:
```text
ПОГАНО : * [Дуже хороша книга](https://example.org/book.pdf)(PDF)
ДОБРЕ: * [Дуже хороша книга](https://example.org/book.pdf) (PDF)
```
- Спершу автор, потім формат:
```text
ПОГАНО : * [Дуже хороша книга](https://example.org/book.pdf)- (PDF) Джон Доу
ДОБРЕ: * [Дуже хороша книга](https://example.org/book.pdf) - Джон Доу (PDF)
```
- Декілька форматів:
```text
ПОГАНО : * [Інша чудова книга](http://example.com/)- Джон Доу (HTML)
ПОГАНО : * [Інша чудова книга](https://downloads.example.org/book.html)- Джон Доу (cайт для завантаження)
ДОБРЕ: * [Інша чудова книга](http://example.com/) - Джон Доу (HTML) [(PDF, EPUB)](https://downloads.example.org/book.html)
```
- Включіть рік публікації в заголовок для старих книг:
```text
ПОГАНО : * [Дуже хороша книга](https://example.org/book.html) - Джон Доу - 1970
ДОБРЕ: * [Дуже хороша книга (1970)](https://example.org/book.html) - Джон Доу
```
- <a id="in_process"></a>Незавершені книги:
```text
ДОБРЕ: * [Скоро буде чудова книга](http://example.com/book2.html) - Джон Доу (HTML) *( :construction: in process)*
```
- <a id="archived"></a>Архівовані посилання:
```text
ДОБРЕ: * [Цікава книга](https://web.archive.org/web/20211016123456/http://example.com/) - Джон Доу (HTML) *( :card_file_box: archived)*
```
### Алфавітний порядок
- Якщо є декілька назв, які починаються на одну і ту ж літеру, упорядкуйте їх (назви) по другій літері, і так далі. Наприклад: `aa` повинно розташовуватись перед `ab`.
- `one two` повинно розташовуватись перед `onetwo`
Якщо ви бачите неправильне посилання, то перевірте повідомлення лінтера про помилку, щоб знати, які рядки потрібно змінити місцями.
<!----><a id="notes"></a>
### Примітки
Хоч основи відносно прості, перераховані нами ресурси дуже різноманітні. Ось декілька зауважень про те, як ми справляємося з таким різноманіттям.
<!----><a id="metadata"></a>
#### Метадані
Наші списки надають мінімальний набір метаданих: заголовки, URL-адреси, творців, платформи і примітки до доступу.
<!----><a id="titles"></a>
##### Заголовки
- Жодних вигаданих назв. Ми намагаємося брати назви з самих ресурсів; закликаємо авторів пулреквестів не вигадувати заголовки і не використовувати їх у редакційних цілях, якщо цього можна уникнути. Виняток становлять старіші роботи; якщо вони становлять насамперед історичний інтерес, рік у дужках, доданий до назви, допомагає користувачам зрозуміти, чи будуть вони їм цікавими.
- Уникайте заголовків ПОВНІСТЮ ВЕЛИКИМИ ЛІТЕРАМИ. Зазвичай доречний звичайний регістр заголовка, але в разі сумнівів використовуйте великі літери з джерела.
- Не використовуйте емодзі (смайлики).
<!----><a id="urls"></a>
##### URL-адреси
- Ми не дозволяємо скорочені URL-адреси.
- Коди відстежування повинні бути видалені з URL.
- Міжнародні URL-адреси повинні бути екрановані. Адресна панель браузера зазвичай відображає їх у Unicode, але, будь ласка, використовуйте копіювання і вставлення.
- Безпечні (`https`) URL-адреси завжди кращі за небезпечні (`http`) URL-адреси, якщо для ресурсу доступний HTTPS.
- Нам не подобаються URL-адреси, які ведуть на сторінки з посиланням на інше місце замість самого ресурсу.
<!----><a id="creators"></a>
##### Творці
- Хочемо подякувати творцям безкоштовних ресурсів, де це можливо, зокрема й перекладачам!
- Для перекладених робіт слід вказати оригінального автора. Ми рекомендуємо використовувати [MARC relators](https://loc.gov/marc/relators/relaterm.html), щоб зазначати інших творців, крім авторів, як у цьому прикладі:
```markdown
* [A Translated Book](http://example.com/book-uk.html) - John Doe, `trl.:` Mike The Translator
```
тут скорочення `trl.:` використовується як MARC relator code для слова "translator" ("перекладач").
- Використовуйте коми `,` для розмежування кожного елемента в списку авторів.
- Ви можете скорочувати списки авторів за допомогою "`et al.`".
- Ми не дозволяємо посилання на авторів.
- Для підбірок і змішаних видань «творцю» може знадобитися опис. Наприклад, книги «GoalKicker» або «RIP Tutorial» вважаються «`Скомпільованими з документації StackOverflow`» (англійською: «`Compiled from StackOverflow documentation`»).
<!----><a id="platforms-and-access-notes"></a>
##### Платформи і примітки до доступу
- Курси. Платформа є важливою частиною опису ресурсів, особливо для наших списків курсів. Це пов'язано з тим, що платформи курсів мають різні можливості й моделі доступу. Хоча ми зазвичай не перелічуємо книги, які вимагають реєстрації, на багатьох платформах курсів є можливості, які не працюють без будь-якого облікового запису. Наприклад, як на Coursera, EdX, Udacity і Udemy. Якщо курс залежить від платформи, назва платформи повинна бути вказана в дужках.
- YouTube. У нас є багато курсів, що складаються з плейлистів YouTube. Ми не вказуємо YouTube як платформу; натомість намагаємося вказати автора на YouTube, який часто є підплатформою.
- YouTube-відео. Зазвичай ми не посилаємося на окремі відео YouTube, якщо вони не тривають більше години або не структуровані як курс чи навчальний посібник.
- Leanpub. Leanpub розміщує книги з різними моделями доступу. Інколи книгу можна прочитати без реєстрації; інколи для безкоштовного доступу до книги потрібен обліковий запис Leanpub. Враховуючи якість книг, а також поєднання та гнучкість моделей доступу на Leanpub, ми дозволяємо перелічувати такі ресурси з приміткою про доступ `*(потрібен обліковий запис Leanpub або чинна адреса електронної пошти)*`.
<!----><a id="genres"></a>
#### Жанри
Перше правило при прийнятті рішення, до якого списку належить ресурс, — це проглянути, як ресурс описує себе. Якщо він називає себе книгою, то, можливо, це книга.
<!----><a id="genres-we-dont-list"></a>
##### Жанри, які ми не вносимо до списків
Оскільки Інтернет величезний, ми не включаємо в наші списки:
- блоги
- Повідомлення в блогі
- статті
- веб-сайти (за винятком тих, що містять БАГАТО елементів, які ми перелічуємо).
- відео, які не є курсами або скринкастами.
- глави книги
- ознайомлювальні зразки з книг
- IRC або Telegram канали
- Slacks або списки розсилки
У наших списках змагань з програмування ці винятки не такі суворі. Обсяг репозиторію визначається спільнотою; якщо ви хочете запропонувати зміни або доповнення до сфери охоплення, будь ласка, використовуйте Issue, щоб зробити пропозицію.
<!----><a id="books-vs-other-stuff"></a>
##### Книги проти інших ресурсів
Ми не надто вибагливі щодо "книжності" ресурсу. Ось деякі атрибути, які вказують на те, що ресурс — це книга:
- має ISBN (міжнародний стандартний книжний номер)
- має Зміст
- пропонується завантажувальна версія, особливо ePub
- є редакції
- не залежить від інтерактивного контенту або відео
- намагається всебічно висвітлити тему
- він самодостатній
Ми перелічуємо безліч книг, у яких немає цих атрибутів; це може залежати від контексту.
<!----><a id="books-vs-courses"></a>
##### Книги проти курсів
Інколи їх буває важко відрізнити!
З курсами часто пов'язані підручники, які ми перераховуємо в наших списках книг. В курсах є лекції, вправи, тести, замітки або інші дидактичні посібники. Окрема лекція або відео - це не курс. PowerPoint - це не курс.
<!----><a id="interactive-tutorials-vs-other-stuff"></a>
##### Інтерактивні підручники і інші матеріали
Якщо ви можете роздрукувати його і зберегти його сенс, це не інтерактивний підручник.
<!----><a id="automation"></a>
### Автоматизація
- Застосування правил форматування автоматизовано за допомогою [GitHub Actions](https://github.com/features/actions) з використанням [fpb-lint](https://github.com/vhf/free-programming-books-lint) (див. [`.github/workflows/fpb-lint.yml`](../.github/workflows/fpb-lint.yml))
- Для перевірки URL використовується [awesome_bot](https://github.com/dkhamsing/awesome_bot)
- Щоб запустити перевірку URL, зробіть коміт, повідомлення якого містить `check_urls=посилання_для_перевірки`:
```properties
check_urls=free-programming-books.md free-programming-books-uk.md
```
- Ви можете вказати більше одного файла для перевірки, використовуючи один пробіл для розділення кожного запису.
- Якщо ви вкажете більше одного файла, результати збірки будуть засновані на результаті останнього перевіреного файла. Через це ви можете отримати зелену збірку, тому обов'язково перевірте журнал збірки в кінці пулреквеста, натиснувши "Show all checks" -> "Details".