mirror of
https://github.com/EbookFoundation/free-programming-books.git
synced 2026-05-13 08:26:44 +00:00
Merge aea900a243 into de31d56c6c
This commit is contained in:
commit
319a850533
1 changed files with 278 additions and 0 deletions
278
docs/CONTRIBUTING-uk.md
Normal file
278
docs/CONTRIBUTING-uk.md
Normal 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".
|
||||
Loading…
Add table
Add a link
Reference in a new issue