From db316a70c6d39e8fd0c8e5d20acaa03d48e54ebd Mon Sep 17 00:00:00 2001
From: Andriy Redko <drreta@gmail.com>
Date: Tue, 9 Apr 2024 09:27:28 -0400
Subject: [PATCH] uk: Android development (#1969)

uk: Android development

Signed-off-by: Andriy Redko <drreta@gmail.com>
---
 po/uk.po | 547 +++++++++++++++++++++++++++++++++----------------------
 1 file changed, 329 insertions(+), 218 deletions(-)

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 "<stdio.h>"
-msgstr ""
+msgstr "<stdio.h>"
 
 #: 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<T>`"
-msgstr ""
+msgstr "`rust::Box<T>`"
 
 #: src/android/interoperability/cpp/type-mapping.md
 msgid "`UniquePtr<T>`"
-msgstr ""
+msgstr "`UniquePtr<T>`"
 
 #: src/android/interoperability/cpp/type-mapping.md
 msgid "`std::unique_ptr<T>`"
-msgstr ""
+msgstr "`std::unique_ptr<T>`"
 
 #: src/android/interoperability/cpp/type-mapping.md
-#, fuzzy
 msgid "`Vec<T>`"
-msgstr "`Vec`"
+msgstr "`Vec<T>`"
 
 #: src/android/interoperability/cpp/type-mapping.md
-#, fuzzy
 msgid "`rust::Vec<T>`"
-msgstr "`mpsc::Receiver<T>`"
+msgstr "`rust::Vec<T>`"
 
 #: src/android/interoperability/cpp/type-mapping.md
-#, fuzzy
 msgid "`CxxVector<T>`"
-msgstr "`Клітинка<T>`"
+msgstr "`CxxVector<T>`"
 
 #: src/android/interoperability/cpp/type-mapping.md
-#, fuzzy
 msgid "`std::vector<T>`"
-msgstr "`mpsc::Receiver<T>`"
+msgstr "`std::vector<T>`"
 
 #: 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."