diff --git a/po/uk.po b/po/uk.po index 67604f85..49f4fdad 100644 --- a/po/uk.po +++ b/po/uk.po @@ -12576,15 +12576,14 @@ msgid "Welcome to Rust in Android" msgstr "Ласкаво просимо до Rust в Android" #: src/android.md -#, fuzzy msgid "" "Rust is supported for system software on Android. This means that you can " "write new services, libraries, drivers or even firmware in Rust (or improve " "existing code as needed)." msgstr "" -"Rust підтримується для розробки рідної платформи на Android. Це означає, що " -"ви можете писати нові служби операційної системи в Rust, а також розширювати " -"існуючі служби." +"Rust підтримується для системного програмного забезпечення на Android. Це " +"означає, що ви можете писати нові сервіси, бібліотеки, драйвери або навіть " +"прошивки на Rust (або покращувати існуючий код за потреби)." #: src/android.md msgid "" @@ -12595,7 +12594,7 @@ msgid "" msgstr "" "Сьогодні ми спробуємо викликати Rust з одного з ваших проектів. Тож " "спробуйте знайти маленький куточок вашої кодової бази, куди ми можемо " -"перенести кілька рядків коду в Rust. Чим менше залежностей і «екзотичних» " +"перенести кілька рядків коду в Rust. Чим менше залежностей і \"екзотичних\" " "типів, тим краще. Щось, що аналізує деякі необроблені байти, було б " "ідеальним." @@ -12604,40 +12603,48 @@ msgid "" "The speaker may mention any of the following given the increased use of Rust " "in Android:" msgstr "" +"Доповідач може згадати будь-яку з наступних тем, враховуючи зростаюче " +"використання Rust в Android:" #: src/android.md msgid "" "Service example: [DNS over HTTP](https://security.googleblog.com/2022/07/dns-" "over-http3-in-android.html)" msgstr "" +"Приклад сервісу: [DNS через HTTP] (https://security.googleblog.com/2022/07/" +"dns-over-http3-in-android.html)" #: src/android.md msgid "" "Libraries: [Rutabaga Virtual Graphics Interface](https://crosvm.dev/book/" "appendix/rutabaga_gfx.html)" msgstr "" +"Бібліотеки: [Rutabaga Virtual Graphics Interface](https://crosvm.dev/book/" +"appendix/rutabaga_gfx.html)" #: src/android.md msgid "" "Kernel Drivers: [Binder](https://lore.kernel.org/rust-for-linux/20231101-" "rust-binder-v1-0-08ba9197f637@google.com/)" msgstr "" +"Драйвери ядра: [Binder](https://lore.kernel.org/rust-for-linux/20231101-rust-" +"binder-v1-0-08ba9197f637@google.com/)" #: src/android.md msgid "" "Firmware: [pKVM firmware](https://security.googleblog.com/2023/10/bare-metal-" "rust-in-android.html)" msgstr "" +"Прошивка: [прошивка pKVM](https://security.googleblog.com/2023/10/bare-metal-" +"rust-in-android.html)" #: src/android/setup.md -#, fuzzy msgid "" "We will be using a Cuttlefish Android Virtual Device to test our code. Make " "sure you have access to one or create a new one with:" msgstr "" -"Ми будемо використовувати віртуальний пристрій Android для тестування нашого " -"коду. Переконайтеся, що у вас є доступ до одного або створіть новий за " -"допомогою:" +"Для тестування нашого коду ми будемо використовувати Cuttlefish Android " +"Virtual Device. Переконайтеся, що у вас є доступ до нього або створіть новий:" #: src/android/setup.md msgid "" @@ -12652,12 +12659,16 @@ msgid "" "Cuttlefish is a reference Android device designed to work on generic Linux " "desktops. MacOS support is also planned." msgstr "" +"Cuttlefish - це еталонний пристрій Android, призначений для роботи на " +"типових робочих столах Linux. Також планується підтримка MacOS." #: src/android/setup.md msgid "" "The Cuttlefish system image maintains high fidelity to real devices, and is " "the ideal emulator to run many Rust use cases." msgstr "" +"Образ системи Cuttlefish зберігає високу точність до реальних пристроїв і є " +"ідеальним емулятором для запуску багатьох сценаріїв використання Rust." #: src/android/build-rules.md msgid "The Android build system (Soong) supports Rust via a number of modules:" @@ -12670,7 +12681,7 @@ msgstr "Тип модуля" #: src/android/build-rules.md msgid "Description" -msgstr "опис" +msgstr "Опис" #: src/android/build-rules.md msgid "`rust_binary`" @@ -12686,7 +12697,7 @@ msgstr "`rust_library`" #: src/android/build-rules.md msgid "Produces a Rust library, and provides both `rlib` and `dylib` variants." -msgstr "Створює бібліотеку Rust і надає варіанти `rlib` і `dylib`." +msgstr "Створює бібліотеку Rust і надає варіанти `rlib` та `dylib`." #: src/android/build-rules.md msgid "`rust_ffi`" @@ -12697,7 +12708,7 @@ msgid "" "Produces a Rust C library usable by `cc` modules, and provides both static " "and shared variants." msgstr "" -"Створює бібліотеку Rust C, яку можна використовувати модулями cc, і надає як " +"Створює бібліотеку Rust C, яку використовують модулі `cc`, і надає як " "статичні, так і спільні варіанти." #: src/android/build-rules.md @@ -12738,7 +12749,7 @@ msgid "" "Generates source and produces a Rust library that provides an interface for " "a particular protobuf." msgstr "" -"Створює джерело та створює бібліотеку Rust, яка забезпечує інтерфейс для " +"Генерує вихідний код і створює бібліотеку Rust, яка надає інтерфейс для " "певного protobuf." #: src/android/build-rules.md @@ -12750,8 +12761,8 @@ msgid "" "Generates source and produces a Rust library containing Rust bindings to C " "libraries." msgstr "" -"Створює джерело та створює бібліотеку Rust, яка містить прив’язки Rust до " -"бібліотек C." +"Генерує вихідний код і створює бібліотеку Rust, яка містить прив’язки Rust " +"до бібліотек C." #: src/android/build-rules.md msgid "We will look at `rust_binary` and `rust_library` next." @@ -12759,25 +12770,32 @@ msgstr "Далі ми розглянемо `rust_binary` і `rust_library`." #: src/android/build-rules.md msgid "Additional items speaker may mention:" -msgstr "" +msgstr "Спікер може згадати додаткові деталі:" #: src/android/build-rules.md msgid "" "Cargo is not optimized for multi-language repos, and also downloads packages " "from the internet." msgstr "" +"Cargo не оптимізований для багатомовних репозиторіїв, а також завантажує " +"пакети з інтернету." #: src/android/build-rules.md msgid "" "For compliance and performance, Android must have crates in-tree. It must " "also interop with C/C++/Java code. Soong fills that gap." msgstr "" +"Для сумісності та продуктивності, Android повинен мати крейти в межах " +"дерева. Він також повинен взаємодіяти з кодом C/C++/Java. Soong заповнює цю " +"прогалину." #: src/android/build-rules.md msgid "" "Soong has many similarities to Bazel, which is the open-source variant of " "Blaze (used in google3)." msgstr "" +"Soong має багато спільного з Bazel, який є варіантом Blaze з відкритим " +"вихідним кодом (використовується в google3)." #: src/android/build-rules.md msgid "" @@ -12786,14 +12804,19 @@ msgid "" "com/chromiumos/bazel/), and [Fuchsia](https://source.android.com/docs/setup/" "build/bazel/introduction) to Bazel." msgstr "" +"Існує план переходу [Android](https://source.android.com/docs/setup/build/" +"bazel/introduction), [ChromeOS](https://chromium.googlesource.com/chromiumos/" +"bazel/) та [Fuchsia](https://source.android.com/docs/setup/build/bazel/" +"introduction) на Bazel." #: src/android/build-rules.md msgid "Learning Bazel-like build rules is useful for all Rust OS developers." msgstr "" +"Вивчення Bazel-подібних правил збірки корисно для всіх розробників Rust OS." #: src/android/build-rules.md msgid "Fun fact: Data from Star Trek is a Soong-type Android." -msgstr "" +msgstr "Цікавий факт: Дані із \"Зоряного шляху\" - це Android типу Soong" #: src/android/build-rules/binary.md msgid "Rust Binaries" @@ -12804,7 +12827,7 @@ msgid "" "Let us start with a simple application. At the root of an AOSP checkout, " "create the following files:" msgstr "" -"Почнемо з простого додатка. У корені перевірки AOSP створіть такі файли:" +"Почнемо з простої програми. У корені AOSP-каси створіть наступні файли:" #: src/android/build-rules/binary.md src/android/build-rules/library.md msgid "_hello_rust/Android.bp_:" @@ -12812,13 +12835,12 @@ msgstr "_hello_rust/Android.bp_:" #: src/android/build-rules/binary.md msgid "\"hello_rust\"" -msgstr "" +msgstr "\"hello_rust\"" #: src/android/build-rules/binary.md src/android/build-rules/library.md #: src/android/logging.md -#, fuzzy msgid "\"src/main.rs\"" -msgstr "`src/main.rs`:" +msgstr "\"src/main.rs\"" #: src/android/build-rules/binary.md src/android/build-rules/library.md msgid "_hello_rust/src/main.rs_:" @@ -12826,19 +12848,19 @@ msgstr "_hello_rust/src/main.rs_:" #: src/android/build-rules/binary.md src/android/build-rules/library.md msgid "//! Rust demo.\n" -msgstr "" +msgstr "//! Демонстрація Rust.\n" #: src/android/build-rules/binary.md src/android/build-rules/library.md msgid "/// Prints a greeting to standard output.\n" -msgstr "" +msgstr "/// Виводить привітання у стандартний вивід.\n" #: src/android/build-rules/binary.md src/exercises/chromium/build-rules.md msgid "\"Hello from Rust!\"" -msgstr "" +msgstr "\"Привіт від Rust!\"" #: src/android/build-rules/binary.md msgid "You can now build, push, and run the binary:" -msgstr "Тепер ви можете створювати, надсилати та запускати бінарний файл:" +msgstr "Тепер ви можете створювати, завантажувати та запускати бінарний файл:" #: src/android/build-rules/binary.md msgid "" @@ -12848,6 +12870,11 @@ msgid "" "adb shell /data/local/tmp/hello_rust\n" "```" msgstr "" +"```shell\n" +"m hello_rust\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust\" /data/local/tmp\n" +"adb shell /data/local/tmp/hello_rust\n" +"```" #: src/android/build-rules/library.md msgid "Rust Libraries" @@ -12873,35 +12900,34 @@ msgid "" "(https://cs.android.com/android/platform/superproject/+/master:external/rust/" "crates/)." msgstr "" -"`libtextwrap`, який є ящиком, який уже продається в [`external/rust/crates/`]" -"(https://cs.android.com/android/platform/superproject/+/master:external/rust/" -"crates/)." +"`libtextwrap`, який є крейтом, який уже поставляється в [`external/rust/" +"crates/`](https://cs.android.com/android/platform/superproject/+/master:" +"external/rust/crates/)." #: src/android/build-rules/library.md msgid "\"hello_rust_with_dep\"" -msgstr "" +msgstr "\"hello_rust_with_dep\"" #: src/android/build-rules/library.md msgid "\"libgreetings\"" -msgstr "" +msgstr "\"libgreetings\"" #: src/android/build-rules/library.md msgid "\"libtextwrap\"" -msgstr "" +msgstr "\"libtextwrap\"" #: src/android/build-rules/library.md msgid "// Need this to avoid dynamic link error.\n" -msgstr "" +msgstr "// Це потрібно, щоб уникнути помилки динамічного лінкування.\n" #: src/android/build-rules/library.md msgid "\"greetings\"" -msgstr "" +msgstr "\"привіт\"" #: src/android/build-rules/library.md src/android/aidl/implementation.md #: src/android/interoperability/java.md -#, fuzzy msgid "\"src/lib.rs\"" -msgstr "`src/main.rs`:" +msgstr "\"src/lib.rs\"" #: src/android/build-rules/library.md msgid "_hello_rust/src/lib.rs_:" @@ -12909,19 +12935,19 @@ msgstr "_hello_rust/src/lib.rs_:" #: src/android/build-rules/library.md msgid "//! Greeting library.\n" -msgstr "" +msgstr "//! Бібліотека привітання.\n" #: src/android/build-rules/library.md msgid "/// Greet `name`.\n" -msgstr "" +msgstr "/// Привітати `name`.\n" #: src/android/build-rules/library.md msgid "\"Hello {name}, it is very nice to meet you!\"" -msgstr "" +msgstr "\"Привіт, {name}, дуже приємно познайомитися з вами!\"" #: src/android/build-rules/library.md msgid "You build, push, and run the binary like before:" -msgstr "Ви створюєте, надсилаєте та запускаєте бінарний файл, як і раніше:" +msgstr "Ви створюєте, завантажуєте та запускаєте бінарний файл, як і раніше:" #: src/android/build-rules/library.md msgid "" @@ -12932,13 +12958,19 @@ msgid "" "adb shell /data/local/tmp/hello_rust_with_dep\n" "```" msgstr "" +"```shell\n" +"m hello_rust_with_dep\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust_with_dep\" /data/local/" +"tmp\n" +"adb shell /data/local/tmp/hello_rust_with_dep\n" +"```" #: src/android/aidl.md msgid "" "The [Android Interface Definition Language (AIDL)](https://developer.android." "com/guide/components/aidl) is supported in Rust:" msgstr "" -"[Мова визначення інтерфейсу Android (AIDL)](https://developer.android.com/" +"[Android Interface Definition Language (AIDL)](https://developer.android.com/" "guide/components/aidl) підтримується в Rust:" #: src/android/aidl.md @@ -12965,11 +12997,11 @@ msgstr "" #: src/android/aidl/interface.md src/android/aidl/changing.md msgid "/** Birthday service interface. */" -msgstr "" +msgstr "/** Інтерфейс сервісу Birthday. */" #: src/android/aidl/interface.md src/android/aidl/changing.md msgid "/** Generate a Happy Birthday message. */" -msgstr "" +msgstr "/** Генерує привітання з днем народження. */" #: src/android/aidl/interface.md msgid "_birthday_service/aidl/Android.bp_:" @@ -12977,17 +13009,15 @@ msgstr "_birthday_service/aidl/Android.bp_:" #: src/android/aidl/interface.md msgid "\"com.example.birthdayservice\"" -msgstr "" +msgstr "\"com.example.birthdayservice\"" #: src/android/aidl/interface.md -#, fuzzy msgid "\"com/example/birthdayservice/*.aidl\"" -msgstr "" -"_birthday_service/aidl/com/example/birthdayservice/IBirthdayService.aidl_:" +msgstr "\"com/example/birthdayservice/*.aidl\"" #: src/android/aidl/interface.md msgid "// Rust is not enabled by default\n" -msgstr "" +msgstr "// Rust не увімкнено за замовчуванням\n" #: src/android/aidl/interface.md msgid "" @@ -12999,11 +13029,11 @@ msgstr "" #: src/android/aidl/implementation.md msgid "Service Implementation" -msgstr "Впровадження послуги" +msgstr "Реалізація сервісу" #: src/android/aidl/implementation.md msgid "We can now implement the AIDL service:" -msgstr "Тепер ми можемо реалізувати службу AIDL:" +msgstr "Тепер ми можемо реалізувати сервіс AIDL:" #: src/android/aidl/implementation.md msgid "_birthday_service/src/lib.rs_:" @@ -13011,16 +13041,15 @@ msgstr "_birthday_service/src/lib.rs_:" #: src/android/aidl/implementation.md msgid "//! Implementation of the `IBirthdayService` AIDL interface.\n" -msgstr "" +msgstr "//! Реалізація інтерфейсу AIDL `IBirthdayService`.\n" #: src/android/aidl/implementation.md -#, fuzzy msgid "/// The `IBirthdayService` implementation.\n" -msgstr "Впровадження послуги" +msgstr "/// Реалізація `IBirthdayService`.\n" #: src/android/aidl/implementation.md msgid "\"Happy Birthday {name}, congratulations with the {years} years!\"" -msgstr "" +msgstr "\"З днем народження {name}, вітаємо з {years} роками!\"" #: src/android/aidl/implementation.md src/android/aidl/server.md #: src/android/aidl/client.md @@ -13028,25 +13057,23 @@ msgid "_birthday_service/Android.bp_:" msgstr "_birthday_service/Android.bp_:" #: src/android/aidl/implementation.md src/android/aidl/server.md -#, fuzzy msgid "\"libbirthdayservice\"" -msgstr "_birthday_service/src/lib.rs_:" +msgstr "\"libbirthdayservice\"" #: src/android/aidl/implementation.md src/android/aidl/server.md #: src/android/aidl/client.md -#, fuzzy msgid "\"birthdayservice\"" -msgstr "_birthday_service/src/lib.rs_:" +msgstr "\"birthdayservice\"" #: src/android/aidl/implementation.md src/android/aidl/server.md #: src/android/aidl/client.md msgid "\"com.example.birthdayservice-rust\"" -msgstr "" +msgstr "\"com.example.birthdayservice-rust\"" #: src/android/aidl/implementation.md src/android/aidl/server.md #: src/android/aidl/client.md msgid "\"libbinder_rs\"" -msgstr "" +msgstr "\"libbinder_rs\"" #: src/android/aidl/server.md msgid "AIDL Server" @@ -13054,7 +13081,7 @@ msgstr "Сервер AIDL" #: src/android/aidl/server.md msgid "Finally, we can create a server which exposes the service:" -msgstr "Нарешті, ми можемо створити сервер, який відкриває сервіс:" +msgstr "Нарешті, ми можемо створити сервер, який надаватиме сервіс:" #: src/android/aidl/server.md msgid "_birthday_service/src/server.rs_:" @@ -13062,29 +13089,27 @@ msgstr "_birthday_service/src/server.rs_:" #: src/android/aidl/server.md src/android/aidl/client.md msgid "//! Birthday service.\n" -msgstr "" +msgstr "//! Сервіс привітання з днем народження.\n" #: src/android/aidl/server.md msgid "/// Entry point for birthday service.\n" -msgstr "" +msgstr "/// Точка входу для сервісу дня народження.\n" #: src/android/aidl/server.md msgid "\"Failed to register service\"" -msgstr "" +msgstr "\"Не вдалося зареєструвати сервіс\"" #: src/android/aidl/server.md -#, fuzzy msgid "\"birthday_server\"" -msgstr "_birthday_service/src/lib.rs_:" +msgstr "\"birthday_server\"" #: src/android/aidl/server.md -#, fuzzy msgid "\"src/server.rs\"" -msgstr "`src/bin/server.rs`:" +msgstr "\"src/server.rs\"" #: src/android/aidl/server.md src/android/aidl/client.md msgid "// To avoid dynamic link error.\n" -msgstr "" +msgstr "// Щоб уникнути помилки динамічного лінкування.\n" #: src/android/aidl/deploy.md msgid "We can now build, push, and start the service:" @@ -13100,15 +13125,21 @@ msgid "" "adb shell /data/local/tmp/birthday_server\n" "```" msgstr "" +"```shell\n" +"m birthday_server\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_server\" /data/local/" +"tmp\n" +"adb root\n" +"adb shell /data/local/tmp/birthday_server\n" +"```" #: src/android/aidl/deploy.md msgid "In another terminal, check that the service runs:" -msgstr "В іншому терміналі перевірте, чи працює служба:" +msgstr "В іншому терміналі перевірте, чи працює сервіс:" #: src/android/aidl/deploy.md msgid "You can also call the service with `service call`:" -msgstr "" -"Ви також можете зателефонувати в службу за допомогою `сервісний виклик`:" +msgstr "Ви також можете викликати сервіс за допомогою `service call`:" #: src/android/aidl/client.md msgid "AIDL Client" @@ -13116,7 +13147,7 @@ msgstr "Клієнт AIDL" #: src/android/aidl/client.md msgid "Finally, we can create a Rust client for our new service." -msgstr "Нарешті ми можемо створити клієнт Rust для нашої нової служби." +msgstr "Нарешті ми можемо створити клієнт Rust для нашого нового сервісу." #: src/android/aidl/client.md msgid "_birthday_service/src/client.rs_:" @@ -13124,29 +13155,27 @@ msgstr "_birthday_service/src/client.rs_:" #: src/android/aidl/client.md msgid "/// Connect to the BirthdayService.\n" -msgstr "" +msgstr "/// Підключення до BirthdayService.\n" #: src/android/aidl/client.md msgid "/// Call the birthday service.\n" -msgstr "" +msgstr "/// Виклик сервісу привітання з днем народження.\n" #: src/android/aidl/client.md msgid "\"Failed to connect to BirthdayService\"" -msgstr "" +msgstr "\"Не вдалося підключитися до BirthdayService\"" #: src/android/aidl/client.md msgid "\"{msg}\"" -msgstr "" +msgstr "\"{msg}\"" #: src/android/aidl/client.md -#, fuzzy msgid "\"birthday_client\"" -msgstr "_birthday_service/src/client.rs_:" +msgstr "\"birthday_client\"" #: src/android/aidl/client.md -#, fuzzy msgid "\"src/client.rs\"" -msgstr "`src/bin/client.rs`:" +msgstr "\"src/client.rs\"" #: src/android/aidl/client.md msgid "Notice that the client does not depend on `libbirthdayservice`." @@ -13154,7 +13183,7 @@ msgstr "Зауважте, що клієнт не залежить від `libbir #: src/android/aidl/client.md msgid "Build, push, and run the client on your device:" -msgstr "Створіть, проштовхніть і запустіть клієнт на своєму пристрої:" +msgstr "Створіть, завантажте та запустіть клієнт на своєму пристрої:" #: src/android/aidl/client.md msgid "" @@ -13165,6 +13194,12 @@ msgid "" "adb shell /data/local/tmp/birthday_client Charlie 60\n" "```" msgstr "" +"```shell\n" +"m birthday_client\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/birthday_client\" /data/local/" +"tmp\n" +"adb shell /data/local/tmp/birthday_client Charlie 60\n" +"```" #: src/android/aidl/changing.md msgid "" @@ -13179,25 +13214,24 @@ msgid "" "You should use the `log` crate to automatically log to `logcat` (on-device) " "or `stdout` (on-host):" msgstr "" -"Ви повинні використовувати ящик `log` для автоматичного входу в `logcat` (на " -"пристрої) або `stdout` (на хості):" +"Ви повинні використовувати крейт `log` для автоматичної реєстрації в " +"`logcat` (на пристрої) або `stdout` (на хості):" #: src/android/logging.md msgid "_hello_rust_logs/Android.bp_:" msgstr "_hello_rust_logs/Android.bp_:" #: src/android/logging.md -#, fuzzy msgid "\"hello_rust_logs\"" -msgstr "_hello_rust_logs/Android.bp_:" +msgstr "\"hello_rust_logs\"" #: src/android/logging.md msgid "\"liblog_rust\"" -msgstr "" +msgstr "\"liblog_rust\"" #: src/android/logging.md msgid "\"liblogger\"" -msgstr "" +msgstr "\"liblogger\"" #: src/android/logging.md msgid "_hello_rust_logs/src/main.rs_:" @@ -13205,32 +13239,32 @@ msgstr "_hello_rust_logs/src/main.rs_:" #: src/android/logging.md msgid "//! Rust logging demo.\n" -msgstr "" +msgstr "//! Демонстрація журналу Rust.\n" #: src/android/logging.md msgid "/// Logs a greeting.\n" -msgstr "" +msgstr "/// Реєструє привітання.\n" #: src/android/logging.md msgid "\"rust\"" -msgstr "" +msgstr "\"rust\"" #: src/android/logging.md msgid "\"Starting program.\"" -msgstr "" +msgstr "\"Запуск програми.\"" #: src/android/logging.md msgid "\"Things are going fine.\"" -msgstr "" +msgstr "\"Справи йдуть добре.\"" #: src/android/logging.md msgid "\"Something went wrong!\"" -msgstr "" +msgstr "\"Щось пішло не так!\"" #: src/android/logging.md src/android/interoperability/with-c/bindgen.md #: src/android/interoperability/with-c/rust.md msgid "Build, push, and run the binary on your device:" -msgstr "Створіть, надішліть і запустіть бінарний файл на своєму пристрої:" +msgstr "Створіть, завантажте і запустіть бінарний файл на своєму пристрої:" #: src/android/logging.md msgid "" @@ -13241,6 +13275,12 @@ msgid "" "adb shell /data/local/tmp/hello_rust_logs\n" "```" msgstr "" +"```shell\n" +"m hello_rust_logs\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/hello_rust_logs\" /data/local/" +"tmp\n" +"adb shell /data/local/tmp/hello_rust_logs\n" +"```" #: src/android/logging.md msgid "The logs show up in `adb logcat`:" @@ -13266,8 +13306,8 @@ msgid "" "When you call functions in a foreign language we say that you're using a " "_foreign function interface_, also known as FFI." msgstr "" -"Коли ви викликаєте функції іноземною мовою, ми говоримо, що ви " -"використовуєте _інтерфейс іноземної функції_, також відомий як FFI." +"Коли ви викликаєте функції з іншої мови, ми говоримо, що ви використовуєте " +"_foreign function interface_, також відомий як FFI." #: src/android/interoperability/with-c.md msgid "Interoperability with C" @@ -13287,7 +13327,7 @@ msgstr "Ви можете зробити це вручну, якщо хочет #: src/android/interoperability/with-c.md msgid "\"{x}, {abs_x}\"" -msgstr "" +msgstr "\"{x}, {abs_x}\"" #: src/android/interoperability/with-c.md msgid "" @@ -13303,7 +13343,7 @@ msgid "" "production." msgstr "" "Це передбачає повне знання цільової платформи. Не рекомендується для " -"виробництва." +"використання." #: src/android/interoperability/with-c.md msgid "We will look at better options next." @@ -13335,23 +13375,23 @@ msgstr "_interoperability/bindgen/libbirthday.c_:" #: src/android/interoperability/with-c/bindgen.md msgid "" -msgstr "" +msgstr "" #: src/android/interoperability/with-c/bindgen.md msgid "\"libbirthday.h\"" -msgstr "" +msgstr "\"libbirthday.h\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"+--------------\\n\"" -msgstr "" +msgstr "\"+--------------\\n\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"| Happy Birthday %s!\\n\"" -msgstr "" +msgstr "\"| З днем народженняy %s!\\n\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"| Congratulations with the %i years!\\n\"" -msgstr "" +msgstr "\"| Вітаємо з %i роками!\\n\"" #: src/android/interoperability/with-c/bindgen.md msgid "Add this to your `Android.bp` file:" @@ -13363,11 +13403,11 @@ msgstr "_interoperability/bindgen/Android.bp_:" #: src/android/interoperability/with-c/bindgen.md msgid "\"libbirthday\"" -msgstr "" +msgstr "\"libbirthday\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"libbirthday.c\"" -msgstr "" +msgstr "\"libbirthday.c\"" #: src/android/interoperability/with-c/bindgen.md msgid "" @@ -13387,20 +13427,19 @@ msgstr "Тепер ви можете автоматично генерувати #: src/android/interoperability/with-c/bindgen.md msgid "\"libbirthday_bindgen\"" -msgstr "" +msgstr "\"libbirthday_bindgen\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"birthday_bindgen\"" -msgstr "`rust_bindgen`" +msgstr "\"birthday_bindgen\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"libbirthday_wrapper.h\"" -msgstr "" +msgstr "\"libbirthday_wrapper.h\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"bindings\"" -msgstr "" +msgstr "\"прив'язки\"" #: src/android/interoperability/with-c/bindgen.md msgid "Finally, we can use the bindings in our Rust program:" @@ -13408,12 +13447,11 @@ msgstr "Нарешті, ми можемо використовувати при #: src/android/interoperability/with-c/bindgen.md msgid "\"print_birthday_card\"" -msgstr "" +msgstr "\"print_birthday_card\"" #: src/android/interoperability/with-c/bindgen.md -#, fuzzy msgid "\"main.rs\"" -msgstr "`main.rs`:" +msgstr "\"main.rs\"" #: src/android/interoperability/with-c/bindgen.md msgid "_interoperability/bindgen/main.rs_:" @@ -13421,11 +13459,12 @@ msgstr "_interoperability/bindgen/main.rs_:" #: src/android/interoperability/with-c/bindgen.md msgid "//! Bindgen demo.\n" -msgstr "" +msgstr "//! Демонстрація Bindgen.\n" #: src/android/interoperability/with-c/bindgen.md msgid "// SAFETY: `print_card` is safe to call with a valid `card` pointer.\n" msgstr "" +"// БЕЗПЕКА: `print_card` безпечно викликати з дійсним покажчиком `card`.\n" #: src/android/interoperability/with-c/bindgen.md msgid "" @@ -13436,6 +13475,12 @@ msgid "" "adb shell /data/local/tmp/print_birthday_card\n" "```" msgstr "" +"```shell\n" +"m print_birthday_card\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/print_birthday_card\" /data/local/" +"tmp\n" +"adb shell /data/local/tmp/print_birthday_card\n" +"```" #: src/android/interoperability/with-c/bindgen.md msgid "Finally, we can run auto-generated tests to ensure the bindings work:" @@ -13445,23 +13490,23 @@ msgstr "" #: src/android/interoperability/with-c/bindgen.md msgid "\"libbirthday_bindgen_test\"" -msgstr "" +msgstr "\"libbirthday_bindgen_test\"" #: src/android/interoperability/with-c/bindgen.md msgid "\":libbirthday_bindgen\"" -msgstr "" +msgstr "\":libbirthday_bindgen\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"general-tests\"" -msgstr "" +msgstr "\"general-tests\"" #: src/android/interoperability/with-c/bindgen.md msgid "\"none\"" -msgstr "" +msgstr "\"none\"" #: src/android/interoperability/with-c/bindgen.md msgid "// Generated file, skip linting\n" -msgstr "" +msgstr "// Згенерований файл, пропустити лінтування\n" #: src/android/interoperability/with-c/rust.md msgid "Calling Rust" @@ -13477,19 +13522,19 @@ msgstr "_interoperability/rust/libanalyze/analyze.rs_" #: src/android/interoperability/with-c/rust.md msgid "//! Rust FFI demo.\n" -msgstr "" +msgstr "//! Демонстрація Rust FFI.\n" #: src/android/interoperability/with-c/rust.md msgid "/// Analyze the numbers.\n" -msgstr "" +msgstr "/// Проаналізувати числа.\n" #: src/android/interoperability/with-c/rust.md msgid "\"x ({x}) is smallest!\"" -msgstr "" +msgstr "\"x ({x}) є найменшим!\"" #: src/android/interoperability/with-c/rust.md msgid "\"y ({y}) is probably larger than x ({x})\"" -msgstr "" +msgstr "\"y ({y}) ймовірно більше, ніж x ({x})\"" #: src/android/interoperability/with-c/rust.md msgid "_interoperability/rust/libanalyze/analyze.h_" @@ -13501,15 +13546,15 @@ msgstr "_interoperability/rust/libanalyze/Android.bp_" #: src/android/interoperability/with-c/rust.md msgid "\"libanalyze_ffi\"" -msgstr "" +msgstr "\"libanalyze_ffi\"" #: src/android/interoperability/with-c/rust.md msgid "\"analyze_ffi\"" -msgstr "" +msgstr "\"analyze_ffi\"" #: src/android/interoperability/with-c/rust.md msgid "\"analyze.rs\"" -msgstr "" +msgstr "\"analyze.rs\"" #: src/android/interoperability/with-c/rust.md msgid "We can now call this from a C binary:" @@ -13521,7 +13566,7 @@ msgstr "_interoperability/rust/analyze/main.c_" #: src/android/interoperability/with-c/rust.md msgid "\"analyze.h\"" -msgstr "" +msgstr "\"analyze.h\"" #: src/android/interoperability/with-c/rust.md msgid "_interoperability/rust/analyze/Android.bp_" @@ -13529,11 +13574,11 @@ msgstr "_interoperability/rust/analyze/Android.bp_" #: src/android/interoperability/with-c/rust.md msgid "\"analyze_numbers\"" -msgstr "" +msgstr "\"analyze_numbers\"" #: src/android/interoperability/with-c/rust.md msgid "\"main.c\"" -msgstr "" +msgstr "\"main.c\"" #: src/android/interoperability/with-c/rust.md msgid "" @@ -13544,6 +13589,12 @@ msgid "" "adb shell /data/local/tmp/analyze_numbers\n" "```" msgstr "" +"```shell\n" +"m analyze_numbers\n" +"adb push \"$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers\" /data/local/" +"tmp\n" +"adb shell /data/local/tmp/analyze_numbers\n" +"```" #: src/android/interoperability/with-c/rust.md msgid "" @@ -13551,7 +13602,7 @@ msgid "" "will just be the name of the function. You can also use `#[export_name = " "\"some_name\"]` to specify whatever name you want." msgstr "" -"`#[no_mangle]` вимикає звичайне спотворення імен Rust, тому експортований " +"`#[no_mangle]` вимикає звичайне перетворення назв Rust, тому експортований " "символ буде просто назвою функції. Ви також можете використовувати " "`#[export_name = \"some_name\"]`, щоб вказати будь-яке ім’я." @@ -13572,19 +13623,22 @@ msgid "" "from each language to the other. You provide this description using extern " "blocks in a Rust module annotated with the `#[cxx::bridge]` attribute macro." msgstr "" +"CXX покладається на опис сигнатур функцій, які будуть передаватися з однієї " +"мови до іншої. Ви надаєте цей опис за допомогою блоків extern у модулі Rust, " +"анотованому макросом з атрибутом `#[cxx::bridge]`." #: src/android/interoperability/cpp/bridge.md msgid "\"org::blobstore\"" -msgstr "" +msgstr "\"org::blobstore\"" #: src/android/interoperability/cpp/bridge.md msgid "// Shared structs with fields visible to both languages.\n" -msgstr "" +msgstr "// Спільні структури з полями, видимими для обох мов.\n" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/generated-cpp.md msgid "// Rust types and signatures exposed to C++.\n" -msgstr "" +msgstr "// Типи та сигнатури Rust, що доступні у C++.\n" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/rust-bridge.md @@ -13593,30 +13647,29 @@ msgstr "" #: src/chromium/interoperability-with-cpp/example-bindings.md #: src/chromium/interoperability-with-cpp/error-handling-qr.md #: src/chromium/interoperability-with-cpp/error-handling-png.md -#, fuzzy msgid "\"Rust\"" -msgstr "Rustdoc" +msgstr "\"Rust\"" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/cpp-bridge.md msgid "// C++ types and signatures exposed to Rust.\n" -msgstr "" +msgstr "// Типи та сигнатури C++, доступні у Rust.\n" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/cpp-bridge.md #: src/android/interoperability/cpp/cpp-exception.md #: src/chromium/interoperability-with-cpp/example-bindings.md msgid "\"C++\"" -msgstr "" +msgstr "\"C++\"" #: src/android/interoperability/cpp/bridge.md #: src/android/interoperability/cpp/cpp-bridge.md msgid "\"include/blobstore.h\"" -msgstr "" +msgstr "\"include/blobstore.h\"" #: src/android/interoperability/cpp/bridge.md msgid "The bridge is generally declared in an `ffi` module within your crate." -msgstr "" +msgstr "Міст зазвичай оголошується у модулі `ffi` у вашому крейті." #: src/android/interoperability/cpp/bridge.md msgid "" @@ -13624,6 +13677,9 @@ msgid "" "Rust and C++ type/function definitions in order to expose those items to " "both languages." msgstr "" +"На основі оголошень, зроблених у модулі-містку, CXX згенерує відповідні " +"визначення типів/функцій Rust та C++, щоб зробити ці елементи доступними для " +"обох мов." #: src/android/interoperability/cpp/bridge.md msgid "" @@ -13632,33 +13688,38 @@ msgid "" "examples you would use `cargo expand ::ffi` to expand just the `ffi` module " "(though this doesn't apply for Android projects)." msgstr "" +"Щоб переглянути згенерований код Rust, скористайтеся [cargo-expand](https://" +"github.com/dtolnay/cargo-expand) для перегляду розширеного макросу proc. У " +"більшості прикладів ви можете використовувати `cargo expand ::ffi` для " +"розгортання лише модуля `ffi` (хоча це не стосується проектів для Android)." #: src/android/interoperability/cpp/bridge.md msgid "To view the generated C++ code, look in `target/cxxbridge`." -msgstr "" +msgstr "Щоб переглянути згенерований C++ код, подивіться у `target/cxxbridge`." #: src/android/interoperability/cpp/rust-bridge.md msgid "Rust Bridge Declarations" -msgstr "" +msgstr "Декларації мосту на мові Rust" #: src/android/interoperability/cpp/rust-bridge.md msgid "// Opaque type\n" -msgstr "" +msgstr "// Непрозорий тип\n" #: src/android/interoperability/cpp/rust-bridge.md msgid "// Method on `MyType`\n" -msgstr "" +msgstr "// Метод на `MyType`\n" #: src/android/interoperability/cpp/rust-bridge.md -#, fuzzy msgid "// Free function\n" -msgstr "Функції" +msgstr "// Вільна функція\n" #: src/android/interoperability/cpp/rust-bridge.md msgid "" "Items declared in the `extern \"Rust\"` reference items that are in scope in " "the parent module." msgstr "" +"Елементи, оголошені у посиланнях `extern \"Rust\"`, які знаходяться в " +"області видимості батьківського модуля." #: src/android/interoperability/cpp/rust-bridge.md msgid "" @@ -13667,26 +13728,30 @@ msgid "" "header has the same path as the Rust source file containing the bridge, " "except with a .rs.h file extension." msgstr "" +"Генератор коду CXX використовує вашу секцію (секції) `extern \"Rust\"` для " +"створення заголовного файлу C++, що містить відповідні оголошення C++. " +"Створений заголовок має той самий шлях, що і вихідний файл Rust, який " +"містить міст, за винятком розширення файлу .rs.h." #: src/android/interoperability/cpp/generated-cpp.md msgid "Results in (roughly) the following C++:" -msgstr "" +msgstr "В результаті маємо (приблизно) наступний код на C++:" #: src/android/interoperability/cpp/cpp-bridge.md msgid "C++ Bridge Declarations" -msgstr "" +msgstr "Декларації мосту на мові C++" #: src/android/interoperability/cpp/cpp-bridge.md msgid "Results in (roughly) the following Rust:" -msgstr "" +msgstr "В результаті отримуємо (приблизно) такий Rust:" #: src/android/interoperability/cpp/cpp-bridge.md msgid "\"org$blobstore$cxxbridge1$new_blobstore_client\"" -msgstr "" +msgstr "\"org$blobstore$cxxbridge1$new_blobstore_client\"" #: src/android/interoperability/cpp/cpp-bridge.md msgid "\"org$blobstore$cxxbridge1$BlobstoreClient$put\"" -msgstr "" +msgstr "\"org$blobstore$cxxbridge1$BlobstoreClient$put\"" #: src/android/interoperability/cpp/cpp-bridge.md msgid "" @@ -13694,20 +13759,25 @@ msgid "" "in are accurate. CXX performs static assertions that the signatures exactly " "correspond with what is declared in C++." msgstr "" +"Програмісту не потрібно обіцяти, що введені ним сигнатури є точними. CXX " +"виконує статичні перевірки того, що сигнатури точно відповідають тому, що " +"оголошено у C++." #: src/android/interoperability/cpp/cpp-bridge.md msgid "" "`unsafe extern` blocks allow you to declare C++ functions that are safe to " "call from Rust." msgstr "" +"Блоки `unsafe extern` дозволяють вам оголошувати функції C++, які безпечно " +"викликати з Rust." #: src/android/interoperability/cpp/shared-types.md msgid "// A=1, J=11, Q=12, K=13\n" -msgstr "" +msgstr "// A=1, J=11, Q=12, K=13\n" #: src/android/interoperability/cpp/shared-types.md msgid "Only C-like (unit) enums are supported." -msgstr "" +msgstr "Підтримуються тільки C-подібні (одиничні) переліки." #: src/android/interoperability/cpp/shared-types.md msgid "" @@ -13716,15 +13786,18 @@ msgid "" "derive `Hash` also generates an implementation of `std::hash` for the " "corresponding C++ type." msgstr "" +"Для `#[derive()]` на спільних типах підтримується обмежена кількість " +"трейтів. Відповідна функціональність також генерується для C++ коду, " +"наприклад, якщо ви виводите `Hash`, також генерується реалізація `std::hash` " +"для відповідного типу C++." #: src/android/interoperability/cpp/shared-enums.md -#, fuzzy msgid "Generated Rust:" -msgstr "Небезпечний Rust" +msgstr "Згенерований Rust" #: src/android/interoperability/cpp/shared-enums.md msgid "Generated C++:" -msgstr "" +msgstr "Згенерований C++:" #: src/android/interoperability/cpp/shared-enums.md msgid "" @@ -13733,20 +13806,26 @@ msgid "" "class to hold a value different from all of the listed variants, and our " "Rust representation needs to have the same behavior." msgstr "" +"З боку Rust, код, що генерується для спільних переліків, насправді є " +"структурою, що обгортає числове значення. Це пов'язано з тим, що у C++ це не " +"є UB для класу переліку зберігати значення, відмінне від усіх перелічених " +"варіантів, і наше представлення у Rust повинно мати таку саму поведінку." #: src/android/interoperability/cpp/rust-result.md msgid "\"fallible1 requires depth > 0\"" -msgstr "" +msgstr "\"fallible1 вимагає глибини > 0\"" #: src/android/interoperability/cpp/rust-result.md msgid "\"Success!\"" -msgstr "" +msgstr "\"Успіх!\"" #: src/android/interoperability/cpp/rust-result.md msgid "" "Rust functions that return `Result` are translated to exceptions on the C++ " "side." msgstr "" +"Функції Rust, які повертають `Result`, транслюються у виняткові ситуації на " +"стороні C++." #: src/android/interoperability/cpp/rust-result.md msgid "" @@ -13754,26 +13833,35 @@ msgid "" "exposes a way to get the error message string. The error message will come " "from the error type's `Display` impl." msgstr "" +"Виняткова ситуація, яку буде згенеровано, завжди матиме тип `rust::Error`, " +"який, насамперед, надає можливість отримати рядок з повідомленням про " +"помилку. Повідомлення про помилку буде отримано з імплементації `Display` " +"для типу помилки." #: src/android/interoperability/cpp/rust-result.md msgid "" "A panic unwinding from Rust to C++ will always cause the process to " "immediately terminate." msgstr "" +"Паніка при переході з Rust на C++ завжди призведе до негайного завершення " +"процесу." #: src/android/interoperability/cpp/cpp-exception.md msgid "\"example/include/example.h\"" -msgstr "" +msgstr "\"example/include/example.h\"" #: src/android/interoperability/cpp/cpp-exception.md msgid "\"Error: {}\"" -msgstr "" +msgstr "\"Помилка: {}\"" #: src/android/interoperability/cpp/cpp-exception.md msgid "" "C++ functions declared to return a `Result` will catch any thrown exception " "on the C++ side and return it as an `Err` value to the calling Rust function." msgstr "" +"Функції C++, оголошені як такі, що повертають `Result`, перехоплять будь-яке " +"згенероване виключення на стороні C++ і повернуть його у вигляді значення " +"`Err` до викликаючої функції Rust." #: src/android/interoperability/cpp/cpp-exception.md msgid "" @@ -13782,145 +13870,149 @@ msgid "" "terminate`. The behavior is equivalent to the same exception being thrown " "through a `noexcept` C++ function." msgstr "" +"Якщо виключна ситуація виникає з функції extern \"C++\", яка не оголошена " +"мостом CXX і повертає `Result`, програма викликає `std::terminate` у C++. " +"Поведінка еквівалентна тій самій виключній ситуації, яка виникає через " +"функцію C++ `noexcept`." #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "Rust Type" -msgstr "Іржа на прикладі" +msgstr "Тип Rust" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "C++ Type" -msgstr "Приклад C++" +msgstr "Тип C++" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`rust::String`" -msgstr "`rust_bindgen`" +msgstr "`rust::String`" #: src/android/interoperability/cpp/type-mapping.md msgid "`&str`" msgstr "`&str`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`rust::Str`" -msgstr "`rust_test`" +msgstr "`rust::Str`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`CxxString`" -msgstr "String" +msgstr "`CxxString`" #: src/android/interoperability/cpp/type-mapping.md msgid "`std::string`" -msgstr "" +msgstr "`std::string`" #: src/android/interoperability/cpp/type-mapping.md msgid "`&[T]`/`&mut [T]`" -msgstr "" +msgstr "`&[T]`/`&mut [T]`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`rust::Slice`" -msgstr "`rust_ffi`" +msgstr "`rust::Slice`" #: src/android/interoperability/cpp/type-mapping.md msgid "`rust::Box`" -msgstr "" +msgstr "`rust::Box`" #: src/android/interoperability/cpp/type-mapping.md msgid "`UniquePtr`" -msgstr "" +msgstr "`UniquePtr`" #: src/android/interoperability/cpp/type-mapping.md msgid "`std::unique_ptr`" -msgstr "" +msgstr "`std::unique_ptr`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`Vec`" -msgstr "`Vec`" +msgstr "`Vec`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`rust::Vec`" -msgstr "`mpsc::Receiver`" +msgstr "`rust::Vec`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`CxxVector`" -msgstr "`Клітинка`" +msgstr "`CxxVector`" #: src/android/interoperability/cpp/type-mapping.md -#, fuzzy msgid "`std::vector`" -msgstr "`mpsc::Receiver`" +msgstr "`std::vector`" #: src/android/interoperability/cpp/type-mapping.md msgid "" "These types can be used in the fields of shared structs and the arguments " "and returns of extern functions." msgstr "" +"Ці типи можна використовувати в полях спільних структур, а також в " +"аргументах і поверненнях зовнішніх функцій." #: src/android/interoperability/cpp/type-mapping.md msgid "" "Note that Rust's `String` does not map directly to `std::string`. There are " "a few reasons for this:" msgstr "" +"Зверніть увагу, що `String` у Rust не відображається безпосередньо у `std::" +"string`. На це є декілька причин:" #: src/android/interoperability/cpp/type-mapping.md msgid "" "`std::string` does not uphold the UTF-8 invariant that `String` requires." -msgstr "" +msgstr "`std::string` не підтримує інваріант UTF-8, якого вимагає `String`." #: src/android/interoperability/cpp/type-mapping.md msgid "" "The two types have different layouts in memory and so can't be passed " "directly between languages." msgstr "" +"Ці два типи мають різне розташування в пам'яті, тому їх не можна передавати " +"безпосередньо між мовами." #: src/android/interoperability/cpp/type-mapping.md msgid "" "`std::string` requires move constructors that don't match Rust's move " "semantics, so a `std::string` can't be passed by value to Rust." msgstr "" +"`std::string` вимагає конструктора переміщення, який не відповідає семантиці " +"переміщення Rust, тому `std::string` не може бути переданий за значенням до " +"Rust" #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-cpp-genrules.md #: src/android/interoperability/cpp/android-build-rust.md -#, fuzzy msgid "Building in Android" -msgstr "Rust в Android" +msgstr "Збірка в Android" #: src/android/interoperability/cpp/android-build-cpp.md msgid "" "Create a `cc_library_static` to build the C++ library, including the CXX " "generated header and source file." msgstr "" +"Створіть `cc_library_static`, щоб зібрати бібліотеку C++, включаючи " +"згенерований CXX заголовок і вихідний файл." #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-build-rust.md msgid "\"libcxx_test_cpp\"" -msgstr "" +msgstr "\"libcxx_test_cpp\"" #: src/android/interoperability/cpp/android-build-cpp.md msgid "\"cxx_test.cpp\"" -msgstr "" +msgstr "\"cxx_test.cpp\"" #: src/android/interoperability/cpp/android-build-cpp.md msgid "\"cxx-bridge-header\"" -msgstr "" +msgstr "\"cxx-bridge-header\"" #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"libcxx_test_bridge_header\"" -msgstr "" +msgstr "\"libcxx_test_bridge_header\"" #: src/android/interoperability/cpp/android-build-cpp.md #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"libcxx_test_bridge_code\"" -msgstr "" +msgstr "\"libcxx_test_bridge_code\"" #: src/android/interoperability/cpp/android-build-cpp.md msgid "" @@ -13928,12 +14020,17 @@ msgid "" "the dependencies for the CXX-generated C++ bindings. We'll show how these " "are setup on the next slide." msgstr "" +"Зверніть увагу, що `libcxx_test_bridge_header` і `libcxx_test_bridge_code` є " +"залежностями для CXX-згенерованих зв'язок C++. Ми покажемо, як їх " +"налаштовувати, на наступному слайді." #: src/android/interoperability/cpp/android-build-cpp.md msgid "" "Note that you also need to depend on the `cxx-bridge-header` library in " "order to pull in common CXX definitions." msgstr "" +"Зауважте, що вам також потрібно залежати від бібліотеки `cxx-bridge-header`, " +"щоб отримати загальні визначення CXX." #: src/android/interoperability/cpp/android-build-cpp.md msgid "" @@ -13943,53 +14040,65 @@ msgid "" "that link with the class so that students know where they can find these " "instructions again in the future." msgstr "" +"Повну документацію щодо використання CXX в Android можна знайти в " +"[документації для Android] (https://source.android.com/docs/setup/build/rust/" +"building-rust-modules/android-rust-patterns#rust-cpp-interop-using-cxx). Ви " +"можете поділитися цим посиланням з класом, щоб студенти знали, де вони " +"можуть знайти ці інструкції у майбутньому." #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "" "Create two genrules: One to generate the CXX header, and one to generate the " "CXX source file. These are then used as inputs to the `cc_library_static`." msgstr "" +"Створіть два правила генерування: Одне для створення заголовка CXX, а інше " +"для створення вихідного файлу CXX. Потім їх буде використано як вхідні дані " +"для `cc_library_static`." #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "" "// Generate a C++ header containing the C++ bindings\n" "// to the Rust exported functions in lib.rs.\n" msgstr "" +"// Згенерує C++ заголовок, що містить C++ прив'язки до\n" +"// експортованих функцій Rust у lib.rs.\n" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"cxxbridge\"" -msgstr "" +msgstr "\"cxxbridge\"" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"$(location cxxbridge) $(in) --header > $(out)\"" -msgstr "" +msgstr "\"$(location cxxbridge) $(in) --header > $(out)\"" #: src/android/interoperability/cpp/android-cpp-genrules.md #: src/android/interoperability/cpp/android-build-rust.md msgid "\"lib.rs\"" -msgstr "" +msgstr "\"lib.rs\"" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"lib.rs.h\"" -msgstr "" +msgstr "\"lib.rs.h\"" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "// Generate the C++ code that Rust calls into.\n" -msgstr "" +msgstr "// Згенерує C++ код, до якого звертається Rust.\n" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"$(location cxxbridge) $(in) > $(out)\"" -msgstr "" +msgstr "\"$(location cxxbridge) $(in) > $(out)\"" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "\"lib.rs.cc\"" -msgstr "" +msgstr "\"lib.rs.cc\"" #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "" "The `cxxbridge` tool is a standalone tool that generates the C++ side of the " "bridge module. It is included in Android and available as a Soong tool." msgstr "" +"Інструмент `cxxbridge` - це окремий інструмент, який генерує C++ частину " +"модуля моста. Він входить до складу Android і доступний як інструмент Soong." #: src/android/interoperability/cpp/android-cpp-genrules.md msgid "" @@ -13997,19 +14106,24 @@ msgid "" "named `lib.rs.h` and your source file will be named `lib.rs.cc`. This naming " "convention isn't enforced, though." msgstr "" +"За домовленістю, якщо ваш вихідний файл Rust має ім'я `lib.rs`, ваш " +"заголовний файл буде називатися `lib.rs.h`, а вихідний файл буде називатися " +"`lib.rs.cc`. Втім, цей порядок іменування не є обов'язковим." #: src/android/interoperability/cpp/android-build-rust.md msgid "" "Create a `rust_binary` that depends on `libcxx` and your `cc_library_static`." msgstr "" +"Створіть `rust_binary`, який залежить від `libcxx` і вашої " +"`cc_library_static`." #: src/android/interoperability/cpp/android-build-rust.md msgid "\"cxx_test\"" -msgstr "" +msgstr "\"cxx_test\"" #: src/android/interoperability/cpp/android-build-rust.md msgid "\"libcxx\"" -msgstr "" +msgstr "\"libcxx\"" #: src/android/interoperability/java.md msgid "Interoperability with Java" @@ -14021,8 +14135,8 @@ msgid "" "wikipedia.org/wiki/Java_Native_Interface). The [`jni` crate](https://docs.rs/" "jni/) allows you to create a compatible library." msgstr "" -"Java може завантажувати спільні об’єкти через [власний інтерфейс Java (JNI)]" -"(https://en.wikipedia.org/wiki/Java_Native_Interface). Ящик [`jni`](https://" +"Java може завантажувати спільні об’єкти через [Java Native Interface (JNI)]" +"(https://en.wikipedia.org/wiki/Java_Native_Interface). Крейт [`jni`](https://" "docs.rs/jni/) дозволяє створити сумісну бібліотеку." #: src/android/interoperability/java.md @@ -14035,19 +14149,19 @@ msgstr "_interoperability/java/src/lib.rs_:" #: src/android/interoperability/java.md msgid "//! Rust <-> Java FFI demo.\n" -msgstr "" +msgstr "//! Rust <-> Java FFI демонстрація.\n" #: src/android/interoperability/java.md msgid "/// HelloWorld::hello method implementation.\n" -msgstr "" +msgstr "/// Реалізація методу HelloWorld::hello.\n" #: src/android/interoperability/java.md msgid "\"system\"" -msgstr "" +msgstr "\"system\"" #: src/android/interoperability/java.md msgid "\"Hello, {input}!\"" -msgstr "" +msgstr "\"Привіт, {input}!\"" #: src/android/interoperability/java.md msgid "_interoperability/java/Android.bp_:" @@ -14055,20 +14169,19 @@ msgstr "_interoperability/java/Android.bp_:" #: src/android/interoperability/java.md msgid "\"libhello_jni\"" -msgstr "" +msgstr "\"libhello_jni\"" #: src/android/interoperability/java.md msgid "\"hello_jni\"" -msgstr "" +msgstr "\"hello_jni\"" #: src/android/interoperability/java.md msgid "\"libjni\"" -msgstr "" +msgstr "\"libjni\"" #: src/android/interoperability/java.md -#, fuzzy msgid "We then call this function from Java:" -msgstr "Нарешті, ми можемо викликати цю функцію з Java:" +msgstr "Потім ми можемо викликати цю функцію з Java:" #: src/android/interoperability/java.md msgid "_interoperability/java/HelloWorld.java_:" @@ -14076,17 +14189,15 @@ msgstr "_interoperability/java/HelloWorld.java_:" #: src/android/interoperability/java.md msgid "\"helloworld_jni\"" -msgstr "" +msgstr "\"helloworld_jni\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"HelloWorld.java\"" -msgstr "Hello World!" +msgstr "\"HelloWorld.java\"" #: src/android/interoperability/java.md -#, fuzzy msgid "\"HelloWorld\"" -msgstr "Hello World!" +msgstr "\"HelloWorld\"" #: src/android/interoperability/java.md msgid "Finally, you can build, sync, and run the binary:" @@ -14103,7 +14214,7 @@ msgstr "" #: src/exercises/android/morning.md msgid "Call your AIDL service with a client written in Rust." -msgstr "Зателефонуйте до служби AIDL із клієнтом, написаним мовою Rust." +msgstr "Викличте свій сервіс AIDL з клієнтом, написаним на Rust." #: src/exercises/android/morning.md msgid "Move a function from your project to Rust and call it."