From 981676d811927f1b50b7654ceb4cc3c10d7fe97b Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Fri, 5 Jan 2024 05:14:43 -0500 Subject: [PATCH 01/13] uk: Instructor notes (Rust v2) (#1652) Instructor notes, running the course, minor cleanups --- po/uk.po | 211 ++++++++++++++++++------------------------------------- 1 file changed, 69 insertions(+), 142 deletions(-) diff --git a/po/uk.po b/po/uk.po index 89063875b84a..76f7a9b967e8 100644 --- a/po/uk.po +++ b/po/uk.po @@ -60,7 +60,6 @@ msgstr "Ласкаво просимо" #: src\SUMMARY.md:19 src\SUMMARY.md:21 src\hello-world.md:1 #: src\hello-world/hello-world.md:1 -#, fuzzy msgid "Hello, World" msgstr "Hello World!" @@ -119,12 +118,10 @@ msgstr "Вправа: Фібоначчі" #: src\iterators/solution.md:1 src\modules/solution.md:1 #: src\testing/solution.md:1 src\error-handling/solution.md:1 #: src\unsafe-rust/solution.md:1 -#, fuzzy msgid "Solution" msgstr "Рішення" #: src\SUMMARY.md:32 src\control-flow-basics.md:1 -#, fuzzy msgid "Control Flow Basics" msgstr "Основи потоку керування" @@ -133,7 +130,6 @@ msgid "Conditionals" msgstr "Умовні слова" #: src\SUMMARY.md:34 src\control-flow-basics/loops.md:1 -#, fuzzy msgid "Loops" msgstr "Цикли" @@ -167,7 +163,6 @@ msgid "Tuples and Arrays" msgstr "Кортежі та масиви" #: src\SUMMARY.md:47 src\tuples-and-arrays/iteration.md:1 -#, fuzzy msgid "Array Iteration" msgstr "Ітерація масиву" @@ -178,7 +173,6 @@ msgstr "Зіставлення зразків" #: src\SUMMARY.md:49 src\SUMMARY.md:72 src\tuples-and-arrays/destructuring.md:1 #: src\pattern-matching/destructuring.md:1 -#, fuzzy msgid "Destructuring" msgstr "Деструктурування" @@ -191,12 +185,10 @@ msgid "References" msgstr "Посилання" #: src\SUMMARY.md:53 src\references/shared.md:1 -#, fuzzy msgid "Shared References" msgstr "Спільні посилання" #: src\SUMMARY.md:54 src\references/exclusive.md:1 -#, fuzzy msgid "Exclusive References" msgstr "Ексклюзивні посилання" @@ -209,7 +201,6 @@ msgid "User-Defined Types" msgstr "Типи, які визначаються користувачем" #: src\SUMMARY.md:58 src\user-defined-types/named-structs.md:1 -#, fuzzy msgid "Named Structs" msgstr "Іменовані структури" @@ -224,7 +215,6 @@ msgid "Enums" msgstr "Перелічувані типи" #: src\SUMMARY.md:61 src\user-defined-types/static-and-const.md:1 -#, fuzzy msgid "Static and Const" msgstr "Static та Const" @@ -241,7 +231,6 @@ msgid "Day 2: Morning" msgstr "День 2: Ранок" #: src\SUMMARY.md:73 src\pattern-matching/let-control-flow.md:1 -#, fuzzy msgid "Let Control Flow" msgstr "Потік контролю Let" @@ -250,7 +239,6 @@ msgid "Exercise: Expression Evaluation" msgstr "Вправа: обчислення виразу" #: src\SUMMARY.md:76 src\methods-and-traits.md:1 -#, fuzzy msgid "Methods and Traits" msgstr "Методи та Трейти" @@ -263,7 +251,6 @@ msgid "Traits" msgstr "Трейти" #: src\SUMMARY.md:79 src\methods-and-traits/deriving.md:1 -#, fuzzy msgid "Deriving" msgstr "Виведення" @@ -272,7 +259,6 @@ msgid "Trait Objects" msgstr "Трейт об'єкти" #: src\SUMMARY.md:81 src\methods-and-traits/exercise.md:1 -#, fuzzy msgid "Exercise: GUI Library" msgstr "Вправа: Бібліотека графічного інтерфейсу користувача" @@ -281,7 +267,6 @@ msgid "Generics" msgstr "Узагальнені типи" #: src\SUMMARY.md:84 src\generics/generic-functions.md:1 -#, fuzzy msgid "Generic Functions" msgstr "Узагальнені функції" @@ -306,7 +291,6 @@ msgid "Day 2: Afternoon" msgstr "День 2: Полудень" #: src\SUMMARY.md:94 src\std-types.md:1 -#, fuzzy msgid "Standard Library Types" msgstr "Типи стандартної бібліотеки" @@ -315,22 +299,18 @@ msgid "Standard Library" msgstr "Стандартна бібліотека" #: src\SUMMARY.md:96 src\std-types/docs.md:1 -#, fuzzy msgid "Documentation" msgstr "Документація" #: src\SUMMARY.md:97 -#, fuzzy msgid "`Option`" msgstr "`Option`" #: src\SUMMARY.md:98 -#, fuzzy msgid "`Result`" msgstr "`Result`" #: src\SUMMARY.md:99 src\android/interoperability/cpp/type-mapping.md:5 -#, fuzzy msgid "`String`" msgstr "`String`" @@ -343,12 +323,10 @@ msgid "`HashMap`" msgstr "`HashMap`" #: src\SUMMARY.md:102 src\std-types/exercise.md:1 -#, fuzzy msgid "Exercise: Counter" msgstr "Вправа: Лічилка" #: src\SUMMARY.md:104 src\std-traits.md:1 -#, fuzzy msgid "Standard Library Traits" msgstr "Трейти стандартної бібліотеки" @@ -357,7 +335,6 @@ msgid "Comparisons" msgstr "Порівняння" #: src\SUMMARY.md:106 src\std-traits/operators.md:1 -#, fuzzy msgid "Operators" msgstr "Оператори" @@ -366,7 +343,6 @@ msgid "`From` and `Into`" msgstr "`From` та `Into`" #: src\SUMMARY.md:108 src\std-traits/casting.md:1 -#, fuzzy msgid "Casting" msgstr "Приведення" @@ -383,7 +359,6 @@ msgid "Closures" msgstr "Закриття" #: src\SUMMARY.md:112 src\std-traits/exercise.md:1 -#, fuzzy msgid "Exercise: ROT13" msgstr "Вправа: ROT13" @@ -400,7 +375,6 @@ msgid "Review of Program Memory" msgstr "Огляд пам'яті програми" #: src\SUMMARY.md:122 src\memory-management/approaches.md:1 -#, fuzzy msgid "Approaches to Memory Management" msgstr "Підходи до управління пам'яттю" @@ -417,12 +391,10 @@ msgid "`Clone`" msgstr "`Clone`" #: src\SUMMARY.md:126 src\memory-management/copy-types.md:4 -#, fuzzy msgid "Copy Types" msgstr "Типи копіювання" #: src\SUMMARY.md:127 -#, fuzzy msgid "`Drop`" msgstr "`Drop`" @@ -436,7 +408,6 @@ msgstr "Розумні вказівники" #: src\SUMMARY.md:131 src\smart-pointers/box.md:1 #: src\android/interoperability/cpp/type-mapping.md:9 -#, fuzzy msgid "`Box`" msgstr "`Box`" @@ -457,52 +428,42 @@ msgid "Borrowing" msgstr "Запозичення" #: src\SUMMARY.md:140 src\borrowing/shared.md:1 -#, fuzzy msgid "Borrowing a Value" msgstr "Запозичення значення" #: src\SUMMARY.md:141 src\borrowing/borrowck.md:1 -#, fuzzy msgid "Borrow Checking" msgstr "Перевірка запозичення" #: src\SUMMARY.md:142 src\borrowing/interior-mutability.md:4 -#, fuzzy msgid "Interior Mutability" msgstr "Внутрішня мутабельність" #: src\SUMMARY.md:143 src\borrowing/exercise.md:1 -#, fuzzy msgid "Exercise: Health Statistics" msgstr "Вправа: Статистика здоров’я" #: src\SUMMARY.md:145 src\slices-and-lifetimes.md:1 -#, fuzzy msgid "Slices and Lifetimes" msgstr "Зрізи та тривалість життя" #: src\SUMMARY.md:146 -#, fuzzy msgid "Slices: `&[T]`" msgstr "Зрізи: `&[T]`" #: src\SUMMARY.md:147 src\slices-and-lifetimes/str.md:4 -#, fuzzy msgid "String References" msgstr "Рядкові посилання" #: src\SUMMARY.md:148 src\slices-and-lifetimes/lifetime-annotations.md:1 -#, fuzzy msgid "Lifetime Annotations" msgstr "Анотації тривалісті життя" #: src\SUMMARY.md:149 -#, fuzzy msgid "Lifetime Elision" msgstr "Упущення тривалісті життя" #: src\SUMMARY.md:150 -#, fuzzy msgid "Struct Lifetimes" msgstr "Тривалість життя структур" @@ -511,7 +472,6 @@ msgid "Exercise: Protobuf Parsing" msgstr "Вправа: Розбір Protobuf" #: src\SUMMARY.md:156 -#, fuzzy msgid "Day 4: Morning" msgstr "День 1: Ранок" @@ -528,7 +488,6 @@ msgid "`IntoIterator`" msgstr "`IntoIterator`" #: src\SUMMARY.md:162 -#, fuzzy msgid "`FromIterator`" msgstr "`FromIterator`" @@ -567,7 +526,6 @@ msgid "Test Modules" msgstr "Тестові модулі" #: src\SUMMARY.md:174 src\testing/other.md:1 -#, fuzzy msgid "Other Types of Tests" msgstr "Інші типи тестів" @@ -588,12 +546,10 @@ msgid "Compiler Lints and Clippy" msgstr "Лінти компілятора та Clippy" #: src\SUMMARY.md:179 src\testing/exercise.md:1 -#, fuzzy msgid "Exercise: Luhn Algorithm" msgstr "Вправа: Алгоритм Луна" #: src\SUMMARY.md:182 -#, fuzzy msgid "Day 4: Afternoon" msgstr "День 1: Полудень" @@ -606,27 +562,22 @@ msgid "Panics" msgstr "Паніки" #: src\SUMMARY.md:187 src\error-handling/try.md:1 -#, fuzzy msgid "Try Operator" msgstr "Try оператор" #: src\SUMMARY.md:188 src\error-handling/try-conversions.md:1 -#, fuzzy msgid "Try Conversions" msgstr "Try Перетворення" #: src\SUMMARY.md:189 -#, fuzzy msgid "`Error` Trait" msgstr "`Error` трейт" #: src\SUMMARY.md:190 -#, fuzzy msgid "`thiserror` and `anyhow`" msgstr "`thiserror` та `anyhow`" #: src\SUMMARY.md:191 -#, fuzzy msgid "Exercise: Rewriting with `Result`" msgstr "Вправа: Переписування с `Result`" @@ -635,7 +586,6 @@ msgid "Unsafe Rust" msgstr "Небезпечний Rust" #: src\SUMMARY.md:194 -#, fuzzy msgid "Unsafe" msgstr "Unsafe" @@ -652,17 +602,14 @@ msgid "Unions" msgstr "Об'єднання" #: src\SUMMARY.md:198 src\unsafe-rust/unsafe-functions.md:1 -#, fuzzy msgid "Unsafe Functions" msgstr "Небезпечні функції" #: src\SUMMARY.md:199 -#, fuzzy msgid "Unsafe Traits" msgstr "Небезпечні трейти" #: src\SUMMARY.md:200 -#, fuzzy msgid "Exercise: FFI Wrapper" msgstr "Вправа: обгортка FFI" @@ -737,17 +684,14 @@ msgid "Calling Rust from C" msgstr "Виклик Rust з C" #: src\SUMMARY.md:224 -#, fuzzy msgid "With C++)" msgstr "З С++" #: src\SUMMARY.md:225 src\android/interoperability/cpp/bridge.md:1 -#, fuzzy msgid "The Bridge Module" msgstr "Модуль Bridge" #: src\SUMMARY.md:226 -#, fuzzy msgid "Rust Bridge" msgstr "Rust Bridge" @@ -760,7 +704,6 @@ msgid "C++ Bridge" msgstr "C++ Bridge" #: src\SUMMARY.md:229 src\android/interoperability/cpp/shared-types.md:1 -#, fuzzy msgid "Shared Types" msgstr "Спільні типи" @@ -769,12 +712,10 @@ msgid "Shared Enums" msgstr "Спільні переліки" #: src\SUMMARY.md:231 src\android/interoperability/cpp/rust-result.md:1 -#, fuzzy msgid "Rust Error Handling" msgstr "Обробка помилок в Rust" #: src\SUMMARY.md:232 src\android/interoperability/cpp/cpp-exception.md:1 -#, fuzzy msgid "C++ Error Handling" msgstr "Обробка помилок в C++" @@ -820,7 +761,6 @@ msgid "Policy" msgstr "Політика" #: src\SUMMARY.md:251 -#, fuzzy msgid "Unsafe Code" msgstr "Небезпечний код" @@ -834,7 +774,6 @@ msgstr "Visual Studio Code" #: src\SUMMARY.md:254 src\SUMMARY.md:258 src\SUMMARY.md:266 src\SUMMARY.md:279 #: src\exercises/chromium/third-party.md:1 -#, fuzzy msgid "Exercise" msgstr "Вправи" @@ -847,13 +786,11 @@ msgid "GN Rules for Rust Tests" msgstr "Правила GN для тестів Rust" #: src\SUMMARY.md:259 src\chromium/interoperability-with-cpp.md:1 -#, fuzzy msgid "Interoperability with C++" msgstr "Взаємодія з C" #: src\SUMMARY.md:260 #: src\chromium/interoperability-with-cpp/example-bindings.md:1 -#, fuzzy msgid "Example Bindings" msgstr "Приклади прив'язок" @@ -864,17 +801,14 @@ msgstr "Обмеження CXX" #: src\SUMMARY.md:262 #: src\chromium/interoperability-with-cpp/error-handling.md:1 -#, fuzzy msgid "CXX Error Handling" msgstr "Обробка помилок в CXX" #: src\SUMMARY.md:263 -#, fuzzy msgid "Error Handling: QR Example" msgstr "Обробка помилок: приклад QR" #: src\SUMMARY.md:264 -#, fuzzy msgid "Error Handling: PNG Example" msgstr "Обробка помилок: приклад PNG" @@ -943,7 +877,6 @@ msgid "Bringing It Together - Exercise" msgstr "Зібрання усього разом - вправа" #: src\SUMMARY.md:281 src\exercises/chromium/solutions.md:1 -#, fuzzy msgid "Exercise Solutions" msgstr "Рішення вправ" @@ -969,7 +902,7 @@ msgstr "Мікроконтролери" #: src\SUMMARY.md:293 src\bare-metal/microcontrollers/mmio.md:1 msgid "Raw MMIO" -msgstr "Сирий ввід вивід з відображеної пам'яті" +msgstr "Сирий ввід вивід з відображеної пам'яті (MMIO)" #: src\SUMMARY.md:294 msgid "PACs" @@ -992,13 +925,12 @@ msgid "`embedded-hal`" msgstr "`embedded-hal`" #: src\SUMMARY.md:299 src\bare-metal/microcontrollers/probe-rs.md:1 -#, fuzzy msgid "`probe-rs` and `cargo-embed`" -msgstr "`probe-rs`, `cargo-embed`" +msgstr "`probe-rs` та `cargo-embed`" #: src\SUMMARY.md:300 src\bare-metal/microcontrollers/debugging.md:1 msgid "Debugging" -msgstr "Відладка" +msgstr "Налагодження" #: src\SUMMARY.md:301 src\SUMMARY.md:322 msgid "Other Projects" @@ -1031,7 +963,7 @@ msgstr "Вбудована збірка" #: src\SUMMARY.md:311 msgid "MMIO" -msgstr "Ввід вивід з відображеної пам'яті" +msgstr "Ввід вивід з відображеної пам'яті (MMIO)" #: src\SUMMARY.md:312 msgid "Let's Write a UART Driver" @@ -1051,7 +983,7 @@ msgstr "Бітові прапорці (крейт bitflags)" #: src\SUMMARY.md:316 msgid "Multiple Registers" -msgstr "Регістри" +msgstr "Кілька регістрів" #: src\SUMMARY.md:317 src\bare-metal/aps/better-uart/driver.md:1 msgid "Driver" @@ -1063,11 +995,11 @@ msgstr "Його використання" #: src\SUMMARY.md:321 src\bare-metal/aps/exceptions.md:1 msgid "Exceptions" -msgstr "Вийнятки" +msgstr "Виключення" #: src\SUMMARY.md:324 src\bare-metal/useful-crates/zerocopy.md:1 msgid "`zerocopy`" -msgstr "`нульова копія`" +msgstr "`zerocopy`" #: src\SUMMARY.md:325 src\bare-metal/useful-crates/aarch64-paging.md:1 msgid "`aarch64-paging`" @@ -1083,16 +1015,15 @@ msgstr "`tinyvec`" #: src\SUMMARY.md:328 src\bare-metal/useful-crates/spin.md:1 msgid "`spin`" -msgstr "`закрутка`" +msgstr "`spin`" #: src\SUMMARY.md:330 -#, fuzzy msgid "`vmbase`" -msgstr "vmbase" +msgstr "`vmbase`" #: src\SUMMARY.md:332 msgid "RTC Driver" -msgstr "Драйвер годинника реального часу" +msgstr "Драйвер годинника реального часу (RTC)" #: src\SUMMARY.md:336 msgid "Concurrency: Morning" @@ -1120,15 +1051,15 @@ msgstr "Зав'язані канали" #: src\SUMMARY.md:346 src\concurrency/send-sync.md:1 msgid "`Send` and `Sync`" -msgstr "`Надіслати` і `Синхронізувати`" +msgstr "`Send` та `Sync`" #: src\SUMMARY.md:347 src\concurrency/send-sync/send.md:1 msgid "`Send`" -msgstr "`Надіслати`" +msgstr "`Send`" #: src\SUMMARY.md:348 src\concurrency/send-sync/sync.md:1 msgid "`Sync`" -msgstr "`Синхронізувати`" +msgstr "`Sync`" #: src\SUMMARY.md:349 src\concurrency/send-sync/examples.md:1 msgid "Examples" @@ -1140,11 +1071,11 @@ msgstr "Спільний стан" #: src\SUMMARY.md:351 src\concurrency/shared_state/arc.md:1 msgid "`Arc`" -msgstr "`Дуга`" +msgstr "`Arc`" #: src\SUMMARY.md:352 src\concurrency/shared_state/mutex.md:1 msgid "`Mutex`" -msgstr "`Мутекс`" +msgstr "`Mutex`" #: src\SUMMARY.md:353 src\memory-management/review.md:16 #: src\error-handling/try-conversions.md:22 @@ -1156,7 +1087,7 @@ msgstr "Приклад" #: src\exercises/concurrency/dining-philosophers.md:1 #: src\exercises/concurrency/solutions-morning.md:3 msgid "Dining Philosophers" -msgstr "Обідні філософи" +msgstr "Обідаючи філософи" #: src\SUMMARY.md:356 src\exercises/concurrency/link-checker.md:1 msgid "Multi-threaded Link Checker" @@ -1172,7 +1103,7 @@ msgstr "Основи асинхронізації" #: src\SUMMARY.md:362 src\async/async-await.md:1 msgid "`async`/`await`" -msgstr "`async`/`wait`" +msgstr "`async`/`await`" #: src\SUMMARY.md:363 src\async/futures.md:1 msgid "Futures" @@ -1217,15 +1148,15 @@ msgstr "Блокування Виконавця" #: src\SUMMARY.md:373 src\async/pitfalls/pin.md:1 msgid "`Pin`" -msgstr "" +msgstr "`Pin`" #: src\SUMMARY.md:374 src\async/pitfalls/async-traits.md:1 msgid "Async Traits" -msgstr "Асинхронні Traits" +msgstr "Асинхронні Трейти" #: src\SUMMARY.md:375 src\async/pitfalls/cancellation.md:1 msgid "Cancellation" -msgstr "Анулювання" +msgstr "Скасування" #: src\SUMMARY.md:378 src\exercises/concurrency/chat-app.md:1 #: src\exercises/concurrency/solutions-afternoon.md:95 @@ -1242,7 +1173,7 @@ msgstr "Дякую!" #: src\SUMMARY.md:387 src\glossary.md:1 msgid "Glossary" -msgstr "" +msgstr "Глосарій" #: src\SUMMARY.md:388 msgid "Other Resources" @@ -1298,12 +1229,12 @@ msgid "" "The goal of the course is to teach you Rust. We assume you don't know " "anything about Rust and hope to:" msgstr "" -"Ціль курсу --- навчити вас мові Rust. Ми припускаємо, що ви нічого не знаєте " -"про Rust и сподіваємося:" +"Ціль курсу навчити вас мові Rust. Ми припускаємо, що ви нічого не знаєте про " +"Rust и сподіваємося:" #: src\index.md:18 msgid "Give you a comprehensive understanding of the Rust syntax and language." -msgstr "Дати повне уявлення про синтаксис та семантику Rust." +msgstr "Дати вам повне уявлення про синтаксис та семантику мови Rust." #: src\index.md:19 msgid "Enable you to modify existing programs and write new programs in Rust." @@ -1314,16 +1245,15 @@ msgid "Show you common Rust idioms." msgstr "Показати розповсюджені ідіоми мови Rust." #: src\index.md:22 -#, fuzzy msgid "We call the first four course days Rust Fundamentals." -msgstr "Перші три дні курсу ми називаємо Rust Fundamentals." +msgstr "Перші чотири дні курсу ми називаємо Rust Fundamentals." #: src\index.md:24 msgid "" "Building on this, you're invited to dive into one or more specialized topics:" msgstr "" -"Перші три дні познайомлять вас із основами Rust. Після цього вам " -"пропонується заглибитися в одну або кілька спеціалізованих тем:" +"Спираючись на це, вам пропонується зануритися в одну або кілька " +"спеціалізованих тем:" #: src\index.md:26 msgid "" @@ -1335,15 +1265,14 @@ msgstr "" "Java." #: src\index.md:28 -#, fuzzy msgid "" "[Chromium](chromium.md): a half-day course on using Rust within Chromium " "based browsers. This includes interoperability with C++ and how to include " "third-party crates in Chromium." msgstr "" -"[Android](android.md): розрахований на половину дня курс з використання Rust " -"для розробки на платформі Android (AOSP). Сюди входить взаємодія з C, C++ та " -"Java." +"[Chromium](chromium.md): розрахований на половину дня курс курс із " +"використання Rust у браузерах на основі Chromium. Сюди входить взаємодія з C+" +"+ та як включити крейти сторонніх розробників у Chromium." #: src\index.md:31 msgid "" @@ -1376,8 +1305,8 @@ msgid "" "Rust is a large language and we won't be able to cover all of it in a few " "days. Some non-goals of this course are:" msgstr "" -"Rust --- це об'ємна мова, і ми не зможемо охопити її за кілька днів. Теми, " -"що виходять за межі курсу:" +"Rust це об'ємна мова, і ми не зможемо охопити її за кілька днів. Теми, що " +"виходять за межі курсу:" #: src\index.md:45 msgid "" @@ -1385,9 +1314,9 @@ msgid "" "(https://doc.rust-lang.org/book/ch19-06-macros.html) and [Rust by Example]" "(https://doc.rust-lang.org/rust-by-example/macros.html) instead." msgstr "" -"Написання макросів, див. [Розділ 19.5 у The Rust Book](https://doc.rust-lang." -"org/book/ch19-06-macros.html) и [Rust by Example](https://doc.rust-lang.org/" -"rust-by-example/macros.html)." +"Написання макросів, будь ласка подивіться [Розділ 19.5 у The Rust Book]" +"(https://doc.rust-lang.org/book/ch19-06-macros.html) та [Rust by Example]" +"(https://doc.rust-lang.org/rust-by-example/macros.html)." #: src\index.md:49 msgid "Assumptions" @@ -1399,10 +1328,9 @@ msgid "" "statically-typed language and we will sometimes make comparisons with C and " "C++ to better explain or contrast the Rust approach." msgstr "" -"Передбачається, що ви вже можете програмувати. Rust --- це статично " -"типізована мова, і іноді ми порівнюватимемо і зіставлятимемо її з C і C++, " -"щоб краще пояснити чи підкреслити різницю у підходах до написання коду на " -"Rust." +"Передбачається, що ви вже можете програмувати. Rust це статично типізована " +"мова, і іноді ми порівнюватимемо і зіставлятимемо її з C та C++, щоб краще " +"пояснити чи підкреслити різницю у підходах до написання коду на Rust." #: src\index.md:55 msgid "" @@ -1410,7 +1338,7 @@ msgid "" "JavaScript, then you will be able to follow along just fine too." msgstr "" "Якщо ви знаєте, як програмувати мовою з динамічною типізацією, наприклад " -"Python або JavaScript, ви зможете успішно пройти цей курс." +"Python або JavaScript, ви зможете також успішно пройти цей курс." #: src\index.md:60 msgid "" @@ -1419,7 +1347,7 @@ msgid "" "should cover as well as answers to typical questions which come up in class." msgstr "" "Це приклад _нотаток для викладача_. Ми будемо використовувати їх для " -"додавання додаткову інформацію до слайдів. Це можуть бути ключові моменти, " +"додавання додаткової інформації до слайдів. Це можуть бути ключові моменти, " "які викладач повинен висвітлити, а також відповіді на типові питання, що " "виникають під час проходження курсу." @@ -1432,23 +1360,20 @@ msgid "" "Here is a bit of background information about how we've been running the " "course internally at Google." msgstr "" -"Ось коротка довідкова інформація про те, як ми проводили курс всередині " +"Ось коротка довідкова інформація про те, як ми проводили цей курс всередині " "Google." #: src\running-the-course.md:8 -#, fuzzy msgid "" "We typically run classes from 9:00 am to 4:00 pm, with a 1 hour lunch break " "in the middle. This leaves 3 hours for the morning class and 3 hours for the " "afternoon class. Both sessions contain multiple breaks and time for students " "to work on exercises." msgstr "" -"Зазвичай ми проводимо заняття з 10:00 до 16:00, з 1-годинною перервою на " -"обід посередині. Це залишає 2,5 години для ранкового заняття та 2,5 години " -"для післяобіднього. Зауважте, що це лише рекомендація: ви також можете " -"приділити 3 години ранковому заняттю, щоб дати людям більше часу для вправ. " -"Недоліком довшого заняття є те, що люди можуть дуже втомитися після 6 повних " -"годин занять у другій половині дня." +"Зазвичай ми проводимо заняття з 9:00 до 16:00, з 1-годинною перервою на обід " +"посередині. Це залишає 3 години для ранкового заняття та 3 години для " +"післяобіднього заняття. Обидві сесії містять кілька перерв і час для роботи " +"студентів над вправами." #: src\running-the-course.md:13 msgid "Before you run the course, you will want to:" @@ -1464,24 +1389,22 @@ msgid "" msgstr "" "Ознайомитись з матеріалами курсу. Ми додали нотатки для викладача на деяких " "сторінках, щоб виділити ключові моменти (будь ласка, допомагайте нам, " -"додаючи свої нотатки для викладачів!). Переконайтеся, що відкрили нотатки " -"для викладача у спливаючому вікні (натисніть на посилання з маленькою " -"стрілкою поруч з ”Нотатки для викладача”). У вас відкриється окреме вікно із " -"замітками для викладача, в той час, як основне вікно ви можете демонструвати " -"класу." +"додаючи свої нотатки для викладачів!). Під час презентації переконайтеся, що " +"відкрили нотатки для викладача у спливаючому вікні (натисніть на посилання з " +"маленькою стрілкою поруч з \"Нотатки для викладача\"). Таким чином ви " +"матимете чистий екран, який можна представити класу." #: src\running-the-course.md:21 -#, fuzzy msgid "" "Decide on the dates. Since the course takes four days, we recommend that you " "schedule the days over two weeks. Course participants have said that they " "find it helpful to have a gap in the course since it helps them process all " "the information we give them." msgstr "" -"Визначитись з датами. Оскільки курс вимагає щонайменше три дні, ми " -"рекомендуємо вам запланувати три дні протягом двох тижнів. На наш досвід, " -"учасники курсу вважають корисною наявність перерв, оскільки це допомагає їм " -"краще осмислити інформацію." +"Визначитись з датами. Оскільки курс вимагає щонайменше чотири дні, ми " +"рекомендуємо вам запланувати ці дні протягом двох тижнів. Учасники курсу " +"сказали, що вони вважають корисним наявність прогалин у курсі, оскільки це " +"допомагає їм обробити всю інформацію, яку ми їм надаємо." #: src\running-the-course.md:26 msgid "" @@ -1495,8 +1418,11 @@ msgid "" msgstr "" "Знайти приміщення досить просторе для очної участі. Ми рекомендуємо, щоб у " "класі було 15-20 чоловік. Це досить небагато для того, щоб людям було " -"комфортно ставити запитання, а у викладача залишився час на те, щоб на них " -"відповідати." +"комфортно ставити запитання --- також достатньо мало, щоб один інструктор " +"мав час відповісти на запитання. Переконайтеся, що в кімнаті є _парти_ для " +"вас і для студентів: ви всі повинні мати можливість сидіти і працювати за " +"своїми ноутбуками. Зокрема, ви будете виконувати багато програмування в " +"реальному часі як інструктор, тому кафедра вам не дуже допоможе." #: src\running-the-course.md:34 msgid "" @@ -1508,11 +1434,12 @@ msgid "" "you or the course participants spot them." msgstr "" "У день заняття приходьте в кімнату трохи раніше, щоби все підготувати. Ми " -"рекомендуємо показувати слайди, використовуючи `mdbook serve`, запущеного на " -"вашому ноутбуці (див. [installation instructions](https://github.com/google/" -"comprehensive-rust#building)). Це забезпечує оптимальну продуктивність без " -"затримок під час зміни сторінок. Використання ноутбука також дозволить вам " -"виправляти друкарські помилки в міру їх виявлення вами або учасниками курсу." +"рекомендуємо презентувати безпосередньо за допомогою `mdbook serve`, " +"запущеного на вашому ноутбуці (дивиться [installation instructions](https://" +"github.com/google/comprehensive-rust#building)). Це забезпечує оптимальну " +"продуктивність без затримок під час зміни сторінок. Використання ноутбука " +"також дозволить вам виправляти друкарські помилки в міру їх виявлення вами " +"або учасниками курсу." #: src\running-the-course.md:40 msgid "" @@ -1526,11 +1453,11 @@ msgid "" msgstr "" "Дозвольте учасникам вирішувати вправи самостійно або у невеликих групах. " "Зазвичай ми приділяємо вправам по 30-45 хвилин вранці та у другій половині " -"дня (включаючи час на розбір рішень). Обов'язково запитайте, чи не мають " -"вони труднощів і чи є щось, з чим ви можете допомогти. Коли ви бачите, що у " -"кількох людей одна і та ж проблема, повідомте про цей клас і запропонуйте " -"рішення, наприклад, показавши, де знайти відповідну інформацію у стандартній " -"бібліотеці." +"дня (включаючи час на розбір рішень). Обов'язково запитуйте людей, чи не " +"мають вони труднощів і чи є щось, з чим ви можете допомогти. Коли ви бачите, " +"що у кількох людей одна і та ж проблема, повідомте про цей клас і " +"запропонуйте рішення, наприклад, показавши, де знайти відповідну інформацію " +"у стандартній бібліотеці." #: src\running-the-course.md:48 msgid "" From d4dc1935e26fa718e8a98aadb40cbe733216e8d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:24:05 +0000 Subject: [PATCH 02/13] build(deps): bump anyhow from 1.0.76 to 1.0.79 (#1653) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.76 to 1.0.79.
Release notes

Sourced from anyhow's releases.

1.0.79

  • Work around improperly cached build script result by sccache (#340)

1.0.78

  • Reduce spurious rebuilds under RustRover IDE when using a nightly toolchain (#337)

1.0.77

Commits
  • 71ab53d Release 1.0.79
  • 60705a5 Merge pull request #340 from dtolnay/depinfo
  • 17e252b Include env-dep:RUSTC_BOOTSTRAP in dep-info for sccache
  • 04774c0 Merge pull request #338 from dtolnay/nightlyci
  • 1fd290c Make CI verify that error_generic_member_access works in latest nightly
  • ee41470 RUSTC must be set by Cargo for build script
  • 38c79ef Release 1.0.78
  • ded2295 Merge pull request #337 from dtolnay/bootstrap
  • ae45b67 Do not rebuild on RUSTC_BOOTSTRAP changes on nightly compiler
  • 2d32366 Update crate name used for build script probe
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=anyhow&package-manager=cargo&previous-version=1.0.76&new-version=1.0.79)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- mdbook-course/Cargo.toml | 2 +- mdbook-exerciser/Cargo.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4f62d7c81a32..181eaac354d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,9 +124,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "autocfg" diff --git a/mdbook-course/Cargo.toml b/mdbook-course/Cargo.toml index 64ed83666086..a77dd3690705 100644 --- a/mdbook-course/Cargo.toml +++ b/mdbook-course/Cargo.toml @@ -9,7 +9,7 @@ repository = "https://github.com/google/comprehensive-rust" description = "An mdbook preprocessor for comprehensive-rust." [dependencies] -anyhow = "1.0.68" +anyhow = "1.0.79" clap = "4.4.12" lazy_static = "1.4" log = "0.4.17" diff --git a/mdbook-exerciser/Cargo.toml b/mdbook-exerciser/Cargo.toml index 5894d3eb1643..61cc505856fd 100644 --- a/mdbook-exerciser/Cargo.toml +++ b/mdbook-exerciser/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/google/comprehensive-rust" description = "A tool for extracting starter code for exercises from Markdown files." [dependencies] -anyhow = "1.0.68" +anyhow = "1.0.79" log = "0.4.17" mdbook = "0.4.25" pretty_env_logger = "0.5.0" From d89bd02408dd1d4c0d0f32bf177a67f761dd12f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:25:21 +0000 Subject: [PATCH 03/13] build(deps): bump thiserror from 1.0.53 to 1.0.56 (#1655) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.53 to 1.0.56.
Release notes

Sourced from thiserror's releases.

1.0.56

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache

1.0.55

  • Work around improperly cached build script result by sccache – second attempt (#280)

1.0.54

  • Work around improperly cached build script result by sccache – first attempt (#279)
Commits
  • 77d0af4 Release 1.0.56
  • d4caabd Pull in proc-macro2 sccache fix
  • 6089273 Release 1.0.55
  • 322a2ae Merge pull request #280 from dtolnay/depinfo
  • fd7d7a5 Emit dep-info for probe.rs in case sccache needs it
  • 447c328 Release 1.0.54
  • 4619db8 Merge pull request #279 from dtolnay/depinfo
  • 7b53bff Make env-dep:RUSTC_BOOTSTRAP get listed in probe's dep-info
  • e0500ad Merge pull request #277 from dtolnay/nightlyci
  • 48cea47 Make CI verify that error_generic_member_access works in latest nightly
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=thiserror&package-manager=cargo&previous-version=1.0.53&new-version=1.0.56)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 52 ++++++++++++++++++++-------------------- src/exercises/Cargo.toml | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 181eaac354d3..131bd2dc2cf1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -419,7 +419,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -446,7 +446,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -463,7 +463,7 @@ checksum = "5c6888cd161769d65134846d4d4981d5a6654307cc46ec83fb917e530aea5f84" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -695,7 +695,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -808,7 +808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "005e4cb962c56efd249bdeeb4ac232b11e1c45a2e49793bba2b2982dcc3f2e9d" dependencies = [ "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1352,7 +1352,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1486,7 +1486,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1577,7 +1577,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1650,7 +1650,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1688,7 +1688,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1760,9 +1760,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.70" +version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" dependencies = [ "unicode-ident", ] @@ -1780,9 +1780,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -2048,7 +2048,7 @@ checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -2249,9 +2249,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.42" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -2338,22 +2338,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.53" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.53" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -2398,7 +2398,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -2717,7 +2717,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", "wasm-bindgen-shared", ] @@ -2751,7 +2751,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2972,7 +2972,7 @@ checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] diff --git a/src/exercises/Cargo.toml b/src/exercises/Cargo.toml index db073bfe3aa7..2af8a420bc9f 100644 --- a/src/exercises/Cargo.toml +++ b/src/exercises/Cargo.toml @@ -15,7 +15,7 @@ path = "concurrency/link-checker.rs" [dependencies] reqwest = { version = "0.11.12", features = ["blocking"] } scraper = "0.18.0" -thiserror = "1.0.53" +thiserror = "1.0.56" [dev-dependencies] tempfile = "3.9.0" From a076650faf65a2875f03540b4a211c68a99d4531 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:25:58 +0000 Subject: [PATCH 04/13] build(deps): bump cxx from 1.0.111 to 1.0.114 (#1654) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [cxx](https://github.com/dtolnay/cxx) from 1.0.111 to 1.0.114.
Release notes

Sourced from cxx's releases.

1.0.114

1.0.113

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache

1.0.112

  • Documentation improvements
Commits
  • e6184c2 Release 1.0.114
  • 6d4a51b Wrap PR 1298 to 80 columns
  • b247712 Merge pull request #1298 from adamchalmers/achalmers/document-how-to-implemen...
  • f0fa65a Merge pull request #1294 from dtolnay/bzlmod
  • 752d043 Switch to bzlmod
  • 17f46ec Replace http_archive sha256 argument with integrity argument
  • 08ce722 Document how to implement VectorElement
  • 08711cd Bazel rules_rust 0.36.2
  • 2dc00a4 Release 1.0.113
  • 71dcb59 Lockfile update
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cxx&package-manager=cargo&previous-version=1.0.111&new-version=1.0.114)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 131bd2dc2cf1..17b56a27a3f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -424,9 +424,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.111" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9fc0c733f71e58dedf4f034cd2a266f80b94cc9ed512729e1798651b68c2cba" +checksum = "2ed3a27153f220bb42b96005947ca3b87266cfdae5b4b4d703642c3a565e9708" dependencies = [ "cc", "cxxbridge-flags", @@ -451,15 +451,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.111" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8511afbe34ea242697784da5cb2c5d4a0afb224ca8b136bdf93bfe180cbe5884" +checksum = "b6981d27196cca89f82c8a89fd495cca25066d2933c974e907f7c3699801e112" [[package]] name = "cxxbridge-macro" -version = "1.0.111" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6888cd161769d65134846d4d4981d5a6654307cc46ec83fb917e530aea5f84" +checksum = "ca7e7d41b675af76ee4844e8e4c1cec70b65555dbc4852eae7b11c9cd5525d60" dependencies = [ "proc-macro2", "quote", From bf27be4c2ce4d79fd7e8e2457643eb2d8fefe153 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:26:16 +0000 Subject: [PATCH 05/13] build(deps): bump cxx-build from 1.0.111 to 1.0.114 (#1656) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [cxx-build](https://github.com/dtolnay/cxx) from 1.0.111 to 1.0.114.
Release notes

Sourced from cxx-build's releases.

1.0.114

1.0.113

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache

1.0.112

  • Documentation improvements
Commits
  • e6184c2 Release 1.0.114
  • 6d4a51b Wrap PR 1298 to 80 columns
  • b247712 Merge pull request #1298 from adamchalmers/achalmers/document-how-to-implemen...
  • f0fa65a Merge pull request #1294 from dtolnay/bzlmod
  • 752d043 Switch to bzlmod
  • 17f46ec Replace http_archive sha256 argument with integrity argument
  • 08ce722 Document how to implement VectorElement
  • 08711cd Bazel rules_rust 0.36.2
  • 2dc00a4 Release 1.0.113
  • 71dcb59 Lockfile update
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cxx-build&package-manager=cargo&previous-version=1.0.111&new-version=1.0.114)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 17b56a27a3f0..7d510664c736 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -436,9 +436,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.111" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51bc81d2664db24cf1d35405f66e18a85cffd4d49ab930c71a5c6342a410f38c" +checksum = "005721caedeb9869792e656d567695281c7e2bf2ac022d4ed95e5240b215f44d" dependencies = [ "cc", "codespan-reporting", From a5f4c92b34402c4726f24fc890daf0f6a95cdbc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:27:41 +0000 Subject: [PATCH 06/13] build(deps): bump serde_yaml from 0.9.29 to 0.9.30 (#1657) Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml) from 0.9.29 to 0.9.30.
Release notes

Sourced from serde_yaml's releases.

0.9.30

  • Update proc-macro2 to fix caching issue when using a rustc-wrapper such as sccache
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=serde_yaml&package-manager=cargo&previous-version=0.9.29&new-version=0.9.30)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d510664c736..66d58d249c80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2033,18 +2033,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.194" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" dependencies = [ "proc-macro2", "quote", @@ -2076,9 +2076,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.29" +version = "0.9.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15e0ef66bf939a7c890a0bf6d5a733c70202225f9888a89ed5c62298b019129" +checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" dependencies = [ "indexmap", "itoa", From 0e8d3e77c2e62ed0c5a1496f9f1d828edede569d Mon Sep 17 00:00:00 2001 From: Martin Geisler Date: Fri, 5 Jan 2024 15:56:18 +0100 Subject: [PATCH 07/13] Update `mdbook` and `mdbook-i18n-helpers` (#1658) This also ports over the `mdbook` theme changes between version 0.4.35 and 0.4.36. --- .github/workflows/install-mdbook/action.yml | 4 ++-- theme/index.hbs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/install-mdbook/action.yml b/.github/workflows/install-mdbook/action.yml index 27e73293a39d..caf23fdfa84b 100644 --- a/.github/workflows/install-mdbook/action.yml +++ b/.github/workflows/install-mdbook/action.yml @@ -8,7 +8,7 @@ runs: # The --locked flag is important for reproducible builds. It also # avoids breakage due to skews between mdbook and mdbook-svgbob. - name: Install mdbook - run: cargo install mdbook --locked --version 0.4.35 + run: cargo install mdbook --locked --version 0.4.36 shell: bash - name: Install mdbook-svgbob @@ -16,7 +16,7 @@ runs: shell: bash - name: Install mdbook-i18n-helpers - run: cargo install mdbook-i18n-helpers --locked --version 0.3.0 + run: cargo install mdbook-i18n-helpers --locked --version 0.3.1 shell: bash - name: Install mdbook-exerciser diff --git a/theme/index.hbs b/theme/index.hbs index 1b99ce294ef8..6b4ece2c69b7 100644 --- a/theme/index.hbs +++ b/theme/index.hbs @@ -112,7 +112,9 @@ - + From 10775c940db64c0bc17d0bc65c28911cb3f54fc6 Mon Sep 17 00:00:00 2001 From: Henri Fontana Date: Fri, 5 Jan 2024 12:42:57 -0800 Subject: [PATCH 08/13] ko: cr2 Concurrency translations --- po/ko.po | 692 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 531 insertions(+), 161 deletions(-) diff --git a/po/ko.po b/po/ko.po index 7c8553a1eab5..2b2b61001974 100644 --- a/po/ko.po +++ b/po/ko.po @@ -2900,8 +2900,9 @@ msgid "\"final sentence: {}\"" msgstr "" #: src/types-and-values/strings.md:18 src/async/control-flow/join.md:30 +#, fuzzy msgid "\"{:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/types-and-values/strings.md:19 msgid "//println!(\"{:?}\", &sentence[12..13]);\n" @@ -3263,8 +3264,9 @@ msgid "\"hello\"" msgstr "" #: src/control-flow-basics/blocks-and-scopes.md:35 +#, fuzzy msgid "\"inner scope: {a}\"" -msgstr "" +msgstr "'우승자: {winner:?}'" #: src/control-flow-basics/blocks-and-scopes.md:38 msgid "\"shadowed in inner scope: {a}\"" @@ -4001,12 +4003,14 @@ msgid "// <-- the comment makes rustfmt add a newline\n" msgstr "" #: src/tuples-and-arrays/exercise.md:42 src/tuples-and-arrays/solution.md:39 +#, fuzzy msgid "\"matrix: {:#?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/tuples-and-arrays/exercise.md:44 src/tuples-and-arrays/solution.md:41 +#, fuzzy msgid "\"transposed: {:#?}\"" -msgstr "" +msgstr "'잘못된 URL: {:#?}'" #: src/tuples-and-arrays/solution.md:17 src/tuples-and-arrays/solution.md:25 msgid "//\n" @@ -4709,8 +4713,9 @@ msgid "\"The car has arrived on the ground floor: {:?}\"" msgstr "" #: src/user-defined-types/exercise.md:56 src/user-defined-types/solution.md:71 +#, fuzzy msgid "\"The car door opened: {:?}\"" -msgstr "" +msgstr "'수신됨: {:?}'" #: src/user-defined-types/exercise.md:58 src/user-defined-types/solution.md:73 msgid "\"A passenger has pressed the 3rd floor button: {:?}\"" @@ -4926,8 +4931,9 @@ msgstr "" "를 실행할 수 있습니다:" #: src/pattern-matching/let-control-flow.md:24 +#, fuzzy msgid "\"slept for {:?}\"" -msgstr "" +msgstr "'{}밀리초 동안 절전 모드'" #: src/pattern-matching/let-control-flow.md:33 #, fuzzy @@ -4959,8 +4965,9 @@ msgstr "" #: src/pattern-matching/let-control-flow.md:62 #: src/pattern-matching/solution.md:113 +#, fuzzy msgid "\"result: {:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/pattern-matching/let-control-flow.md:62 #: src/methods-and-traits/exercise.md:114 @@ -5109,8 +5116,9 @@ msgid "\"division by zero\"" msgstr "" #: src/pattern-matching/solution.md:112 +#, fuzzy msgid "\"expr: {:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/methods-and-traits/methods.md:3 msgid "" @@ -5345,8 +5353,9 @@ msgid "// Debug trait adds support for printing with `{:?}`.\n" msgstr "" #: src/methods-and-traits/deriving.md:19 +#, fuzzy msgid "\"{:?} vs. {:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/methods-and-traits/deriving.md:25 msgid "" @@ -5364,8 +5373,9 @@ msgstr "" "니다:" #: src/methods-and-traits/trait-objects.md:36 +#, fuzzy msgid "\"Hello, who are you? {}\"" -msgstr "" +msgstr "b'누구세요?\\n'" #: src/methods-and-traits/trait-objects.md:41 msgid "Memory layout after allocating `pets`:" @@ -5590,8 +5600,9 @@ msgstr "" #: src/methods-and-traits/exercise.md:27 src/methods-and-traits/solution.md:8 #: src/modules/solution.md:39 +#, fuzzy msgid "/// Draw the widget into a buffer.\n" -msgstr "" +msgstr "// 원시 TCP 스트림을 websocket에 래핑합니다.\n" #: src/methods-and-traits/exercise.md:30 src/methods-and-traits/solution.md:11 #: src/modules/solution.md:42 @@ -5727,12 +5738,14 @@ msgid "/// Pick `even` or `odd` depending on the value of `n`.\n" msgstr "" #: src/generics/generic-functions.md:17 +#, fuzzy msgid "\"picked a number: {:?}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/generics/generic-functions.md:18 +#, fuzzy msgid "\"picked a tuple: {:?}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/generics/generic-functions.md:18 msgid "\"dog\"" @@ -5781,8 +5794,9 @@ msgid "\"{integer:?} and {float:?}\"" msgstr "" #: src/generics/generic-data.md:24 +#, fuzzy msgid "\"coords: {:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/generics/generic-data.md:30 msgid "" @@ -5840,8 +5854,9 @@ msgid "// struct NotClonable;\n" msgstr "" #: src/generics/trait-bounds.md:18 +#, fuzzy msgid "\"{pair:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/generics/trait-bounds.md:24 msgid "Try making a `NonClonable` and passing it to `duplicate`." @@ -6387,8 +6402,9 @@ msgid "// Retain only the even elements.\n" msgstr "" #: src/std-types/vec.md:21 src/std-types/vec.md:25 +#, fuzzy msgid "\"{v3:?}\"" -msgstr "" +msgstr "'v: {v:?}'" #: src/std-types/vec.md:23 msgid "// Remove consecutive duplicates.\n" @@ -6598,16 +6614,18 @@ msgid "" msgstr "" #: src/std-types/exercise.md:27 src/std-types/solution.md:13 +#, fuzzy msgid "/// Create a new Counter.\n" -msgstr "" +msgstr "// 포크 만들기\n" #: src/std-types/exercise.md:34 src/std-types/solution.md:18 msgid "/// Count an occurrence of the given value.\n" msgstr "" #: src/std-types/exercise.md:43 src/std-types/solution.md:23 +#, fuzzy msgid "/// Return the number of times the given value has been seen.\n" -msgstr "" +msgstr "/// 주어진 페이지 내의 링크를 추출해야 하는지 여부를 결정합니다.\n" #: src/std-types/exercise.md:59 src/std-types/solution.md:39 msgid "\"saw {} values equal to {}\"" @@ -6880,8 +6898,9 @@ msgid "\"World\"" msgstr "" #: src/std-traits/read-and-write.md:37 +#, fuzzy msgid "\"Logged: {:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/std-traits/default.md:1 msgid "The `Default` Trait" @@ -7068,8 +7087,9 @@ msgid "\"Hi\"" msgstr "" #: src/std-traits/closures.md:67 +#, fuzzy msgid "\"there\"" -msgstr "" +msgstr "'hi\\nthere\\n'" #: src/std-traits/exercise.md:3 msgid "" @@ -7696,16 +7716,18 @@ msgstr "" #: src/memory-management/drop.md:18 #: src/exercises/concurrency/link-checker.md:93 #: src/exercises/concurrency/solutions-morning.md:125 +#, fuzzy msgid "\"a\"" -msgstr "" +msgstr "'플라톤'" #: src/memory-management/drop.md:20 src/testing/googletest.md:12 msgid "\"b\"" msgstr "" #: src/memory-management/drop.md:22 +#, fuzzy msgid "\"c\"" -msgstr "" +msgstr "'틱!'" #: src/memory-management/drop.md:23 msgid "\"d\"" @@ -7855,8 +7877,9 @@ msgid "\"0.4\"" msgstr "" #: src/memory-management/exercise.md:80 src/memory-management/solution.md:86 +#, fuzzy msgid "\"log: {log:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/memory-management/exercise.md:81 src/memory-management/solution.md:87 msgid "\"serde\"" @@ -7871,8 +7894,9 @@ msgid "\"4.0\"" msgstr "" #: src/memory-management/exercise.md:87 src/memory-management/solution.md:93 +#, fuzzy msgid "\"serde: {serde:?}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/memory-management/solution.md:45 msgid "\"0.1\"" @@ -7915,8 +7939,9 @@ msgid "/// An empty list.\n" msgstr "" #: src/smart-pointers/box.md:44 src/smart-pointers/box.md:97 +#, fuzzy msgid "\"{list:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/smart-pointers/box.md:48 #, fuzzy @@ -8647,8 +8672,9 @@ msgid "// What is the lifetime of p3?\n" msgstr "" #: src/slices-and-lifetimes/lifetime-annotations.md:37 +#, fuzzy msgid "\"p3: {p3:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/slices-and-lifetimes/lifetime-annotations.md:43 msgid "" @@ -8759,12 +8785,14 @@ msgid "// erase(text);\n" msgstr "" #: src/slices-and-lifetimes/struct-lifetimes.md:18 +#, fuzzy msgid "\"{fox:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/slices-and-lifetimes/struct-lifetimes.md:19 +#, fuzzy msgid "\"{dog:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/slices-and-lifetimes/struct-lifetimes.md:25 msgid "" @@ -8828,8 +8856,9 @@ msgid "" msgstr "" #: src/slices-and-lifetimes/exercise.md:13 +#, fuzzy msgid "We'll use the following proto:" -msgstr "" +msgstr "다음과 같은 `Cargo.toml`을 사용할 수 있습니다." #: src/slices-and-lifetimes/exercise.md:28 msgid "" @@ -9984,8 +10013,9 @@ msgid "// This is the buggy version that appears in the problem.\n" msgstr "" #: src/testing/solution.md:27 +#, fuzzy msgid "// This is the solution and passes all of the tests below.\n" -msgstr "" +msgstr "// TODO: 힌트는 아래의 작업 설명을 참고하세요.\n" #: src/testing/solution.md:56 msgid "\"1234 5678 1234 5670\"" @@ -10138,8 +10168,9 @@ msgid "\"config.dat\"" msgstr "" #: src/error-handling/try.md:44 src/error-handling/try-conversions.md:66 +#, fuzzy msgid "\"username or error: {username:?}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/error-handling/try.md:50 msgid "Simplify the `read_username` function to use `?`." @@ -10186,8 +10217,9 @@ msgstr "" "하고 있습니다:" #: src/error-handling/try-conversions.md:42 +#, fuzzy msgid "\"IO error: {e}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/error-handling/try-conversions.md:43 msgid "\"Found no username in {path}\"" @@ -10252,12 +10284,14 @@ msgid "\"1i3\"" msgstr "" #: src/error-handling/error.md:22 +#, fuzzy msgid "\"Count: {count}\"" -msgstr "" +msgstr "'수: {i}개!'" #: src/error-handling/error.md:23 +#, fuzzy msgid "\"Error: {err}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/error-handling/error.md:30 msgid "" @@ -10298,24 +10332,28 @@ msgid "" msgstr "" #: src/error-handling/thiserror-and-anyhow.md:16 +#, fuzzy msgid "\"Found no username in {0}\"" -msgstr "" +msgstr "'링크를 추출할 수 없습니다: {err:#}'" #: src/error-handling/thiserror-and-anyhow.md:22 +#, fuzzy msgid "\"Failed to open {path}\"" -msgstr "" +msgstr "'고양이를 보내지 못했습니다.'" #: src/error-handling/thiserror-and-anyhow.md:24 +#, fuzzy msgid "\"Failed to read\"" -msgstr "" +msgstr "'고양이를 보내지 못했습니다.'" #: src/error-handling/thiserror-and-anyhow.md:34 msgid "\"Username: {username}\"" msgstr "" #: src/error-handling/thiserror-and-anyhow.md:35 +#, fuzzy msgid "\"Error: {err:?}\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/error-handling/thiserror-and-anyhow.md:42 #, fuzzy @@ -10464,16 +10502,18 @@ msgid "\"10+foo+20-30\"" msgstr "" #: src/error-handling/exercise.md:109 src/error-handling/solution.md:122 +#, fuzzy msgid "\"{expr:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/error-handling/solution.md:42 msgid "\"Unexpected character '{0}' in input\"" msgstr "" #: src/error-handling/solution.md:79 +#, fuzzy msgid "\"Tokenizer error: {0}\"" -msgstr "" +msgstr "'요청 오류: {0}'" #: src/error-handling/solution.md:83 msgid "\"Unexpected token {0:?}\"" @@ -10608,16 +10648,18 @@ msgstr "" "```" #: src/unsafe-rust/dereferencing.md:18 +#, fuzzy msgid "\"r1 is: {}\"" -msgstr "" +msgstr "'수: {i}개!'" #: src/unsafe-rust/dereferencing.md:19 msgid "\"uhoh\"" msgstr "" #: src/unsafe-rust/dereferencing.md:20 +#, fuzzy msgid "\"r2 is: {}\"" -msgstr "" +msgstr "'수: {i}개!'" #: src/unsafe-rust/dereferencing.md:23 msgid "" @@ -10815,8 +10857,9 @@ msgid "\"emoji: {}\"" msgstr "" #: src/unsafe-rust/unsafe-functions.md:24 +#, fuzzy msgid "\"char count: {}\"" -msgstr "" +msgstr "'수: {i}개!'" #: src/unsafe-rust/unsafe-functions.md:27 #, fuzzy @@ -11188,8 +11231,9 @@ msgid "\".\"" msgstr "" #: src/unsafe-rust/exercise.md:144 src/unsafe-rust/solution.md:117 +#, fuzzy msgid "\"files: {:#?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/unsafe-rust/solution.md:74 msgid "\"Invalid path: {err}\"" @@ -11200,8 +11244,9 @@ msgid "// SAFETY: path.as_ptr() cannot be NULL.\n" msgstr "" #: src/unsafe-rust/solution.md:78 +#, fuzzy msgid "\"Could not open {:?}\"" -msgstr "" +msgstr "'링크를 추출할 수 없습니다: {err:#}'" #: src/unsafe-rust/solution.md:88 msgid "" @@ -11224,8 +11269,9 @@ msgid "// SAFETY: self.dir is not NULL.\n" msgstr "" #: src/unsafe-rust/solution.md:109 +#, fuzzy msgid "\"Could not close {:?}\"" -msgstr "" +msgstr "'링크를 추출할 수 없습니다: {err:#}'" #: src/unsafe-rust/solution.md:128 msgid "\"no-such-directory\"" @@ -11769,8 +11815,9 @@ msgid "/// Entry point for birthday service.\n" msgstr "" #: src/android/aidl/server.md:23 +#, fuzzy msgid "\"Failed to register service\"" -msgstr "" +msgstr "'우승자를 수신하지 못했습니다.'" #: src/android/aidl/server.md:32 src/android/aidl/server.md:33 #, fuzzy @@ -11939,8 +11986,9 @@ msgid "\"Things are going fine.\"" msgstr "" #: src/android/logging.md:37 +#, fuzzy msgid "\"Something went wrong!\"" -msgstr "" +msgstr "'핑 핸들러 작업에 문제가 발생했습니다.'" #: src/android/logging.md:41 src/android/interoperability/with-c/bindgen.md:96 #: src/android/interoperability/with-c/rust.md:72 @@ -12516,8 +12564,9 @@ msgid "\"example/include/example.h\"" msgstr "" #: src/android/interoperability/cpp/cpp-exception.md:14 +#, fuzzy msgid "\"Error: {}\"" -msgstr "" +msgstr "'요청 오류: {0}'" #: src/android/interoperability/cpp/cpp-exception.md:22 msgid "" @@ -14281,8 +14330,9 @@ msgid "Lots" msgstr "" #: src/chromium/adding-third-party-crates.md:8 +#, fuzzy msgid "Consistent: `Cargo.toml`" -msgstr "" +msgstr "다음과 같은 `Cargo.toml`을 사용할 수 있습니다." #: src/chromium/adding-third-party-crates.md:9 msgid "Typical library size" @@ -15629,7 +15679,7 @@ msgstr "" #: src/bare-metal/microcontrollers/debugging.md:3 #, fuzzy msgid "_Embed.toml_:" -msgstr "Embed.toml:" +msgstr "_Cargo.toml_:" #: src/bare-metal/microcontrollers/debugging.md:15 msgid "In one terminal under `src/bare-metal/microcontrollers/examples/`:" @@ -15875,8 +15925,9 @@ msgid "Bare Metal Rust Morning Exercise" msgstr "Bare Metal Rust 오전 연습" #: src/exercises/bare-metal/solutions-morning.md:5 +#, fuzzy msgid "([back to exercise](compass.md))" -msgstr "" +msgstr "([연습문제로 돌아가기](chat-app.md))" #: src/exercises/bare-metal/solutions-morning.md:40 msgid "// Set up the I2C controller and Inertial Measurement Unit.\n" @@ -17267,8 +17318,9 @@ msgid "\"sync_exception_current\"" msgstr "" #: src/exercises/bare-metal/rtc.md:111 +#, fuzzy msgid "\"irq_current\"" -msgstr "" +msgstr "'current_thread'" #: src/exercises/bare-metal/rtc.md:113 msgid "\"No pending interrupt\"" @@ -17279,12 +17331,14 @@ msgid "\"IRQ {intid:?}\"" msgstr "" #: src/exercises/bare-metal/rtc.md:119 +#, fuzzy msgid "\"fiq_current\"" -msgstr "" +msgstr "'current_thread'" #: src/exercises/bare-metal/rtc.md:125 +#, fuzzy msgid "\"serr_current\"" -msgstr "" +msgstr "'current_thread'" #: src/exercises/bare-metal/rtc.md:131 msgid "\"sync_lower\"" @@ -17979,8 +18033,9 @@ msgid "Bare Metal Rust Afternoon" msgstr "전Bare Metal 오후" #: src/exercises/bare-metal/solutions-afternoon.md:5 +#, fuzzy msgid "([back to exercise](rtc.md))" -msgstr "" +msgstr "([연습문제로 돌아가기](chat-app.md))" #: src/exercises/bare-metal/solutions-afternoon.md:7 #, fuzzy @@ -18011,8 +18066,9 @@ msgstr "" #: src/exercises/bare-metal/solutions-afternoon.md:73 #: src/exercises/bare-metal/solutions-afternoon.md:91 +#, fuzzy msgid "\"Waiting for {}\"" -msgstr "" +msgstr "'{}밀리초 동안 절전 모드'" #: src/exercises/bare-metal/solutions-afternoon.md:75 #: src/exercises/bare-metal/solutions-afternoon.md:83 @@ -18163,11 +18219,11 @@ msgstr "러스트의 스레드는 다른 언어의 스레드와 유사하게 동 #: src/concurrency/threads.md:12 msgid "\"Count in thread: {i}!\"" -msgstr "" +msgstr "'스레드의 개수: {i}!'" #: src/concurrency/threads.md:18 msgid "\"Main thread: {i}\"" -msgstr "" +msgstr "'기본 스레드: {i}'" #: src/concurrency/threads.md:24 msgid "Threads are all daemon threads, the main thread does not wait for them." @@ -18259,7 +18315,7 @@ msgstr "" #: src/concurrency/channels.md:15 src/concurrency/channels.md:16 #: src/concurrency/channels.md:20 msgid "\"Received: {:?}\"" -msgstr "" +msgstr "'수신됨: {:?}'" #: src/concurrency/channels.md:26 msgid "" @@ -18286,22 +18342,22 @@ msgstr "`mpsc::channel()` 함수는 경계가 없는 비동기 채널을 생성 #: src/concurrency/channels/unbounded.md:16 #: src/concurrency/channels/bounded.md:16 msgid "\"Message {i}\"" -msgstr "" +msgstr "'메시지 {i}'" #: src/concurrency/channels/unbounded.md:17 #: src/concurrency/channels/bounded.md:17 msgid "\"{thread_id:?}: sent Message {i}\"" -msgstr "" +msgstr "'{thread_id:?}: 보낸 메시지 {i}'" #: src/concurrency/channels/unbounded.md:19 #: src/concurrency/channels/bounded.md:19 msgid "\"{thread_id:?}: done\"" -msgstr "" +msgstr "'{thread_id:?}: 완료'" #: src/concurrency/channels/unbounded.md:24 #: src/concurrency/channels/bounded.md:24 msgid "\"Main: got {msg}\"" -msgstr "" +msgstr "'기본: {msg} 받음'" #: src/concurrency/channels/bounded.md:3 #, fuzzy @@ -18315,18 +18371,25 @@ msgid "" "channel for the new message. The thread can be blocked indefinitely if there " "is nobody who reads from the channel." msgstr "" +"`send`를 호출하면 채널에 새 메시지를 위한 공간이 확보될 때까지 현재 스레드가 " +"차단됩니다. 채널에서 읽는 사람이 없는 경우 스레드가 무기한 차단될 수 있습니" +"다." #: src/concurrency/channels/bounded.md:34 msgid "" "A call to `send` will abort with an error (that is why it returns `Result`) " "if the channel is closed. A channel is closed when the receiver is dropped." msgstr "" +"`send` 호출은 오류와 함께 중단됩니다. 따라서 채널이 닫히면 `Result`를 반환합" +"니다. 수신자를 삭제하면 채널이 닫힙니다." #: src/concurrency/channels/bounded.md:36 msgid "" "A bounded channel with a size of zero is called a \"rendezvous channel\". " "Every send will block the current thread until another thread calls `read`." msgstr "" +"크기가 0인 제한된 채널을 'rendezvous 채널'이라고 합니다. 모든 전송은 다른 스" +"레드가 `read`를 호출할 때까지 현재 스레드를 차단합니다." #: src/concurrency/send-sync.md:3 #, fuzzy @@ -18592,13 +18655,13 @@ msgstr "" #: src/concurrency/shared_state/arc.md:16 msgid "\"{thread_id:?}: {v:?}\"" -msgstr "" +msgstr "'{thread_id:?}: {v:?}'" #: src/concurrency/shared_state/arc.md:21 #: src/concurrency/shared_state/example.md:17 #: src/concurrency/shared_state/example.md:45 msgid "\"v: {v:?}\"" -msgstr "" +msgstr "'v: {v:?}'" #: src/concurrency/shared_state/arc.md:29 #, fuzzy @@ -18654,7 +18717,7 @@ msgstr "" #: src/concurrency/shared_state/mutex.md:11 #: src/concurrency/shared_state/mutex.md:18 msgid "\"v: {:?}\"" -msgstr "" +msgstr "'v: {:?}'" #: src/concurrency/shared_state/mutex.md:22 msgid "" @@ -18734,7 +18797,7 @@ msgstr "`Arc`와 `Mutex`의 동작을 살펴봅시다:" #: src/concurrency/shared_state/example.md:6 msgid "// use std::sync::{Arc, Mutex};\n" -msgstr "" +msgstr "// std::sync::{Arc, Mutex}; 사용\n" #: src/concurrency/shared_state/example.md:23 msgid "Possible solution:" @@ -18831,26 +18894,29 @@ msgid "" " // right_fork: ...\n" " // thoughts: ...\n" msgstr "" +"// left_fork: ...\n" +" // right_fork: ...\n" +" // thoughts: ...\n" #: src/exercises/concurrency/dining-philosophers.md:36 #: src/exercises/concurrency/solutions-morning.md:24 #: src/exercises/concurrency/dining-philosophers-async.md:31 #: src/exercises/concurrency/solutions-afternoon.md:25 msgid "\"Eureka! {} has a new idea!\"" -msgstr "" +msgstr "'유레카! {}에 새로운 아이디어가 있습니다.'" #: src/exercises/concurrency/dining-philosophers.md:41 #: src/exercises/concurrency/dining-philosophers-async.md:37 #: src/exercises/concurrency/solutions-afternoon.md:31 msgid "// Pick up forks...\n" -msgstr "" +msgstr "// 포크를 드세요...\n" #: src/exercises/concurrency/dining-philosophers.md:42 #: src/exercises/concurrency/solutions-morning.md:33 #: src/exercises/concurrency/dining-philosophers-async.md:38 #: src/exercises/concurrency/solutions-afternoon.md:38 msgid "\"{} is eating...\"" -msgstr "" +msgstr "'{}님이 먹고 있습니다...'" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 @@ -18865,54 +18931,54 @@ msgstr "HAL 크레이트들" #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Hypatia\"" -msgstr "" +msgstr "'히파티아'" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Plato\"" -msgstr "" +msgstr "'플라톤'" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Aristotle\"" -msgstr "" +msgstr "'아리스토텔레스'" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Pythagoras\"" -msgstr "" +msgstr "'피타고라스'" #: src/exercises/concurrency/dining-philosophers.md:51 #: src/exercises/concurrency/dining-philosophers-async.md:48 #: src/exercises/concurrency/solutions-afternoon.md:50 msgid "// Create forks\n" -msgstr "" +msgstr "// 포크 만들기\n" #: src/exercises/concurrency/dining-philosophers.md:53 #: src/exercises/concurrency/dining-philosophers-async.md:50 #: src/exercises/concurrency/solutions-afternoon.md:54 msgid "// Create philosophers\n" -msgstr "" +msgstr "// 철학자 만들기\n" #: src/exercises/concurrency/dining-philosophers.md:55 msgid "// Make each of them think and eat 100 times\n" -msgstr "" +msgstr "// 각각 100번 생각하고 먹도록 합니다.\n" #: src/exercises/concurrency/dining-philosophers.md:57 #: src/exercises/concurrency/dining-philosophers-async.md:54 #: src/exercises/concurrency/solutions-afternoon.md:88 msgid "// Output their thoughts\n" -msgstr "" +msgstr "// 생각을 출력합니다.\n" #: src/exercises/concurrency/dining-philosophers.md:61 msgid "You can use the following `Cargo.toml`:" -msgstr "" +msgstr "다음과 같은 `Cargo.toml`을 사용할 수 있습니다." #: src/exercises/concurrency/dining-philosophers.md:65 msgid "" @@ -18923,6 +18989,12 @@ msgid "" "edition = \"2021\"\n" "```" msgstr "" +"```toml\n" +"[package]\n" +"name = \"dining-philosophers\"\n" +"version = \"0.1.0\"\n" +"edition = \"2021\"\n" +"```" #: src/exercises/concurrency/link-checker.md:3 msgid "" @@ -18987,6 +19059,19 @@ msgid "" "thiserror = \"1.0.37\"\n" "```" msgstr "" +"```toml\n" +"[package]\n" +"name = \"link-checker\"\n" +"version = \"0.1.0\"\n" +"edition = \"2021\"\n" +"publish = false\n" +"\n" +"[dependencies]\n" +"reqwest = { version = \"0.11.12\", features = [\"blocking\", \"rustls-" +"tls\"] }\n" +"scraper = \"0.13.0\"\n" +"thiserror = \"1.0.37\"\n" +"```" #: src/exercises/concurrency/link-checker.md:50 msgid "" @@ -19001,40 +19086,40 @@ msgstr "`rc/main.rs`파일은 아래와 같습니다:" #: src/exercises/concurrency/link-checker.md:65 #: src/exercises/concurrency/solutions-morning.md:97 msgid "\"request error: {0}\"" -msgstr "" +msgstr "'요청 오류: {0}'" #: src/exercises/concurrency/link-checker.md:67 #: src/exercises/concurrency/solutions-morning.md:99 msgid "\"bad http response: {0}\"" -msgstr "" +msgstr "'잘못된 http 응답: {0}'" #: src/exercises/concurrency/link-checker.md:78 #: src/exercises/concurrency/solutions-morning.md:110 msgid "\"Checking {:#}\"" -msgstr "" +msgstr "'{:#} 확인 중'" #: src/exercises/concurrency/link-checker.md:96 #: src/exercises/concurrency/solutions-morning.md:128 msgid "\"href\"" -msgstr "" +msgstr "'href'" #: src/exercises/concurrency/link-checker.md:103 #: src/exercises/concurrency/solutions-morning.md:135 msgid "\"On {base_url:#}: ignored unparsable {href:?}: {err}\"" -msgstr "" +msgstr "'{base_url:#}에서: 파싱할 수 없는 {href:?}: {err}을(를) 무시함'" #: src/exercises/concurrency/link-checker.md:112 #: src/exercises/concurrency/solutions-morning.md:245 msgid "\"https://www.google.org\"" -msgstr "" +msgstr "'https://www.google.org'" #: src/exercises/concurrency/link-checker.md:115 msgid "\"Links: {links:#?}\"" -msgstr "" +msgstr "'링크: {links:#?}'" #: src/exercises/concurrency/link-checker.md:116 msgid "\"Could not extract links: {err:#}\"" -msgstr "" +msgstr "'링크를 추출할 수 없습니다: {err:#}'" #: src/exercises/concurrency/link-checker.md:121 msgid "Run the code in `src/main.rs` with" @@ -19064,11 +19149,11 @@ msgstr "3일차 오전 연습문제" #: src/exercises/concurrency/solutions-morning.md:5 msgid "([back to exercise](dining-philosophers.md))" -msgstr "" +msgstr "([연습문제로 돌아가기](dining-philosophers.md)" #: src/exercises/concurrency/solutions-morning.md:29 msgid "\"{} is trying to eat\"" -msgstr "" +msgstr "'{}님이 식사를 하려고 합니다.'" #: src/exercises/concurrency/solutions-morning.md:53 msgid "" @@ -19076,10 +19161,14 @@ msgid "" " // somewhere. This will swap the forks without deinitializing\n" " // either of them.\n" msgstr "" +"// 교착 상태를 방지하려면 어딘가에서\n" +" // 대칭을 중단시켜야 합니다. 이렇게 하면 둘 중 어느 하나라도 초기화하" +"지 않고\n" +" // 포크가 교체됩니다.\n" #: src/exercises/concurrency/solutions-morning.md:77 msgid "\"{thought}\"" -msgstr "" +msgstr "'{thought}'" #: src/exercises/concurrency/solutions-morning.md:82 #, fuzzy @@ -19088,30 +19177,32 @@ msgstr "멀티스레드 링크 검사기" #: src/exercises/concurrency/solutions-morning.md:84 msgid "([back to exercise](link-checker.md))" -msgstr "" +msgstr "([연습문제로 돌아가기](link-checker.md))" #: src/exercises/concurrency/solutions-morning.md:154 msgid "" "/// Determine whether links within the given page should be extracted.\n" -msgstr "" +msgstr "/// 주어진 페이지 내의 링크를 추출해야 하는지 여부를 결정합니다.\n" #: src/exercises/concurrency/solutions-morning.md:162 msgid "" "/// Mark the given page as visited, returning false if it had already\n" " /// been visited.\n" msgstr "" +"/// 지정된 페이지를 방문한 것으로 표시하고 이미 방문한 경우\n" +" /// false를 반환합니다.\n" #: src/exercises/concurrency/solutions-morning.md:188 msgid "// The sender got dropped. No more commands coming in.\n" -msgstr "" +msgstr "// 발신자가 삭제되었습니다. 더 이상 명령어가 수신되지 않습니다.\n" #: src/exercises/concurrency/solutions-morning.md:229 msgid "\"Got crawling error: {:#}\"" -msgstr "" +msgstr "'크롤링 오류 발생: {:#}'" #: src/exercises/concurrency/solutions-morning.md:247 msgid "\"Bad URLs: {:#?}\"" -msgstr "" +msgstr "'잘못된 URL: {:#?}'" #: src/async.md:1 #, fuzzy @@ -19181,7 +19272,7 @@ msgstr "" #: src/async/async-await.md:10 msgid "\"Count is: {i}!\"" -msgstr "" +msgstr "'수: {i}개!'" #: src/async/async-await.md:27 msgid "" @@ -19396,11 +19487,11 @@ msgstr "대규모 라이브러리 생태계" #: src/async/runtimes/tokio.md:14 msgid "\"Count in task: {i}!\"" -msgstr "" +msgstr "'작업 개수: {i}개!'" #: src/async/runtimes/tokio.md:24 msgid "\"Main task: {i}\"" -msgstr "" +msgstr "'기본 작업: {i}'" #: src/async/runtimes/tokio.md:32 msgid "With the `tokio::main` macro we can now make `main` async." @@ -19459,28 +19550,31 @@ msgstr "" "는 것을 기다리는 것과 같은동시성도 구현할 수 있습니다." #: src/async/tasks.md:16 +#, fuzzy msgid "\"127.0.0.1:0\"" -msgstr "" +msgstr "'127.0.0.1:2000'" #: src/async/tasks.md:17 +#, fuzzy msgid "\"listening on port {}\"" -msgstr "" +msgstr "'포트 6142에서 수신 대기'" #: src/async/tasks.md:22 msgid "\"connection from {addr:?}\"" -msgstr "" +msgstr "'{addr:?}에서 연결'" #: src/async/tasks.md:25 msgid "b\"Who are you?\\n\"" -msgstr "" +msgstr "b'누구세요?\\n'" #: src/async/tasks.md:25 src/async/tasks.md:28 src/async/tasks.md:31 +#, fuzzy msgid "\"socket error\"" -msgstr "" +msgstr "'소켓 오류: {e:?}'" #: src/async/tasks.md:30 msgid "\"Thanks for dialing in, {name}!\\n\"" -msgstr "" +msgstr "'{name}님, 전화해 주셔서 감사합니다.\\n'" #: src/async/tasks.md:39 src/async/control-flow/join.md:36 msgid "" @@ -19495,6 +19589,9 @@ msgid "" "com/man-page/linux/1/nc/) or [telnet](https://www.unix.com/man-page/linux/1/" "telnet/)." msgstr "" +"[nc](https://www.unix.com/man-page/linux/1/nc/) 또는 [telnet](https://www." +"unix.com/man-page/linux/1/telnet/)과 같은 TCP 연결 도구를 사용하여 연결해 보" +"세요." #: src/async/tasks.md:45 msgid "" @@ -19531,23 +19628,23 @@ msgstr "" #: src/async/channels.md:13 msgid "\"Received {count} pings so far.\"" -msgstr "" +msgstr "'지금까지 핑 {count}개를 받았습니다.'" #: src/async/channels.md:16 msgid "\"ping_handler complete\"" -msgstr "" +msgstr "'ping_handler 완료'" #: src/async/channels.md:24 msgid "\"Failed to send ping.\"" -msgstr "" +msgstr "'핑을 보내지 못했습니다.'" #: src/async/channels.md:25 msgid "\"Sent {} pings so far.\"" -msgstr "" +msgstr "'지금까지 핑 {}개를 전송했습니다.'" #: src/async/channels.md:29 msgid "\"Something went wrong in ping handler task.\"" -msgstr "" +msgstr "'핑 핸들러 작업에 문제가 발생했습니다.'" #: src/async/channels.md:35 msgid "Change the channel size to `3` and see how it affects the execution." @@ -19621,19 +19718,19 @@ msgstr "" #: src/async/control-flow/join.md:21 msgid "\"https://google.com\"" -msgstr "" +msgstr "'https://google.com'" #: src/async/control-flow/join.md:22 msgid "\"https://httpbin.org/ip\"" -msgstr "" +msgstr "'https://httpbin.org/ip'" #: src/async/control-flow/join.md:23 msgid "\"https://play.rust-lang.org/\"" -msgstr "" +msgstr "'https://play.rust-lang.org/'" #: src/async/control-flow/join.md:24 msgid "\"BAD_URL\"" -msgstr "" +msgstr "'BAD_URL'" #: src/async/control-flow/join.md:38 msgid "" @@ -19697,27 +19794,27 @@ msgstr "" #: src/async/control-flow/select.md:39 msgid "\"Felix\"" -msgstr "" +msgstr "'펠릭스'" #: src/async/control-flow/select.md:39 msgid "\"Failed to send cat.\"" -msgstr "" +msgstr "'고양이를 보내지 못했습니다.'" #: src/async/control-flow/select.md:43 msgid "\"Rex\"" -msgstr "" +msgstr "'렉스'" #: src/async/control-flow/select.md:43 msgid "\"Failed to send dog.\"" -msgstr "" +msgstr "'개를 보내지 못했습니다.'" #: src/async/control-flow/select.md:48 msgid "\"Failed to receive winner\"" -msgstr "" +msgstr "'우승자를 수신하지 못했습니다.'" #: src/async/control-flow/select.md:50 msgid "\"Winner is {winner:?}\"" -msgstr "" +msgstr "'우승자: {winner:?}'" #: src/async/control-flow/select.md:56 #, fuzzy @@ -19768,6 +19865,8 @@ msgid "" "An alternative is to pass `&mut future` instead of the future itself, but " "this can lead to issues, further discussed in the pinning slide." msgstr "" +"대안은 future 자체 대신 `&mut future`를 전달하는 것입니다. 하지만 이렇게 하" +"면 문제가 발생할 수 있습니다(고정 슬라이드에서 자세히 설명함)." #: src/async/pitfalls.md:1 msgid "Pitfalls of async/await" @@ -19792,16 +19891,17 @@ msgstr "[실행자 차단](pitfalls/blocking-executor.md)" #: src/async/pitfalls.md:8 #, fuzzy msgid "[Pin](pitfalls/pin.md)" -msgstr "[고정](pitfalls/pin.md)" +msgstr "[취소](pitfalls/cancellation.md)" #: src/async/pitfalls.md:9 #, fuzzy msgid "[Async Traits](pitfalls/async-traits.md)" -msgstr "[비동기 트레잇](pitfall/async-traits.md)" +msgstr "[취소](pitfalls/cancellation.md)" #: src/async/pitfalls.md:10 +#, fuzzy msgid "[Cancellation](pitfalls/cancellation.md)" -msgstr "" +msgstr "[취소](pitfalls/cancellation.md)" #: src/async/pitfalls/blocking-executor.md:1 msgid "Blocking the executor" @@ -19822,10 +19922,12 @@ msgstr "" #: src/async/pitfalls/blocking-executor.md:14 msgid "\"future {id} slept for {duration_ms}ms, finished after {}ms\"" msgstr "" +"'future {id}은(는) {duration_ms}밀리초 동안 절전 모드였고 {}밀리초 후에 완료" +"됨'" #: src/async/pitfalls/blocking-executor.md:19 msgid "\"current_thread\"" -msgstr "" +msgstr "'current_thread'" #: src/async/pitfalls/blocking-executor.md:29 msgid "" @@ -19913,38 +20015,40 @@ msgid "" "// A work item. In this case, just sleep for the given time and respond\n" "// with a message on the `respond_on` channel.\n" msgstr "" +"// 작업 항목. 이 경우 지정된 시간 동안 절전 모드이고\n" +"// `respond_on` 채널의 메시지로 응답합니다.\n" #: src/async/pitfalls/pin.md:24 msgid "// A worker which listens for work on a queue and performs it.\n" -msgstr "" +msgstr "// 큐에서 작업을 수신 대기하고 실행하는 worker입니다.\n" #: src/async/pitfalls/pin.md:31 msgid "// Pretend to work.\n" -msgstr "" +msgstr "// 작업하는 척합니다.\n" #: src/async/pitfalls/pin.md:34 msgid "\"failed to send response\"" -msgstr "" +msgstr "'응답을 보내지 못했습니다.'" #: src/async/pitfalls/pin.md:37 msgid "// TODO: report number of iterations every 100ms\n" -msgstr "" +msgstr "// TODO: 100밀리초마다 반복 횟수를 보고합니다.\n" #: src/async/pitfalls/pin.md:41 msgid "// A requester which requests work and waits for it to complete.\n" -msgstr "" +msgstr "// 작업을 요청하고 작업이 완료되기를 기다리는 요청자입니다.\n" #: src/async/pitfalls/pin.md:48 msgid "\"failed to send on work queue\"" -msgstr "" +msgstr "'작업 큐에서 전송하지 못했습니다.'" #: src/async/pitfalls/pin.md:49 msgid "\"failed waiting for response\"" -msgstr "" +msgstr "'응답 대기 실패'" #: src/async/pitfalls/pin.md:58 msgid "\"work result for iteration {i}: {resp}\"" -msgstr "" +msgstr "'반복 작업 결과 {i}: {resp}'" #: src/async/pitfalls/pin.md:65 msgid "" @@ -20032,11 +20136,11 @@ msgstr "" #: src/async/pitfalls/async-traits.md:35 msgid "\"running all sleepers..\"" -msgstr "" +msgstr "'모든 수면자를 실행'" #: src/async/pitfalls/async-traits.md:39 msgid "\"slept for {}ms\"" -msgstr "" +msgstr "'{}밀리초 동안 절전 모드'" #: src/async/pitfalls/async-traits.md:56 msgid "" @@ -20075,6 +20179,10 @@ msgid "" "ensure the system works correctly even when futures are cancelled. For " "example, it shouldn't deadlock or lose data." msgstr "" +"future가 누락되면 다시 폴링할 수 없다는 의미입니다. 이를 _취소_라고 하며, " +"`await` 지점에서 발생할 수 있습니다. future가 취소되더라도 시스템이 올바르게 " +"작동할 수 있도록 주의를 기울여야 합니다. 예를 들어 교착 상태가 되거나 데이터" +"가 손실되면 안 됩니다." #: src/async/pitfalls/cancellation.md:35 #, fuzzy @@ -20083,43 +20191,49 @@ msgstr "UTF-8" #: src/async/pitfalls/cancellation.md:51 msgid "\"hi\\nthere\\n\"" -msgstr "" +msgstr "'hi\\nthere\\n'" #: src/async/pitfalls/cancellation.md:57 msgid "\"tick!\"" -msgstr "" +msgstr "'틱!'" #: src/async/pitfalls/cancellation.md:72 msgid "" "The compiler doesn't help with cancellation-safety. You need to read API " "documentation and consider what state your `async fn` holds." msgstr "" +"컴파일러는 취소 안전에 도움이 되지 않습니다. API 문서를 읽고 `async fn`의 상" +"태를 고려해야 합니다." #: src/async/pitfalls/cancellation.md:75 msgid "" "Unlike `panic` and `?`, cancellation is part of normal control flow (vs " "error-handling)." msgstr "" +"`panic` 및 `?`와 달리 취소는 오류 처리가 아닌 일반적인 제어 흐름의 일부입니" +"다." #: src/async/pitfalls/cancellation.md:78 msgid "The example loses parts of the string." -msgstr "" +msgstr "이 예에서는 문자열의 일부가 손실됩니다." #: src/async/pitfalls/cancellation.md:80 msgid "" "Whenever the `tick()` branch finishes first, `next()` and its `buf` are " "dropped." -msgstr "" +msgstr "`tick()` 브랜치가 먼저 완료될 때마다 `next()` 및 `buf`가 삭제됩니다." #: src/async/pitfalls/cancellation.md:83 msgid "" "`LinesReader` can be made cancellation-safe by making `buf` part of the " "struct:" msgstr "" +"다음과 같이 `buf`를 구조체의 일부로 만들어 `LinesReader`가 취소되지 않도록 " +"할 수 있습니다." #: src/async/pitfalls/cancellation.md:97 msgid "// prefix buf and bytes with self.\n" -msgstr "" +msgstr "// buf 및 bytes 접두사를 self로 지정합니다.\n" #: src/async/pitfalls/cancellation.md:106 msgid "" @@ -20127,6 +20241,8 @@ msgid "" "html#method.tick) is cancellation-safe because it keeps track of whether a " "tick has been 'delivered'." msgstr "" +"[`Interval::tick`](https://docs.rs/tokio/latest/tokio/time/struct.Interval." +"html#method.tick)은 틱이 'delivered' 됐는지 추적하므로 취소에 안전합니다." #: src/async/pitfalls/cancellation.md:110 msgid "" @@ -20134,6 +20250,9 @@ msgid "" "AsyncReadExt.html#method.read) is cancellation-safe because it either " "returns or doesn't read data." msgstr "" +"[`AsyncReadExt::read`](https://docs.rs/tokio/latest/tokio/io/trait." +"AsyncReadExt.html#method.read)는 데이터를 반환하거나 읽지 않으므로 취소에 안" +"전합니다." #: src/async/pitfalls/cancellation.md:113 msgid "" @@ -20141,23 +20260,30 @@ msgid "" "AsyncBufReadExt.html#method.read_line) is similar to the example and _isn't_ " "cancellation-safe. See its documentation for details and alternatives." msgstr "" +"[`AsyncBufReadExt::read_line`](https://docs.rs/tokio/latest/tokio/io/trait." +"AsyncBufReadExt.html#method.read_line)은 예와 유사하며 취소에 안전하지 _않습" +"니다_. 자세한 내용과 대안은 관련 문서를 참고하세요." #: src/exercises/concurrency/afternoon.md:3 msgid "" "To practice your Async Rust skills, we have again two exercises for you:" -msgstr "" +msgstr "Async Rust 기술을 연습할 수 있도록 두 가지 연습문제를 준비했습니다." #: src/exercises/concurrency/afternoon.md:5 msgid "" "Dining philosophers: we already saw this problem in the morning. This time " "you are going to implement it with Async Rust." msgstr "" +"식사하는 철학자: 이 문제는 이미 오전에 확인했습니다. 이번에는 Async Rust로 구" +"현합니다." #: src/exercises/concurrency/afternoon.md:8 msgid "" "A Broadcast Chat Application: this is a larger project that allows you " "experiment with more advanced Async Rust features." msgstr "" +"브로드캐스트 채팅 애플리케이션: 더 많은 고급 Async Rust 기능을 실험할 수 있" +"는 대규모 프로젝트입니다." #: src/exercises/concurrency/dining-philosophers-async.md:1 #: src/exercises/concurrency/solutions-afternoon.md:3 @@ -20170,6 +20296,7 @@ msgid "" "See [dining philosophers](dining-philosophers.md) for a description of the " "problem." msgstr "" +"문제에 관한 설명은 [식사하는 철학자](dining-philosophers.md)를 참고하세요." #: src/exercises/concurrency/dining-philosophers-async.md:6 #, fuzzy @@ -20185,15 +20312,18 @@ msgstr "" #: src/exercises/concurrency/dining-philosophers-async.md:52 #: src/exercises/concurrency/solutions-afternoon.md:78 msgid "// Make them think and eat\n" -msgstr "" +msgstr "// 생각하고 먹게 합니다.\n" #: src/exercises/concurrency/dining-philosophers-async.md:58 msgid "" "Since this time you are using Async Rust, you'll need a `tokio` dependency. " "You can use the following `Cargo.toml`:" msgstr "" +"이번에는 Async Rust를 사용하므로 `tokio` 종속 항목이 필요합니다. 다음 `Cargo." +"toml`을 사용할 수 있습니다." #: src/exercises/concurrency/dining-philosophers-async.md:63 +#, fuzzy msgid "" "```toml\n" "[package]\n" @@ -20206,16 +20336,28 @@ msgid "" "\"rt-multi-thread\"] }\n" "```" msgstr "" +"```toml\n" +"[package]\n" +"name = \"dining-philosophers-async-dine\"\n" +"version = \"0.1.0\"\n" +"edition = \"2021\"\n" +"\n" +"[dependencies]\n" +"tokio = {version = \"1.26.0\", features = [\"sync\", \"time\", \"macros\", " +"\"rt-multi-thread\"]}\n" +"```" #: src/exercises/concurrency/dining-philosophers-async.md:73 msgid "" "Also note that this time you have to use the `Mutex` and the `mpsc` module " "from the `tokio` crate." msgstr "" +"또한 이번에는 `tokio` 크레이트의 `Mutex`와 `mpsc` 모듈을 사용해야 합니다." #: src/exercises/concurrency/dining-philosophers-async.md:78 +#, fuzzy msgid "Can you make your implementation single-threaded?" -msgstr "" +msgstr "구현을 단일 스레드로 만들 수 있나요? " #: src/exercises/concurrency/chat-app.md:3 msgid "" @@ -20225,24 +20367,35 @@ msgid "" "input, and sends them to the server. The chat server broadcasts each message " "that it receives to all the clients." msgstr "" +"이 연습에서는 새로운 지식을 사용하여 브로드캐스트 채팅 애플리케이션을 구현해 " +"보겠습니다. 클라이언트가 연결하고 메시지를 게시하는 채팅 서버가 있습니다. 클" +"라이언트는 표준 입력에서 사용자 메시지를 읽고 서버로 전송합니다. 채팅 서버는 " +"수신하는 각 메시지를 모든 클라이언트에 브로드캐스트합니다." #: src/exercises/concurrency/chat-app.md:9 +#, fuzzy msgid "" "For this, we use [a broadcast channel](https://docs.rs/tokio/latest/tokio/" "sync/broadcast/fn.channel.html) on the server, and [`tokio_websockets`]" "(https://docs.rs/tokio-websockets/) for the communication between the client " "and the server." msgstr "" +"이를 위해 서버에서 [브로드캐스트 채널](https://docs.rs/tokio/latest/tokio/" +"sync/broadcast/fn.channel.html)을 사용하고 클라이언트와 서버 간의 통신을 위" +"해 [`tokio_websockets`](https://docs.rs/tokio-websockets/0.4.0/" +"tokio_websockets/)를 사용합니다." #: src/exercises/concurrency/chat-app.md:12 msgid "Create a new Cargo project and add the following dependencies:" -msgstr "" +msgstr "새 Cargo 프로젝트를 만들고 다음 종속 항목을 추가합니다." #: src/exercises/concurrency/chat-app.md:14 +#, fuzzy msgid "_Cargo.toml_:" -msgstr "" +msgstr "_Cargo.toml_:" #: src/exercises/concurrency/chat-app.md:18 +#, fuzzy msgid "" "```toml\n" "[package]\n" @@ -20258,31 +20411,56 @@ msgid "" "\"fastrand\", \"server\", \"sha1_smol\"] }\n" "```" msgstr "" +"```toml\n" +"[package]\n" +"name = \"chat-async\"\n" +"version = \"0.1.0\"\n" +"edition = \"2021\"\n" +"\n" +"[dependencies]\n" +"futures-util = { version = \"0.3.28\", features = [\"sink\"] }\n" +"http = \"0.2.9\"\n" +"tokio = { version = \"1.28.1\", features = [\"full\"] }\n" +"tokio-websockets = { version = \"0.4.0\", features = [\"client\", " +"\"fastrand\", \"server\", \"sha1_smol\"] }\n" +"```" #: src/exercises/concurrency/chat-app.md:31 msgid "The required APIs" -msgstr "" +msgstr "필수 API" #: src/exercises/concurrency/chat-app.md:33 +#, fuzzy msgid "" "You are going to need the following functions from `tokio` and " "[`tokio_websockets`](https://docs.rs/tokio-websockets/). Spend a few minutes " "to familiarize yourself with the API." msgstr "" +"`tokio` 및 [`tokio_websockets`](https://docs.rs/tokio-websockets/0.4.0/" +"tokio_websockets/)의 다음 함수가 필요합니다. 잠시 시간을 내어 API를 숙지합니" +"다. " #: src/exercises/concurrency/chat-app.md:37 +#, fuzzy msgid "" "[StreamExt::next()](https://docs.rs/futures-util/0.3.28/futures_util/stream/" "trait.StreamExt.html#method.next) implemented by `WebSocketStream`: for " "asynchronously reading messages from a Websocket Stream." msgstr "" +"`WebsocketStream`에 의해 구현되는 [StreamExt::next()](https://docs.rs/" +"futures-util/0.3.28/futures_util/stream/trait.StreamExt.html#method.next)는 " +"Websocket 스트림에서 비동기식으로 메시지를 읽는 데 사용됩니다." #: src/exercises/concurrency/chat-app.md:39 +#, fuzzy msgid "" "[SinkExt::send()](https://docs.rs/futures-util/0.3.28/futures_util/sink/" "trait.SinkExt.html#method.send) implemented by `WebSocketStream`: for " "asynchronously sending messages on a Websocket Stream." msgstr "" +"`WebsocketStream`에 의해 구현되는 [SinkExt::send()](https://docs.rs/futures-" +"util/0.3.28/futures_util/sink/trait.SinkExt.html#method.send)는 Websocket 스" +"트림에서 비동기식으로 메시지를 보내는 데 사용됩니다." #: src/exercises/concurrency/chat-app.md:41 msgid "" @@ -20290,12 +20468,17 @@ msgid "" "html#method.next_line): for asynchronously reading user messages from the " "standard input." msgstr "" +"[Lines::next_line()](https://docs.rs/tokio/latest/tokio/io/struct.Lines." +"html#method.next_line)은 표준 입력에서 사용자 메시지를 비동기식으로 읽는 데 " +"사용됩니다." #: src/exercises/concurrency/chat-app.md:43 msgid "" "[Sender::subscribe()](https://docs.rs/tokio/latest/tokio/sync/broadcast/" "struct.Sender.html#method.subscribe): for subscribing to a broadcast channel." msgstr "" +"[Sender::subscribe()](https://docs.rs/tokio/latest/tokio/sync/broadcast/" +"struct.Sender.html#method.subscribe)는 브로드캐스트 채널 구독에 사용됩니다." #: src/exercises/concurrency/chat-app.md:45 #, fuzzy @@ -20303,6 +20486,7 @@ msgid "Two binaries" msgstr "러스트 바이너리" #: src/exercises/concurrency/chat-app.md:47 +#, fuzzy msgid "" "Normally in a Cargo project, you can have only one binary, and one `src/main." "rs` file. In this project, we need two binaries. One for the client, and one " @@ -20312,13 +20496,23 @@ msgid "" "(see the [documentation](https://doc.rust-lang.org/cargo/reference/cargo-" "targets.html#binaries))." msgstr "" +"일반적으로 Cargo 프로젝트에서는 바이너리 하나와 `src/main.rs` 파일을 하나만 " +"보유할 수 있습니다. 이 프로젝트에는 두 개의 바이너리가 필요합니다. 하나는 클" +"라이언트용, 하나는 서버용입니다. 잠재적으로 이를 두 개의 개별 Cargo 프로젝트" +"로 만들 수 있지만 여기서는 바이너리 2개를 사용하는 단일 Cargo 프로젝트에 넣습" +"니다. 이렇게 하려면 클라이언트와 서버 코드가 `src/bin`에 있어야 합니다([문서]" +"(https://doc.rust-lang.org/cargo/reference/cargo-targets.html#binaries) 참" +"고). " #: src/exercises/concurrency/chat-app.md:54 +#, fuzzy msgid "" "Copy the following server and client code into `src/bin/server.rs` and `src/" "bin/client.rs`, respectively. Your task is to complete these files as " "described below." msgstr "" +"다음 서버 및 클라이언트 코드를 각각 `src/bin/server.rs`와 `src/bin/client.rs`" +"에 복사합니다. 아래에 설명된 대로 이러한 파일을 완료해야 합니다. " #: src/exercises/concurrency/chat-app.md:58 #: src/exercises/concurrency/solutions-afternoon.md:99 @@ -20329,27 +20523,27 @@ msgstr "_birthday_service/src/server.rs_:" #: src/exercises/concurrency/chat-app.md:77 #: src/exercises/concurrency/chat-app.md:124 msgid "// TODO: For a hint, see the description of the task below.\n" -msgstr "" +msgstr "// TODO: 힌트는 아래의 작업 설명을 참고하세요.\n" #: src/exercises/concurrency/chat-app.md:85 #: src/exercises/concurrency/solutions-afternoon.md:147 msgid "\"127.0.0.1:2000\"" -msgstr "" +msgstr "'127.0.0.1:2000'" #: src/exercises/concurrency/chat-app.md:86 #: src/exercises/concurrency/solutions-afternoon.md:148 msgid "\"listening on port 2000\"" -msgstr "" +msgstr "'포트 2000에서 수신 대기'" #: src/exercises/concurrency/chat-app.md:90 #: src/exercises/concurrency/solutions-afternoon.md:152 msgid "\"New connection from {addr:?}\"" -msgstr "" +msgstr "'{addr:?}의 새 연결'" #: src/exercises/concurrency/chat-app.md:93 #: src/exercises/concurrency/solutions-afternoon.md:155 msgid "// Wrap the raw TCP stream into a websocket.\n" -msgstr "" +msgstr "// 원시 TCP 스트림을 websocket에 래핑합니다.\n" #: src/exercises/concurrency/chat-app.md:102 #: src/exercises/concurrency/solutions-afternoon.md:164 @@ -20360,7 +20554,7 @@ msgstr "_birthday_service/src/client.rs_:" #: src/exercises/concurrency/chat-app.md:116 #: src/exercises/concurrency/solutions-afternoon.md:176 msgid "\"ws://127.0.0.1:2000\"" -msgstr "" +msgstr "'ws://127.0.0.1:2000'" #: src/exercises/concurrency/chat-app.md:129 #, fuzzy @@ -20379,7 +20573,7 @@ msgstr "아래 명령어로 예제 코드를 실행하세요." #: src/exercises/concurrency/chat-app.md:145 msgid "Implement the `handle_connection` function in `src/bin/server.rs`." -msgstr "" +msgstr "`src/bin/server.rs`에서 `handle_connection` 함수를 구현합니다." #: src/exercises/concurrency/chat-app.md:146 msgid "" @@ -20387,10 +20581,13 @@ msgid "" "continuous loop. One task receives messages from the client and broadcasts " "them. The other sends messages received by the server to the client." msgstr "" +"힌트: 연속 루프에서 두 작업을 동시에 실행하는 경우 `tokio::select!`를 사용하" +"세요. 한 작업은 클라이언트에서 메시지를 수신하여 브로드캐스트합니다. 다른 하" +"나는 서버가 수신한 메시지를 클라이언트로 보냅니다." #: src/exercises/concurrency/chat-app.md:149 msgid "Complete the main function in `src/bin/client.rs`." -msgstr "" +msgstr "`src/bin/client.rs`에서 main 함수를 완료합니다." #: src/exercises/concurrency/chat-app.md:150 msgid "" @@ -20399,12 +20596,17 @@ msgid "" "sending them to the server, and (2) receiving messages from the server, and " "displaying them for the user." msgstr "" +"힌트: 이전과 마찬가지로 연속 루프에서 두 작업을 동시에 실행하는 경우 `tokio::" +"select!`를 사용하세요. (1) 표준 입력에서 사용자 메시지를 읽고 서버로 보냅니" +"다. (2) 서버에서 메시지를 수신하고 사용자에게 표시합니다." #: src/exercises/concurrency/chat-app.md:154 msgid "" "Optional: Once you are done, change the code to broadcast messages to all " "clients, but the sender of the message." msgstr "" +"선택사항: 작업을 완료하면 메시지 발신자를 제외한 모든 클라이언트에게 메시지" +"를 브로드캐스트하도록 코드를 변경합니다." #: src/exercises/concurrency/solutions-afternoon.md:1 #, fuzzy @@ -20413,17 +20615,19 @@ msgstr "1일차 오후 연습문제" #: src/exercises/concurrency/solutions-afternoon.md:5 msgid "([back to exercise](dining-philosophers-async.md))" -msgstr "" +msgstr "([연습문제로 돌아가기](dining-philosophers-async.md)" #: src/exercises/concurrency/solutions-afternoon.md:33 msgid "" "// Add a delay before picking the second fork to allow the execution\n" " // to transfer to another task\n" msgstr "" +"// 두 번째 포크를 선택하기 전에 다른 작업으로 전송하는 실행을 허용하도록\n" +" // 지연을 추가합니다.\n" #: src/exercises/concurrency/solutions-afternoon.md:41 msgid "// The locks are dropped here\n" -msgstr "" +msgstr "// 여기에 잠금이 해제됩니다.\n" #: src/exercises/concurrency/solutions-afternoon.md:61 msgid "" @@ -20431,22 +20635,27 @@ msgid "" " // somewhere. This will swap the forks without deinitializing\n" " // either of them.\n" msgstr "" +"// 교착 상태를 방지하려면 어딘가에서\n" +" // 대칭을 중단시켜야 합니다. 이렇게 하면 둘 중 어느 하나라도 초기화하" +"지 않고\n" +" // 포크가 교체됩니다.\n" #: src/exercises/concurrency/solutions-afternoon.md:75 msgid "// tx is dropped here, so we don't need to explicitly drop it later\n" msgstr "" +"// tx가 여기에서 삭제되므로 나중에 명시적으로 삭제할 필요가 없습니다.\n" #: src/exercises/concurrency/solutions-afternoon.md:90 msgid "\"Here is a thought: {thought}\"" -msgstr "" +msgstr "'의견 보내기: {thought}'" #: src/exercises/concurrency/solutions-afternoon.md:97 msgid "([back to exercise](chat-app.md))" -msgstr "" +msgstr "([연습문제로 돌아가기](chat-app.md))" #: src/exercises/concurrency/solutions-afternoon.md:116 msgid "\"Welcome to chat! Type a message\"" -msgstr "" +msgstr "'채팅에 오신 것을 환영합니다. 메시지를 입력하세요.'" #: src/exercises/concurrency/solutions-afternoon.md:119 msgid "" @@ -20454,18 +20663,22 @@ msgid "" " // messages from `ws_stream` and broadcasting them, and (2) receiving\n" " // messages on `bcast_rx` and sending them to the client.\n" msgstr "" +"// 동시에 두 작업을 실행하는 연속 루프: (1) `ws_stream`에서 메시지를 수신하" +"여\n" +" // 브로드캐스팅하고 (2) `bcast_rx`에서 메시지를 수신하여\n" +" // 클라이언트로 전송합니다.\n" #: src/exercises/concurrency/solutions-afternoon.md:128 msgid "\"From client {addr:?} {text:?}\"" -msgstr "" +msgstr "'클라이언트에서: {addr:?} {text:?}'" #: src/exercises/concurrency/solutions-afternoon.md:183 msgid "// Continuous loop for concurrently sending and receiving messages.\n" -msgstr "" +msgstr "// 동시에 메시지를 보내고 받는 연속 루프\n" #: src/exercises/concurrency/solutions-afternoon.md:190 msgid "\"From server: {}\"" -msgstr "" +msgstr "'서버에서: {}'" #: src/thanks.md:3 msgid "" @@ -20491,18 +20704,24 @@ msgid "" "Rust terms. For translations, this also serves to connect the term back to " "the English original." msgstr "" +"다음은 여러 Rust 용어의 간단한 정의를 제공하는 용어집입니다. 번역의 경우 용어" +"를 다시 영어 원본에 연결하는 역할도 합니다." #: src/glossary.md:30 msgid "" "allocate: \n" "Dynamic memory allocation on [the heap](memory-management/stack-vs-heap.md)." msgstr "" +"할당: \n" +"[힙](memory-management/stack-vs-heap.md)에 대한 동적 메모리 할당입니다." #: src/glossary.md:32 msgid "" "argument: \n" "Information that is passed into a function or method." msgstr "" +"인수: \n" +"함수나 메서드에 전달되는 정보입니다." #: src/glossary.md:34 msgid "" @@ -20510,30 +20729,41 @@ msgid "" "Low-level Rust development, often deployed to a system without an operating " "system. See [Bare-metal Rust](bare-metal.md)." msgstr "" +"Bare-metal Rust: \n" +"낮은 수준의 Rust 개발로, 운영체제가 없는 시스템에 배포되는 경우가 많습니다. " +"[Bare-metal Rust](bare-metal.md)를 참고하세요." #: src/glossary.md:37 msgid "" "block: \n" "See [Blocks](control-flow/blocks.md) and _scope_." msgstr "" +"블록: \n" +"[블록](control-flow/blocks.md) 및 _범위_를 참고하세요." #: src/glossary.md:39 msgid "" "borrow: \n" "See [Borrowing](ownership/borrowing.md)." msgstr "" +"빌림: \n" +"[빌림](ownership/borrowing.md)을 참고하세요." #: src/glossary.md:41 msgid "" "borrow checker: \n" "The part of the Rust compiler which checks that all borrows are valid." msgstr "" +"빌림 검사기: \n" +"모든 빌림이 유효한지 확인하는 Rust 컴파일러의 부분입니다." #: src/glossary.md:43 msgid "" "brace: \n" "`{` and `}`. Also called _curly brace_, they delimit _blocks_." msgstr "" +"괄호: \n" +"`{` and `}`. _중괄호_라고도 하며 _블록_을 구분합니다." #: src/glossary.md:45 msgid "" @@ -20541,42 +20771,58 @@ msgid "" "The process of converting source code into executable code or a usable " "program." msgstr "" +"빌드: \n" +"소스 코드를 실행 가능한 코드 또는 사용 가능한 프로그램으로 변환하는 프로세스" +"입니다." #: src/glossary.md:48 msgid "" "call: \n" "To invoke or execute a function or method." msgstr "" +"호출: \n" +"함수 또는 메서드를 호출하거나 실행합니다." #: src/glossary.md:50 msgid "" "channel: \n" "Used to safely pass messages [between threads](concurrency/channels.md)." msgstr "" +"채널: \n" +"[스레드 간](concurrency/channels.md)에 메시지를 안전하게 전달하는 데 사용됩니" +"다." #: src/glossary.md:52 msgid "" "Comprehensive Rust 🦀: \n" "The courses here are jointly called Comprehensive Rust 🦀." msgstr "" +"Comprehensive Rust 🦀: \n" +"이 과정은 Comprehensive Rust 🦀로 통칭됩니다." #: src/glossary.md:54 msgid "" "concurrency: \n" "The execution of multiple tasks or processes at the same time." msgstr "" +"동시 실행: \n" +"여러 작업 또는 프로세스를 동시에 실행합니다." #: src/glossary.md:56 msgid "" "Concurrency in Rust: \n" "See [Concurrency in Rust](concurrency.md)." msgstr "" +"Rust의 동시 실행: \n" +"[Rust의 동시 실행](concurrency.md)을 참고하세요." #: src/glossary.md:58 msgid "" "constant: \n" "A value that does not change during the execution of a program." msgstr "" +"상수: \n" +"프로그램 실행 중에 변경되지 않는 값입니다." #: src/glossary.md:60 msgid "" @@ -20584,24 +20830,32 @@ msgid "" "The order in which the individual statements or instructions are executed in " "a program." msgstr "" +"제어 흐름: \n" +"프로그램에서 개별 문 또는 명령이 실행되는 순서입니다." #: src/glossary.md:63 msgid "" "crash: \n" "An unexpected and unhandled failure or termination of a program." msgstr "" +"비정상 종료: \n" +"프로그램의 예기치 않거나 처리되지 않은 오류 또는 종료입니다." #: src/glossary.md:65 msgid "" "enumeration: \n" "A data type that consists of named constant values." msgstr "" +"열거형: \n" +"이름이 지정된 상수 값으로 구성된 데이터 타입입니다." #: src/glossary.md:67 msgid "" "error: \n" "An unexpected condition or result that deviates from the expected behavior." msgstr "" +"오류: \n" +"예상 동작을 벗어나는 예기치 못한 상태나 결과입니다." #: src/glossary.md:69 msgid "" @@ -20609,18 +20863,24 @@ msgid "" "The process of managing and responding to errors that occur during program " "execution." msgstr "" +"오류 처리: \n" +"프로그램 실행 중에 발생하는 오류를 관리하고 이에 대응하는 프로세스입니다." #: src/glossary.md:72 msgid "" "exercise: \n" "A task or problem designed to practice and test programming skills." msgstr "" +"연습: \n" +"프로그래밍 기술을 연습하고 테스트하기 위한 과제 또는 문제입니다." #: src/glossary.md:74 msgid "" "function: \n" "A reusable block of code that performs a specific task." msgstr "" +"함수: \n" +"특정 작업을 실행하는 재사용 가능한 코드 블록입니다." #: src/glossary.md:76 msgid "" @@ -20628,6 +20888,9 @@ msgid "" "A mechanism that automatically frees up memory occupied by objects that are " "no longer in use." msgstr "" +"가비지 컬렉터: \n" +"더 이상 사용되지 않는 객체가 차지하는 메모리를 자동으로 해제하는 메커니즘입니" +"다." #: src/glossary.md:79 msgid "" @@ -20635,12 +20898,17 @@ msgid "" "A feature that allows writing code with placeholders for types, enabling " "code reuse with different data types." msgstr "" +"제네릭: \n" +"타입에 관한 자리표시자를 사용하여 코드를 작성할 수 있는 기능으로, 다양한 데이" +"터 타입으로 코드를 재사용할 수 있습니다." #: src/glossary.md:82 msgid "" "immutable: \n" "Unable to be changed after creation." msgstr "" +"변경 불가능: \n" +"생성 후에는 변경할 수 없습니다." #: src/glossary.md:84 msgid "" @@ -20648,6 +20916,8 @@ msgid "" "A type of test that verifies the interactions between different parts or " "components of a system." msgstr "" +"통합 테스트: \n" +"시스템의 여러 부분 또는 구성요소 간의 상호작용을 확인하는 테스트 타입입니다." #: src/glossary.md:87 msgid "" @@ -20655,12 +20925,16 @@ msgid "" "A reserved word in a programming language that has a specific meaning and " "cannot be used as an identifier." msgstr "" +"키워드: \n" +"프로그래밍 언어에서 특정 의미를 가지며 식별자로 사용될 수 없는 예약어입니다." #: src/glossary.md:90 msgid "" "library: \n" "A collection of precompiled routines or code that can be used by programs." msgstr "" +"라이브러리: \n" +"프로그램에서 사용할 수 있는 사전 컴파일된 루틴 또는 코드 모음입니다." #: src/glossary.md:92 msgid "" @@ -20669,12 +20943,18 @@ msgid "" "normal functions are not enough. A typical example is `format!`, which takes " "a variable number of arguments, which isn't supported by Rust functions." msgstr "" +"매크로: \n" +"Rust 매크로는 이름의 `!`로 인식될 수 있습니다. 매크로는 일반 함수가 충분하지 " +"않을 때 사용됩니다. 일반적인 예로는 가변적인 인수 수를 사용하는 `format!`이 " +"있는데, 이는 Rust 함수에서 지원되지 않습니다." #: src/glossary.md:96 msgid "" "`main` function: \n" "Rust programs start executing with the `main` function." msgstr "" +"`main` 함수: \n" +"Rust 프로그램은 `main` 함수로 실행을 시작합니다." #: src/glossary.md:98 msgid "" @@ -20682,6 +20962,8 @@ msgid "" "A control flow construct in Rust that allows for pattern matching on the " "value of an expression." msgstr "" +"일치: \n" +"표현식 값에 대한 패턴 일치를 허용하는 Rust의 제어 흐름 구성입니다." #: src/glossary.md:101 msgid "" @@ -20689,12 +20971,17 @@ msgid "" "A situation where a program fails to release memory that is no longer " "needed, leading to a gradual increase in memory usage." msgstr "" +"메모리 누수: \n" +"프로그램이 더 이상 필요하지 않은 메모리를 해제하지 못해 메모리 사용량이 점차 " +"늘어나는 상황입니다." #: src/glossary.md:104 msgid "" "method: \n" "A function associated with an object or a type in Rust." msgstr "" +"메서드: \n" +"Rust의 객체나 타입과 관련된 함수입니다." #: src/glossary.md:106 msgid "" @@ -20702,12 +20989,17 @@ msgid "" "A namespace that contains definitions, such as functions, types, or traits, " "to organize code in Rust." msgstr "" +"모듈: \n" +"Rust에서 코드를 구성하기 위해 함수, 타입 또는 트레잇과 같은 정의가 포함된 네" +"임스페이스입니다." #: src/glossary.md:109 msgid "" "move: \n" "The transfer of ownership of a value from one variable to another in Rust." msgstr "" +"이동: \n" +"Rust에서 한 변수에서 다른 변수로 값의 소유권을 이전하는 것입니다." #: src/glossary.md:111 msgid "" @@ -20715,6 +21007,8 @@ msgid "" "A property in Rust that allows variables to be modified after they have been " "declared." msgstr "" +"mutable: \n" +"선언된 후 변수를 수정할 수 있는 Rust의 속성입니다." #: src/glossary.md:114 msgid "" @@ -20722,6 +21016,8 @@ msgid "" "The concept in Rust that defines which part of the code is responsible for " "managing the memory associated with a value." msgstr "" +"소유권: \n" +"값과 관련된 메모리를 관리하는 코드의 부분을 정의하는 Rust의 개념입니다." #: src/glossary.md:117 msgid "" @@ -20729,12 +21025,16 @@ msgid "" "An unrecoverable error condition in Rust that results in the termination of " "the program." msgstr "" +"패닉: \n" +"Rust에서 복구할 수 없는 오류 상태로, 프로그램이 종료됩니다." #: src/glossary.md:120 msgid "" "parameter: \n" "A value that is passed into a function or method when it is called." msgstr "" +"매개변수: \n" +"호출 시 함수나 메서드로 전달되는 값입니다." #: src/glossary.md:122 msgid "" @@ -20742,12 +21042,16 @@ msgid "" "A combination of values, literals, or structures that can be matched against " "an expression in Rust." msgstr "" +"패턴: \n" +"Rust의 표현식과 일치시킬 수 있는 값, 리터럴 또는 구조의 조합입니다." #: src/glossary.md:125 msgid "" "payload: \n" "The data or information carried by a message, event, or data structure." msgstr "" +"페이로드: \n" +"메시지, 이벤트 또는 데이터 구조에 의해 전달되는 데이터 또는 정보입니다." #: src/glossary.md:127 msgid "" @@ -20755,12 +21059,17 @@ msgid "" "A set of instructions that a computer can execute to perform a specific task " "or solve a particular problem." msgstr "" +"프로그램: \n" +"컴퓨터가 특정 작업을 수행하거나 특정 문제를 해결하기 위해 실행할 수 있는 일련" +"의 명령입니다." #: src/glossary.md:130 msgid "" "programming language: \n" "A formal system used to communicate instructions to a computer, such as Rust." msgstr "" +"프로그래밍 언어: \n" +"컴퓨터에 명령을 전달하는 데 사용되는 공식 시스템입니다(예: Rust)." #: src/glossary.md:132 msgid "" @@ -20768,6 +21077,8 @@ msgid "" "The first parameter in a Rust method that represents the instance on which " "the method is called." msgstr "" +"수신자: \n" +"메서드가 호출되는 인스턴스를 나타내는 Rust 메서드의 첫 번째 매개변수입니다." #: src/glossary.md:135 msgid "" @@ -20775,12 +21086,17 @@ msgid "" "A memory management technique in which the number of references to an object " "is tracked, and the object is deallocated when the count reaches zero." msgstr "" +"참조 계산: \n" +"객체에 대한 참조 수를 추적하고 개수가 0에 도달하면 객체의 할당을 해제하는 메" +"모리 관리 기법입니다." #: src/glossary.md:138 msgid "" "return: \n" "A keyword in Rust used to indicate the value to be returned from a function." msgstr "" +"return: \n" +"함수에서 반환될 값을 나타내는 데 사용되는 Rust의 키워드입니다." #: src/glossary.md:140 msgid "" @@ -20788,24 +21104,32 @@ msgid "" "A systems programming language that focuses on safety, performance, and " "concurrency." msgstr "" +"Rust: \n" +"안전, 성능, 동시 실행에 중점을 둔 시스템 프로그래밍 언어입니다." #: src/glossary.md:143 msgid "" "Rust Fundamentals: \n" "Days 1 to 3 of this course." msgstr "" +"Rust 기초: \n" +"1~3일 차 과정입니다." #: src/glossary.md:145 msgid "" "Rust in Android: \n" "See [Rust in Android](android.md)." msgstr "" +"Android의 Rust: \n" +"[Android의 Rust](android.md)를 참고하세요." #: src/glossary.md:147 msgid "" "Rust in Chromium: \n" "See [Rust in Chromium](chromium.md)." msgstr "" +"Chromium의 Rust: \n" +"[Chromium의 Rust](chromium.md)를 참고하세요." #: src/glossary.md:149 msgid "" @@ -20813,18 +21137,25 @@ msgid "" "Refers to code that adheres to Rust's ownership and borrowing rules, " "preventing memory-related errors." msgstr "" +"안전: \n" +"Rust의 소유권 및 빌림 규칙을 준수하여 메모리 관련 오류를 방지하는 코드를 나타" +"냅니다." #: src/glossary.md:152 msgid "" "scope: \n" "The region of a program where a variable is valid and can be used." msgstr "" +"범위: \n" +"변수가 유효하여 사용할 수 있는 프로그램의 영역입니다." #: src/glossary.md:154 msgid "" "standard library: \n" "A collection of modules providing essential functionality in Rust." msgstr "" +"표준 라이브러리: \n" +"Rust에서 필수 기능을 제공하는 모듈 모음입니다." #: src/glossary.md:156 msgid "" @@ -20832,6 +21163,9 @@ msgid "" "A keyword in Rust used to define static variables or items with a `'static` " "lifetime." msgstr "" +"static: \n" +"Rust에서 `'static` 전체 기간으로 정적 변수 또는 항목을 정의하는 데 사용되는 " +"키워드입니다." #: src/glossary.md:159 msgid "" @@ -20839,6 +21173,9 @@ msgid "" "A data type storing textual data. See [`String` vs `str`](basic-syntax/" "string-slices.html) for more." msgstr "" +"문자열: \n" +"텍스트 데이터를 저장하는 데이터 타입입니다. 자세한 내용은 [`String` 및 `str`]" +"(basic-syntax/string-slices.html)을 참고하세요." #: src/glossary.md:162 msgid "" @@ -20846,6 +21183,8 @@ msgid "" "A composite data type in Rust that groups together variables of different " "types under a single name." msgstr "" +"구조체: \n" +"다양한 타입의 변수를 단일 이름으로 그룹화하는 Rust의 복합 데이터 타입입니다." #: src/glossary.md:165 msgid "" @@ -20853,12 +21192,16 @@ msgid "" "A Rust module containing functions that test the correctness of other " "functions." msgstr "" +"test: \n" +"다른 함수의 정확성을 테스트하는 함수가 포함된 Rust 모듈입니다." #: src/glossary.md:168 msgid "" "thread: \n" "A separate sequence of execution in a program, allowing concurrent execution." msgstr "" +"스레드: \n" +"프로그램의 별도 실행 시퀀스로, 동시 실행을 허용합니다." #: src/glossary.md:170 msgid "" @@ -20866,6 +21209,8 @@ msgid "" "The property of a program that ensures correct behavior in a multithreaded " "environment." msgstr "" +"스레드 안전: \n" +"다중 스레드 환경에서 올바른 동작을 보장하는 프로그램의 속성입니다." #: src/glossary.md:173 msgid "" @@ -20873,6 +21218,9 @@ msgid "" "A collection of methods defined for an unknown type, providing a way to " "achieve polymorphism in Rust." msgstr "" +"트레잇: \n" +"알 수 없는 타입에 관해 정의된 메서드 모음으로, Rust에서 다형성을 달성하는 방" +"법을 제공합니다." #: src/glossary.md:176 msgid "" @@ -20887,6 +21235,9 @@ msgid "" "A classification that specifies which operations can be performed on values " "of a particular kind in Rust." msgstr "" +"타입: \n" +"Rust에서 특정 종류의 값에 대해 어떤 작업을 실행할 수 있는지 지정하는 분류입니" +"다." #: src/glossary.md:182 msgid "" @@ -20894,6 +21245,8 @@ msgid "" "The ability of the Rust compiler to deduce the type of a variable or " "expression." msgstr "" +"타입 추론: \n" +"변수나 표현식의 타입을 추론하는 Rust 컴파일러의 기능입니다." #: src/glossary.md:185 msgid "" @@ -20901,12 +21254,17 @@ msgid "" "Actions or conditions in Rust that have no specified result, often leading " "to unpredictable program behavior." msgstr "" +"정의되지 않은 동작: \n" +"지정된 결과가 없는 Rust의 작업 또는 조건으로, 종종 예측할 수 없는 프로그램 동" +"작을 초래합니다." #: src/glossary.md:188 msgid "" "union: \n" "A data type that can hold values of different types but only one at a time." msgstr "" +"union: \n" +"한 번에 하나씩만 여러 타입의 값을 보유할 수 있는 데이터 타입입니다." #: src/glossary.md:190 msgid "" @@ -20914,6 +21272,9 @@ msgid "" "Rust comes with built-in support for running small unit tests and larger " "integration tests. See [Unit Tests](testing/unit-tests.html)." msgstr "" +"단위 테스트: \n" +"Rust에는 작은 단위 테스트와 대규모 통합 테스트를 실행할 수 있는 지원 기능이 " +"내장되어 있습니다. [단위 테스트](testing/unit-tests.html)를 참고하세요." #: src/glossary.md:193 msgid "" @@ -20921,12 +21282,18 @@ msgid "" "The subset of Rust which allows you to trigger _undefined behavior_. See " "[Unsafe Rust](unsafe.html)." msgstr "" +"안전하지 않음: \n" +"_정의되지 않은 동작_을 트리거할 수 있는 Rust의 하위 집합입니다. [안전하지 않" +"은 Rust](unsafe.html)를 참고하세요." #: src/glossary.md:196 +#, fuzzy msgid "" "variable: \n" "A memory location storing data. Variables are valid in a _scope_." msgstr "" +"변수: \n" +"데이터를 저장하는 메모리 위치입니다. 변수는 _범위_에서 유효합니다. " #: src/other-resources.md:1 msgid "Other Rust Resources" @@ -33285,3 +33652,6 @@ msgstr "" #~ msgid "Day 3 Afternoon Exercises" #~ msgstr "3일차 오후 연습문제" + +#~ msgid "\"127.0.0.1:6142\"" +#~ msgstr "'127.0.0.1:6142'" From a7edbbdf946906ff8f8fa09d7f1b25f7c9e4066b Mon Sep 17 00:00:00 2001 From: Henri Fontana Date: Sat, 6 Jan 2024 22:27:47 -0800 Subject: [PATCH 09/13] Remove changes outside Concurrency course --- po/ko.po | 170 +++++++++++++++++++------------------------------------ 1 file changed, 57 insertions(+), 113 deletions(-) diff --git a/po/ko.po b/po/ko.po index 2b2b61001974..9d7fbb7223ca 100644 --- a/po/ko.po +++ b/po/ko.po @@ -2900,9 +2900,8 @@ msgid "\"final sentence: {}\"" msgstr "" #: src/types-and-values/strings.md:18 src/async/control-flow/join.md:30 -#, fuzzy msgid "\"{:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/types-and-values/strings.md:19 msgid "//println!(\"{:?}\", &sentence[12..13]);\n" @@ -3264,9 +3263,8 @@ msgid "\"hello\"" msgstr "" #: src/control-flow-basics/blocks-and-scopes.md:35 -#, fuzzy msgid "\"inner scope: {a}\"" -msgstr "'우승자: {winner:?}'" +msgstr "" #: src/control-flow-basics/blocks-and-scopes.md:38 msgid "\"shadowed in inner scope: {a}\"" @@ -4003,14 +4001,12 @@ msgid "// <-- the comment makes rustfmt add a newline\n" msgstr "" #: src/tuples-and-arrays/exercise.md:42 src/tuples-and-arrays/solution.md:39 -#, fuzzy msgid "\"matrix: {:#?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/tuples-and-arrays/exercise.md:44 src/tuples-and-arrays/solution.md:41 -#, fuzzy msgid "\"transposed: {:#?}\"" -msgstr "'잘못된 URL: {:#?}'" +msgstr "" #: src/tuples-and-arrays/solution.md:17 src/tuples-and-arrays/solution.md:25 msgid "//\n" @@ -4713,9 +4709,8 @@ msgid "\"The car has arrived on the ground floor: {:?}\"" msgstr "" #: src/user-defined-types/exercise.md:56 src/user-defined-types/solution.md:71 -#, fuzzy msgid "\"The car door opened: {:?}\"" -msgstr "'수신됨: {:?}'" +msgstr "" #: src/user-defined-types/exercise.md:58 src/user-defined-types/solution.md:73 msgid "\"A passenger has pressed the 3rd floor button: {:?}\"" @@ -4931,9 +4926,8 @@ msgstr "" "를 실행할 수 있습니다:" #: src/pattern-matching/let-control-flow.md:24 -#, fuzzy msgid "\"slept for {:?}\"" -msgstr "'{}밀리초 동안 절전 모드'" +msgstr "" #: src/pattern-matching/let-control-flow.md:33 #, fuzzy @@ -4965,9 +4959,8 @@ msgstr "" #: src/pattern-matching/let-control-flow.md:62 #: src/pattern-matching/solution.md:113 -#, fuzzy msgid "\"result: {:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/pattern-matching/let-control-flow.md:62 #: src/methods-and-traits/exercise.md:114 @@ -5116,9 +5109,8 @@ msgid "\"division by zero\"" msgstr "" #: src/pattern-matching/solution.md:112 -#, fuzzy msgid "\"expr: {:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/methods-and-traits/methods.md:3 msgid "" @@ -5353,9 +5345,8 @@ msgid "// Debug trait adds support for printing with `{:?}`.\n" msgstr "" #: src/methods-and-traits/deriving.md:19 -#, fuzzy msgid "\"{:?} vs. {:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/methods-and-traits/deriving.md:25 msgid "" @@ -5373,9 +5364,8 @@ msgstr "" "니다:" #: src/methods-and-traits/trait-objects.md:36 -#, fuzzy msgid "\"Hello, who are you? {}\"" -msgstr "b'누구세요?\\n'" +msgstr "" #: src/methods-and-traits/trait-objects.md:41 msgid "Memory layout after allocating `pets`:" @@ -5600,9 +5590,8 @@ msgstr "" #: src/methods-and-traits/exercise.md:27 src/methods-and-traits/solution.md:8 #: src/modules/solution.md:39 -#, fuzzy msgid "/// Draw the widget into a buffer.\n" -msgstr "// 원시 TCP 스트림을 websocket에 래핑합니다.\n" +msgstr "" #: src/methods-and-traits/exercise.md:30 src/methods-and-traits/solution.md:11 #: src/modules/solution.md:42 @@ -5738,14 +5727,12 @@ msgid "/// Pick `even` or `odd` depending on the value of `n`.\n" msgstr "" #: src/generics/generic-functions.md:17 -#, fuzzy msgid "\"picked a number: {:?}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/generics/generic-functions.md:18 -#, fuzzy msgid "\"picked a tuple: {:?}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/generics/generic-functions.md:18 msgid "\"dog\"" @@ -5794,9 +5781,8 @@ msgid "\"{integer:?} and {float:?}\"" msgstr "" #: src/generics/generic-data.md:24 -#, fuzzy msgid "\"coords: {:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/generics/generic-data.md:30 msgid "" @@ -5854,9 +5840,8 @@ msgid "// struct NotClonable;\n" msgstr "" #: src/generics/trait-bounds.md:18 -#, fuzzy msgid "\"{pair:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/generics/trait-bounds.md:24 msgid "Try making a `NonClonable` and passing it to `duplicate`." @@ -6402,9 +6387,8 @@ msgid "// Retain only the even elements.\n" msgstr "" #: src/std-types/vec.md:21 src/std-types/vec.md:25 -#, fuzzy msgid "\"{v3:?}\"" -msgstr "'v: {v:?}'" +msgstr "" #: src/std-types/vec.md:23 msgid "// Remove consecutive duplicates.\n" @@ -6614,18 +6598,16 @@ msgid "" msgstr "" #: src/std-types/exercise.md:27 src/std-types/solution.md:13 -#, fuzzy msgid "/// Create a new Counter.\n" -msgstr "// 포크 만들기\n" +msgstr "" #: src/std-types/exercise.md:34 src/std-types/solution.md:18 msgid "/// Count an occurrence of the given value.\n" msgstr "" #: src/std-types/exercise.md:43 src/std-types/solution.md:23 -#, fuzzy msgid "/// Return the number of times the given value has been seen.\n" -msgstr "/// 주어진 페이지 내의 링크를 추출해야 하는지 여부를 결정합니다.\n" +msgstr "" #: src/std-types/exercise.md:59 src/std-types/solution.md:39 msgid "\"saw {} values equal to {}\"" @@ -6898,9 +6880,8 @@ msgid "\"World\"" msgstr "" #: src/std-traits/read-and-write.md:37 -#, fuzzy msgid "\"Logged: {:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/std-traits/default.md:1 msgid "The `Default` Trait" @@ -7087,9 +7068,8 @@ msgid "\"Hi\"" msgstr "" #: src/std-traits/closures.md:67 -#, fuzzy msgid "\"there\"" -msgstr "'hi\\nthere\\n'" +msgstr "" #: src/std-traits/exercise.md:3 msgid "" @@ -7716,18 +7696,16 @@ msgstr "" #: src/memory-management/drop.md:18 #: src/exercises/concurrency/link-checker.md:93 #: src/exercises/concurrency/solutions-morning.md:125 -#, fuzzy msgid "\"a\"" -msgstr "'플라톤'" +msgstr "" #: src/memory-management/drop.md:20 src/testing/googletest.md:12 msgid "\"b\"" msgstr "" #: src/memory-management/drop.md:22 -#, fuzzy msgid "\"c\"" -msgstr "'틱!'" +msgstr "" #: src/memory-management/drop.md:23 msgid "\"d\"" @@ -7877,9 +7855,8 @@ msgid "\"0.4\"" msgstr "" #: src/memory-management/exercise.md:80 src/memory-management/solution.md:86 -#, fuzzy msgid "\"log: {log:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/memory-management/exercise.md:81 src/memory-management/solution.md:87 msgid "\"serde\"" @@ -7894,9 +7871,8 @@ msgid "\"4.0\"" msgstr "" #: src/memory-management/exercise.md:87 src/memory-management/solution.md:93 -#, fuzzy msgid "\"serde: {serde:?}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/memory-management/solution.md:45 msgid "\"0.1\"" @@ -7939,9 +7915,8 @@ msgid "/// An empty list.\n" msgstr "" #: src/smart-pointers/box.md:44 src/smart-pointers/box.md:97 -#, fuzzy msgid "\"{list:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/smart-pointers/box.md:48 #, fuzzy @@ -8672,9 +8647,8 @@ msgid "// What is the lifetime of p3?\n" msgstr "" #: src/slices-and-lifetimes/lifetime-annotations.md:37 -#, fuzzy msgid "\"p3: {p3:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/slices-and-lifetimes/lifetime-annotations.md:43 msgid "" @@ -8785,14 +8759,12 @@ msgid "// erase(text);\n" msgstr "" #: src/slices-and-lifetimes/struct-lifetimes.md:18 -#, fuzzy msgid "\"{fox:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/slices-and-lifetimes/struct-lifetimes.md:19 -#, fuzzy msgid "\"{dog:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/slices-and-lifetimes/struct-lifetimes.md:25 msgid "" @@ -8856,9 +8828,8 @@ msgid "" msgstr "" #: src/slices-and-lifetimes/exercise.md:13 -#, fuzzy msgid "We'll use the following proto:" -msgstr "다음과 같은 `Cargo.toml`을 사용할 수 있습니다." +msgstr "" #: src/slices-and-lifetimes/exercise.md:28 msgid "" @@ -10013,9 +9984,8 @@ msgid "// This is the buggy version that appears in the problem.\n" msgstr "" #: src/testing/solution.md:27 -#, fuzzy msgid "// This is the solution and passes all of the tests below.\n" -msgstr "// TODO: 힌트는 아래의 작업 설명을 참고하세요.\n" +msgstr "" #: src/testing/solution.md:56 msgid "\"1234 5678 1234 5670\"" @@ -10168,9 +10138,8 @@ msgid "\"config.dat\"" msgstr "" #: src/error-handling/try.md:44 src/error-handling/try-conversions.md:66 -#, fuzzy msgid "\"username or error: {username:?}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/error-handling/try.md:50 msgid "Simplify the `read_username` function to use `?`." @@ -10217,9 +10186,8 @@ msgstr "" "하고 있습니다:" #: src/error-handling/try-conversions.md:42 -#, fuzzy msgid "\"IO error: {e}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/error-handling/try-conversions.md:43 msgid "\"Found no username in {path}\"" @@ -10284,14 +10252,12 @@ msgid "\"1i3\"" msgstr "" #: src/error-handling/error.md:22 -#, fuzzy msgid "\"Count: {count}\"" -msgstr "'수: {i}개!'" +msgstr "" #: src/error-handling/error.md:23 -#, fuzzy msgid "\"Error: {err}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/error-handling/error.md:30 msgid "" @@ -10332,28 +10298,24 @@ msgid "" msgstr "" #: src/error-handling/thiserror-and-anyhow.md:16 -#, fuzzy msgid "\"Found no username in {0}\"" -msgstr "'링크를 추출할 수 없습니다: {err:#}'" +msgstr "" #: src/error-handling/thiserror-and-anyhow.md:22 -#, fuzzy msgid "\"Failed to open {path}\"" -msgstr "'고양이를 보내지 못했습니다.'" +msgstr "" #: src/error-handling/thiserror-and-anyhow.md:24 -#, fuzzy msgid "\"Failed to read\"" -msgstr "'고양이를 보내지 못했습니다.'" +msgstr "" #: src/error-handling/thiserror-and-anyhow.md:34 msgid "\"Username: {username}\"" msgstr "" #: src/error-handling/thiserror-and-anyhow.md:35 -#, fuzzy msgid "\"Error: {err:?}\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "" #: src/error-handling/thiserror-and-anyhow.md:42 #, fuzzy @@ -10502,18 +10464,16 @@ msgid "\"10+foo+20-30\"" msgstr "" #: src/error-handling/exercise.md:109 src/error-handling/solution.md:122 -#, fuzzy msgid "\"{expr:?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/error-handling/solution.md:42 msgid "\"Unexpected character '{0}' in input\"" msgstr "" #: src/error-handling/solution.md:79 -#, fuzzy msgid "\"Tokenizer error: {0}\"" -msgstr "'요청 오류: {0}'" +msgstr "" #: src/error-handling/solution.md:83 msgid "\"Unexpected token {0:?}\"" @@ -10648,18 +10608,16 @@ msgstr "" "```" #: src/unsafe-rust/dereferencing.md:18 -#, fuzzy msgid "\"r1 is: {}\"" -msgstr "'수: {i}개!'" +msgstr "" #: src/unsafe-rust/dereferencing.md:19 msgid "\"uhoh\"" msgstr "" #: src/unsafe-rust/dereferencing.md:20 -#, fuzzy msgid "\"r2 is: {}\"" -msgstr "'수: {i}개!'" +msgstr "" #: src/unsafe-rust/dereferencing.md:23 msgid "" @@ -10857,9 +10815,8 @@ msgid "\"emoji: {}\"" msgstr "" #: src/unsafe-rust/unsafe-functions.md:24 -#, fuzzy msgid "\"char count: {}\"" -msgstr "'수: {i}개!'" +msgstr "" #: src/unsafe-rust/unsafe-functions.md:27 #, fuzzy @@ -11231,9 +11188,8 @@ msgid "\".\"" msgstr "" #: src/unsafe-rust/exercise.md:144 src/unsafe-rust/solution.md:117 -#, fuzzy msgid "\"files: {:#?}\"" -msgstr "'v: {:?}'" +msgstr "" #: src/unsafe-rust/solution.md:74 msgid "\"Invalid path: {err}\"" @@ -11244,9 +11200,8 @@ msgid "// SAFETY: path.as_ptr() cannot be NULL.\n" msgstr "" #: src/unsafe-rust/solution.md:78 -#, fuzzy msgid "\"Could not open {:?}\"" -msgstr "'링크를 추출할 수 없습니다: {err:#}'" +msgstr "" #: src/unsafe-rust/solution.md:88 msgid "" @@ -11269,9 +11224,8 @@ msgid "// SAFETY: self.dir is not NULL.\n" msgstr "" #: src/unsafe-rust/solution.md:109 -#, fuzzy msgid "\"Could not close {:?}\"" -msgstr "'링크를 추출할 수 없습니다: {err:#}'" +msgstr "" #: src/unsafe-rust/solution.md:128 msgid "\"no-such-directory\"" @@ -11815,9 +11769,8 @@ msgid "/// Entry point for birthday service.\n" msgstr "" #: src/android/aidl/server.md:23 -#, fuzzy msgid "\"Failed to register service\"" -msgstr "'우승자를 수신하지 못했습니다.'" +msgstr "" #: src/android/aidl/server.md:32 src/android/aidl/server.md:33 #, fuzzy @@ -11986,9 +11939,8 @@ msgid "\"Things are going fine.\"" msgstr "" #: src/android/logging.md:37 -#, fuzzy msgid "\"Something went wrong!\"" -msgstr "'핑 핸들러 작업에 문제가 발생했습니다.'" +msgstr "" #: src/android/logging.md:41 src/android/interoperability/with-c/bindgen.md:96 #: src/android/interoperability/with-c/rust.md:72 @@ -12564,9 +12516,8 @@ msgid "\"example/include/example.h\"" msgstr "" #: src/android/interoperability/cpp/cpp-exception.md:14 -#, fuzzy msgid "\"Error: {}\"" -msgstr "'요청 오류: {0}'" +msgstr "" #: src/android/interoperability/cpp/cpp-exception.md:22 msgid "" @@ -14330,9 +14281,8 @@ msgid "Lots" msgstr "" #: src/chromium/adding-third-party-crates.md:8 -#, fuzzy msgid "Consistent: `Cargo.toml`" -msgstr "다음과 같은 `Cargo.toml`을 사용할 수 있습니다." +msgstr "" #: src/chromium/adding-third-party-crates.md:9 msgid "Typical library size" @@ -15679,7 +15629,7 @@ msgstr "" #: src/bare-metal/microcontrollers/debugging.md:3 #, fuzzy msgid "_Embed.toml_:" -msgstr "_Cargo.toml_:" +msgstr "Embed.toml:" #: src/bare-metal/microcontrollers/debugging.md:15 msgid "In one terminal under `src/bare-metal/microcontrollers/examples/`:" @@ -15925,9 +15875,8 @@ msgid "Bare Metal Rust Morning Exercise" msgstr "Bare Metal Rust 오전 연습" #: src/exercises/bare-metal/solutions-morning.md:5 -#, fuzzy msgid "([back to exercise](compass.md))" -msgstr "([연습문제로 돌아가기](chat-app.md))" +msgstr "" #: src/exercises/bare-metal/solutions-morning.md:40 msgid "// Set up the I2C controller and Inertial Measurement Unit.\n" @@ -17318,9 +17267,8 @@ msgid "\"sync_exception_current\"" msgstr "" #: src/exercises/bare-metal/rtc.md:111 -#, fuzzy msgid "\"irq_current\"" -msgstr "'current_thread'" +msgstr "" #: src/exercises/bare-metal/rtc.md:113 msgid "\"No pending interrupt\"" @@ -17331,14 +17279,12 @@ msgid "\"IRQ {intid:?}\"" msgstr "" #: src/exercises/bare-metal/rtc.md:119 -#, fuzzy msgid "\"fiq_current\"" -msgstr "'current_thread'" +msgstr "" #: src/exercises/bare-metal/rtc.md:125 -#, fuzzy msgid "\"serr_current\"" -msgstr "'current_thread'" +msgstr "" #: src/exercises/bare-metal/rtc.md:131 msgid "\"sync_lower\"" @@ -18033,9 +17979,8 @@ msgid "Bare Metal Rust Afternoon" msgstr "전Bare Metal 오후" #: src/exercises/bare-metal/solutions-afternoon.md:5 -#, fuzzy msgid "([back to exercise](rtc.md))" -msgstr "([연습문제로 돌아가기](chat-app.md))" +msgstr "" #: src/exercises/bare-metal/solutions-afternoon.md:7 #, fuzzy @@ -18066,9 +18011,8 @@ msgstr "" #: src/exercises/bare-metal/solutions-afternoon.md:73 #: src/exercises/bare-metal/solutions-afternoon.md:91 -#, fuzzy msgid "\"Waiting for {}\"" -msgstr "'{}밀리초 동안 절전 모드'" +msgstr "" #: src/exercises/bare-metal/solutions-afternoon.md:75 #: src/exercises/bare-metal/solutions-afternoon.md:83 From c1041486ef984fdac9ef2474883062dcce62a07b Mon Sep 17 00:00:00 2001 From: Henri Fontana Date: Sat, 6 Jan 2024 22:44:56 -0800 Subject: [PATCH 10/13] Reverse unrelated files --- .github/workflows/install-mdbook/action.yml | 5 +- Cargo.lock | 84 ++++---- mdbook-course/Cargo.toml | 2 +- mdbook-exerciser/Cargo.toml | 2 +- po/uk.po | 211 +++++++++++++------- src/exercises/Cargo.toml | 2 +- theme/index.hbs | 4 +- 7 files changed, 191 insertions(+), 119 deletions(-) diff --git a/.github/workflows/install-mdbook/action.yml b/.github/workflows/install-mdbook/action.yml index caf23fdfa84b..011d74078b2a 100644 --- a/.github/workflows/install-mdbook/action.yml +++ b/.github/workflows/install-mdbook/action.yml @@ -8,7 +8,7 @@ runs: # The --locked flag is important for reproducible builds. It also # avoids breakage due to skews between mdbook and mdbook-svgbob. - name: Install mdbook - run: cargo install mdbook --locked --version 0.4.36 + run: cargo install mdbook --locked --version 0.4.35 shell: bash - name: Install mdbook-svgbob @@ -16,7 +16,7 @@ runs: shell: bash - name: Install mdbook-i18n-helpers - run: cargo install mdbook-i18n-helpers --locked --version 0.3.1 + run: cargo install mdbook-i18n-helpers --locked --version 0.3.0 shell: bash - name: Install mdbook-exerciser @@ -26,3 +26,4 @@ runs: - name: Install mdbook-course run: cargo install --path mdbook-course --locked shell: bash + \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 66d58d249c80..4f62d7c81a32 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -124,9 +124,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" [[package]] name = "autocfg" @@ -419,14 +419,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] name = "cxx" -version = "1.0.114" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ed3a27153f220bb42b96005947ca3b87266cfdae5b4b4d703642c3a565e9708" +checksum = "e9fc0c733f71e58dedf4f034cd2a266f80b94cc9ed512729e1798651b68c2cba" dependencies = [ "cc", "cxxbridge-flags", @@ -436,9 +436,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.114" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005721caedeb9869792e656d567695281c7e2bf2ac022d4ed95e5240b215f44d" +checksum = "51bc81d2664db24cf1d35405f66e18a85cffd4d49ab930c71a5c6342a410f38c" dependencies = [ "cc", "codespan-reporting", @@ -446,24 +446,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] name = "cxxbridge-flags" -version = "1.0.114" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6981d27196cca89f82c8a89fd495cca25066d2933c974e907f7c3699801e112" +checksum = "8511afbe34ea242697784da5cb2c5d4a0afb224ca8b136bdf93bfe180cbe5884" [[package]] name = "cxxbridge-macro" -version = "1.0.114" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca7e7d41b675af76ee4844e8e4c1cec70b65555dbc4852eae7b11c9cd5525d60" +checksum = "5c6888cd161769d65134846d4d4981d5a6654307cc46ec83fb917e530aea5f84" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -695,7 +695,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -808,7 +808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "005e4cb962c56efd249bdeeb4ac232b11e1c45a2e49793bba2b2982dcc3f2e9d" dependencies = [ "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -1352,7 +1352,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -1486,7 +1486,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -1577,7 +1577,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -1650,7 +1650,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -1688,7 +1688,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -1760,9 +1760,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.75" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907a61bd0f64c2f29cd1cf1dc34d05176426a3f504a78010f08416ddb7b13708" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] @@ -1780,9 +1780,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.35" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -2033,22 +2033,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.194" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.194" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -2076,9 +2076,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.30" +version = "0.9.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1bf28c79a99f70ee1f1d83d10c875d2e70618417fda01ad1785e027579d9d38" +checksum = "a15e0ef66bf939a7c890a0bf6d5a733c70202225f9888a89ed5c62298b019129" dependencies = [ "indexmap", "itoa", @@ -2249,9 +2249,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" dependencies = [ "proc-macro2", "quote", @@ -2338,22 +2338,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -2398,7 +2398,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] @@ -2717,7 +2717,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", "wasm-bindgen-shared", ] @@ -2751,7 +2751,7 @@ checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2972,7 +2972,7 @@ checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.42", ] [[package]] diff --git a/mdbook-course/Cargo.toml b/mdbook-course/Cargo.toml index a77dd3690705..64ed83666086 100644 --- a/mdbook-course/Cargo.toml +++ b/mdbook-course/Cargo.toml @@ -9,7 +9,7 @@ repository = "https://github.com/google/comprehensive-rust" description = "An mdbook preprocessor for comprehensive-rust." [dependencies] -anyhow = "1.0.79" +anyhow = "1.0.68" clap = "4.4.12" lazy_static = "1.4" log = "0.4.17" diff --git a/mdbook-exerciser/Cargo.toml b/mdbook-exerciser/Cargo.toml index 61cc505856fd..5894d3eb1643 100644 --- a/mdbook-exerciser/Cargo.toml +++ b/mdbook-exerciser/Cargo.toml @@ -8,7 +8,7 @@ repository = "https://github.com/google/comprehensive-rust" description = "A tool for extracting starter code for exercises from Markdown files." [dependencies] -anyhow = "1.0.79" +anyhow = "1.0.68" log = "0.4.17" mdbook = "0.4.25" pretty_env_logger = "0.5.0" diff --git a/po/uk.po b/po/uk.po index 76f7a9b967e8..89063875b84a 100644 --- a/po/uk.po +++ b/po/uk.po @@ -60,6 +60,7 @@ msgstr "Ласкаво просимо" #: src\SUMMARY.md:19 src\SUMMARY.md:21 src\hello-world.md:1 #: src\hello-world/hello-world.md:1 +#, fuzzy msgid "Hello, World" msgstr "Hello World!" @@ -118,10 +119,12 @@ msgstr "Вправа: Фібоначчі" #: src\iterators/solution.md:1 src\modules/solution.md:1 #: src\testing/solution.md:1 src\error-handling/solution.md:1 #: src\unsafe-rust/solution.md:1 +#, fuzzy msgid "Solution" msgstr "Рішення" #: src\SUMMARY.md:32 src\control-flow-basics.md:1 +#, fuzzy msgid "Control Flow Basics" msgstr "Основи потоку керування" @@ -130,6 +133,7 @@ msgid "Conditionals" msgstr "Умовні слова" #: src\SUMMARY.md:34 src\control-flow-basics/loops.md:1 +#, fuzzy msgid "Loops" msgstr "Цикли" @@ -163,6 +167,7 @@ msgid "Tuples and Arrays" msgstr "Кортежі та масиви" #: src\SUMMARY.md:47 src\tuples-and-arrays/iteration.md:1 +#, fuzzy msgid "Array Iteration" msgstr "Ітерація масиву" @@ -173,6 +178,7 @@ msgstr "Зіставлення зразків" #: src\SUMMARY.md:49 src\SUMMARY.md:72 src\tuples-and-arrays/destructuring.md:1 #: src\pattern-matching/destructuring.md:1 +#, fuzzy msgid "Destructuring" msgstr "Деструктурування" @@ -185,10 +191,12 @@ msgid "References" msgstr "Посилання" #: src\SUMMARY.md:53 src\references/shared.md:1 +#, fuzzy msgid "Shared References" msgstr "Спільні посилання" #: src\SUMMARY.md:54 src\references/exclusive.md:1 +#, fuzzy msgid "Exclusive References" msgstr "Ексклюзивні посилання" @@ -201,6 +209,7 @@ msgid "User-Defined Types" msgstr "Типи, які визначаються користувачем" #: src\SUMMARY.md:58 src\user-defined-types/named-structs.md:1 +#, fuzzy msgid "Named Structs" msgstr "Іменовані структури" @@ -215,6 +224,7 @@ msgid "Enums" msgstr "Перелічувані типи" #: src\SUMMARY.md:61 src\user-defined-types/static-and-const.md:1 +#, fuzzy msgid "Static and Const" msgstr "Static та Const" @@ -231,6 +241,7 @@ msgid "Day 2: Morning" msgstr "День 2: Ранок" #: src\SUMMARY.md:73 src\pattern-matching/let-control-flow.md:1 +#, fuzzy msgid "Let Control Flow" msgstr "Потік контролю Let" @@ -239,6 +250,7 @@ msgid "Exercise: Expression Evaluation" msgstr "Вправа: обчислення виразу" #: src\SUMMARY.md:76 src\methods-and-traits.md:1 +#, fuzzy msgid "Methods and Traits" msgstr "Методи та Трейти" @@ -251,6 +263,7 @@ msgid "Traits" msgstr "Трейти" #: src\SUMMARY.md:79 src\methods-and-traits/deriving.md:1 +#, fuzzy msgid "Deriving" msgstr "Виведення" @@ -259,6 +272,7 @@ msgid "Trait Objects" msgstr "Трейт об'єкти" #: src\SUMMARY.md:81 src\methods-and-traits/exercise.md:1 +#, fuzzy msgid "Exercise: GUI Library" msgstr "Вправа: Бібліотека графічного інтерфейсу користувача" @@ -267,6 +281,7 @@ msgid "Generics" msgstr "Узагальнені типи" #: src\SUMMARY.md:84 src\generics/generic-functions.md:1 +#, fuzzy msgid "Generic Functions" msgstr "Узагальнені функції" @@ -291,6 +306,7 @@ msgid "Day 2: Afternoon" msgstr "День 2: Полудень" #: src\SUMMARY.md:94 src\std-types.md:1 +#, fuzzy msgid "Standard Library Types" msgstr "Типи стандартної бібліотеки" @@ -299,18 +315,22 @@ msgid "Standard Library" msgstr "Стандартна бібліотека" #: src\SUMMARY.md:96 src\std-types/docs.md:1 +#, fuzzy msgid "Documentation" msgstr "Документація" #: src\SUMMARY.md:97 +#, fuzzy msgid "`Option`" msgstr "`Option`" #: src\SUMMARY.md:98 +#, fuzzy msgid "`Result`" msgstr "`Result`" #: src\SUMMARY.md:99 src\android/interoperability/cpp/type-mapping.md:5 +#, fuzzy msgid "`String`" msgstr "`String`" @@ -323,10 +343,12 @@ msgid "`HashMap`" msgstr "`HashMap`" #: src\SUMMARY.md:102 src\std-types/exercise.md:1 +#, fuzzy msgid "Exercise: Counter" msgstr "Вправа: Лічилка" #: src\SUMMARY.md:104 src\std-traits.md:1 +#, fuzzy msgid "Standard Library Traits" msgstr "Трейти стандартної бібліотеки" @@ -335,6 +357,7 @@ msgid "Comparisons" msgstr "Порівняння" #: src\SUMMARY.md:106 src\std-traits/operators.md:1 +#, fuzzy msgid "Operators" msgstr "Оператори" @@ -343,6 +366,7 @@ msgid "`From` and `Into`" msgstr "`From` та `Into`" #: src\SUMMARY.md:108 src\std-traits/casting.md:1 +#, fuzzy msgid "Casting" msgstr "Приведення" @@ -359,6 +383,7 @@ msgid "Closures" msgstr "Закриття" #: src\SUMMARY.md:112 src\std-traits/exercise.md:1 +#, fuzzy msgid "Exercise: ROT13" msgstr "Вправа: ROT13" @@ -375,6 +400,7 @@ msgid "Review of Program Memory" msgstr "Огляд пам'яті програми" #: src\SUMMARY.md:122 src\memory-management/approaches.md:1 +#, fuzzy msgid "Approaches to Memory Management" msgstr "Підходи до управління пам'яттю" @@ -391,10 +417,12 @@ msgid "`Clone`" msgstr "`Clone`" #: src\SUMMARY.md:126 src\memory-management/copy-types.md:4 +#, fuzzy msgid "Copy Types" msgstr "Типи копіювання" #: src\SUMMARY.md:127 +#, fuzzy msgid "`Drop`" msgstr "`Drop`" @@ -408,6 +436,7 @@ msgstr "Розумні вказівники" #: src\SUMMARY.md:131 src\smart-pointers/box.md:1 #: src\android/interoperability/cpp/type-mapping.md:9 +#, fuzzy msgid "`Box`" msgstr "`Box`" @@ -428,42 +457,52 @@ msgid "Borrowing" msgstr "Запозичення" #: src\SUMMARY.md:140 src\borrowing/shared.md:1 +#, fuzzy msgid "Borrowing a Value" msgstr "Запозичення значення" #: src\SUMMARY.md:141 src\borrowing/borrowck.md:1 +#, fuzzy msgid "Borrow Checking" msgstr "Перевірка запозичення" #: src\SUMMARY.md:142 src\borrowing/interior-mutability.md:4 +#, fuzzy msgid "Interior Mutability" msgstr "Внутрішня мутабельність" #: src\SUMMARY.md:143 src\borrowing/exercise.md:1 +#, fuzzy msgid "Exercise: Health Statistics" msgstr "Вправа: Статистика здоров’я" #: src\SUMMARY.md:145 src\slices-and-lifetimes.md:1 +#, fuzzy msgid "Slices and Lifetimes" msgstr "Зрізи та тривалість життя" #: src\SUMMARY.md:146 +#, fuzzy msgid "Slices: `&[T]`" msgstr "Зрізи: `&[T]`" #: src\SUMMARY.md:147 src\slices-and-lifetimes/str.md:4 +#, fuzzy msgid "String References" msgstr "Рядкові посилання" #: src\SUMMARY.md:148 src\slices-and-lifetimes/lifetime-annotations.md:1 +#, fuzzy msgid "Lifetime Annotations" msgstr "Анотації тривалісті життя" #: src\SUMMARY.md:149 +#, fuzzy msgid "Lifetime Elision" msgstr "Упущення тривалісті життя" #: src\SUMMARY.md:150 +#, fuzzy msgid "Struct Lifetimes" msgstr "Тривалість життя структур" @@ -472,6 +511,7 @@ msgid "Exercise: Protobuf Parsing" msgstr "Вправа: Розбір Protobuf" #: src\SUMMARY.md:156 +#, fuzzy msgid "Day 4: Morning" msgstr "День 1: Ранок" @@ -488,6 +528,7 @@ msgid "`IntoIterator`" msgstr "`IntoIterator`" #: src\SUMMARY.md:162 +#, fuzzy msgid "`FromIterator`" msgstr "`FromIterator`" @@ -526,6 +567,7 @@ msgid "Test Modules" msgstr "Тестові модулі" #: src\SUMMARY.md:174 src\testing/other.md:1 +#, fuzzy msgid "Other Types of Tests" msgstr "Інші типи тестів" @@ -546,10 +588,12 @@ msgid "Compiler Lints and Clippy" msgstr "Лінти компілятора та Clippy" #: src\SUMMARY.md:179 src\testing/exercise.md:1 +#, fuzzy msgid "Exercise: Luhn Algorithm" msgstr "Вправа: Алгоритм Луна" #: src\SUMMARY.md:182 +#, fuzzy msgid "Day 4: Afternoon" msgstr "День 1: Полудень" @@ -562,22 +606,27 @@ msgid "Panics" msgstr "Паніки" #: src\SUMMARY.md:187 src\error-handling/try.md:1 +#, fuzzy msgid "Try Operator" msgstr "Try оператор" #: src\SUMMARY.md:188 src\error-handling/try-conversions.md:1 +#, fuzzy msgid "Try Conversions" msgstr "Try Перетворення" #: src\SUMMARY.md:189 +#, fuzzy msgid "`Error` Trait" msgstr "`Error` трейт" #: src\SUMMARY.md:190 +#, fuzzy msgid "`thiserror` and `anyhow`" msgstr "`thiserror` та `anyhow`" #: src\SUMMARY.md:191 +#, fuzzy msgid "Exercise: Rewriting with `Result`" msgstr "Вправа: Переписування с `Result`" @@ -586,6 +635,7 @@ msgid "Unsafe Rust" msgstr "Небезпечний Rust" #: src\SUMMARY.md:194 +#, fuzzy msgid "Unsafe" msgstr "Unsafe" @@ -602,14 +652,17 @@ msgid "Unions" msgstr "Об'єднання" #: src\SUMMARY.md:198 src\unsafe-rust/unsafe-functions.md:1 +#, fuzzy msgid "Unsafe Functions" msgstr "Небезпечні функції" #: src\SUMMARY.md:199 +#, fuzzy msgid "Unsafe Traits" msgstr "Небезпечні трейти" #: src\SUMMARY.md:200 +#, fuzzy msgid "Exercise: FFI Wrapper" msgstr "Вправа: обгортка FFI" @@ -684,14 +737,17 @@ msgid "Calling Rust from C" msgstr "Виклик Rust з C" #: src\SUMMARY.md:224 +#, fuzzy msgid "With C++)" msgstr "З С++" #: src\SUMMARY.md:225 src\android/interoperability/cpp/bridge.md:1 +#, fuzzy msgid "The Bridge Module" msgstr "Модуль Bridge" #: src\SUMMARY.md:226 +#, fuzzy msgid "Rust Bridge" msgstr "Rust Bridge" @@ -704,6 +760,7 @@ msgid "C++ Bridge" msgstr "C++ Bridge" #: src\SUMMARY.md:229 src\android/interoperability/cpp/shared-types.md:1 +#, fuzzy msgid "Shared Types" msgstr "Спільні типи" @@ -712,10 +769,12 @@ msgid "Shared Enums" msgstr "Спільні переліки" #: src\SUMMARY.md:231 src\android/interoperability/cpp/rust-result.md:1 +#, fuzzy msgid "Rust Error Handling" msgstr "Обробка помилок в Rust" #: src\SUMMARY.md:232 src\android/interoperability/cpp/cpp-exception.md:1 +#, fuzzy msgid "C++ Error Handling" msgstr "Обробка помилок в C++" @@ -761,6 +820,7 @@ msgid "Policy" msgstr "Політика" #: src\SUMMARY.md:251 +#, fuzzy msgid "Unsafe Code" msgstr "Небезпечний код" @@ -774,6 +834,7 @@ msgstr "Visual Studio Code" #: src\SUMMARY.md:254 src\SUMMARY.md:258 src\SUMMARY.md:266 src\SUMMARY.md:279 #: src\exercises/chromium/third-party.md:1 +#, fuzzy msgid "Exercise" msgstr "Вправи" @@ -786,11 +847,13 @@ msgid "GN Rules for Rust Tests" msgstr "Правила GN для тестів Rust" #: src\SUMMARY.md:259 src\chromium/interoperability-with-cpp.md:1 +#, fuzzy msgid "Interoperability with C++" msgstr "Взаємодія з C" #: src\SUMMARY.md:260 #: src\chromium/interoperability-with-cpp/example-bindings.md:1 +#, fuzzy msgid "Example Bindings" msgstr "Приклади прив'язок" @@ -801,14 +864,17 @@ msgstr "Обмеження CXX" #: src\SUMMARY.md:262 #: src\chromium/interoperability-with-cpp/error-handling.md:1 +#, fuzzy msgid "CXX Error Handling" msgstr "Обробка помилок в CXX" #: src\SUMMARY.md:263 +#, fuzzy msgid "Error Handling: QR Example" msgstr "Обробка помилок: приклад QR" #: src\SUMMARY.md:264 +#, fuzzy msgid "Error Handling: PNG Example" msgstr "Обробка помилок: приклад PNG" @@ -877,6 +943,7 @@ msgid "Bringing It Together - Exercise" msgstr "Зібрання усього разом - вправа" #: src\SUMMARY.md:281 src\exercises/chromium/solutions.md:1 +#, fuzzy msgid "Exercise Solutions" msgstr "Рішення вправ" @@ -902,7 +969,7 @@ msgstr "Мікроконтролери" #: src\SUMMARY.md:293 src\bare-metal/microcontrollers/mmio.md:1 msgid "Raw MMIO" -msgstr "Сирий ввід вивід з відображеної пам'яті (MMIO)" +msgstr "Сирий ввід вивід з відображеної пам'яті" #: src\SUMMARY.md:294 msgid "PACs" @@ -925,12 +992,13 @@ msgid "`embedded-hal`" msgstr "`embedded-hal`" #: src\SUMMARY.md:299 src\bare-metal/microcontrollers/probe-rs.md:1 +#, fuzzy msgid "`probe-rs` and `cargo-embed`" -msgstr "`probe-rs` та `cargo-embed`" +msgstr "`probe-rs`, `cargo-embed`" #: src\SUMMARY.md:300 src\bare-metal/microcontrollers/debugging.md:1 msgid "Debugging" -msgstr "Налагодження" +msgstr "Відладка" #: src\SUMMARY.md:301 src\SUMMARY.md:322 msgid "Other Projects" @@ -963,7 +1031,7 @@ msgstr "Вбудована збірка" #: src\SUMMARY.md:311 msgid "MMIO" -msgstr "Ввід вивід з відображеної пам'яті (MMIO)" +msgstr "Ввід вивід з відображеної пам'яті" #: src\SUMMARY.md:312 msgid "Let's Write a UART Driver" @@ -983,7 +1051,7 @@ msgstr "Бітові прапорці (крейт bitflags)" #: src\SUMMARY.md:316 msgid "Multiple Registers" -msgstr "Кілька регістрів" +msgstr "Регістри" #: src\SUMMARY.md:317 src\bare-metal/aps/better-uart/driver.md:1 msgid "Driver" @@ -995,11 +1063,11 @@ msgstr "Його використання" #: src\SUMMARY.md:321 src\bare-metal/aps/exceptions.md:1 msgid "Exceptions" -msgstr "Виключення" +msgstr "Вийнятки" #: src\SUMMARY.md:324 src\bare-metal/useful-crates/zerocopy.md:1 msgid "`zerocopy`" -msgstr "`zerocopy`" +msgstr "`нульова копія`" #: src\SUMMARY.md:325 src\bare-metal/useful-crates/aarch64-paging.md:1 msgid "`aarch64-paging`" @@ -1015,15 +1083,16 @@ msgstr "`tinyvec`" #: src\SUMMARY.md:328 src\bare-metal/useful-crates/spin.md:1 msgid "`spin`" -msgstr "`spin`" +msgstr "`закрутка`" #: src\SUMMARY.md:330 +#, fuzzy msgid "`vmbase`" -msgstr "`vmbase`" +msgstr "vmbase" #: src\SUMMARY.md:332 msgid "RTC Driver" -msgstr "Драйвер годинника реального часу (RTC)" +msgstr "Драйвер годинника реального часу" #: src\SUMMARY.md:336 msgid "Concurrency: Morning" @@ -1051,15 +1120,15 @@ msgstr "Зав'язані канали" #: src\SUMMARY.md:346 src\concurrency/send-sync.md:1 msgid "`Send` and `Sync`" -msgstr "`Send` та `Sync`" +msgstr "`Надіслати` і `Синхронізувати`" #: src\SUMMARY.md:347 src\concurrency/send-sync/send.md:1 msgid "`Send`" -msgstr "`Send`" +msgstr "`Надіслати`" #: src\SUMMARY.md:348 src\concurrency/send-sync/sync.md:1 msgid "`Sync`" -msgstr "`Sync`" +msgstr "`Синхронізувати`" #: src\SUMMARY.md:349 src\concurrency/send-sync/examples.md:1 msgid "Examples" @@ -1071,11 +1140,11 @@ msgstr "Спільний стан" #: src\SUMMARY.md:351 src\concurrency/shared_state/arc.md:1 msgid "`Arc`" -msgstr "`Arc`" +msgstr "`Дуга`" #: src\SUMMARY.md:352 src\concurrency/shared_state/mutex.md:1 msgid "`Mutex`" -msgstr "`Mutex`" +msgstr "`Мутекс`" #: src\SUMMARY.md:353 src\memory-management/review.md:16 #: src\error-handling/try-conversions.md:22 @@ -1087,7 +1156,7 @@ msgstr "Приклад" #: src\exercises/concurrency/dining-philosophers.md:1 #: src\exercises/concurrency/solutions-morning.md:3 msgid "Dining Philosophers" -msgstr "Обідаючи філософи" +msgstr "Обідні філософи" #: src\SUMMARY.md:356 src\exercises/concurrency/link-checker.md:1 msgid "Multi-threaded Link Checker" @@ -1103,7 +1172,7 @@ msgstr "Основи асинхронізації" #: src\SUMMARY.md:362 src\async/async-await.md:1 msgid "`async`/`await`" -msgstr "`async`/`await`" +msgstr "`async`/`wait`" #: src\SUMMARY.md:363 src\async/futures.md:1 msgid "Futures" @@ -1148,15 +1217,15 @@ msgstr "Блокування Виконавця" #: src\SUMMARY.md:373 src\async/pitfalls/pin.md:1 msgid "`Pin`" -msgstr "`Pin`" +msgstr "" #: src\SUMMARY.md:374 src\async/pitfalls/async-traits.md:1 msgid "Async Traits" -msgstr "Асинхронні Трейти" +msgstr "Асинхронні Traits" #: src\SUMMARY.md:375 src\async/pitfalls/cancellation.md:1 msgid "Cancellation" -msgstr "Скасування" +msgstr "Анулювання" #: src\SUMMARY.md:378 src\exercises/concurrency/chat-app.md:1 #: src\exercises/concurrency/solutions-afternoon.md:95 @@ -1173,7 +1242,7 @@ msgstr "Дякую!" #: src\SUMMARY.md:387 src\glossary.md:1 msgid "Glossary" -msgstr "Глосарій" +msgstr "" #: src\SUMMARY.md:388 msgid "Other Resources" @@ -1229,12 +1298,12 @@ msgid "" "The goal of the course is to teach you Rust. We assume you don't know " "anything about Rust and hope to:" msgstr "" -"Ціль курсу навчити вас мові Rust. Ми припускаємо, що ви нічого не знаєте про " -"Rust и сподіваємося:" +"Ціль курсу --- навчити вас мові Rust. Ми припускаємо, що ви нічого не знаєте " +"про Rust и сподіваємося:" #: src\index.md:18 msgid "Give you a comprehensive understanding of the Rust syntax and language." -msgstr "Дати вам повне уявлення про синтаксис та семантику мови Rust." +msgstr "Дати повне уявлення про синтаксис та семантику Rust." #: src\index.md:19 msgid "Enable you to modify existing programs and write new programs in Rust." @@ -1245,15 +1314,16 @@ msgid "Show you common Rust idioms." msgstr "Показати розповсюджені ідіоми мови Rust." #: src\index.md:22 +#, fuzzy msgid "We call the first four course days Rust Fundamentals." -msgstr "Перші чотири дні курсу ми називаємо Rust Fundamentals." +msgstr "Перші три дні курсу ми називаємо Rust Fundamentals." #: src\index.md:24 msgid "" "Building on this, you're invited to dive into one or more specialized topics:" msgstr "" -"Спираючись на це, вам пропонується зануритися в одну або кілька " -"спеціалізованих тем:" +"Перші три дні познайомлять вас із основами Rust. Після цього вам " +"пропонується заглибитися в одну або кілька спеціалізованих тем:" #: src\index.md:26 msgid "" @@ -1265,14 +1335,15 @@ msgstr "" "Java." #: src\index.md:28 +#, fuzzy msgid "" "[Chromium](chromium.md): a half-day course on using Rust within Chromium " "based browsers. This includes interoperability with C++ and how to include " "third-party crates in Chromium." msgstr "" -"[Chromium](chromium.md): розрахований на половину дня курс курс із " -"використання Rust у браузерах на основі Chromium. Сюди входить взаємодія з C+" -"+ та як включити крейти сторонніх розробників у Chromium." +"[Android](android.md): розрахований на половину дня курс з використання Rust " +"для розробки на платформі Android (AOSP). Сюди входить взаємодія з C, C++ та " +"Java." #: src\index.md:31 msgid "" @@ -1305,8 +1376,8 @@ msgid "" "Rust is a large language and we won't be able to cover all of it in a few " "days. Some non-goals of this course are:" msgstr "" -"Rust це об'ємна мова, і ми не зможемо охопити її за кілька днів. Теми, що " -"виходять за межі курсу:" +"Rust --- це об'ємна мова, і ми не зможемо охопити її за кілька днів. Теми, " +"що виходять за межі курсу:" #: src\index.md:45 msgid "" @@ -1314,9 +1385,9 @@ msgid "" "(https://doc.rust-lang.org/book/ch19-06-macros.html) and [Rust by Example]" "(https://doc.rust-lang.org/rust-by-example/macros.html) instead." msgstr "" -"Написання макросів, будь ласка подивіться [Розділ 19.5 у The Rust Book]" -"(https://doc.rust-lang.org/book/ch19-06-macros.html) та [Rust by Example]" -"(https://doc.rust-lang.org/rust-by-example/macros.html)." +"Написання макросів, див. [Розділ 19.5 у The Rust Book](https://doc.rust-lang." +"org/book/ch19-06-macros.html) и [Rust by Example](https://doc.rust-lang.org/" +"rust-by-example/macros.html)." #: src\index.md:49 msgid "Assumptions" @@ -1328,9 +1399,10 @@ msgid "" "statically-typed language and we will sometimes make comparisons with C and " "C++ to better explain or contrast the Rust approach." msgstr "" -"Передбачається, що ви вже можете програмувати. Rust це статично типізована " -"мова, і іноді ми порівнюватимемо і зіставлятимемо її з C та C++, щоб краще " -"пояснити чи підкреслити різницю у підходах до написання коду на Rust." +"Передбачається, що ви вже можете програмувати. Rust --- це статично " +"типізована мова, і іноді ми порівнюватимемо і зіставлятимемо її з C і C++, " +"щоб краще пояснити чи підкреслити різницю у підходах до написання коду на " +"Rust." #: src\index.md:55 msgid "" @@ -1338,7 +1410,7 @@ msgid "" "JavaScript, then you will be able to follow along just fine too." msgstr "" "Якщо ви знаєте, як програмувати мовою з динамічною типізацією, наприклад " -"Python або JavaScript, ви зможете також успішно пройти цей курс." +"Python або JavaScript, ви зможете успішно пройти цей курс." #: src\index.md:60 msgid "" @@ -1347,7 +1419,7 @@ msgid "" "should cover as well as answers to typical questions which come up in class." msgstr "" "Це приклад _нотаток для викладача_. Ми будемо використовувати їх для " -"додавання додаткової інформації до слайдів. Це можуть бути ключові моменти, " +"додавання додаткову інформацію до слайдів. Це можуть бути ключові моменти, " "які викладач повинен висвітлити, а також відповіді на типові питання, що " "виникають під час проходження курсу." @@ -1360,20 +1432,23 @@ msgid "" "Here is a bit of background information about how we've been running the " "course internally at Google." msgstr "" -"Ось коротка довідкова інформація про те, як ми проводили цей курс всередині " +"Ось коротка довідкова інформація про те, як ми проводили курс всередині " "Google." #: src\running-the-course.md:8 +#, fuzzy msgid "" "We typically run classes from 9:00 am to 4:00 pm, with a 1 hour lunch break " "in the middle. This leaves 3 hours for the morning class and 3 hours for the " "afternoon class. Both sessions contain multiple breaks and time for students " "to work on exercises." msgstr "" -"Зазвичай ми проводимо заняття з 9:00 до 16:00, з 1-годинною перервою на обід " -"посередині. Це залишає 3 години для ранкового заняття та 3 години для " -"післяобіднього заняття. Обидві сесії містять кілька перерв і час для роботи " -"студентів над вправами." +"Зазвичай ми проводимо заняття з 10:00 до 16:00, з 1-годинною перервою на " +"обід посередині. Це залишає 2,5 години для ранкового заняття та 2,5 години " +"для післяобіднього. Зауважте, що це лише рекомендація: ви також можете " +"приділити 3 години ранковому заняттю, щоб дати людям більше часу для вправ. " +"Недоліком довшого заняття є те, що люди можуть дуже втомитися після 6 повних " +"годин занять у другій половині дня." #: src\running-the-course.md:13 msgid "Before you run the course, you will want to:" @@ -1389,22 +1464,24 @@ msgid "" msgstr "" "Ознайомитись з матеріалами курсу. Ми додали нотатки для викладача на деяких " "сторінках, щоб виділити ключові моменти (будь ласка, допомагайте нам, " -"додаючи свої нотатки для викладачів!). Під час презентації переконайтеся, що " -"відкрили нотатки для викладача у спливаючому вікні (натисніть на посилання з " -"маленькою стрілкою поруч з \"Нотатки для викладача\"). Таким чином ви " -"матимете чистий екран, який можна представити класу." +"додаючи свої нотатки для викладачів!). Переконайтеся, що відкрили нотатки " +"для викладача у спливаючому вікні (натисніть на посилання з маленькою " +"стрілкою поруч з ”Нотатки для викладача”). У вас відкриється окреме вікно із " +"замітками для викладача, в той час, як основне вікно ви можете демонструвати " +"класу." #: src\running-the-course.md:21 +#, fuzzy msgid "" "Decide on the dates. Since the course takes four days, we recommend that you " "schedule the days over two weeks. Course participants have said that they " "find it helpful to have a gap in the course since it helps them process all " "the information we give them." msgstr "" -"Визначитись з датами. Оскільки курс вимагає щонайменше чотири дні, ми " -"рекомендуємо вам запланувати ці дні протягом двох тижнів. Учасники курсу " -"сказали, що вони вважають корисним наявність прогалин у курсі, оскільки це " -"допомагає їм обробити всю інформацію, яку ми їм надаємо." +"Визначитись з датами. Оскільки курс вимагає щонайменше три дні, ми " +"рекомендуємо вам запланувати три дні протягом двох тижнів. На наш досвід, " +"учасники курсу вважають корисною наявність перерв, оскільки це допомагає їм " +"краще осмислити інформацію." #: src\running-the-course.md:26 msgid "" @@ -1418,11 +1495,8 @@ msgid "" msgstr "" "Знайти приміщення досить просторе для очної участі. Ми рекомендуємо, щоб у " "класі було 15-20 чоловік. Це досить небагато для того, щоб людям було " -"комфортно ставити запитання --- також достатньо мало, щоб один інструктор " -"мав час відповісти на запитання. Переконайтеся, що в кімнаті є _парти_ для " -"вас і для студентів: ви всі повинні мати можливість сидіти і працювати за " -"своїми ноутбуками. Зокрема, ви будете виконувати багато програмування в " -"реальному часі як інструктор, тому кафедра вам не дуже допоможе." +"комфортно ставити запитання, а у викладача залишився час на те, щоб на них " +"відповідати." #: src\running-the-course.md:34 msgid "" @@ -1434,12 +1508,11 @@ msgid "" "you or the course participants spot them." msgstr "" "У день заняття приходьте в кімнату трохи раніше, щоби все підготувати. Ми " -"рекомендуємо презентувати безпосередньо за допомогою `mdbook serve`, " -"запущеного на вашому ноутбуці (дивиться [installation instructions](https://" -"github.com/google/comprehensive-rust#building)). Це забезпечує оптимальну " -"продуктивність без затримок під час зміни сторінок. Використання ноутбука " -"також дозволить вам виправляти друкарські помилки в міру їх виявлення вами " -"або учасниками курсу." +"рекомендуємо показувати слайди, використовуючи `mdbook serve`, запущеного на " +"вашому ноутбуці (див. [installation instructions](https://github.com/google/" +"comprehensive-rust#building)). Це забезпечує оптимальну продуктивність без " +"затримок під час зміни сторінок. Використання ноутбука також дозволить вам " +"виправляти друкарські помилки в міру їх виявлення вами або учасниками курсу." #: src\running-the-course.md:40 msgid "" @@ -1453,11 +1526,11 @@ msgid "" msgstr "" "Дозвольте учасникам вирішувати вправи самостійно або у невеликих групах. " "Зазвичай ми приділяємо вправам по 30-45 хвилин вранці та у другій половині " -"дня (включаючи час на розбір рішень). Обов'язково запитуйте людей, чи не " -"мають вони труднощів і чи є щось, з чим ви можете допомогти. Коли ви бачите, " -"що у кількох людей одна і та ж проблема, повідомте про цей клас і " -"запропонуйте рішення, наприклад, показавши, де знайти відповідну інформацію " -"у стандартній бібліотеці." +"дня (включаючи час на розбір рішень). Обов'язково запитайте, чи не мають " +"вони труднощів і чи є щось, з чим ви можете допомогти. Коли ви бачите, що у " +"кількох людей одна і та ж проблема, повідомте про цей клас і запропонуйте " +"рішення, наприклад, показавши, де знайти відповідну інформацію у стандартній " +"бібліотеці." #: src\running-the-course.md:48 msgid "" diff --git a/src/exercises/Cargo.toml b/src/exercises/Cargo.toml index 2af8a420bc9f..db073bfe3aa7 100644 --- a/src/exercises/Cargo.toml +++ b/src/exercises/Cargo.toml @@ -15,7 +15,7 @@ path = "concurrency/link-checker.rs" [dependencies] reqwest = { version = "0.11.12", features = ["blocking"] } scraper = "0.18.0" -thiserror = "1.0.56" +thiserror = "1.0.53" [dev-dependencies] tempfile = "3.9.0" diff --git a/theme/index.hbs b/theme/index.hbs index 6b4ece2c69b7..1b99ce294ef8 100644 --- a/theme/index.hbs +++ b/theme/index.hbs @@ -112,9 +112,7 @@ - + From b741d2fbc504cf861b17d365e3ea13a2baaa8ea2 Mon Sep 17 00:00:00 2001 From: Henri Fontana Date: Sat, 6 Jan 2024 22:46:45 -0800 Subject: [PATCH 11/13] fix spurious space --- .github/workflows/install-mdbook/action.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/install-mdbook/action.yml b/.github/workflows/install-mdbook/action.yml index 011d74078b2a..27e73293a39d 100644 --- a/.github/workflows/install-mdbook/action.yml +++ b/.github/workflows/install-mdbook/action.yml @@ -26,4 +26,3 @@ runs: - name: Install mdbook-course run: cargo install --path mdbook-course --locked shell: bash - \ No newline at end of file From 5e5fda4374c9e9ced0122b98f0979b893077d4ca Mon Sep 17 00:00:00 2001 From: Henri Fontana Date: Fri, 16 Feb 2024 15:40:25 -0800 Subject: [PATCH 12/13] Fixes wrong quotes --- po/ko.po | 148 +++++++++++++++++++++++++++---------------------------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/po/ko.po b/po/ko.po index 9d7fbb7223ca..c2024cabfdc5 100644 --- a/po/ko.po +++ b/po/ko.po @@ -18163,11 +18163,11 @@ msgstr "러스트의 스레드는 다른 언어의 스레드와 유사하게 동 #: src/concurrency/threads.md:12 msgid "\"Count in thread: {i}!\"" -msgstr "'스레드의 개수: {i}!'" +msgstr "\"스레드의 개수: {i}!\"" #: src/concurrency/threads.md:18 msgid "\"Main thread: {i}\"" -msgstr "'기본 스레드: {i}'" +msgstr "\"기본 스레드: {i}\"" #: src/concurrency/threads.md:24 msgid "Threads are all daemon threads, the main thread does not wait for them." @@ -18259,7 +18259,7 @@ msgstr "" #: src/concurrency/channels.md:15 src/concurrency/channels.md:16 #: src/concurrency/channels.md:20 msgid "\"Received: {:?}\"" -msgstr "'수신됨: {:?}'" +msgstr "\"수신됨: {:?}\"" #: src/concurrency/channels.md:26 msgid "" @@ -18286,22 +18286,22 @@ msgstr "`mpsc::channel()` 함수는 경계가 없는 비동기 채널을 생성 #: src/concurrency/channels/unbounded.md:16 #: src/concurrency/channels/bounded.md:16 msgid "\"Message {i}\"" -msgstr "'메시지 {i}'" +msgstr "\"메시지 {i}\"" #: src/concurrency/channels/unbounded.md:17 #: src/concurrency/channels/bounded.md:17 msgid "\"{thread_id:?}: sent Message {i}\"" -msgstr "'{thread_id:?}: 보낸 메시지 {i}'" +msgstr "\"{thread_id:?}: 보낸 메시지 {i}\"" #: src/concurrency/channels/unbounded.md:19 #: src/concurrency/channels/bounded.md:19 msgid "\"{thread_id:?}: done\"" -msgstr "'{thread_id:?}: 완료'" +msgstr "\"{thread_id:?}: 완료\"" #: src/concurrency/channels/unbounded.md:24 #: src/concurrency/channels/bounded.md:24 msgid "\"Main: got {msg}\"" -msgstr "'기본: {msg} 받음'" +msgstr "\"기본: {msg} 받음\"" #: src/concurrency/channels/bounded.md:3 #, fuzzy @@ -18599,13 +18599,13 @@ msgstr "" #: src/concurrency/shared_state/arc.md:16 msgid "\"{thread_id:?}: {v:?}\"" -msgstr "'{thread_id:?}: {v:?}'" +msgstr "\"{thread_id:?}: {v:?}\"" #: src/concurrency/shared_state/arc.md:21 #: src/concurrency/shared_state/example.md:17 #: src/concurrency/shared_state/example.md:45 msgid "\"v: {v:?}\"" -msgstr "'v: {v:?}'" +msgstr "\"v: {v:?}\"" #: src/concurrency/shared_state/arc.md:29 #, fuzzy @@ -18661,7 +18661,7 @@ msgstr "" #: src/concurrency/shared_state/mutex.md:11 #: src/concurrency/shared_state/mutex.md:18 msgid "\"v: {:?}\"" -msgstr "'v: {:?}'" +msgstr "\"v: {:?}\"" #: src/concurrency/shared_state/mutex.md:22 msgid "" @@ -18847,7 +18847,7 @@ msgstr "" #: src/exercises/concurrency/dining-philosophers-async.md:31 #: src/exercises/concurrency/solutions-afternoon.md:25 msgid "\"Eureka! {} has a new idea!\"" -msgstr "'유레카! {}에 새로운 아이디어가 있습니다.'" +msgstr "\"유레카! {}에 새로운 아이디어가 있습니다.\"" #: src/exercises/concurrency/dining-philosophers.md:41 #: src/exercises/concurrency/dining-philosophers-async.md:37 @@ -18860,7 +18860,7 @@ msgstr "// 포크를 드세요...\n" #: src/exercises/concurrency/dining-philosophers-async.md:38 #: src/exercises/concurrency/solutions-afternoon.md:38 msgid "\"{} is eating...\"" -msgstr "'{}님이 먹고 있습니다...'" +msgstr "\"{}님이 먹고 있습니다...\"" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 @@ -18875,28 +18875,28 @@ msgstr "HAL 크레이트들" #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Hypatia\"" -msgstr "'히파티아'" +msgstr "\"히파티아\"" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Plato\"" -msgstr "'플라톤'" +msgstr "\"플라톤\"" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Aristotle\"" -msgstr "'아리스토텔레스'" +msgstr "\"아리스토텔레스\"" #: src/exercises/concurrency/dining-philosophers.md:48 #: src/exercises/concurrency/solutions-morning.md:39 #: src/exercises/concurrency/dining-philosophers-async.md:44 #: src/exercises/concurrency/solutions-afternoon.md:46 msgid "\"Pythagoras\"" -msgstr "'피타고라스'" +msgstr "\"피타고라스\"" #: src/exercises/concurrency/dining-philosophers.md:51 #: src/exercises/concurrency/dining-philosophers-async.md:48 @@ -19030,40 +19030,40 @@ msgstr "`rc/main.rs`파일은 아래와 같습니다:" #: src/exercises/concurrency/link-checker.md:65 #: src/exercises/concurrency/solutions-morning.md:97 msgid "\"request error: {0}\"" -msgstr "'요청 오류: {0}'" +msgstr "\"요청 오류: {0}\"" #: src/exercises/concurrency/link-checker.md:67 #: src/exercises/concurrency/solutions-morning.md:99 msgid "\"bad http response: {0}\"" -msgstr "'잘못된 http 응답: {0}'" +msgstr "\"잘못된 http 응답: {0}\"" #: src/exercises/concurrency/link-checker.md:78 #: src/exercises/concurrency/solutions-morning.md:110 msgid "\"Checking {:#}\"" -msgstr "'{:#} 확인 중'" +msgstr "\"{:#} 확인 중\"" #: src/exercises/concurrency/link-checker.md:96 #: src/exercises/concurrency/solutions-morning.md:128 msgid "\"href\"" -msgstr "'href'" +msgstr "\"href\"" #: src/exercises/concurrency/link-checker.md:103 #: src/exercises/concurrency/solutions-morning.md:135 msgid "\"On {base_url:#}: ignored unparsable {href:?}: {err}\"" -msgstr "'{base_url:#}에서: 파싱할 수 없는 {href:?}: {err}을(를) 무시함'" +msgstr "\"{base_url:#}에서: 파싱할 수 없는 {href:?}: {err}을(를) 무시함\"" #: src/exercises/concurrency/link-checker.md:112 #: src/exercises/concurrency/solutions-morning.md:245 msgid "\"https://www.google.org\"" -msgstr "'https://www.google.org'" +msgstr "\"https://www.google.org\"" #: src/exercises/concurrency/link-checker.md:115 msgid "\"Links: {links:#?}\"" -msgstr "'링크: {links:#?}'" +msgstr "\"링크: {links:#?}\"" #: src/exercises/concurrency/link-checker.md:116 msgid "\"Could not extract links: {err:#}\"" -msgstr "'링크를 추출할 수 없습니다: {err:#}'" +msgstr "\"링크를 추출할 수 없습니다: {err:#}\"" #: src/exercises/concurrency/link-checker.md:121 msgid "Run the code in `src/main.rs` with" @@ -19097,7 +19097,7 @@ msgstr "([연습문제로 돌아가기](dining-philosophers.md)" #: src/exercises/concurrency/solutions-morning.md:29 msgid "\"{} is trying to eat\"" -msgstr "'{}님이 식사를 하려고 합니다.'" +msgstr "\"{}님이 식사를 하려고 합니다.\"" #: src/exercises/concurrency/solutions-morning.md:53 msgid "" @@ -19112,7 +19112,7 @@ msgstr "" #: src/exercises/concurrency/solutions-morning.md:77 msgid "\"{thought}\"" -msgstr "'{thought}'" +msgstr "\"{thought}\"" #: src/exercises/concurrency/solutions-morning.md:82 #, fuzzy @@ -19142,11 +19142,11 @@ msgstr "// 발신자가 삭제되었습니다. 더 이상 명령어가 수신되 #: src/exercises/concurrency/solutions-morning.md:229 msgid "\"Got crawling error: {:#}\"" -msgstr "'크롤링 오류 발생: {:#}'" +msgstr "\"크롤링 오류 발생: {:#}\"" #: src/exercises/concurrency/solutions-morning.md:247 msgid "\"Bad URLs: {:#?}\"" -msgstr "'잘못된 URL: {:#?}'" +msgstr "\"잘못된 URL: {:#?}\"" #: src/async.md:1 #, fuzzy @@ -19216,7 +19216,7 @@ msgstr "" #: src/async/async-await.md:10 msgid "\"Count is: {i}!\"" -msgstr "'수: {i}개!'" +msgstr "\"수: {i}개!\"" #: src/async/async-await.md:27 msgid "" @@ -19342,7 +19342,7 @@ msgid "" "that future remain valid. This is required to allow references to remain " "valid after an `.await`." msgstr "" -"'Pin'을 사용하면 메모리에서 Future의 위치가 고정되기 때문에 해당 future의 포" +"`Pin`을 사용하면 메모리에서 Future의 위치가 고정되기 때문에 해당 future의 포" "인터가 항상 유효하게 유지됩니다. 이는 `.await` 후에 참조를 유효한 상태로 유지" "하기 위해 필요합니다." @@ -19431,11 +19431,11 @@ msgstr "대규모 라이브러리 생태계" #: src/async/runtimes/tokio.md:14 msgid "\"Count in task: {i}!\"" -msgstr "'작업 개수: {i}개!'" +msgstr "\"작업 개수: {i}개!\"" #: src/async/runtimes/tokio.md:24 msgid "\"Main task: {i}\"" -msgstr "'기본 작업: {i}'" +msgstr "\"기본 작업: {i}\"" #: src/async/runtimes/tokio.md:32 msgid "With the `tokio::main` macro we can now make `main` async." @@ -19496,29 +19496,29 @@ msgstr "" #: src/async/tasks.md:16 #, fuzzy msgid "\"127.0.0.1:0\"" -msgstr "'127.0.0.1:2000'" +msgstr "\"127.0.0.1:2000\"" #: src/async/tasks.md:17 #, fuzzy msgid "\"listening on port {}\"" -msgstr "'포트 6142에서 수신 대기'" +msgstr "\"포트 6142에서 수신 대기\"" #: src/async/tasks.md:22 msgid "\"connection from {addr:?}\"" -msgstr "'{addr:?}에서 연결'" +msgstr "\"{addr:?}에서 연결\"" #: src/async/tasks.md:25 msgid "b\"Who are you?\\n\"" -msgstr "b'누구세요?\\n'" +msgstr "b'누구세요?\\n\"" #: src/async/tasks.md:25 src/async/tasks.md:28 src/async/tasks.md:31 #, fuzzy msgid "\"socket error\"" -msgstr "'소켓 오류: {e:?}'" +msgstr "\"소켓 오류: {e:?}\"" #: src/async/tasks.md:30 msgid "\"Thanks for dialing in, {name}!\\n\"" -msgstr "'{name}님, 전화해 주셔서 감사합니다.\\n'" +msgstr "\"{name}님, 전화해 주셔서 감사합니다.\\n\"" #: src/async/tasks.md:39 src/async/control-flow/join.md:36 msgid "" @@ -19572,23 +19572,23 @@ msgstr "" #: src/async/channels.md:13 msgid "\"Received {count} pings so far.\"" -msgstr "'지금까지 핑 {count}개를 받았습니다.'" +msgstr "\"지금까지 핑 {count}개를 받았습니다.\"" #: src/async/channels.md:16 msgid "\"ping_handler complete\"" -msgstr "'ping_handler 완료'" +msgstr "\"ping_handler 완료\"" #: src/async/channels.md:24 msgid "\"Failed to send ping.\"" -msgstr "'핑을 보내지 못했습니다.'" +msgstr "\"핑을 보내지 못했습니다.\"" #: src/async/channels.md:25 msgid "\"Sent {} pings so far.\"" -msgstr "'지금까지 핑 {}개를 전송했습니다.'" +msgstr "\"지금까지 핑 {}개를 전송했습니다.\"" #: src/async/channels.md:29 msgid "\"Something went wrong in ping handler task.\"" -msgstr "'핑 핸들러 작업에 문제가 발생했습니다.'" +msgstr "\"핑 핸들러 작업에 문제가 발생했습니다.\"" #: src/async/channels.md:35 msgid "Change the channel size to `3` and see how it affects the execution." @@ -19662,19 +19662,19 @@ msgstr "" #: src/async/control-flow/join.md:21 msgid "\"https://google.com\"" -msgstr "'https://google.com'" +msgstr "\"https://google.com\"" #: src/async/control-flow/join.md:22 msgid "\"https://httpbin.org/ip\"" -msgstr "'https://httpbin.org/ip'" +msgstr "\"https://httpbin.org/ip\"" #: src/async/control-flow/join.md:23 msgid "\"https://play.rust-lang.org/\"" -msgstr "'https://play.rust-lang.org/'" +msgstr "\"https://play.rust-lang.org/\"" #: src/async/control-flow/join.md:24 msgid "\"BAD_URL\"" -msgstr "'BAD_URL'" +msgstr "\"BAD_URL\"" #: src/async/control-flow/join.md:38 msgid "" @@ -19685,7 +19685,7 @@ msgstr "" "서로 다른 타입을 가지는 여러 여러 futures들을 join하고자 할 경우 `std::" "future::join!`을 사용할 수 있습니다. 이 매크로를 사용하려면 futures가 몇 개" "나 있을지 컴파일 할 때 알아야 한다는 점을 주의하세요. 이 매크로는 지금은 " -"'futures' 크레이트에 있으며 곧 안정화 되어 `std::future`에 포함될 예정입니다." +"`futures` 크레이트에 있으며 곧 안정화 되어 `std::future`에 포함될 예정입니다." #: src/async/control-flow/join.md:42 #, fuzzy @@ -19693,7 +19693,7 @@ msgid "" "The risk of `join` is that one of the futures may never resolve, this would " "cause your program to stall." msgstr "" -"'join'의 위험성은 futures들 중 하나가 영영 끝나지 않을 수도 있다는 것입니다. " +"`join`의 위험성은 futures들 중 하나가 영영 끝나지 않을 수도 있다는 것입니다. " "그러면 프로그램이 더이상 진행을 못하고 멈춰있을(stall) 수 있습니다. " #: src/async/control-flow/join.md:45 @@ -19738,27 +19738,27 @@ msgstr "" #: src/async/control-flow/select.md:39 msgid "\"Felix\"" -msgstr "'펠릭스'" +msgstr "\"펠릭스\"" #: src/async/control-flow/select.md:39 msgid "\"Failed to send cat.\"" -msgstr "'고양이를 보내지 못했습니다.'" +msgstr "\"고양이를 보내지 못했습니다.\"" #: src/async/control-flow/select.md:43 msgid "\"Rex\"" -msgstr "'렉스'" +msgstr "\"렉스\"" #: src/async/control-flow/select.md:43 msgid "\"Failed to send dog.\"" -msgstr "'개를 보내지 못했습니다.'" +msgstr "\"개를 보내지 못했습니다.\"" #: src/async/control-flow/select.md:48 msgid "\"Failed to receive winner\"" -msgstr "'우승자를 수신하지 못했습니다.'" +msgstr "\"우승자를 수신하지 못했습니다.\"" #: src/async/control-flow/select.md:50 msgid "\"Winner is {winner:?}\"" -msgstr "'우승자: {winner:?}'" +msgstr "\"우승자: {winner:?}\"" #: src/async/control-flow/select.md:56 #, fuzzy @@ -19866,12 +19866,12 @@ msgstr "" #: src/async/pitfalls/blocking-executor.md:14 msgid "\"future {id} slept for {duration_ms}ms, finished after {}ms\"" msgstr "" -"'future {id}은(는) {duration_ms}밀리초 동안 절전 모드였고 {}밀리초 후에 완료" -"됨'" +"\"future {id}은(는) {duration_ms}밀리초 동안 절전 모드였고 {}밀리초 후에 완료" +"됨\"" #: src/async/pitfalls/blocking-executor.md:19 msgid "\"current_thread\"" -msgstr "'current_thread'" +msgstr "\"current_thread\"" #: src/async/pitfalls/blocking-executor.md:29 msgid "" @@ -19972,7 +19972,7 @@ msgstr "// 작업하는 척합니다.\n" #: src/async/pitfalls/pin.md:34 msgid "\"failed to send response\"" -msgstr "'응답을 보내지 못했습니다.'" +msgstr "\"응답을 보내지 못했습니다.\"" #: src/async/pitfalls/pin.md:37 msgid "// TODO: report number of iterations every 100ms\n" @@ -19984,15 +19984,15 @@ msgstr "// 작업을 요청하고 작업이 완료되기를 기다리는 요청 #: src/async/pitfalls/pin.md:48 msgid "\"failed to send on work queue\"" -msgstr "'작업 큐에서 전송하지 못했습니다.'" +msgstr "\"작업 큐에서 전송하지 못했습니다.\"" #: src/async/pitfalls/pin.md:49 msgid "\"failed waiting for response\"" -msgstr "'응답 대기 실패'" +msgstr "\"응답 대기 실패\"" #: src/async/pitfalls/pin.md:58 msgid "\"work result for iteration {i}: {resp}\"" -msgstr "'반복 작업 결과 {i}: {resp}'" +msgstr "\"반복 작업 결과 {i}: {resp}\"" #: src/async/pitfalls/pin.md:65 msgid "" @@ -20080,11 +20080,11 @@ msgstr "" #: src/async/pitfalls/async-traits.md:35 msgid "\"running all sleepers..\"" -msgstr "'모든 수면자를 실행'" +msgstr "\"모든 수면자를 실행\"" #: src/async/pitfalls/async-traits.md:39 msgid "\"slept for {}ms\"" -msgstr "'{}밀리초 동안 절전 모드'" +msgstr "\"{}밀리초 동안 절전 모드\"" #: src/async/pitfalls/async-traits.md:56 msgid "" @@ -20135,11 +20135,11 @@ msgstr "UTF-8" #: src/async/pitfalls/cancellation.md:51 msgid "\"hi\\nthere\\n\"" -msgstr "'hi\\nthere\\n'" +msgstr "\"hi\\nthere\\n\"" #: src/async/pitfalls/cancellation.md:57 msgid "\"tick!\"" -msgstr "'틱!'" +msgstr "\"틱!\"" #: src/async/pitfalls/cancellation.md:72 msgid "" @@ -20472,17 +20472,17 @@ msgstr "// TODO: 힌트는 아래의 작업 설명을 참고하세요.\n" #: src/exercises/concurrency/chat-app.md:85 #: src/exercises/concurrency/solutions-afternoon.md:147 msgid "\"127.0.0.1:2000\"" -msgstr "'127.0.0.1:2000'" +msgstr "\"127.0.0.1:2000\"" #: src/exercises/concurrency/chat-app.md:86 #: src/exercises/concurrency/solutions-afternoon.md:148 msgid "\"listening on port 2000\"" -msgstr "'포트 2000에서 수신 대기'" +msgstr "\"포트 2000에서 수신 대기\"" #: src/exercises/concurrency/chat-app.md:90 #: src/exercises/concurrency/solutions-afternoon.md:152 msgid "\"New connection from {addr:?}\"" -msgstr "'{addr:?}의 새 연결'" +msgstr "\"{addr:?}의 새 연결\"" #: src/exercises/concurrency/chat-app.md:93 #: src/exercises/concurrency/solutions-afternoon.md:155 @@ -20498,7 +20498,7 @@ msgstr "_birthday_service/src/client.rs_:" #: src/exercises/concurrency/chat-app.md:116 #: src/exercises/concurrency/solutions-afternoon.md:176 msgid "\"ws://127.0.0.1:2000\"" -msgstr "'ws://127.0.0.1:2000'" +msgstr "\"ws://127.0.0.1:2000\"" #: src/exercises/concurrency/chat-app.md:129 #, fuzzy @@ -20591,7 +20591,7 @@ msgstr "" #: src/exercises/concurrency/solutions-afternoon.md:90 msgid "\"Here is a thought: {thought}\"" -msgstr "'의견 보내기: {thought}'" +msgstr "\"의견 보내기: {thought}\"" #: src/exercises/concurrency/solutions-afternoon.md:97 msgid "([back to exercise](chat-app.md))" @@ -20599,7 +20599,7 @@ msgstr "([연습문제로 돌아가기](chat-app.md))" #: src/exercises/concurrency/solutions-afternoon.md:116 msgid "\"Welcome to chat! Type a message\"" -msgstr "'채팅에 오신 것을 환영합니다. 메시지를 입력하세요.'" +msgstr "\"채팅에 오신 것을 환영합니다. 메시지를 입력하세요.\"" #: src/exercises/concurrency/solutions-afternoon.md:119 msgid "" @@ -20614,7 +20614,7 @@ msgstr "" #: src/exercises/concurrency/solutions-afternoon.md:128 msgid "\"From client {addr:?} {text:?}\"" -msgstr "'클라이언트에서: {addr:?} {text:?}'" +msgstr "\"클라이언트에서: {addr:?} {text:?}\"" #: src/exercises/concurrency/solutions-afternoon.md:183 msgid "// Continuous loop for concurrently sending and receiving messages.\n" @@ -20622,7 +20622,7 @@ msgstr "// 동시에 메시지를 보내고 받는 연속 루프\n" #: src/exercises/concurrency/solutions-afternoon.md:190 msgid "\"From server: {}\"" -msgstr "'서버에서: {}'" +msgstr "\"서버에서: {}\"" #: src/thanks.md:3 msgid "" From db5c1ebaf927e1bccf3576a87948203ba35e3df3 Mon Sep 17 00:00:00 2001 From: Henri Fontana Date: Wed, 21 Feb 2024 12:29:41 -0800 Subject: [PATCH 13/13] Commit changes suggested by reviewer --- po/ko.po | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/po/ko.po b/po/ko.po index c2024cabfdc5..4937ae9395eb 100644 --- a/po/ko.po +++ b/po/ko.po @@ -19494,14 +19494,12 @@ msgstr "" "는 것을 기다리는 것과 같은동시성도 구현할 수 있습니다." #: src/async/tasks.md:16 -#, fuzzy msgid "\"127.0.0.1:0\"" -msgstr "\"127.0.0.1:2000\"" +msgstr "\"127.0.0.1:0\"" #: src/async/tasks.md:17 -#, fuzzy msgid "\"listening on port {}\"" -msgstr "\"포트 6142에서 수신 대기\"" +msgstr "\"포트 {}에서 수신 대기\"" #: src/async/tasks.md:22 msgid "\"connection from {addr:?}\"" @@ -19509,12 +19507,11 @@ msgstr "\"{addr:?}에서 연결\"" #: src/async/tasks.md:25 msgid "b\"Who are you?\\n\"" -msgstr "b'누구세요?\\n\"" +msgstr "b\"누구세요?\\n\"" #: src/async/tasks.md:25 src/async/tasks.md:28 src/async/tasks.md:31 -#, fuzzy msgid "\"socket error\"" -msgstr "\"소켓 오류: {e:?}\"" +msgstr "\"소켓 오류\"" #: src/async/tasks.md:30 msgid "\"Thanks for dialing in, {name}!\\n\"" @@ -19810,7 +19807,7 @@ msgid "" "this can lead to issues, further discussed in the pinning slide." msgstr "" "대안은 future 자체 대신 `&mut future`를 전달하는 것입니다. 하지만 이렇게 하" -"면 문제가 발생할 수 있습니다(고정 슬라이드에서 자세히 설명함)." +"면 문제가 발생할 수 있습니다(Pinning을 다룰 때 자세히 설명할 예정임)." #: src/async/pitfalls.md:1 msgid "Pitfalls of async/await" @@ -19828,22 +19825,18 @@ msgstr "" "지 예를 살펴보겠습니다." #: src/async/pitfalls.md:7 -#, fuzzy msgid "[Blocking the Executor](pitfalls/blocking-executor.md)" msgstr "[실행자 차단](pitfalls/blocking-executor.md)" #: src/async/pitfalls.md:8 -#, fuzzy msgid "[Pin](pitfalls/pin.md)" -msgstr "[취소](pitfalls/cancellation.md)" +msgstr "[Pin](pitfalls/pin.md)" #: src/async/pitfalls.md:9 -#, fuzzy msgid "[Async Traits](pitfalls/async-traits.md)" -msgstr "[취소](pitfalls/cancellation.md)" +msgstr "[비동기 트레잇](pitfall/async-traits.md)" #: src/async/pitfalls.md:10 -#, fuzzy msgid "[Cancellation](pitfalls/cancellation.md)" msgstr "[취소](pitfalls/cancellation.md)"