diff --git a/po/uk.po b/po/uk.po index 09cb1f1eb435..e9f89b969352 100644 --- a/po/uk.po +++ b/po/uk.po @@ -2230,26 +2230,25 @@ msgstr "" "структури, посилання, функції та методи." #: src\welcome-day-1.md:8 -#, fuzzy msgid "Types and type inference." -msgstr "Виведення типів" +msgstr "Типи та виведення типів." #: src\welcome-day-1.md:9 msgid "Control flow constructs: loops, conditionals, and so on." -msgstr "" +msgstr "Конструкції потоку управління: цикли, умовні переходи і так далі." #: src\welcome-day-1.md:10 msgid "User-defined types: structs and enums." -msgstr "" +msgstr "Типи, визначені користувачем: структури та переліки." #: src\welcome-day-1.md:11 msgid "Pattern matching: destructuring enums, structs, and arrays." -msgstr "Зіставлення шаблонів: деструктурування переліків, структур і масивів." +msgstr "Зіставлення шаблонів: деструктуризація переліків, структур і масивів." #: src\welcome-day-1.md:13 src\welcome-day-2.md:12 src\welcome-day-3.md:8 #: src\welcome-day-4.md:11 msgid "Schedule" -msgstr "" +msgstr "Розклад" #: src\welcome-day-1.md:15 src\welcome-day-1-afternoon.md:3 #: src\welcome-day-2.md:14 src\welcome-day-2-afternoon.md:3 @@ -2260,13 +2259,13 @@ msgstr "" #: src\welcome-day-1.md:19 msgid "Please remind the students that:" -msgstr "Нагадайте учням, що:" +msgstr "Будь ласка, нагадайте учням, що:" #: src\welcome-day-1.md:21 msgid "" "They should ask questions when they get them, don't save them to the end." msgstr "" -"Вони повинні задавати питання, коли вони їх мають, а не зберігають їх до " +"Вони повинні задавати питання, коли вони їх мають, а не зберігати їх до " "кінця." #: src\welcome-day-1.md:22 @@ -2276,7 +2275,6 @@ msgid "" msgstr "Клас має на меті бути інтерактивним, тому дискусії дуже заохочуються!" #: src\welcome-day-1.md:23 -#, fuzzy msgid "" "As an instructor, you should try to keep the discussions relevant, i.e., " "keep the discussions related to how Rust does things vs some other language. " @@ -2285,16 +2283,16 @@ msgid "" msgstr "" "Як інструктор, ви повинні намагатися підтримувати обговорення актуальними, " "тобто підтримувати обговорення, пов’язані з тим, як Rust щось робить на " -"відміну від іншої мови. Може бути важко знайти правильний баланс, але " -"дозволяйте обговорення, оскільки вони залучають людей набагато більше, ніж " +"відміну від іншої мови. Буває важко знайти правильний баланс, але краще " +"дозволити дискусії, оскільки вони залучають людей набагато більше, ніж " "одностороннє спілкування." #: src\welcome-day-1.md:27 msgid "" "The questions will likely mean that we talk about things ahead of the slides." msgstr "" -"Запитання, швидше за все, означатимуть, що ми обговорюємо речі напередодні " -"слайдів." +"Запитання, швидше за все, означатимуть, що ми обговорюємо речі, які " +"випереджають слайди." #: src\welcome-day-1.md:28 msgid "" @@ -2311,6 +2309,9 @@ msgid "" "should have immediate parallels in other languages. The more advanced parts " "of Rust come on the subsequent days." msgstr "" +"Ідея першого дня полягає в тому, щоб показати \"базові\" речі в Rust, які " +"повинні мати безпосередні паралелі в інших мовах. Більш просунуті частини " +"Rust будуть розглянуті в наступні дні." #: src\welcome-day-1.md:36 msgid "" @@ -2320,6 +2321,11 @@ msgid "" "The times listed here are a suggestion in order to keep the course on " "schedule. Feel free to be flexible and adjust as necessary!" msgstr "" +"Якщо ви викладаєте цей курс у класі, це гарний момент, щоб ознайомитися з " +"розкладом. Зверніть увагу, що в кінці кожного сегмента є вправа, після якої " +"слідує перерва. Плануйте розглянути рішення вправи після перерви. Час, " +"вказаний тут, є рекомендацією для того, щоб тримати курс за розкладом. Не " +"соромтеся бути гнучкими і вносити корективи за потреби!" #: src\hello-world.md:3 src\types-and-values.md:3 src\control-flow-basics.md:3 #: src\tuples-and-arrays.md:3 src\references.md:3 src\user-defined-types.md:3 @@ -2423,7 +2429,7 @@ msgstr "" #: src\hello-world/hello-world.md:8 msgid "\"Hello 🌍!\"" -msgstr "" +msgstr "\"Привіт 🌍!\"" #: src\hello-world/hello-world.md:12 msgid "What you see:" @@ -2451,15 +2457,14 @@ msgstr "" "Рядки в Rust мають кодування UTF-8 і можуть містити будь-які символи Unicode." #: src\hello-world/hello-world.md:22 -#, fuzzy msgid "" "This slide tries to make the students comfortable with Rust code. They will " "see a ton of it over the next four days so we start small with something " "familiar." msgstr "" "Цей слайд спрямований на те, щоб студенти звикли працювати з кодом Rust. " -"Вони побачать масу цього протягом наступних трьох днів, тож ми починаємо з " -"чогось малого та знайомого." +"Вони побачать масу цього протягом наступних чотирьох днів, тож ми починаємо " +"з чогось малого та знайомого." #: src\hello-world/hello-world.md:27 msgid "" @@ -2516,6 +2521,8 @@ msgid "" "_Compile time memory safety_ - whole classes of memory bugs are prevented at " "compile time" msgstr "" +"_Безпека пам'яті під час компіляції_ - цілі класи помилок пам'яті " +"запобігаються на етапі компіляції" #: src\hello-world/benefits.md:6 msgid "No uninitialized variables." @@ -2550,6 +2557,8 @@ msgid "" "_No undefined runtime behavior_ - what a Rust statement does is never left " "unspecified" msgstr "" +"_Ніякої невизначеної поведінки під час виконання_ - те, що робить оператор " +"Rust, ніколи не залишається невизначеним" #: src\hello-world/benefits.md:16 msgid "Array access is bounds checked." @@ -2565,6 +2574,8 @@ msgid "" "_Modern language features_ - as expressive and ergonomic as higher-level " "languages" msgstr "" +"_Можливості сучасної мови_ - така ж виразна та ергономічна, як і мови вищих " +"рівнів" #: src\hello-world/benefits.md:21 msgid "Enums and pattern matching." @@ -2603,6 +2614,8 @@ msgid "" "Do not spend much time here. All of these points will be covered in more " "depth later." msgstr "" +"Не витрачайте тут багато часу. Всі ці пункти будуть розглянуті більш " +"детально пізніше." #: src\hello-world/benefits.md:35 msgid "" @@ -2645,12 +2658,18 @@ msgid "" "this course. Try running the \"hello-world\" program it starts with. It " "comes with a few handy features:" msgstr "" +"[Rust Playground](https://play.rust-lang.org/) надає простий спосіб " +"виконання коротких Rust-програм і є основою для прикладів і вправ у цьому " +"курсі. Спробуйте запустити програму \"hello-world\", з якої він " +"починається. Вона має декілька зручних можливостей:" #: src\hello-world/playground.md:8 msgid "" "Under \"Tools\", use the `rustfmt` option to format your code in the " "\"standard\" way." msgstr "" +"У розділі \"Інструменти\" скористайтеся опцією `rustfmt` для форматування " +"вашого коду у \"стандартний\" спосіб." #: src\hello-world/playground.md:11 msgid "" @@ -2658,12 +2677,18 @@ msgid "" "checks, less optimization) and Release (fewer runtime checks, lots of " "optimization). These are accessible under \"Debug\" at the top." msgstr "" +"Rust має два основних \"профілі\" для генерації коду: Налагодження " +"(додаткові перевірки під час виконання, менше оптимізації) та Випуску (менше " +"перевірок під час виконання, багато оптимізацій). Вони доступні у розділі " +"\"Налагодження\" у верхній частині вікна." #: src\hello-world/playground.md:15 msgid "" "If you're interested, use \"ASM\" under \"...\" to see the generated " "assembly code." msgstr "" +"Якщо вам цікаво, скористайтеся командою \"ASM\" в \"...\", щоб переглянути " +"згенерований асемблерний код." #: src\hello-world/playground.md:20 msgid "" @@ -2673,33 +2698,40 @@ msgid "" "students who want to know more about Rust's optimzations or generated " "assembly." msgstr "" +"Коли студенти підуть на перерву, заохотьте їх відкрити майданчик і трохи " +"поекспериментувати. Заохочуйте їх залишати вкладку відкритою і пробувати " +"щось протягом решти курсу. Це особливо корисно для досвідчених студентів, " +"які хочуть дізнатися більше про оптимізацію Rust або згенеровану збірку." #: src\types-and-values/variables.md:3 -#, fuzzy msgid "" "Rust provides type safety via static typing. Variable bindings are made with " "`let`:" msgstr "" "Rust забезпечує безпеку типів за допомогою статичної типізації. Прив'язки " -"змінних незмінні за замовчуванням:" +"змінних створюються за допомогою `let`:" #: src\types-and-values/variables.md:9 src\control-flow-basics/loops.md:29 #: src\control-flow-basics/break-continue.md:33 #: src\control-flow-basics/blocks-and-scopes.md:17 msgid "\"x: {x}\"" -msgstr "" +msgstr "\"x: {x}\"" #: src\types-and-values/variables.md:10 msgid "" "// x = 20;\n" " // println!(\"x: {x}\");\n" msgstr "" +"// x = 20;\n" +" // println!(\"x: {x}\");\n" #: src\types-and-values/variables.md:17 msgid "" "Uncomment the `x = 20` to demonstrate that variables are immutable by " "default. Add the `mut` keyword to allow changes." msgstr "" +"Відкоментуйте `x = 20`, щоб продемонструвати, що змінні за замовчуванням є " +"незмінними. Додайте ключове слово `mut`, щоб дозволити зміну." #: src\types-and-values/variables.md:20 msgid "" @@ -2707,12 +2739,17 @@ msgid "" "time, but type inference (covered later) allows the programmer to omit it in " "many cases." msgstr "" +"Тут `i32` - це тип змінної. Він має бути відомий під час компіляції, але " +"виведення типів (розглядається пізніше) дозволяє програмісту у багатьох " +"випадках не вказувати його." #: src\types-and-values/values.md:3 msgid "" "Here are some basic built-in types, and the syntax for literal values of " "each type." msgstr "" +"Нижче наведено деякі основні вбудовані типи та синтаксис для літеральних " +"значень кожного типу." #: src\types-and-values/values.md:5 #: src\tuples-and-arrays/tuples-and-arrays.md:7 src\unsafe-rust/exercise.md:16 @@ -2734,7 +2771,7 @@ msgstr "`i8`, `i16`, `i32`, `i64`, `i128`, `isize`" #: src\types-and-values/values.md:7 msgid "`-10`, `0`, `1_000`, `123_i64`" -msgstr "\"-10\", \"0\", \"1_000\", \"123_i64\"" +msgstr "`-10`, `0`, `1_000`, `123_i64`" #: src\types-and-values/values.md:8 msgid "Unsigned integers" @@ -2820,7 +2857,7 @@ msgstr "" #: src\types-and-values/arithmetic.md:9 msgid "\"result: {}\"" -msgstr "" +msgstr "\"результат: {}\"" #: src\types-and-values/arithmetic.md:15 msgid "" @@ -2828,10 +2865,13 @@ msgid "" "meaning should be clear: it takes three integers, and returns an integer. " "Functions will be covered in more detail later." msgstr "" +"Це перший раз, коли ми бачимо функцію, відмінну від `main`, але її значення " +"повинно бути зрозумілим: вона отримує три цілих числа і повертає ціле число. " +"Функції буде розглянуто більш детально пізніше." #: src\types-and-values/arithmetic.md:19 msgid "Arithmetic is very similar to other languages, with similar precedence." -msgstr "" +msgstr "Арифметика дуже схожа на інші мови, зі схожими пріоритетами." #: src\types-and-values/arithmetic.md:21 msgid "" @@ -2839,6 +2879,9 @@ msgid "" "actually undefined, and might do different things on different platforms or " "compilers. In Rust, it's defined." msgstr "" +"Як бути з переповненням цілих чисел? У мовах C та C++ переповнення цілих " +"чисел _зі знаком_ фактично не визначено, і на різних платформах та " +"компіляторах воно може поводитися по-різному. У Rust воно визначене." #: src\types-and-values/arithmetic.md:25 msgid "" @@ -2848,67 +2891,84 @@ msgid "" "with method syntax, e.g., `(a * b).saturating_add(b * c).saturating_add(c * " "a)`." msgstr "" +"Замініть `i32` на `i16`, щоб побачити цілочисельне переповнення, яке панікує " +"(перевіряється) у налагоджувальній збірці і загортається у релізній збірці. " +"Існують і інші варіанти, такі як переповнення, перенасичення і перенесення. " +"Доступ до них здійснюється за допомогою синтаксису методу, наприклад, `(a * " +"b).saturating_add(b * c).saturating_add(c * a)`." #: src\types-and-values/arithmetic.md:30 msgid "" "In fact, the compiler will detect overflow of constant expressions, which is " "why the example requires a separate function." msgstr "" +"Насправді, компілятор виявить переповнення константних виразів, тому приклад " +"вимагає окремої функції." #: src\types-and-values/strings.md:3 msgid "" "Rust has two types to represent strings, both of which will be covered in " "more depth later. Both _always_ store UTF-8 encoded strings." msgstr "" +"Rust має два типи для представлення рядків, обидва з яких будуть розглянуті " +"більш детально пізніше. Обидва типи _завжди_ зберігають рядки у кодуванні " +"UTF-8." #: src\types-and-values/strings.md:6 #, fuzzy msgid "`String` - a modifiable, owned string." -msgstr "`String` змінний буфер рядка." +msgstr "`String` - змінюваний рядок, що належить власнику." #: src\types-and-values/strings.md:7 msgid "`&str` - a read-only string. String literals have this type." msgstr "" +"`&str` - рядок, доступний тільки для читання. Цей тип мають рядкові літерали." #: src\types-and-values/strings.md:11 msgid "\"Greetings\"" -msgstr "" +msgstr "\"Привітання\"" #: src\types-and-values/strings.md:12 msgid "\"🪐\"" -msgstr "" +msgstr "\"🪐\"" #: src\types-and-values/strings.md:15 msgid "\", \"" -msgstr "" +msgstr "\", \"" #: src\types-and-values/strings.md:17 msgid "\"final sentence: {}\"" -msgstr "" +msgstr "\"останнє речення: {}\"" #: src\types-and-values/strings.md:18 src\async/control-flow/join.md:30 msgid "\"{:?}\"" -msgstr "" +msgstr "\"{:?}\"" #: src\types-and-values/strings.md:19 msgid "//println!(\"{:?}\", &sentence[12..13]);\n" -msgstr "" +msgstr "//println!(\"{:?}\", &sentence[12..13]);\n" #: src\types-and-values/strings.md:25 msgid "" "This slide introduces strings. Everything here will be covered in more depth " "later, but this is enough for subsequent slides and exercises to use strings." msgstr "" +"Цей слайд знайомить зі рядками. Пізніше ми розглянемо все більш детально, " +"але цього достатньо для наступних слайдів і вправ з використанням рядків." #: src\types-and-values/strings.md:28 msgid "Invalid UTF-8 in a string is UB, and this not allowed in safe Rust." msgstr "" +"Неправильний UTF-8 у рядку є невизначена поведінка, а це заборонено у " +"безпечному Rust." #: src\types-and-values/strings.md:30 msgid "" "`String` is a user-defined type with a constructor (`::new()`) and methods " "like `s.push_str(..)`." msgstr "" +"`String` - це визначений користувачем тип з конструктором (`::new()`) і " +"методами на зразок `s.push_str(..)`." #: src\types-and-values/strings.md:32 msgid "" @@ -2916,6 +2976,9 @@ msgid "" "references later, so for now just think of `&str` as a unit meaning \"a read-" "only string\"." msgstr "" +"Символ `&` в `&str` вказує на те, що це посилання. Ми розглянемо посилання " +"пізніше, а поки що вважайте `&str` одиницею, яка означає \"рядок лише для " +"читання\"." #: src\types-and-values/strings.md:35 msgid "" @@ -2923,6 +2986,9 @@ msgid "" "`12..13` does not end on a character boundary, so the program panics. Adjust " "it to a range that does, based on the error message." msgstr "" +"Закоментований рядок індексується у рядку за позицією байта. `12..13` не " +"закінчується на межі символів, тому програма панікує. Налаштуйте її на " +"діапазон, який відповідає цій межі, виходячи з повідомлення про помилку." #: src\types-and-values/strings.md:39 msgid "" @@ -2944,7 +3010,7 @@ msgid "" "constraints given by variable declarations and usages." msgstr "" "На цьому слайді показано, як компілятор Rust виводить типи на основі " -"обмежень, заданих оголошеннями змінних і використанням." +"обмежень, заданих оголошеннями змінних та їх використанням." #: src\types-and-values/inference.md:29 msgid "" @@ -2966,10 +3032,14 @@ msgid "" "`i32`. This sometimes appears as `{integer}` in error messages. Similarly, " "floating-point literals default to `f64`." msgstr "" +"Якщо тип цілочисельного літерала не обмежено, Rust за замовчуванням " +"використовує тип `i32`. Іноді у повідомленнях про помилки це позначається як " +"`{integer}`. Подібно до цього, літерали з плаваючою комою за замовчуванням " +"мають тип `f64`." #: src\types-and-values/inference.md:42 msgid "// ERROR: no implementation for `{float} == {integer}`\n" -msgstr "" +msgstr "// ERROR: no implementation for `{float} == {integer}`\n" #: src\types-and-values/exercise.md:3 msgid "" @@ -2977,48 +3047,51 @@ msgid "" "Fibonacci number is calculated recursively as the sum of the n-1'th and " "n-2'th Fibonacci numbers." msgstr "" +"Перше і друге число Фібоначчі рівні `1`. Для n>2 n-те число Фібоначчі " +"обчислюється рекурсивно як сума n-1-го та n-2-го чисел Фібоначчі." #: src\types-and-values/exercise.md:7 msgid "" "Write a function `fib(n)` that calculates the n'th Fibonacci number. When " "will this function panic?" msgstr "" +"Напишіть функцію `fib(n)`, яка обчислює n-те число Фібоначчі. Коли ця " +"функція запанікує?" #: src\types-and-values/exercise.md:13 msgid "// The base case.\n" -msgstr "" +msgstr "// Базовий випадок.\n" #: src\types-and-values/exercise.md:14 src\types-and-values/exercise.md:17 #: src\control-flow-basics/exercise.md:26 #: src\control-flow-basics/exercise.md:30 #, fuzzy msgid "\"Implement this\"" -msgstr "Реалізація" +msgstr "\" Реалізуйте це\"" #: src\types-and-values/exercise.md:16 msgid "// The recursive case.\n" -msgstr "" +msgstr "// Рекурсивний випадок.\n" #: src\types-and-values/exercise.md:23 src\types-and-values/solution.md:14 msgid "\"fib(n) = {}\"" -msgstr "" +msgstr "\"fib(n) = {}\"" #: src\control-flow-basics/conditionals.md:3 msgid "Much of the Rust syntax will be familiar to you from C, C++ or Java:" msgstr "Значна частина синтаксису Rust буде вам знайома з C, C++ або Java:" #: src\control-flow-basics/conditionals.md:5 -#, fuzzy msgid "Blocks are delimited by curly braces." -msgstr "Блоки та області поділяються фігурними дужками." +msgstr "Блоки розділені фігурними дужками." #: src\control-flow-basics/conditionals.md:6 msgid "" "Line comments are started with `//`, block comments are delimited by `/* ... " "*/`." msgstr "" -"Коментарі до рядків починаються з `//`, коментарі до блоків відокремлюються " -"`/* ... */`." +"Коментарі до рядків починаються з `//`, блокові коментарі розмежовуються за " +"допомогою `/* ... */`." #: src\control-flow-basics/conditionals.md:8 msgid "Keywords like `if` and `while` work the same." @@ -3032,7 +3105,7 @@ msgstr "" #: src\control-flow-basics/conditionals.md:11 msgid "`if` expressions" -msgstr "вирази `if`" +msgstr "Вирази `if`" #: src\control-flow-basics/conditionals.md:13 msgid "" @@ -3046,15 +3119,15 @@ msgstr "" #: src\control-flow-basics/conditionals.md:21 #: src\control-flow-basics/conditionals.md:38 msgid "\"small\"" -msgstr "" +msgstr "\"маленький\"" #: src\control-flow-basics/conditionals.md:23 msgid "\"biggish\"" -msgstr "" +msgstr "\"великий\"" #: src\control-flow-basics/conditionals.md:25 msgid "\"huge\"" -msgstr "" +msgstr "\"величезний\"" #: src\control-flow-basics/conditionals.md:30 msgid "" @@ -3062,15 +3135,15 @@ msgid "" "block becomes the value of the `if` expression:" msgstr "" "Крім того, ви можете використовувати `if` як вираз. Останній вираз кожного " -"блоку стає значенням виразу if:" +"блоку стає значенням виразу `if`:" #: src\control-flow-basics/conditionals.md:40 msgid "\"large\"" -msgstr "" +msgstr "\"великий\"" #: src\control-flow-basics/conditionals.md:42 msgid "\"number size: {}\"" -msgstr "" +msgstr "\"розмір числа: {}\"" #: src\control-flow-basics/conditionals.md:48 msgid "" @@ -3078,6 +3151,9 @@ msgid "" "branch blocks must have the same type. Show what happens if you add `;` " "after `\"small\"` in the second example." msgstr "" +"Оскільки `if` є виразом і повинен мати певний тип, обидва його блоки " +"розгалужень повинні мати той самий тип. Покажіть, що станеться, якщо додати " +"`;` після `\"маленький\"` у другому прикладі." #: src\control-flow-basics/conditionals.md:50 msgid "" @@ -3085,34 +3161,35 @@ msgid "" "separate it from the next statement. Remove the `;` before `println!` to see " "the compiler error." msgstr "" +"Коли у виразі використовується `if`, вираз повинен мати `;`, щоб відокремити " +"його від наступного оператора. Видаліть `;` перед `println!`, щоб побачити " +"помилку компілятора." #: src\control-flow-basics/loops.md:3 msgid "There are three looping keywords in Rust: `while`, `loop`, and `for`:" -msgstr "" +msgstr "У Rust є три ключові слова циклу: `while`, `loop` і `for`:" #: src\control-flow-basics/loops.md:5 -#, fuzzy msgid "`while`" -msgstr "цикли `while`" +msgstr "`while`" #: src\control-flow-basics/loops.md:7 -#, fuzzy msgid "" "The [`while` keyword](https://doc.rust-lang.org/reference/expressions/loop-" "expr.html#predicate-loops) works much like in other languages, executing the " "loop body as long as the condition is true." msgstr "" "Ключове слово [`while`](https://doc.rust-lang.org/reference/expressions/loop-" -"expr.html#predicate-loops) працює дуже подібно до інших мов:" +"expr.html#predicate-loops) працює так само, як і в інших мовах, виконуючи " +"тіло циклу доти, доки умова виконується." #: src\control-flow-basics/loops.md:17 msgid "\"Final x: {x}\"" -msgstr "" +msgstr "\"Final x: {x}\"" #: src\control-flow-basics/loops.md:21 -#, fuzzy msgid "`for`" -msgstr "петлі `за`" +msgstr "`for`" #: src\control-flow-basics/loops.md:23 #, fuzzy @@ -3120,60 +3197,64 @@ msgid "" "The [`for` loop](https://doc.rust-lang.org/std/keyword.for.html) iterates " "over ranges of values:" msgstr "" -"[`Drop`](https://doc.rust-lang.org/std/ops/trait.Drop.html) використовується " -"для визначення деструкторів." +"Цикл [`for`](https://doc.rust-lang.org/std/keyword.for.html) виконує " +"ітерації над діапазонами значень:" #: src\control-flow-basics/loops.md:34 msgid "`loop`" -msgstr "" +msgstr "`loop`" #: src\control-flow-basics/loops.md:36 -#, fuzzy msgid "" "The [`loop` statement](https://doc.rust-lang.org/std/keyword.loop.html) just " "loops forever, until a `break`." msgstr "" -"[`Drop`](https://doc.rust-lang.org/std/ops/trait.Drop.html) використовується " -"для визначення деструкторів." +"Оператор [`loop`](https://doc.rust-lang.org/std/keyword.loop.html) просто " +"повторюється до нескінченності, поки не трапиться `break`." #: src\control-flow-basics/loops.md:44 msgid "\"{i}\"" -msgstr "" +msgstr "\"{i}\"" #: src\control-flow-basics/loops.md:54 msgid "" "We will discuss iteration later; for now, just stick to range expressions." msgstr "" +"Ми обговоримо ітерації пізніше, а поки що просто використовуйте діапазонні " +"вирази." #: src\control-flow-basics/loops.md:55 msgid "" "Note that the `for` loop only iterates to `4`. Show the `1..=5` syntax for " "an inclusive range." msgstr "" +"Зверніть увагу, що цикл `for` виконує ітерацію тільки до `4`. Покажіть " +"синтаксис `1..=5` для включеного діапазону." #: src\control-flow-basics/break-continue.md:3 -#, fuzzy msgid "" "If you want to exit any kind of loop early, use [`break`](https://doc.rust-" "lang.org/reference/expressions/loop-expr.html#break-expressions). For " "`loop`, this can take an optional expression that becomes the value of the " "`loop` expression." msgstr "" -"Якщо ви хочете вийти з циклу раніше, використовуйте [`break`](https://doc." -"rust-lang.org/reference/expressions/loop-expr.html#break-expressions)," +"Якщо ви хочете достроково вийти з будь-якого типу циклу, використовуйте " +"[`break`](https://doc.rust-lang.org/reference/expressions/loop-expr." +"html#break-expressions). Для `loop` це може бути необов'язковий вираз, який " +"стане значенням виразу `loop`." #: src\control-flow-basics/break-continue.md:7 msgid "" "If you want to immediately start the next iteration use [`continue`](https://" "doc.rust-lang.org/reference/expressions/loop-expr.html#continue-expressions)." msgstr "" -"Якщо ви хочете негайно почати наступну ітерацію, використовуйте " -"[`продовжити`](https://doc.rust-lang.org/reference/expressions/loop-expr." -"html#continue-expressions)." +"Якщо ви хочете негайно почати наступну ітерацію, використовуйте [`continue`]" +"(https://doc.rust-lang.org/reference/expressions/loop-expr.html#continue-" +"expressions)." #: src\control-flow-basics/break-continue.md:23 msgid "\"{result}\"" -msgstr "" +msgstr "\"{result}\"" #: src\control-flow-basics/break-continue.md:27 msgid "" @@ -3185,7 +3266,7 @@ msgstr "" #: src\control-flow-basics/break-continue.md:36 msgid "\"x: {x}, i: {i}\"" -msgstr "" +msgstr "\"x: {x}, i: {i}\"" #: src\control-flow-basics/break-continue.md:46 msgid "" @@ -3201,8 +3282,8 @@ msgid "" "`while` and `for` loops)." msgstr "" "Зауважте, що `loop` — це єдина конструкція циклу, яка повертає нетривіальне " -"значення. Це тому, що його гарантовано буде введено принаймні один раз (на " -"відміну від циклів `while` і `for`)." +"значення. Це тому, що він гарантовано буде введений принаймні один раз (на " +"відміну від циклів `while` та `for`)." #: src\control-flow-basics/blocks-and-scopes.md:3 msgid "Blocks" @@ -3218,13 +3299,15 @@ msgstr "" #: src\control-flow-basics/blocks-and-scopes.md:14 msgid "\"y: {y}\"" -msgstr "" +msgstr "\"y: {y}\"" #: src\control-flow-basics/blocks-and-scopes.md:21 msgid "" "If the last expression ends with `;`, then the resulting value and type is " "`()`." msgstr "" +"Якщо останній вираз закінчується символом `;`, то результуюче значення і тип " +"буде `()`." #: src\control-flow-basics/blocks-and-scopes.md:23 msgid "Scopes and Shadowing" @@ -3232,7 +3315,7 @@ msgstr "Області видимості та затінення" #: src\control-flow-basics/blocks-and-scopes.md:25 msgid "A variable's scope is limited to the enclosing block." -msgstr "" +msgstr "Область видимості змінної обмежується блоком, що її охоплює." #: src\control-flow-basics/blocks-and-scopes.md:27 msgid "" @@ -3244,25 +3327,25 @@ msgstr "" #: src\control-flow-basics/blocks-and-scopes.md:33 msgid "\"before: {a}\"" -msgstr "" +msgstr "\"до: {a}\"" #: src\control-flow-basics/blocks-and-scopes.md:35 #: src\std-traits/from-and-into.md:7 src\std-traits/from-and-into.md:19 #: src\slices-and-lifetimes/solution.md:228 msgid "\"hello\"" -msgstr "" +msgstr "\"привіт\"" #: src\control-flow-basics/blocks-and-scopes.md:36 msgid "\"inner scope: {a}\"" -msgstr "" +msgstr "\"внутрішня область видимості: {a}\"" #: src\control-flow-basics/blocks-and-scopes.md:39 msgid "\"shadowed in inner scope: {a}\"" -msgstr "" +msgstr "\"затінений у внутрішній області видимості: {a}\"" #: src\control-flow-basics/blocks-and-scopes.md:42 msgid "\"after: {a}\"" -msgstr "" +msgstr "\"після: {a}\"" #: src\control-flow-basics/blocks-and-scopes.md:48 msgid "" @@ -3270,7 +3353,7 @@ msgid "" "the block. For instance, adding/removing a semicolon or using a `return`." msgstr "" "Ви можете показати, як змінюється значення блоку, змінивши останній рядок у " -"блоці. Наприклад, додавання/видалення крапки з комою або використання " +"блоці. Наприклад, додаванням/видаленням крапки з комою або використанням " "`return`." #: src\control-flow-basics/blocks-and-scopes.md:49 @@ -3278,20 +3361,21 @@ msgid "" "Show that a variable's scope is limited by adding a `b` in the inner block " "in the last example, and then trying to access it outside that block." msgstr "" +"Покажіть, що область видимості змінної обмежена, додавши `b` у внутрішньому " +"блоці в останньому прикладі, а потім спробувавши отримати доступ до неї за " +"межами цього блоку." #: src\control-flow-basics/blocks-and-scopes.md:50 -#, fuzzy msgid "" "Shadowing is different from mutation, because after shadowing both " "variable's memory locations exist at the same time. Both are available under " "the same name, depending where you use it in the code." msgstr "" -"Визначення: затінення відрізняється від мутації, оскільки після затінення " -"обидві області пам’яті змінної існують одночасно. Обидва доступні під " -"однаковою назвою, залежно від того, де ви її використовуєте в коді." +"Затінення відрізняється від мутації тим, що після затінення обидві ділянки " +"пам'яті змінної існують одночасно. Обидві змінні доступні під одним і тим же " +"ім'ям, залежно від того, де ви їх використовуєте у коді." #: src\control-flow-basics/blocks-and-scopes.md:51 -#, fuzzy msgid "A shadowing variable can have a different type." msgstr "Змінна затінення може мати інший тип." @@ -3300,8 +3384,8 @@ msgid "" "Shadowing looks obscure at first, but is convenient for holding on to values " "after `.unwrap()`." msgstr "" -"Затінення спочатку виглядає незрозумілим, але зручно для збереження значень " -"після `.unwrap()`." +"Затінення спочатку виглядає незрозумілим, але є зручним для збереження " +"значень після `.unwrap()`." #: src\control-flow-basics/functions.md:20 msgid "" @@ -3309,18 +3393,20 @@ msgid "" "programming languages), then a return type." msgstr "" "Параметри оголошення супроводжуються типом (у зворотному порядку порівняно з " -"деякими мовами програмування), а потім тип повернення." +"деякими мовами програмування), а потім типом повернення." #: src\control-flow-basics/functions.md:21 -#, fuzzy msgid "" "The last expression in a function body (or any block) becomes the return " "value. Simply omit the `;` at the end of the expression. The `return` " "keyword can be used for early return, but the \"bare value\" form is " "idiomatic at the end of a function (refactor `gcd` to use a `return`)." msgstr "" -"Останній вираз у тілі функції (або будь-якому блоці) стає значенням, що " -"повертається. Просто опустіть `;` в кінці виразу." +"Останній вираз у тілі функції (або будь-якого блоку) стає значенням, що " +"повертається. Просто опустіть `;` в кінці виразу. Ключове слово `return` " +"можна використовувати для дострокового повернення, але форма \"голого " +"значення\" є ідіоматичною у кінці функції (рефактор `gcd` щоб " +"використовувати `return`)." #: src\control-flow-basics/functions.md:23 msgid "" @@ -3332,23 +3418,26 @@ msgstr "" "пропущено." #: src\control-flow-basics/functions.md:24 -#, fuzzy msgid "" "Overloading is not supported -- each function has a single implementation." -msgstr "Кожна функція має одну реалізацію:" +msgstr "Перевантаження не підтримується - кожна функція має єдину реалізацію." #: src\control-flow-basics/functions.md:25 msgid "" "Always takes a fixed number of parameters. Default arguments are not " "supported. Macros can be used to support variadic functions." msgstr "" +"Завжди приймає фіксовану кількість параметрів. Аргументи за замовчуванням не " +"підтримуються. Для підтримки варіаційних функцій можна використовувати " +"макроси." #: src\control-flow-basics/functions.md:26 -#, fuzzy msgid "" "Always takes a single set of parameter types. These types can be generic, " "which will be covered later." -msgstr "Завжди приймає один набір типів параметрів." +msgstr "" +"Завжди приймає єдиний набір типів параметрів. Ці типи можуть бути " +"загальними, що буде розглянуто пізніше." #: src\control-flow-basics/macros.md:3 msgid "" @@ -3356,41 +3445,50 @@ msgid "" "variable number of arguments. They are distinguished by a `!` at the end. " "The Rust standard library includes an assortment of useful macros." msgstr "" +"Макроси розгортаються у код Rust під час компіляції і можуть приймати змінну " +"кількість аргументів. Вони відрізняються символом `!` у кінці. До " +"стандартної бібліотеки Rust входить набір корисних макросів." #: src\control-flow-basics/macros.md:7 -#, fuzzy msgid "" "`println!(format, ..)` prints a line to standard output, applying formatting " "described in [`std::fmt`](https://doc.rust-lang.org/std/fmt/index.html)." msgstr "" -"Перевантаження операторів реалізовано за допомогою ознак у [`std::ops`]" -"(https://doc.rust-lang.org/std/ops/index.html):" +"`println!(format, ..)` виводить рядок у стандартний вивід, застосовуючи " +"форматування, описане у [`std::fmt`](https://doc.rust-lang.org/std/fmt/index." +"html)." #: src\control-flow-basics/macros.md:8 msgid "" "`format!(format, ..)` works just like `println!` but returns the result as a " "string." msgstr "" +"`format!(format, ..)` працює так само, як `println!`, але повертає результат " +"у вигляді рядка." #: src\control-flow-basics/macros.md:9 msgid "`dbg!(expression)` logs the value of the expression and returns it." -msgstr "" +msgstr "`dbg!(вираз)` записує значення виразу і повертає його." #: src\control-flow-basics/macros.md:10 msgid "" "`todo!()` marks a bit of code as not-yet-implemented. If executed, it will " "panic." msgstr "" +"`todo!()` позначає частину коду як таку, що ще не виконана. Якщо цей код " +"буде виконано, він викличе паніку." #: src\control-flow-basics/macros.md:11 msgid "" "`unreachable!()` marks a bit of code as unreachable. If executed, it will " "panic." msgstr "" +"`unreachable!()` позначає ділянку коду як недосяжну. Якщо цей код буде " +"виконано, він викличе паніку." #: src\control-flow-basics/macros.md:28 msgid "\"{n}! = {}\"" -msgstr "" +msgstr "\"{n}! = {}\"" #: src\control-flow-basics/macros.md:34 msgid "" @@ -3398,98 +3496,103 @@ msgid "" "how to use them. Why they are defined as macros, and what they expand to, is " "not especially critical." msgstr "" +"Висновок з цього розділу полягає в тому, що ці загальні зручності існують, і " +"те, як ними користуватися. Чому вони визначені як макроси і на що вони " +"поширюються, не є особливо важливим." #: src\control-flow-basics/macros.md:38 msgid "" "The course does not cover defining macros, but a later section will describe " "use of derive macros." msgstr "" +"У цьому курсі не розглядається визначення макросів, але в наступному розділі " +"буде описано використання похідних макросів." #: src\control-flow-basics/exercise.md:3 msgid "" "The [Collatz Sequence](https://en.wikipedia.org/wiki/Collatz_conjecture) is " "defined as follows, for an arbitrary n" msgstr "" +"Послідовність Коллатца [Collatz Sequence](https://en.wikipedia.org/wiki/" +"Collatz_conjecture) визначається наступним чином, для довільного n" #: src\control-flow-basics/exercise.md:4 src\control-flow-basics/exercise.md:10 -#, fuzzy msgid "1" -msgstr "12" +msgstr "1" #: src\control-flow-basics/exercise.md:4 msgid " greater than zero:" -msgstr "" +msgstr " більше нуля:" #: src\control-flow-basics/exercise.md:6 src\control-flow-basics/exercise.md:7 #: src\control-flow-basics/exercise.md:8 msgid "If _n" -msgstr "" +msgstr "Якщо _n" #: src\control-flow-basics/exercise.md:6 src\control-flow-basics/exercise.md:7 #: src\control-flow-basics/exercise.md:8 msgid "i" -msgstr "" +msgstr "i" #: src\control-flow-basics/exercise.md:6 msgid "_ is 1, then the sequence terminates at _n" -msgstr "" +msgstr "_ є 1, то послідовність завершується при _n" #: src\control-flow-basics/exercise.md:6 msgid "_." -msgstr "" +msgstr "_." #: src\control-flow-basics/exercise.md:7 msgid "_ is even, then _n" -msgstr "" +msgstr "_ парне, тоді _n" #: src\control-flow-basics/exercise.md:7 src\control-flow-basics/exercise.md:8 msgid "i+1" -msgstr "" +msgstr "i+1" #: src\control-flow-basics/exercise.md:7 msgid " = n" -msgstr "" +msgstr " = n" #: src\control-flow-basics/exercise.md:7 msgid " / 2_." -msgstr "" +msgstr " / 2_." #: src\control-flow-basics/exercise.md:8 msgid "_ is odd, then _n" -msgstr "" +msgstr "_ непарне, тоді _n" #: src\control-flow-basics/exercise.md:8 msgid " = 3 * n" -msgstr "" +msgstr " = 3 * n" #: src\control-flow-basics/exercise.md:8 msgid " + 1_." -msgstr "" +msgstr " + 1_." #: src\control-flow-basics/exercise.md:10 msgid "For example, beginning with _n" -msgstr "" +msgstr "Наприклад, починаючи з _n" #: src\control-flow-basics/exercise.md:10 msgid "_ = 3:" -msgstr "" +msgstr "_ = 3:" #: src\control-flow-basics/exercise.md:11 msgid "3 is odd, so _n" -msgstr "" +msgstr "3 непарне, тому _n" #: src\control-flow-basics/exercise.md:11 -#, fuzzy msgid "2" -msgstr "12" +msgstr "2" #: src\control-flow-basics/exercise.md:11 msgid "_ = 3 * 3 + 1 = 10;" -msgstr "" +msgstr "_ = 3 * 3 + 1 = 10;" #: src\control-flow-basics/exercise.md:12 msgid "10 is even, so _n" -msgstr "" +msgstr "10 парне, тому _n" #: src\control-flow-basics/exercise.md:12 src\bare-metal/aps/better-uart.md:22 msgid "3" @@ -3497,11 +3600,11 @@ msgstr "3" #: src\control-flow-basics/exercise.md:12 msgid "_ = 10 / 2 = 5;" -msgstr "" +msgstr "_ = 10 / 2 = 5;" #: src\control-flow-basics/exercise.md:13 msgid "5 is odd, so _n" -msgstr "" +msgstr "5 непарне, тому _n" #: src\control-flow-basics/exercise.md:13 src\bare-metal/aps/better-uart.md:10 msgid "4" @@ -3509,23 +3612,23 @@ msgstr "4" #: src\control-flow-basics/exercise.md:13 msgid "_ = 3 * 15 + 1 = 16;" -msgstr "" +msgstr "_ = 3 * 15 + 1 = 16;" #: src\control-flow-basics/exercise.md:14 msgid "16 is even, so _n" -msgstr "" +msgstr "16 парне, тому _n" #: src\control-flow-basics/exercise.md:14 msgid "5" -msgstr "" +msgstr "5" #: src\control-flow-basics/exercise.md:14 msgid "_ = 16 / 2 = 8;" -msgstr "" +msgstr "_ = 16 / 2 = 8;" #: src\control-flow-basics/exercise.md:15 msgid "8 is even, so _n" -msgstr "" +msgstr "8 парне, тому _n" #: src\control-flow-basics/exercise.md:15 src\bare-metal/aps/better-uart.md:14 #: src\bare-metal/aps/better-uart.md:17 @@ -3534,23 +3637,23 @@ msgstr "6" #: src\control-flow-basics/exercise.md:15 msgid "_ = 8 / 2 = 4;" -msgstr "" +msgstr "_ = 8 / 2 = 4" #: src\control-flow-basics/exercise.md:16 msgid "4 is even, so _n" -msgstr "" +msgstr "4 парне, тому _n" #: src\control-flow-basics/exercise.md:16 msgid "7" -msgstr "" +msgstr "7" #: src\control-flow-basics/exercise.md:16 msgid "_ = 4 / 2 = 2;" -msgstr "" +msgstr "_ = 4 / 2 = 2;" #: src\control-flow-basics/exercise.md:17 msgid "2 is even, so _n" -msgstr "" +msgstr "2 парне, тому _n" #: src\control-flow-basics/exercise.md:17 src\bare-metal/aps/better-uart.md:12 #: src\bare-metal/aps/better-uart.md:15 @@ -3559,32 +3662,33 @@ msgstr "8" #: src\control-flow-basics/exercise.md:17 msgid "_ = 1; and" -msgstr "" +msgstr "_ = 1; та" #: src\control-flow-basics/exercise.md:18 msgid "the sequence terminates." -msgstr "" +msgstr "послідовність завершується." #: src\control-flow-basics/exercise.md:20 msgid "" "Write a function to calculate the length of the collatz sequence for a given " "initial `n`." msgstr "" +"Напишіть функцію, яка обчислює довжину коллатц-послідовності для заданого " +"початкового `n`." #: src\control-flow-basics/exercise.md:24 src\control-flow-basics/solution.md:4 msgid "/// Determine the length of the collatz sequence beginning at `n`.\n" -msgstr "" +msgstr "/// Визначте довжину послідовності колатів, яка починається з `n`.\n" #: src\control-flow-basics/solution.md:20 src\concurrency/scoped-threads.md:11 #: src\concurrency/scoped-threads.md:30 msgid "\"Length: {}\"" -msgstr "" +msgstr "\"Довжина: {}\"" #: src\welcome-day-1-afternoon.md:1 src\welcome-day-2-afternoon.md:1 #: src\welcome-day-3-afternoon.md:1 src\welcome-day-4-afternoon.md:1 -#, fuzzy msgid "Welcome Back" -msgstr "Ласкаво просимо" +msgstr "Ласкаво просимо назад" #: src\tuples-and-arrays/tuples-and-arrays.md:3 msgid ""