1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-22 06:51:58 +02:00

uk: Cleaning up Ukrainian cloud-translate translations (day 1) (#1494)

uk: Cleaning up Ukrainian cloud-translate translations (day 1)

Signed-off-by: Andriy Redko <drreta@gmail.com>
This commit is contained in:
Andriy Redko 2023-11-30 09:27:42 -05:00 committed by GitHub
parent a73c830e45
commit dc92a2b9ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

305
po/uk.po
View File

@ -2129,7 +2129,7 @@ msgid ""
"`continue`."
msgstr ""
"Конструкції потоку керування: `if`, `if let`, `while`, `while let`, `break` "
"і `continue`."
"та `continue`."
#: src/welcome-day-1.md:12
msgid "Pattern matching: destructuring enums, structs, and arrays."
@ -2143,14 +2143,14 @@ msgstr "Нагадайте учням, що:"
msgid ""
"They should ask questions when they get them, don't save them to the end."
msgstr ""
"Вони повинні задавати питання, коли вони їх отримають, не зберігайте їх до "
"Вони повинні задавати питання, коли вони їх мають, а не зберігають їх до "
"кінця."
#: src/welcome-day-1.md:19
msgid ""
"The class is meant to be interactive and discussions are very much "
"encouraged!"
msgstr "Клас має бути інтерактивним, тому дискусії дуже заохочуються!"
msgstr "Клас має на меті бути інтерактивним, тому дискусії дуже заохочуються!"
#: src/welcome-day-1.md:20
msgid ""
@ -2161,10 +2161,10 @@ msgid ""
"communication."
msgstr ""
"Як інструктор, ви повинні намагатися підтримувати обговорення актуальними, "
"тобто підтримувати обговорення, пов’язані з тим, як Rust щось робить проти "
"іншої мови. Може бути важко знайти правильний баланс, але дозвольте "
"обговорення, оскільки вони залучають людей набагато більше, ніж одностороннє "
"спілкування."
"тобто підтримувати обговорення, пов’язані з тим, як Rust щось робить на "
"відміну від іншої мови. Може бути важко знайти правильний баланс, але "
"дозволяйте обговорення, оскільки вони залучають людей набагато більше, ніж "
"одностороннє спілкування."
#: src/welcome-day-1.md:24
msgid ""
@ -2180,7 +2180,7 @@ msgid ""
"you like."
msgstr ""
"Це цілком нормально! Повторення є важливою частиною навчання. Пам’ятайте, що "
"слайди є лише підтримкою, і ви можете пропускати їх, як забажаєте."
"слайди є лише підтримкою, і ви можете пропускати їх, якщо забажаєте."
#: src/welcome-day-1.md:29
msgid ""
@ -2221,7 +2221,7 @@ msgid ""
"Rust is a new programming language which had its [1.0 release in 2015]"
"(https://blog.rust-lang.org/2015/05/15/Rust-1.0.html):"
msgstr ""
"Rust — це нова мова програмування, яка випустила [1.0 у 2015 році](https://"
"Rust — це нова мова програмування, яка мала [1.0 випуск у 2015 році](https://"
"blog.rust-lang.org/2015/05/15/Rust-1.0.html):"
#: src/welcome-day-1/what-is-rust.md:5
@ -2231,7 +2231,7 @@ msgstr ""
#: src/welcome-day-1/what-is-rust.md:6
msgid "`rustc` uses LLVM as its backend."
msgstr "`rustc` використовує LLVM як серверну частину."
msgstr "`rustc` використовує LLVM як бекенд."
#: src/welcome-day-1/what-is-rust.md:7
msgid ""
@ -2267,15 +2267,15 @@ msgstr "мобільні телефони,"
#: src/welcome-day-1/what-is-rust.md:15
msgid "desktops,"
msgstr "робочі столи,"
msgstr "робочі станції,"
#: src/welcome-day-1/what-is-rust.md:16
msgid "servers."
msgstr "серверів."
msgstr "сервери."
#: src/welcome-day-1/what-is-rust.md:21
msgid "Rust fits in the same area as C++:"
msgstr "Rust відповідає тій самій області, що й C++:"
msgstr "Rust вписується в ту ж саму область, що й C++:"
#: src/welcome-day-1/what-is-rust.md:23
msgid "High flexibility."
@ -2288,7 +2288,8 @@ msgstr "Високий рівень контролю."
#: src/welcome-day-1/what-is-rust.md:25
msgid ""
"Can be scaled down to very constrained devices such as microcontrollers."
msgstr "Можна зменшити до дуже обмежених пристроїв, таких як мікроконтролери."
msgstr ""
"Може бути зменьшений до дуже обмежених пристроїв, таких як мікроконтролери."
#: src/welcome-day-1/what-is-rust.md:26
msgid "Has no runtime or garbage collection."
@ -2296,7 +2297,7 @@ msgstr "Не має часу виконання або збирання сміт
#: src/welcome-day-1/what-is-rust.md:27
msgid "Focuses on reliability and safety without sacrificing performance."
msgstr "Зосереджено на надійності та безпеці без шкоди для продуктивності."
msgstr "Зосереджений на надійності та безпеці без шкоди для продуктивності."
#: src/hello-world.md:3
msgid ""
@ -2316,7 +2317,7 @@ msgstr ""
#: src/hello-world.md:12
msgid "What you see:"
msgstr "Що ти бачиш:"
msgstr "Що ви бачите:"
#: src/hello-world.md:14
msgid "Functions are introduced with `fn`."
@ -2337,7 +2338,7 @@ msgstr "Rust має гігієнічні макроси, `println!` є прик
#: src/hello-world.md:18
msgid "Rust strings are UTF-8 encoded and can contain any Unicode character."
msgstr ""
"Рядки Rust мають кодування UTF-8 і можуть містити будь-які символи Unicode."
"Рядки в Rust мають кодування UTF-8 і можуть містити будь-які символи Unicode."
#: src/hello-world.md:22
msgid ""
@ -2347,15 +2348,15 @@ msgid ""
msgstr ""
"Цей слайд спрямований на те, щоб студенти звикли працювати з кодом Rust. "
"Вони побачать масу цього протягом наступних трьох днів, тож ми починаємо з "
"малого з чогось знайомого."
"чогось малого та знайомого."
#: src/hello-world.md:27
msgid ""
"Rust is very much like other languages in the C/C++/Java tradition. It is "
"imperative and it doesn't try to reinvent things unless absolutely necessary."
msgstr ""
"Rust дуже схожий на інші мови традиції C/C++/Java. Це обов’язково, і воно не "
"намагається винайти щось заново, якщо це не є абсолютно необхідним."
"Rust дуже схожий на інші традиціїні мови як C/C++/Java. Це навмисно, і він "
е намагається винайти щось заново, якщо це не є абсолютно необхідним."
#: src/hello-world.md:31
msgid "Rust is modern with full support for things like Unicode."
@ -2367,8 +2368,8 @@ msgid ""
"arguments (no function [overloading](basic-syntax/functions-interlude.md))."
msgstr ""
"Rust використовує макроси для ситуацій, коли потрібно мати змінну кількість "
"аргументів (немає функції [перевантаження](basic-syntax/functions-interlude."
"md))."
"аргументів (немає [перевантаження](basic-syntax/functions-interlude.md) "
"функцій)."
#: src/hello-world.md:36
msgid ""
@ -2377,7 +2378,7 @@ msgid ""
"hygienic](https://veykril.github.io/tlborm/decl-macros/minutiae/hygiene."
"html)."
msgstr ""
"Макроси є «гігієнічними» означає, що вони випадково не захоплюють "
"Макроси є «гігієнічними» що означає, що вони випадково не захоплюють "
"ідентифікатори з області, у якій вони використовуються. Макроси Rust "
"насправді лише [частково гігієнічні](https://veykril.github.io/tlborm/decl-"
"macros/minutiae/hygiene .html)."
@ -2389,7 +2390,7 @@ msgid ""
"while it is not a functional language, it includes a range of [functional "
"concepts](https://doc.rust-lang.org/book/ch13-00-functional-features.html)."
msgstr ""
"Іржа є мультипарадигмою. Наприклад, він має потужні [функції об’єктно-"
"Rust є мультипарадигмою. Наприклад, він має потужні [функції об’єктно-"
"орієнтованого програмування](https://doc.rust-lang.org/book/ch17-00-oop."
"html), і, хоча це не функціональна мова, він включає діапазон "
"[функціональних понять](https://doc.rust-lang.org/book/ch13-00-functional-"
@ -2425,7 +2426,7 @@ msgid ""
"different inputs."
msgstr ""
"Код реалізує гіпотезу Коллатца: вважається, що цикл завжди закінчується, але "
"це ще не доведено. Редагуйте код і грайте з різними введеннями."
"це ще не доведено. Редагуйте код та пограйте з різними введеннями."
#: src/hello-world/small-example.md:29
msgid ""
@ -2496,8 +2497,8 @@ msgid ""
"Make sure to ask the class which languages they have experience with. "
"Depending on the answer you can highlight different features of Rust:"
msgstr ""
"Обов’язково запитайте в класу, якими мовами вони мають досвід. Залежно від "
"відповіді ви можете виділити різні функції Rust:"
"Обов’язково запитайте клас, з якими мовами вони мають досвід. Залежно від "
"відповіді ви можете виділити різні особливості Rust:"
#: src/why-rust.md:14
msgid ""
@ -2521,13 +2522,13 @@ msgid ""
msgstr ""
"Досвід роботи з Java, Go, Python, JavaScript...: Ви отримуєте таку саму "
"безпеку пам’яті, що й у цих мовах, а також подібне відчуття мови високого "
"рівня. Крім того, ви отримуєте швидку та передбачувану продуктивність, як-от "
"C і C++ (без збирача сміття), а також доступ до апаратного забезпечення "
"низького рівня (якщо воно вам знадобиться)"
"рівня. Крім того, ви отримуєте швидку та передбачувану продуктивність як C і "
"C++ (без збиральника сміття), а також доступ низького рівня до апаратного "
"забезпечення (якщо воно вам знадобиться)"
#: src/why-rust/compile-time.md:3
msgid "Static memory management at compile time:"
msgstr "Керування статичною пам'яттю під час компіляції:"
msgstr "Cтатичне керування пам'яттю під час компіляції:"
#: src/why-rust/compile-time.md:5
msgid "No uninitialized variables."
@ -2535,7 +2536,7 @@ msgstr "Немає неініціалізованих змінних."
#: src/why-rust/compile-time.md:6
msgid "No memory leaks (_mostly_, see notes)."
msgstr "Немає витоків пам'яті (_переважно_, див. примітки)."
msgstr "Немає витоків пам'яті (_переважно_, дивитится примітки)."
#: src/why-rust/compile-time.md:7
msgid "No double-frees."
@ -2543,7 +2544,7 @@ msgstr "Ніяких подвійних звільнень."
#: src/why-rust/compile-time.md:8
msgid "No use-after-free."
msgstr "Без використання після безкоштовного використання."
msgstr "Немає використання після звільнення."
#: src/why-rust/compile-time.md:9
msgid "No `NULL` pointers."
@ -2573,8 +2574,8 @@ msgid ""
"initialized and runtime-sized static variables"
msgstr ""
"Ви можете використовувати [`Box::leak`](https://doc.rust-lang.org/std/boxed/"
"struct.Box.html#method.leak) для витоку покажчика. Це може бути використано "
"для отримання статичних змінних, ініціалізованих під час виконання та "
"struct.Box.html#method.leak) для витоку вказівника. Це може бути використано "
"для отримання статичних змінних, ініціалізованих під час виконання та з "
"розміром під час виконання"
#: src/why-rust/compile-time.md:21
@ -2600,7 +2601,7 @@ msgid ""
"In fact, some will consider infinitely populating a collection a memory leak "
"and Rust does not protect from those."
msgstr ""
"Фактично, дехто вважатиме нескінченне заповнення колекції витоком пам’яті, а "
"По факту, дехто вважатиме нескінченне заповнення колекції витоком пам’яті, і "
"Rust від цього не захищає."
#: src/why-rust/compile-time.md:28
@ -2608,8 +2609,8 @@ msgid ""
"For the purpose of this course, \"No memory leaks\" should be understood as "
"\"Pretty much no _accidental_ memory leaks\"."
msgstr ""
"Для цілей цього курсу «Немає витоків пам’яті» слід розуміти як «Практично "
"немає _випадкових_ витоків пам’яті»."
"Для цілей цього курсу «Немає витоків пам’яті» слід розуміти як «Майже ніяких "
"_випадкових_ витоків пам’яті»."
#: src/why-rust/runtime.md:3
msgid "No undefined behavior at runtime:"
@ -2621,7 +2622,8 @@ msgstr "Доступ до масиву перевірено на межі."
#: src/why-rust/runtime.md:6
msgid "Integer overflow is defined (panic or wrap-around)."
msgstr "Визначається цілочисельне переповнення (паніка або обертання)."
msgstr ""
"Поведінка цілочисельного переповнення визначена (паніка або обертання)."
#: src/why-rust/runtime.md:12
msgid ""
@ -2634,7 +2636,7 @@ msgid ""
msgstr ""
"Цілочисельне переповнення визначається за допомогою позначки [`overflow-"
"checks`](https://doc.rust-lang.org/rustc/codegen-options/index.html#overflow-"
"checks) під час компіляції. Якщо ввімкнути, програма виникне паніка "
"checks) під час компіляції. Якщо ввімкнене, програма буде панікувати "
"(контрольований збій програми), інакше ви отримаєте семантику обертання. За "
"замовчуванням ви отримуєте паніку в режимі налагодження (`cargo build`) і "
"обертання в режимі випуску (`cargo build --release`)."
@ -2646,10 +2648,10 @@ msgid ""
"call functions such as `slice::get_unchecked` which does not do bounds "
"checking."
msgstr ""
"Перевірку меж не можна вимкнути за допомогою позначки компілятора. Його "
"також не можна вимкнути безпосередньо за допомогою ключового слова `unsafe`. "
"Однак `unsafe` дозволяє викликати такі функції, як `slice::get_unchecked`, "
"яка не виконує перевірку меж."
"Перевірку меж не можна вимкнути за допомогою позначки компілятора. Ії також "
"не можна вимкнути безпосередньо за допомогою ключового слова `unsafe`. Однак "
"`unsafe` дозволяє викликати такі функції, як `slice::get_unchecked`, яка не "
"виконує перевірку меж."
#: src/why-rust/modern.md:3
msgid "Rust is built with all the experience gained in the last decades."
@ -2665,11 +2667,11 @@ msgstr "Переліки та зіставлення шаблонів."
#: src/why-rust/modern.md:8
msgid "Generics."
msgstr "Дженерики."
msgstr "Узагальнені типи."
#: src/why-rust/modern.md:9
msgid "No overhead FFI."
msgstr "Без накладних FFI."
msgstr "FFI без накладних витрат."
#: src/why-rust/modern.md:10
msgid "Zero-cost abstractions."
@ -2681,7 +2683,7 @@ msgstr "Інструменти"
#: src/why-rust/modern.md:14
msgid "Great compiler errors."
msgstr "Великі помилки компілятора."
msgstr "Чудово деталізовані помилки компілятора."
#: src/why-rust/modern.md:15
msgid "Built-in dependency manager."
@ -2693,7 +2695,7 @@ msgstr "Вбудована підтримка тестування."
#: src/why-rust/modern.md:17
msgid "Excellent Language Server Protocol support."
msgstr "Чудова підтримка протоколу мовного сервера."
msgstr "Чудова підтримка протоколу мовного сервера (LSP)."
#: src/why-rust/modern.md:23
msgid ""
@ -2702,11 +2704,11 @@ msgid ""
"writing a loop using `for` should result in roughly the same low level "
"instructions as using the `.iter().fold()` construct."
msgstr ""
"Абстракції з нульовою вартістю, подібні до C++, означають, що вам не "
"потрібно «платити» за конструкції програмування вищого рівня за допомогою "
"пам’яті чи процесора. Наприклад, написання циклу за допомогою `for` має "
"призвести до приблизно тих самих інструкцій низького рівня, що й "
"використання конструкції `.iter().fold()`."
"Абстракції без витрат, подібні до C++, означають, що вам не потрібно "
"«платити» за конструкції програмування вищого рівня за допомогою пам’яті чи "
"процесора. Наприклад, написання циклу за допомогою `for` має призвести до "
"приблизно тих самих інструкцій низького рівня, що й використання конструкції "
"`.iter().fold()`."
#: src/why-rust/modern.md:28
msgid ""
@ -2716,7 +2718,7 @@ msgid ""
msgstr ""
"Можливо, варто згадати, що переліки Rust — це «алгебраїчні типи даних», "
"також відомі як «типи сум», які дозволяють системі типів виражати такі речі, "
"як «Option<T>» і «Result<T, E>»."
"як «Option<T>» та «Result<T, E>»."
#: src/why-rust/modern.md:32
msgid ""
@ -2725,10 +2727,10 @@ msgid ""
"talkative than other compilers. It will often provide you with _actionable_ "
"feedback, ready to copy-paste into your code."
msgstr ""
"Нагадайте людям прочитати помилки --- багато розробників звикли ігнорувати "
"Нагадайте людям читати помилки --- багато розробників звикли ігнорувати "
"довгий вихід компілятора. Компілятор Rust значно балакучіший, ніж інші "
"компілятори. Він часто надає вам _дієві_ відгуки, готові скопіювати та "
"вставити у ваш код."
"компілятори. Він часто надає вам _дієві_ відгуки, готові до копіювання та "
"вставки у ваш код."
#: src/why-rust/modern.md:37
msgid ""
@ -2742,15 +2744,15 @@ msgstr ""
#: src/why-rust/modern.md:41
msgid "a random number generator, but see [rand](https://docs.rs/rand/)."
msgstr "генератор випадкових чисел, але див. [rand](https://docs.rs/rand/)."
msgstr "генератор випадкових чисел, але дивится [rand](https://docs.rs/rand/)."
#: src/why-rust/modern.md:42
msgid "support for SSL or TLS, but see [rusttls](https://docs.rs/rustls/)."
msgstr "підтримка SSL або TLS, але див. [rusttls](https://docs.rs/rustls/)."
msgstr "підтримка SSL або TLS, але дивится [rusttls](https://docs.rs/rustls/)."
#: src/why-rust/modern.md:43
msgid "support for JSON, but see [serde_json](https://docs.rs/serde_json/)."
msgstr "підтримка JSON, але див. [serde_json](https://docs.rs/serde_json/)."
msgstr "підтримка JSON, але дивится [serde_json](https://docs.rs/serde_json/)."
#: src/why-rust/modern.md:45
msgid ""
@ -2770,8 +2772,8 @@ msgid ""
"makes it trivial to download and compile third-party crates. A consequence "
"of this is that the standard library can be smaller."
msgstr ""
"Rust постачається з вбудованим менеджером пакунків у формі Cargo, і це "
"спрощує завантаження та компіляцію ящиків сторонніх розробників. Наслідком "
"Rust постачається з вбудованим менеджером пакетів у формі Cargo, і це "
"спрощує завантаження та компіляцію крейтів сторонніх розробників. Наслідком "
"цього є те, що стандартна бібліотека може бути меншою."
#: src/why-rust/modern.md:54
@ -2780,9 +2782,9 @@ msgid ""
"lib.rs/> help with this by letting you compare health metrics for crates to "
"find a good and trusted one."
msgstr ""
"Виявлення хороших ящиків сторонніх виробників може бути проблемою. Такі "
"Виявлення хороших крейтів сторонніх виробників може бути проблемою. Такі "
"сайти, як <https://lib.rs/>, допомагають у цьому, дозволяючи порівнювати "
"показники здоров’я ящиків, щоб знайти хороший і надійний."
"показники здоров’я крейтів, щоб знайти хороший і надійний."
#: src/why-rust/modern.md:58
msgid ""
@ -2790,7 +2792,7 @@ msgid ""
"implementation used in major IDEs and text editors."
msgstr ""
"[rust-analyzer](https://rust-analyzer.github.io/) — це добре підтримувана "
"реалізація LSP, яка використовується в основних IDE і текстових редакторах."
"реалізація LSP, яка використовується в основних IDEs і текстових редакторах."
#: src/basic-syntax.md:3
msgid "Much of the Rust syntax will be familiar to you from C, C++ or Java:"
@ -2810,7 +2812,7 @@ msgstr ""
#: src/basic-syntax.md:8
msgid "Keywords like `if` and `while` work the same."
msgstr "Такі ключові слова, як «якщо» та «поки» працюють однаково."
msgstr "Такі ключові слова, як `if` та `while` працюють також само."
#: src/basic-syntax.md:9
msgid "Variable assignment is done with `=`, comparison is done with `==`."
@ -2865,7 +2867,7 @@ msgstr "`3.14`, `-10.0e20`, `2_f32`"
#: src/basic-syntax/scalar-types.md:8
msgid "Strings"
msgstr "рядки"
msgstr "Рядки"
#: src/basic-syntax/scalar-types.md:8
msgid "`&str`"
@ -2909,7 +2911,7 @@ msgstr "`iN`, `uN` і `fN` мають ширину _N_ біт,"
#: src/basic-syntax/scalar-types.md:15
msgid "`isize` and `usize` are the width of a pointer,"
msgstr "`isize` і `usize` – це ширина покажчика,"
msgstr "`isize` і `usize` – це ширина вказівника,"
#: src/basic-syntax/scalar-types.md:16
msgid "`char` is 32 bits wide,"
@ -2929,8 +2931,8 @@ msgid ""
"`r\"\\n\" == \"\\\\n\"`. You can embed double-quotes by using an equal "
"amount of `#` on either side of the quotes:"
msgstr ""
"Необроблені рядки дозволяють створювати значення `&str` з вимкненими "
"екранами: `r\"\\n\" == \"\\\\n\"`. Ви можете вставити подвійні лапки, "
"Необроблені рядки дозволяють створювати значення `&str` з відключеним "
"екрануванням: `r\"\\n\" == \"\\\\n\"`. Ви можете вставити подвійні лапки, "
"використовуючи однакову кількість `#` з обох боків лапок:"
#: src/basic-syntax/scalar-types.md:27
@ -2963,7 +2965,7 @@ msgid ""
"`1_000` can be written as `1000` (or `10_00`), and `123_i64` can be written "
"as `123i64`."
msgstr ""
"Усі підкреслення в цифрах можна опускати, вони призначені лише для "
"Усі підкреслення у числах можна опускати, вони призначені лише для "
"розбірливості. Отже, `1_000` можна записати як `1000` (або `10_00`), а "
"`123_i64` можна записати як `123i64`."
@ -2993,7 +2995,7 @@ msgstr "`()`, `('x',)`, `('x', 1.2)`, ..."
#: src/basic-syntax/compound-types.md:8
msgid "Array assignment and access:"
msgstr "Призначення масиву та доступ:"
msgstr "Присвоєння масиву та доступ:"
#: src/basic-syntax/compound-types.md:10
msgid ""
@ -3032,10 +3034,14 @@ msgid ""
"its type_, which means that `[u8; 3]` and `[u8; 4]` are considered two "
"different types."
msgstr ""
"Значення типу масиву `[T; N]` містить `N` (константа часу компіляції) "
"елементів того самого типу `T`. Зверніть увагу, що довжина масиву є "
"_частиною його типу_, що означає, що `[u8; 3]` і `[u8; 4]` вважаються двома "
"різними типами."
#: src/basic-syntax/compound-types.md:38
msgid "We can use literals to assign values to arrays."
msgstr "Ми можемо використовувати літерали для призначення значень масивам."
msgstr "Ми можемо використовувати літерали для присвоєння значень масивам."
#: src/basic-syntax/compound-types.md:40
msgid ""
@ -3047,7 +3053,7 @@ msgstr ""
"У головній функції оператор print запитує реалізацію налагодження за "
"допомогою параметра формату `?`: `{}` дає вихід за замовчуванням, `{:?}` дає "
"вихід налагодження. Ми також могли використовувати `{a}` і `{a:?}` без "
"вказівки значення після рядка формату."
"вказівки значення після рядку формату."
#: src/basic-syntax/compound-types.md:45
msgid ""
@ -3074,7 +3080,7 @@ msgid ""
"Fields of a tuple can be accessed by the period and the index of the value, "
"e.g. `t.0`, `t.1`."
msgstr ""
"Доступ до полів кортежу можна отримати за крапкою та індексом значення, "
"Доступ до полів кортежу можна отримати після крапки з індексом значення, "
"наприклад. `t.0`, `t.1`."
#: src/basic-syntax/compound-types.md:55
@ -3084,17 +3090,17 @@ msgid ""
"value are expressed as `()`. It is used to indicate, for example, that a "
"function or expression has no return value, as we'll see in a future slide. "
msgstr ""
"Порожній кортеж `()` також відомий як \"тип одиниці\". Це і тип, і єдине "
"Порожній кортеж `()` також відомий як \"тип агрегату\". Це і тип, і єдине "
"дійсне значення цього типу, тобто і тип, і його значення виражаються як "
"`()`. Він використовується, наприклад, щоб вказати, що функція або вираз не "
"мають значення, що повертається, як ми побачимо на наступному слайді."
"мають значення що повертається, як ми побачимо на наступному слайді."
#: src/basic-syntax/compound-types.md:59
msgid ""
"You can think of it as `void` that can be familiar to you from other "
"programming languages."
msgstr ""
"Ви можете думати про це як про «пустоту», яка може бути знайома вам з інших "
"Ви можете думати про це як про `void`, який може бути знайомий вам з інших "
"мов програмування."
#: src/basic-syntax/references.md:3
@ -3122,8 +3128,8 @@ msgid ""
"We must dereference `ref_x` when assigning to it, similar to C and C++ "
"pointers."
msgstr ""
"Ми повинні розіменувати ref_x під час призначення, подібно до покажчиків C і "
"C++."
"Ми повинні розіменувати `ref_x` під час присвоєння, подібно до вказівників C "
"і C++."
#: src/basic-syntax/references.md:17
msgid ""
@ -3131,7 +3137,7 @@ msgid ""
"methods (try `ref_x.count_ones()`)."
msgstr ""
"У деяких випадках Rust виконує автоматичне розіменування, зокрема під час "
"виклику методів (спробуйте ref_x.count_ones())."
"виклику методів (спробуйте `ref_x.count_ones()`)."
#: src/basic-syntax/references.md:19
msgid ""
@ -3185,11 +3191,11 @@ msgstr ""
#: src/basic-syntax/references-dangling.md:19
msgid "We will talk more about borrowing when we get to ownership."
msgstr "Про запозичення ми поговоримо більше, коли дійдемо до власності."
msgstr "Про запозичення ми поговоримо більше, коли дійдемо до володіння."
#: src/basic-syntax/slices.md:3
msgid "A slice gives you a view into a larger collection:"
msgstr "Фрагмент дає змогу переглянути більшу колекцію:"
msgstr "Зріз дає змогу переглянути більшу колекцію:"
#: src/basic-syntax/slices.md:5
msgid ""
@ -3219,8 +3225,8 @@ msgid ""
"We create a slice by borrowing `a` and specifying the starting and ending "
"indexes in brackets."
msgstr ""
"Ми створюємо фрагмент, запозичуючи `a` та вказуючи початковий і кінцевий "
"індекси в дужках."
"Ми створюємо зріз, запозичуючи `a` та вказуючи початковий і кінцевий індекси "
"в дужках."
#: src/basic-syntax/slices.md:23
msgid ""
@ -3228,7 +3234,7 @@ msgid ""
"starting index, meaning that `&a[0..a.len()]` and `&a[..a.len()]` are "
"identical."
msgstr ""
"Якщо фрагмент починається з індексу 0, синтаксис діапазону Rust дозволяє нам "
"Якщо зріз починається з індексу 0, синтаксис діапазону Rust дозволяє нам "
"відкинути початковий індекс, тобто `&a[0..a.len()]` і `&a[..a.len()]` "
"ідентичні."
@ -3237,15 +3243,14 @@ msgid ""
"The same is true for the last index, so `&a[2..a.len()]` and `&a[2..]` are "
"identical."
msgstr ""
"Те саме стосується останнього індексу, тому `&a[2..a.len()]` і `&a[2..]` "
"Теж саме стосується останнього індексу, тому `&a[2..a.len()]` і `&a[2..]` "
"ідентичні."
#: src/basic-syntax/slices.md:27
msgid ""
"To easily create a slice of the full array, we can therefore use `&a[..]`."
msgstr ""
"Щоб легко створити фрагмент повного масиву, ми можемо використовувати "
"`&a[..]`."
"Щоб легко створити зріз повного масиву, ми можемо використовувати `&a[..]`."
#: src/basic-syntax/slices.md:29
msgid ""
@ -3253,7 +3258,7 @@ msgid ""
"(`&[i32]`) no longer mentions the array length. This allows us to perform "
"computation on slices of different sizes."
msgstr ""
"`s` є посиланням на фрагмент `i32`s. Зверніть увагу, що тип `s` (`&[i32]`) "
"`s` є посиланням на зріз `i32`s. Зверніть увагу, що тип `s` (`&[i32]`) "
"більше не згадує довжину масиву. Це дозволяє нам виконувати обчислення на "
"зрізах різного розміру."
@ -3262,9 +3267,9 @@ msgid ""
"Slices always borrow from another object. In this example, `a` has to remain "
"'alive' (in scope) for at least as long as our slice. "
msgstr ""
"Зрізи завжди запозичуються з іншого об'єкта. У цьому прикладі \"a\" має "
"залишатися \"живим\" (в області видимості) принаймні стільки ж, скільки наш "
"фрагмент."
"Зрізи завжди запозичуються з іншого об'єкта. У цьому прикладі `a` має "
"залишатися 'живим' (в області застосування) принаймні стільки ж, скільки наш "
"зріз."
#: src/basic-syntax/slices.md:33
msgid ""
@ -3278,9 +3283,9 @@ msgstr ""
"Питання про модифікацію `a[3]` може викликати цікаву дискусію, але відповідь "
"полягає в тому, що з міркувань безпеки пам’яті ви не можете зробити це через "
"`a` на цьому етапі виконання, але ви можете читати дані з обох `a ` і `s` "
"безпечно. Він працює до того, як ви створили фрагмент, і знову після "
"`println`, коли фрагмент більше не використовується. Докладніше буде описано "
"в розділі перевірки запозичень."
"безпечно. Це спрацьовує до того, як ви створили зріз, і знову після "
"`println`, коли зріз більше не використовується. Докладніше буде описано у "
"розділі перевірки запозичень."
#: src/basic-syntax/string-slices.md:1
msgid "`String` vs `str`"
@ -3314,7 +3319,7 @@ msgstr "Термінологія Rust:"
#: src/basic-syntax/string-slices.md:22
msgid "`&str` an immutable reference to a string slice."
msgstr "`&str` незмінне посилання на фрагмент рядка."
msgstr "`&str` незмінне посилання на зріз рядка."
#: src/basic-syntax/string-slices.md:23
msgid "`String` a mutable string buffer."
@ -3326,8 +3331,8 @@ msgid ""
"encoded string data stored in a block of memory. String literals "
"(`”Hello”`), are stored in the program’s binary."
msgstr ""
"`&str` представляє фрагмент рядка, який є незмінним посиланням на дані рядка "
"в кодуванні UTF-8, що зберігаються в блоці пам’яті. Рядкові літерали "
"`&str` представляє зріз рядка, який є незмінним посиланням на дані рядка в "
"кодуванні UTF-8, що зберігаються в блоці пам’яті. Рядкові літерали "
"(`”Hello”`) зберігаються у бінарному файлі програми."
#: src/basic-syntax/string-slices.md:30
@ -3335,8 +3340,8 @@ msgid ""
"Rust’s `String` type is a wrapper around a vector of bytes. As with a "
"`Vec<T>`, it is owned."
msgstr ""
"Тип `String` Rust — це оболонка навколо вектора байтів. Як і у випадку з "
"`Vec<T>`, він належить."
"Тип `String` в Rust — це оболонка навколо вектора байтів. Як і у випадку з "
"`Vec<T>`, він є власністю."
#: src/basic-syntax/string-slices.md:32
msgid ""
@ -3344,6 +3349,9 @@ msgid ""
"literal; `String::new()` creates a new empty string, to which string data "
"can be added using the `push()` and `push_str()` methods."
msgstr ""
"Як і багато інших типів, `String::from()` створює рядок із рядкового "
"літералу; `String::new()` створює новий порожній рядок, до якого дані рядка "
"можна додати за допомогою методів `push()` і `push_str()`."
#: src/basic-syntax/string-slices.md:35
msgid ""
@ -3359,7 +3367,8 @@ msgid ""
"You can borrow `&str` slices from `String` via `&` and optionally range "
"selection."
msgstr ""
"Ви можете запозичити фрагменти `&str` з `String` через `&` і вибір діапазону."
"Ви можете запозичити зріз `&str` з `String` через `&` і, за бажанням, вибіру "
"діапазону."
#: src/basic-syntax/string-slices.md:40
msgid ""
@ -3372,7 +3381,7 @@ msgstr ""
"той, який завжди вказує на дійсний рядок у пам’яті. Rust `String` — це "
"приблизний еквівалент `std::string` з C++ (головна відмінність: він може "
"містити лише байти в кодуванні UTF-8 і ніколи не використовуватиме "
"оптимізацію за малими рядками)."
"оптимізацію малих рядків)."
#: src/basic-syntax/functions.md:3
msgid ""
@ -3426,22 +3435,24 @@ msgid ""
"Declaration parameters are followed by a type (the reverse of some "
"programming languages), then a return type."
msgstr ""
"За параметрами оголошення слідує тип (зворотній зв’язок з деякими мовами "
"програмування), а потім тип повернення."
"Параметри оголошення супроводжуються типом (у зворотному порядку порівняно з "
"деякими мовами програмування), а потім тип повернення."
#: src/basic-syntax/functions.md:37
msgid ""
"The last expression in a function body (or any block) becomes the return "
"value. Simply omit the `;` at the end of the expression."
msgstr ""
"Останній вираз у тілі функції (або будь-якому блоці) стає значенням, що "
"повертається. Просто опустіть `;` в кінці виразу."
#: src/basic-syntax/functions.md:38
msgid ""
"Some functions have no return value, and return the 'unit type', `()`. The "
"compiler will infer this if the `-> ()` return type is omitted."
msgstr ""
"Деякі функції не мають значення, що повертається, і повертають «тип одиниці "
"вимірювання», `()`. Компілятор визначить це, якщо тип повернення `-> ()` "
"Деякі функції не мають значення, що повертається, і повертають 'тип "
"агрегату', `()`. Компілятор визначить це, якщо тип повернення `-> ()` "
"пропущено."
#: src/basic-syntax/functions.md:39
@ -3483,10 +3494,10 @@ msgid ""
"(https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html) tool. It is "
"idiomatic to document all public items in an API using this pattern."
msgstr ""
"Вміст розглядається як Markdown. Усі опубліковані ящики бібліотеки Rust "
"Вміст розглядається як Markdown. Усі опубліковані крейти бібліотеки Rust "
"автоматично документуються на [`docs.rs`](https://docs.rs) за допомогою "
"[rustdoc](https://doc.rust-lang.org/rustdoc/what-is-rustdoc) .html). "
"Ідіоматично документувати всі публічні елементи в API за допомогою цього "
"[rustdoc](https://doc.rust-lang.org/rustdoc/what-is-rustdoc.html). Це "
"ідіоматично документувати всі публічні елементи в API за допомогою цього "
"шаблону."
#: src/basic-syntax/rustdoc.md:24
@ -3494,8 +3505,8 @@ msgid ""
"Show students the generated docs for the `rand` crate at [`docs.rs/rand`]"
"(https://docs.rs/rand)."
msgstr ""
"Покажіть студентам згенеровані документи для ящика `rand` на [`docs.rs/rand`]"
"(https://docs.rs/rand)."
"Покажіть студентам згенеровані документи для крейта `rand` на [`docs.rs/"
"rand`](https://docs.rs/rand)."
#: src/basic-syntax/rustdoc.md:27
msgid ""
@ -3510,7 +3521,7 @@ msgid ""
"Inner doc comments are discussed later (in the page on modules) and need not "
"be addressed here."
msgstr ""
"Коментарі до внутрішнього документа обговорюються пізніше (на сторінці "
"Коментарі до внутрішніх документів обговорюються пізніше (на сторінці "
"модулів), і їх тут не потрібно розглядати."
#: src/basic-syntax/rustdoc.md:33
@ -3519,7 +3530,7 @@ msgid ""
"`cargo test`. We will discuss these tests in the [Testing section](../"
"testing/doc-tests.html)."
msgstr ""
"Коментарі Rustdoc можуть містити фрагменти коду, які ми можемо запускати та "
"Коментарі rustdoc можуть містити фрагменти коду, які ми можемо запускати та "
"тестувати за допомогою `cargo test`. Ми обговоримо ці тести в [розділі "
"тестування](../testing/doc-tests.html)."
@ -3528,8 +3539,8 @@ msgid ""
"Methods are functions associated with a type. The `self` argument of a "
"method is an instance of the type it is associated with:"
msgstr ""
"Методи — це функції, пов’язані з типом. Аргумент `self` методу є екземпляром "
"типу, з яким він пов’язаний:"
"Методи — це функції, які пов’язані з типом. Аргумент `self` методу є "
"екземпляром типу, з яким він пов’язаний:"
#: src/basic-syntax/methods.md:6
msgid ""
@ -3563,13 +3574,14 @@ msgid ""
"We will look much more at methods in today's exercise and in tomorrow's "
"class."
msgstr ""
"Ми розглянемо методи набагато більше в сьогоднішній вправі та на "
"Ми розглянемо методи набагато детальніше в сьогоднішній вправі та на "
"завтрашньому уроці."
#: src/basic-syntax/methods.md:34
msgid "Add a static method called `Rectangle::new` and call this from `main`:"
msgstr ""
"Додайте статичний метод під назвою `Rectangle::new` і викличте це з `main`:"
"Додайте статичний метод під назвою `Rectangle::new` і викличте його із "
"`main`:"
#: src/basic-syntax/methods.md:36
msgid ""
@ -3587,7 +3599,7 @@ msgid ""
"constructor, `Rectangle { width, height }`, could be called directly. See "
"the [Rustnomicon](https://doc.rust-lang.org/nomicon/constructors.html)."
msgstr ""
"Хоча _технічно_, Rust не має спеціальних конструкторів, для ініціалізації "
"Хоча _технічно_, Rust не має нестандартних конструкторів, для ініціалізації "
"структур зазвичай використовуються статичні методи (але це не обов’язково). "
"Фактичний конструктор, `Rectangle { width, height }`, можна викликати "
"безпосередньо. Перегляньте [Rustnomicon](https://doc.rust-lang.org/nomicon/"
@ -3599,7 +3611,7 @@ msgid ""
"static methods can take arbitrary parameters."
msgstr ""
"Додайте конструктор `Rectangle::square(width: u32)`, щоб проілюструвати, що "
"такі статичні методи можуть приймати довільні параметри."
"такі статичні методи можуть приймати будь-яки параметри."
#: src/basic-syntax/functions-interlude.md:1
msgid "Function Overloading"
@ -3635,7 +3647,7 @@ msgstr "Макроси іноді використовуються як альт
#: src/basic-syntax/functions-interlude.md:12
msgid "However, function parameters can be generic:"
msgstr "Однак параметри функції можуть бути загальними:"
msgstr "Однак параметри функції можуть бути узагальнені:"
#: src/basic-syntax/functions-interlude.md:14
msgid ""
@ -3657,9 +3669,9 @@ msgid ""
"limited polymorphism on argument types. We will see more details in a later "
"section."
msgstr ""
"При використанні дженериків стандартна бібліотека `Into<T>` може забезпечити "
"певний обмежений поліморфізм типів аргументів. Ми побачимо більше деталей у "
"наступному розділі."
"При використанні узагальнених типів, `Into<T>` зі стандартної бібліотеки "
"може забезпечити певний обмежений поліморфізм типів аргументів. Ми побачимо "
"більше деталей у наступному розділі."
#: src/exercises/day-1/morning.md:1
msgid "Day 1: Morning Exercises"
@ -3675,7 +3687,7 @@ msgstr "Неявні перетворення між типами."
#: src/exercises/day-1/morning.md:7
msgid "Arrays and `for` loops."
msgstr "Масиви та цикли for."
msgstr "Масиви та цикли `for`."
#: src/exercises/day-1/morning.md:11
msgid "A few things to consider while solving the exercises:"
@ -3694,7 +3706,7 @@ msgstr ""
#: src/exercises/day-1/morning.md:17
msgid "Alternatively, use the Rust Playground."
msgstr "Крім того, скористайтеся ігровим майданчиком Rust."
msgstr "Як варіант, скористайтеся Rust Playground."
#: src/exercises/day-1/morning.md:19
msgid ""
@ -3751,10 +3763,10 @@ msgid ""
msgstr ""
"Усі цілі типи Rust реалізують [`From<T>`](https://doc.rust-lang.org/std/"
"convert/trait.From.html) і [`Into<T>`](https: //doc.rust-lang.org/std/"
"convert/trait.Into.html), щоб ми могли конвертувати між ними. Характеристика "
"`From<T>` має єдиний метод `from()`, а ознака `Into<T>` має один метод "
"`into()`. Реалізація цих ознак є тим, як тип виражає, що його можна "
"перетворити на інший тип."
"convert/trait.Into.html) трейти, щоб ми могли конвертувати між ними. Трейт "
"`From<T>` має єдиний метод `from()`, а трейт `Into<T>` має один метод "
"`into()`. Реалізація цих трейтів є тим засобом, яким тип виражає, що його "
"можна перетворити на інший тип."
#: src/exercises/day-1/implicit-conversions.md:25
msgid ""
@ -3775,9 +3787,9 @@ msgid ""
"it is sufficient to only implement `From` to get a respective `Into` "
"implementation automatically."
msgstr ""
"Те саме стосується ваших власних реалізацій `From` для ваших власних типів, "
"тому достатньо реалізувати лише `From`, щоб автоматично отримати відповідну "
"реалізацію `Into`."
"Те саме стосується і ваших власних реалізацій `From` для ваших власних "
ипів, тому достатньо реалізувати лише `From`, щоб автоматично отримати "
"відповідну реалізацію `Into`."
#: src/exercises/day-1/implicit-conversions.md:33
msgid "Execute the above program and look at the compiler error."
@ -3786,7 +3798,8 @@ msgstr "Виконайте наведену вище програму та по
#: src/exercises/day-1/implicit-conversions.md:35
msgid "Update the code above to use `into()` to do the conversion."
msgstr ""
"Оновіть код вище, щоб використовувати `in()` для виконання перетворення."
"Оновіть код вище таким чином, щоб використовувати `into()` для виконання "
"перетворення."
#: src/exercises/day-1/implicit-conversions.md:37
msgid ""
@ -3798,18 +3811,18 @@ msgid ""
msgstr ""
"Змініть типи `x` і `y` на інші речі (наприклад, `f32`, `bool`, `i128`), щоб "
"побачити, які типи можна перетворити на інші типи. Спробуйте перетворити "
"малі типи на великі типи і навпаки. Перевірте [стандартну бібліотечну "
"документацію](https://doc.rust-lang.org/std/convert/trait.From.html), щоб "
"перевірити, чи реалізовано `From<T>` для пар, які ви перевіряєте."
"малі типи на великі типи і навпаки. Подивіться [документацію стандартної "
"бібліотеки](https://doc.rust-lang.org/std/convert/trait.From.html), щоб "
"перевірити, чи реалізовано `From<T>` для пар типів, які ви перевіряєте."
#: src/exercises/day-1/for-loops.md:1
#: src/exercises/day-1/solutions-morning.md:3
msgid "Arrays and `for` Loops"
msgstr "Масиви та цикли for"
msgstr "Масиви та цикли `for`"
#: src/exercises/day-1/for-loops.md:3
msgid "We saw that an array can be declared like this:"
msgstr "Ми побачили, що масив можна оголосити так:"
msgstr "Ми побачили, що масив можна декларувати так:"
#: src/exercises/day-1/for-loops.md:5
msgid ""
@ -3823,8 +3836,8 @@ msgid ""
"You can print such an array by asking for its debug representation with `{:?}"
"`:"
msgstr ""
"Ви можете надрукувати такий масив, запитавши його представлення налагодження "
"за допомогою `{:?}`:"
"Ви можете надрукувати такий масив, запитавши його налагоджувальне "
"представлення за допомогою `{:?}`:"
#: src/exercises/day-1/for-loops.md:11
msgid ""
@ -3892,7 +3905,7 @@ msgid ""
"Copy the code below to <https://play.rust-lang.org/> and implement the "
"functions:"
msgstr ""
"Скопіюйте наведений нижче код на <https://play.rust-lang.org/> і застосуйте "
"Скопіюйте наведений нижче код до <https://play.rust-lang.org/> та застосуйте "
"функції:"
#: src/exercises/day-1/for-loops.md:52
@ -3936,9 +3949,9 @@ msgid ""
"argument and return types? Something like `&[&[i32]]` for a two-dimensional "
"slice-of-slices. Why or why not?"
msgstr ""
"Чи можете ви використати фрагменти `&[i32]` замість жорстко закодованих "
"матриць 3 × 3 для ваших аргументів і типів повернення? Щось на зразок "
"`&[&[i32]]` для двовимірного фрагмента фрагментів. Чому або чому ні?"
"Чи можете ви використати зрізи `&[i32]` замість жорстко закодованих матриць "
"3 × 3 для ваших аргументів і типів повернення? Щось на зразок `&[&[i32]]` "
"для двовимірного зрізу зрізів. Чому так або чому ні?"
#: src/exercises/day-1/for-loops.md:87
msgid ""
@ -3946,7 +3959,7 @@ msgid ""
"implementation."
msgstr ""
"Перегляньте [`ndarray` ящик](https://docs.rs/ndarray/), щоб дізнатися про "
"якість виробництва."
"якісну реалізацію, ака готова до використання."
#: src/exercises/day-1/for-loops.md:92
msgid ""