diff --git a/po/uk.po b/po/uk.po index a1608c7eb030..e090299e01c3 100644 --- a/po/uk.po +++ b/po/uk.po @@ -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» і «Result»." +"як «Option» та «Result»." #: 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 "" -"Виявлення хороших ящиків сторонніх виробників може бути проблемою. Такі " +"Виявлення хороших крейтів сторонніх виробників може бути проблемою. Такі " "сайти, як , допомагають у цьому, дозволяючи порівнювати " -"показники здоров’я ящиків, щоб знайти хороший і надійний." +"показники здоров’я крейтів, щоб знайти хороший і надійний." #: 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`, it is owned." msgstr "" -"Тип `String` Rust — це оболонка навколо вектора байтів. Як і у випадку з " -"`Vec`, він належить." +"Тип `String` в Rust — це оболонка навколо вектора байтів. Як і у випадку з " +"`Vec`, він є власністю." #: 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` може забезпечити " -"певний обмежений поліморфізм типів аргументів. Ми побачимо більше деталей у " -"наступному розділі." +"При використанні узагальнених типів, `Into` зі стандартної бібліотеки " +"може забезпечити певний обмежений поліморфізм типів аргументів. Ми побачимо " +"більше деталей у наступному розділі." #: 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`](https://doc.rust-lang.org/std/" "convert/trait.From.html) і [`Into`](https: //doc.rust-lang.org/std/" -"convert/trait.Into.html), щоб ми могли конвертувати між ними. Характеристика " -"`From` має єдиний метод `from()`, а ознака `Into` має один метод " -"`into()`. Реалізація цих ознак є тим, як тип виражає, що його можна " -"перетворити на інший тип." +"convert/trait.Into.html) трейти, щоб ми могли конвертувати між ними. Трейт " +"`From` має єдиний метод `from()`, а трейт `Into` має один метод " +"`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` для пар, які ви перевіряєте." +"малі типи на великі типи і навпаки. Подивіться [документацію стандартної " +"бібліотеки](https://doc.rust-lang.org/std/convert/trait.From.html), щоб " +"перевірити, чи реалізовано `From` для пар типів, які ви перевіряєте." #: 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 and implement the " "functions:" msgstr "" -"Скопіюйте наведений нижче код на і застосуйте " +"Скопіюйте наведений нижче код до та застосуйте " "функції:" #: 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 ""