1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-19 14:17:51 +02:00

fa: android fa 3/4 translated (#2345)

fa: android fa 3/4 translated

---------

Co-authored-by: javad-jafari <javajafarifromsharak@gmail.com>
Co-authored-by: javad-jafari <65780584+javad-jafari@users.noreply.github.com>
This commit is contained in:
Danny Khosravi 2024-09-02 14:05:38 +03:30 committed by GitHub
parent 8e976ca734
commit 6110074d13
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

259
po/fa.po
View File

@ -12702,78 +12702,97 @@ msgid "// Create a binder object for the `IBirthdayInfoProvider` interface.\n"
msgstr "// Create a binder object for the `IBirthdayInfoProvider` interface.\n" msgstr "// Create a binder object for the `IBirthdayInfoProvider` interface.\n"
#: src/android/aidl/types/objects.md:62 #: src/android/aidl/types/objects.md:62
#, fuzzy
msgid "// Send the binder object to the service.\n" msgid "// Send the binder object to the service.\n"
msgstr "" msgstr "// SAFETY: `abs` doesn't have any safety requirements.\n"
#: src/android/aidl/types/objects.md:65 #: src/android/aidl/types/objects.md:65
#, fuzzy
msgid "" msgid ""
"// Perform the same operation but passing the provider as an `SpIBinder`.\n" "// Perform the same operation but passing the provider as an `SpIBinder`.\n"
msgstr "" msgstr ""
"// Perform the same operation but passing the provider as an `SpIBinder`.\n"
#: src/android/aidl/types/objects.md:72 #: src/android/aidl/types/objects.md:72
msgid "" msgid ""
"Note the usage of `BnBirthdayInfoProvider`. This serves the same purpose as " "Note the usage of `BnBirthdayInfoProvider`. This serves the same purpose as "
"`BnBirthdayService` that we saw previously." "`BnBirthdayService` that we saw previously."
msgstr "" msgstr ""
"به استفاده از `BnBirthdayInfoProvider` توجه کنید. این همان هدف "
"`BnBirthdayService` است که قبلاً دیدیم."
#: src/android/aidl/types/parcelables.md:3 #: src/android/aidl/types/parcelables.md:3
#, fuzzy
msgid "Binder for Rust supports sending parcelables directly:" msgid "Binder for Rust supports sending parcelables directly:"
msgstr "" msgstr "‏ Binder برای Rust از ارسال مستقیم بسته‌بندی‌ها پشتیبانی می‌کند:"
#: src/android/aidl/types/parcelables.md:5 #: src/android/aidl/types/parcelables.md:5
msgid "" msgid ""
"**birthday_service/aidl/com/example/birthdayservice/BirthdayInfo.aidl**:" "**birthday_service/aidl/com/example/birthdayservice/BirthdayInfo.aidl**:"
msgstr "" msgstr ""
"**birthday_service/aidl/com/example/birthdayservice/BirthdayInfo.aidl**:"
#: src/android/aidl/types/parcelables.md:22 #: src/android/aidl/types/parcelables.md:22
#, fuzzy
msgid "/** The same thing, but with a parcelable. */" msgid "/** The same thing, but with a parcelable. */"
msgstr "" msgstr "/** The same thing, but with a parcelable. */"
#: src/android/aidl/types/file-descriptor.md:3 #: src/android/aidl/types/file-descriptor.md:3
msgid "" msgid ""
"Files can be sent between Binder clients/servers using the " "Files can be sent between Binder clients/servers using the "
"`ParcelFileDescriptor` type:" "`ParcelFileDescriptor` type:"
msgstr "" msgstr ""
"فایل‌ها را می‌توان با استفاده از نوع `ParcelFileDescriptor` بین کلاینت‌ها/"
"سرورهای Binder ارسال کرد:"
#: src/android/aidl/types/file-descriptor.md:10 #: src/android/aidl/types/file-descriptor.md:10
#, fuzzy
msgid "/** The same thing, but loads info from a file. */" msgid "/** The same thing, but loads info from a file. */"
msgstr "" msgstr "/** The same thing, but loads info from a file. */"
#: src/android/aidl/types/file-descriptor.md:22 #: src/android/aidl/types/file-descriptor.md:22
#, fuzzy
msgid "// Open a file and put the birthday info in it.\n" msgid "// Open a file and put the birthday info in it.\n"
msgstr "" msgstr "// Open a file and put the birthday info in it.\n"
#: src/android/aidl/types/file-descriptor.md:23 #: src/android/aidl/types/file-descriptor.md:23
msgid "\"/data/local/tmp/birthday.info\"" msgid "\"/data/local/tmp/birthday.info\""
msgstr "" msgstr "\"/data/local/tmp/birthday.info\""
#: src/android/aidl/types/file-descriptor.md:24 #: src/android/aidl/types/file-descriptor.md:24
msgid "\"{name}\"" msgid "\"{name}\""
msgstr "" msgstr "\"{name}\""
#: src/android/aidl/types/file-descriptor.md:25 #: src/android/aidl/types/file-descriptor.md:25
msgid "\"{years}\"" msgid "\"{years}\""
msgstr "" msgstr "\"{years}\""
#: src/android/aidl/types/file-descriptor.md:27 #: src/android/aidl/types/file-descriptor.md:27
#, fuzzy
msgid "// Create a `ParcelFileDescriptor` from the file and send it.\n" msgid "// Create a `ParcelFileDescriptor` from the file and send it.\n"
msgstr "" msgstr "// Create a `ParcelFileDescriptor` from the file and send it.\n"
#: src/android/aidl/types/file-descriptor.md:33 #: src/android/aidl/types/file-descriptor.md:33
msgid "**birthday_service/src/lib.rs**:" msgid "**birthday_service/src/lib.rs**:"
msgstr "" msgstr "**birthday_service/src/lib.rs**:"
#: src/android/aidl/types/file-descriptor.md:41 #: src/android/aidl/types/file-descriptor.md:41
#, fuzzy
msgid "" msgid ""
"// Convert the file descriptor to a `File`. `ParcelFileDescriptor` wraps\n" "// Convert the file descriptor to a `File`. `ParcelFileDescriptor` wraps\n"
" // an `OwnedFd`, which can be cloned and then used to create a " " // an `OwnedFd`, which can be cloned and then used to create a "
"`File`\n" "`File`\n"
" // object.\n" " // object.\n"
msgstr "" msgstr ""
"// Convert the file descriptor to a `File`. `ParcelFileDescriptor` wraps\n"
" // an `OwnedFd`, which can be cloned and then used to create a "
"`File`\n"
" // object.\n"
#: src/android/aidl/types/file-descriptor.md:48 #: src/android/aidl/types/file-descriptor.md:48
#, fuzzy
msgid "\"Invalid file handle\"" msgid "\"Invalid file handle\""
msgstr "" msgstr "\"Invalid file handle\""
#: src/android/aidl/types/file-descriptor.md:64 #: src/android/aidl/types/file-descriptor.md:64
msgid "" msgid ""
@ -12781,80 +12800,89 @@ msgid ""
"`File` (or any other type that wraps an `OwnedFd`), and can be used to " "`File` (or any other type that wraps an `OwnedFd`), and can be used to "
"create a new `File` handle on the other side." "create a new `File` handle on the other side."
msgstr "" msgstr ""
"‏ `ParcelFileDescriptor` یک `OwnedFd` را احاطه می‌کند و بنابراین می‌تواند از یک "
"`File` (یا هر نوع دیگری که یک `OwnedFd` را احاطه می‌کند) ایجاد کند و می‌تواند "
"برای ایجاد یک دسته `File` جدید در طرف دیگر استفاده شود."
#: src/android/aidl/types/file-descriptor.md:67 #: src/android/aidl/types/file-descriptor.md:67
msgid "" msgid ""
"Other types of file descriptors can be wrapped and sent, e.g. TCP, UDP, and " "Other types of file descriptors can be wrapped and sent, e.g. TCP, UDP, and "
"UNIX sockets." "UNIX sockets."
msgstr "" msgstr ""
"انواع دیگر توصیف‌گرهای فایل را می توان بسته‌بندی و ارسال کرد، به‌عنوان‌مثال. "
"سوکت های TCP، UDP و UNIX."
#: src/android/testing.md #: src/android/testing.md
#, fuzzy
msgid "Testing in Android" msgid "Testing in Android"
msgstr "Rust در اندروید" msgstr "تست‌کردن در Android"
#: src/android/testing.md #: src/android/testing.md
msgid "" msgid ""
"Building on [Testing](../testing.md), we will now look at how unit tests " "Building on [Testing](../testing.md), we will now look at how unit tests "
"work in AOSP. Use the `rust_test` module for your unit tests:" "work in AOSP. Use the `rust_test` module for your unit tests:"
msgstr "" msgstr ""
"بر اساس [Testing](../testing.md)، اکنون به نحوه عملکرد unit testها در AOSP "
"خواهیم پرداخت. از ماژول `rust_test` برای تست های واحد خود استفاده کنید:"
#: src/android/testing.md #: src/android/testing.md
#, fuzzy
msgid "_testing/Android.bp_:" msgid "_testing/Android.bp_:"
msgstr "Rust در اندروید" msgstr "_testing/Android.bp_:"
#: src/android/testing.md #: src/android/testing.md
msgid "\"libleftpad\"" msgid "\"libleftpad\""
msgstr "" msgstr "\"libleftpad\""
#: src/android/testing.md #: src/android/testing.md
#, fuzzy
msgid "\"leftpad\"" msgid "\"leftpad\""
msgstr "" msgstr "leftpad\""
#: src/android/testing.md #: src/android/testing.md
msgid "\"libleftpad_test\"" msgid "\"libleftpad_test\""
msgstr "" msgstr "\"libleftpad_test\""
#: src/android/testing.md #: src/android/testing.md
#, fuzzy
msgid "\"leftpad_test\"" msgid "\"leftpad_test\""
msgstr "" msgstr "\"leftpad_test\""
#: src/android/testing.md src/android/interoperability/with-c/bindgen.md:116 #: src/android/testing.md src/android/interoperability/with-c/bindgen.md:116
msgid "\"general-tests\"" msgid "\"general-tests\""
msgstr "" msgstr "\"general-tests\""
#: src/android/testing.md #: src/android/testing.md
msgid "_testing/src/lib.rs_:" msgid "_testing/src/lib.rs_:"
msgstr "" msgstr "_testing/src/lib.rs_:"
#: src/android/testing.md #: src/android/testing.md
#, fuzzy
msgid "//! Left-padding library.\n" msgid "//! Left-padding library.\n"
msgstr "" msgstr "//! Left-padding library.\n"
#: src/android/testing.md #: src/android/testing.md
#, fuzzy
msgid "/// Left-pad `s` to `width`.\n" msgid "/// Left-pad `s` to `width`.\n"
msgstr "" msgstr "/// Left-pad `s` to `width`.\n"
#: src/android/testing.md #: src/android/testing.md
msgid "\"{s:>width$}\"" msgid "\"{s:>width$}\""
msgstr "" msgstr "\"{s:>width$}\""
#: src/android/testing.md #: src/android/testing.md
msgid "\" foo\"" msgid "\" foo\""
msgstr "" msgstr "\" foo\""
#: src/android/testing.md #: src/android/testing.md
msgid "\"foobar\"" msgid "\"foobar\""
msgstr "" msgstr "\"foobar\""
#: src/android/testing.md #: src/android/testing.md
msgid "You can now run the test with" msgid "You can now run the test with"
msgstr "" msgstr "اکنون می توانید تست را با"
#: src/android/testing.md #: src/android/testing.md
msgid "The output looks like this:" msgid "The output looks like this:"
msgstr "" msgstr "خروجی به شکل زیر است:"
#: src/android/testing.md #: src/android/testing.md
msgid "" msgid ""
@ -12869,32 +12897,48 @@ msgid ""
"Test cases: finished with 2 passing and 0 failing out of 2 test cases\n" "Test cases: finished with 2 passing and 0 failing out of 2 test cases\n"
"```" "```"
msgstr "" msgstr ""
"```text\n"
"INFO: Elapsed time: 2.666s, Critical Path: 2.40s\n"
"INFO: 3 processes: 2 internal, 1 linux-sandbox.\n"
"INFO: Build completed successfully, 3 total actions\n"
"//comprehensive-rust-android/testing:libleftpad_test_host PASSED "
"in 2.3s\n"
" PASSED libleftpad_test.tests::long_string (0.0s)\n"
" PASSED libleftpad_test.tests::short_string (0.0s)\n"
"Test cases: finished with 2 passing and 0 failing out of 2 test cases\n"
"```"
#: src/android/testing.md #: src/android/testing.md
msgid "" msgid ""
"Notice how you only mention the root of the library crate. Tests are found " "Notice how you only mention the root of the library crate. Tests are found "
"recursively in nested modules." "recursively in nested modules."
msgstr "" msgstr ""
"توجه کنید که چگونه فقط ریشه crate کتابخانه را ذکر می‌کنید. تست‌ها به صورت "
"بازگشتی در ماژول‌های تودرتو یافت می‌شوند."
#: src/android/testing/googletest.md:3 #: src/android/testing/googletest.md:3
msgid "" msgid ""
"The [GoogleTest](https://docs.rs/googletest/) crate allows for flexible test " "The [GoogleTest](https://docs.rs/googletest/) crate allows for flexible test "
"assertions using _matchers_:" "assertions using _matchers_:"
msgstr "" msgstr ""
"جعبه [GoogleTest](https://docs.rs/googletest/) با استفاده از _matchers_ "
"اجازه می‌دهد تا assertهای آزمایشی انعطاف‌پذیر را انجام دهید:"
#: src/android/testing/googletest.md:11 #: src/android/testing/googletest.md:11
msgid "\"baz\"" msgid "\"baz\""
msgstr "" msgstr "\"baz\""
#: src/android/testing/googletest.md:12 #: src/android/testing/googletest.md:12
msgid "\"xyz\"" msgid "\"xyz\""
msgstr "" msgstr "\"xyz\""
#: src/android/testing/googletest.md:16 #: src/android/testing/googletest.md:16
msgid "" msgid ""
"If we change the last element to `\"!\"`, the test fails with a structured " "If we change the last element to `\"!\"`, the test fails with a structured "
"error message pin-pointing the error:" "error message pin-pointing the error:"
msgstr "" msgstr ""
"اگر آخرین عنصر را به`\"!\"`تغییر دهیم، آزمایش با یک پیغام خطای ساختار یافته "
"که خطا را pin-pointing می‌کند، شکست می خورد:"
#: src/android/testing/googletest.md:37 #: src/android/testing/googletest.md:37
msgid "" msgid ""
@ -12902,6 +12946,9 @@ msgid ""
"example in a local environment. Use `cargo add googletest` to quickly add it " "example in a local environment. Use `cargo add googletest` to quickly add it "
"to an existing Cargo project." "to an existing Cargo project."
msgstr "" msgstr ""
"‏ GoogleTest بخشی از Rust Playground نیست، بنابراین باید این مثال را در یک "
"محیط local اجرا کنید. برای افزودن سریع آن به پروژه Cargo موجود، از `cargo "
"add googletest` استفاده کنید."
#: src/android/testing/googletest.md:41 #: src/android/testing/googletest.md:41
msgid "" msgid ""
@ -12909,6 +12956,9 @@ msgid ""
"macros and types](https://docs.rs/googletest/latest/googletest/prelude/index." "macros and types](https://docs.rs/googletest/latest/googletest/prelude/index."
"html)." "html)."
msgstr "" msgstr ""
"خط `use googletest::prelude::*;` تعدادی از [ماکروها و typeهای پرکاربرد]"
"(https://docs.rs/googletest/latest/googletest/prelude/index.html) را وارد "
"می‌کند."
#: src/android/testing/googletest.md:44 #: src/android/testing/googletest.md:44
msgid "" msgid ""
@ -12919,12 +12969,19 @@ msgid ""
"the library, with exercises to help you get comfortable with `googletest` " "the library, with exercises to help you get comfortable with `googletest` "
"macros, its matchers and its overall philosophy." "macros, its matchers and its overall philosophy."
msgstr "" msgstr ""
"این فقط سطح را نشان می‌دهد، تطبیق‌های داخلی زیادی وجود دارد. فصل اول [‌آزمایش "
"پیشرفته برای برنامه های Rust]‌(https://github.com/mainmatter/rust-advanced-"
"testing-workshop)، یک دوره آموزشی Rust را در نظر بگیرید: این یک مقدمه "
"راهنمایی برای کتابخانه با تمرین‌هایی که به شما کمک می‌کند با ماکروهای "
"`googletest` و مطابقت‌های آن و فلسفه کلی آن راحت باشید."
#: src/android/testing/googletest.md:51 #: src/android/testing/googletest.md:51
msgid "" msgid ""
"A particularly nice feature is that mismatches in multi-line strings are " "A particularly nice feature is that mismatches in multi-line strings are "
"shown as a diff:" "shown as a diff:"
msgstr "" msgstr ""
"یک ویژگی خاص خوب این است که عدم تطابق در string‌های چند خطی به صورت یک تفاوت "
"نشان داده می شود:"
#: src/android/testing/googletest.md:57 #: src/android/testing/googletest.md:57
msgid "" msgid ""
@ -12932,6 +12989,9 @@ msgid ""
" Rust's strong typing guides the way,\\n\\\n" " Rust's strong typing guides the way,\\n\\\n"
" Secure code you'll write.\"" " Secure code you'll write.\""
msgstr "" msgstr ""
"\"Memory safety found,\\n\\\n"
" Rust's strong typing guides the way,\\n\\\n"
" Secure code you'll write.\""
#: src/android/testing/googletest.md:62 #: src/android/testing/googletest.md:62
msgid "" msgid ""
@ -12939,16 +12999,21 @@ msgid ""
" Rust's silly humor guides the way,\\n\\\n" " Rust's silly humor guides the way,\\n\\\n"
" Secure code you'll write.\"" " Secure code you'll write.\""
msgstr "" msgstr ""
"\"Memory safety found,\\n\\\n"
" Rust's silly humor guides the way,\\n\\\n"
" Secure code you'll write.\""
#: src/android/testing/googletest.md:69 #: src/android/testing/googletest.md:69
msgid "shows a color-coded diff (colors not shown here):" msgid "shows a color-coded diff (colors not shown here):"
msgstr "" msgstr "تفاوت رنگی را نشان می‌دهد (رنگ ها در اینجا نشان‌داده نمی‌شوند):"
#: src/android/testing/googletest.md:86 #: src/android/testing/googletest.md:86
msgid "" msgid ""
"The crate is a Rust port of [GoogleTest for C++](https://google.github.io/" "The crate is a Rust port of [GoogleTest for C++](https://google.github.io/"
"googletest/)." "googletest/)."
msgstr "" msgstr ""
"این crate یک پورت [GoogleTest for C++]‌(https://google.github.io/googletest/) "
"در Rust است."
#: src/android/testing/mocking.md:3 #: src/android/testing/mocking.md:3
msgid "" msgid ""
@ -12956,6 +13021,9 @@ msgid ""
"You need to refactor your code to use traits, which you can then quickly " "You need to refactor your code to use traits, which you can then quickly "
"mock:" "mock:"
msgstr "" msgstr ""
"برای mocking از [Mockall](https://docs.rs/mockall/) که یک کتابخانه محبوب "
"بوده استفاده شده است. برای استفاده از traitها، باید کد خود را مجدداً تغییر "
"دهید، سپس می‌توانید به سرعت آنها را mock کنید:"
#: src/android/testing/mocking.md:27 #: src/android/testing/mocking.md:27
msgid "" msgid ""
@ -12965,6 +13033,11 @@ msgid ""
"libraries work in a similar fashion as Mockall, meaning that they make it " "libraries work in a similar fashion as Mockall, meaning that they make it "
"easy to get a mock implementation of a given trait." "easy to get a mock implementation of a given trait."
msgstr "" msgstr ""
"‏ Mockall کتابخانه mocking توصیه شده در Android (AOSP) است. [کتابخانه‌های "
"mocking دیگری در crates.io](https://crates.io/keywords/mock) در دسترس هستند، "
"به‌ویژه در زمینه سرویس‌های mocking HTTP. سایر کتابخانه‌های mocking به روشی "
"مشابه Mockall کار می‌کنند، به این معنی که اجرای ساختگی یا mock یک ویژگی خاص "
"را آسان می‌کنند."
#: src/android/testing/mocking.md:33 #: src/android/testing/mocking.md:33
msgid "" msgid ""
@ -12973,14 +13046,25 @@ msgid ""
"more stable test execution. On the other hand, the mocks can be configured " "more stable test execution. On the other hand, the mocks can be configured "
"wrongly and return output different from what the real dependencies would do." "wrongly and return output different from what the real dependencies would do."
msgstr "" msgstr ""
"توجه داشته باشید که mocking تا حدودی _جنجال_برانگیز_ است: mockها به شما این "
"امکان را می‌دهند که آزمون را کاملاً از وابستگی‌های آن جدا کنید. نتیجه فوری آن، "
"اجرای سریع‌تر و پایدارتر تست است. از طرف دیگر، mockها را می توان به اشتباه "
"پیکربندی کرد و خروجی متفاوتی با آنچه وابستگی های واقعی انجام می دادند را "
"برگرداند."
#: src/android/testing/mocking.md:38 #: src/android/testing/mocking.md:38
#, fuzzy
msgid "" msgid ""
"If at all possible, it is recommended that you use the real dependencies. As " "If at all possible, it is recommended that you use the real dependencies. As "
"an example, many databases allow you to configure an in-memory backend. This " "an example, many databases allow you to configure an in-memory backend. This "
"means that you get the correct behavior in your tests, plus they are fast " "means that you get the correct behavior in your tests, plus they are fast "
"and will automatically clean up after themselves." "and will automatically clean up after themselves."
msgstr "" msgstr ""
"در صورت امکان، توصیه می‌شود از وابستگی‌های واقعی استفاده کنید. به عنوان مثال، "
"بسیاری از پایگاه‌داده‌ها به شما اجازه می‌دهند تا یک in-memory backend را "
"پیکربندی کنید. این به این معنی است که شما در تست های خود رفتار صحیح را "
"دریافت می کنید، به علاوه آنها سریع هستند و به طور خودکار پس از اجرای عملیات "
"مخصوص به خود پاک می شوند."
#: src/android/testing/mocking.md:43 #: src/android/testing/mocking.md:43
msgid "" msgid ""
@ -12988,6 +13072,10 @@ msgid ""
"binds to a random port on `localhost`. Always prefer this over mocking away " "binds to a random port on `localhost`. Always prefer this over mocking away "
"the framework since it helps you test your code in the real environment." "the framework since it helps you test your code in the real environment."
msgstr "" msgstr ""
"به‌طور‌ مشابه، بسیاری از frameworkهای وب به شما اجازه می‌دهند یک سرور در یک "
"process دیگر راه‌اندازی کنید که به یک پورت تصادفی در `localhost` متصل می‌شود. "
"همیشه این را به mock کردن framework ترجیح دهید زیرا به شما کمک می‌کند کد خود "
"را در محیط واقعی آزمایش کنید."
#: src/android/testing/mocking.md:47 #: src/android/testing/mocking.md:47
msgid "" msgid ""
@ -12995,6 +13083,9 @@ msgid ""
"in a local environment. Use `cargo add mockall` to quickly add Mockall to an " "in a local environment. Use `cargo add mockall` to quickly add Mockall to an "
"existing Cargo project." "existing Cargo project."
msgstr "" msgstr ""
"‏ Mockall بخشی از Rust Playground نیست، بنابراین باید این مثال را در یک محیط "
"local اجرا کنید. از `cargo add mockall` برای اضافه کردن سریع Mockall به "
"پروژه Cargo موجود استفاده کنید."
#: src/android/testing/mocking.md:51 #: src/android/testing/mocking.md:51
msgid "" msgid ""
@ -13002,6 +13093,10 @@ msgid ""
"expectations which depend on the arguments passed. Here we use this to mock " "expectations which depend on the arguments passed. Here we use this to mock "
"a cat which becomes hungry 3 hours after the last time it was fed:" "a cat which becomes hungry 3 hours after the last time it was fed:"
msgstr "" msgstr ""
"‏ Mockall عملکرد بسیار بیشتری دارد. به ویژه، می‌توانید انتظاراتی را تنظیم کنید "
"که به استدلال های ارائه شده بستگی دارد. در اینجا ما از این برای mock کردن "
"عملکرد cat استفاده می‌کنیم که 3 ساعت پس از آخرین باری که به آن غذا داده شده "
"گرسنه می‌شود:"
#: src/android/testing/mocking.md:69 #: src/android/testing/mocking.md:69
msgid "" msgid ""
@ -13009,61 +13104,71 @@ msgid ""
"called to `n` --- the mock will automatically panic when dropped if this " "called to `n` --- the mock will automatically panic when dropped if this "
"isn't satisfied." "isn't satisfied."
msgstr "" msgstr ""
"می‌توانید از `.times(n)` برای محدود‌کردن تعداد دفعاتی که یک mock method "
"می‌تواند به`n` فراخوانی شود استفاده کنید --- در صورت عدم ارضای این روش، زمانی "
"که آن را حذف کنید به‌طور خودکار دچار panic می‌شود."
#: src/android/logging.md #: src/android/logging.md
msgid "" msgid ""
"You should use the `log` crate to automatically log to `logcat` (on-device) " "You should use the `log` crate to automatically log to `logcat` (on-device) "
"or `stdout` (on-host):" "or `stdout` (on-host):"
msgstr "" msgstr ""
"باید از `log` crate برای ورود خودکار به`logcat` (روی دستگاه) یا `stdout` "
"(روی host) استفاده کنید:"
#: src/android/logging.md #: src/android/logging.md
msgid "_hello_rust_logs/Android.bp_:" msgid "_hello_rust_logs/Android.bp_:"
msgstr "" msgstr "_hello_rust_logs/Android.bp_:"
#: src/android/logging.md #: src/android/logging.md
msgid "\"hello_rust_logs\"" msgid "\"hello_rust_logs\""
msgstr "" msgstr "\"hello_rust_logs\""
#: src/android/logging.md #: src/android/logging.md
msgid "\"liblog_rust\"" msgid "\"liblog_rust\""
msgstr "" msgstr "\"liblog_rust\""
#: src/android/logging.md #: src/android/logging.md
msgid "\"liblogger\"" msgid "\"liblogger\""
msgstr "" msgstr "\"liblogger\""
#: src/android/logging.md #: src/android/logging.md
msgid "_hello_rust_logs/src/main.rs_:" msgid "_hello_rust_logs/src/main.rs_:"
msgstr "" msgstr "_hello_rust_logs/src/main.rs_:"
#: src/android/logging.md #: src/android/logging.md
#, fuzzy
msgid "//! Rust logging demo.\n" msgid "//! Rust logging demo.\n"
msgstr "" msgstr "//! Rust logging demo.\n"
#: src/android/logging.md #: src/android/logging.md
#, fuzzy
msgid "/// Logs a greeting.\n" msgid "/// Logs a greeting.\n"
msgstr "" msgstr "/// Logs a greeting.\n"
#: src/android/logging.md #: src/android/logging.md
msgid "\"rust\"" msgid "\"rust\""
msgstr "" msgstr "\"rust\""
#: src/android/logging.md #: src/android/logging.md
#, fuzzy
msgid "\"Starting program.\"" msgid "\"Starting program.\""
msgstr "" msgstr "\"Starting program.\""
#: src/android/logging.md #: src/android/logging.md
#, fuzzy
msgid "\"Things are going fine.\"" msgid "\"Things are going fine.\""
msgstr "" msgstr "\"Things are going fine.\""
#: src/android/logging.md #: src/android/logging.md
#, fuzzy
msgid "\"Something went wrong!\"" msgid "\"Something went wrong!\""
msgstr "" msgstr "\"Something went wrong!\""
#: src/android/logging.md src/android/interoperability/with-c/bindgen.md:99 #: src/android/logging.md src/android/interoperability/with-c/bindgen.md:99
#: src/android/interoperability/with-c/rust.md:72 #: src/android/interoperability/with-c/rust.md:72
msgid "Build, push, and run the binary on your device:" msgid "Build, push, and run the binary on your device:"
msgstr "" msgstr "ساخت، push و اجرای باینری‌ها روی یک ماشین."
#: src/android/logging.md #: src/android/logging.md
msgid "" msgid ""
@ -13074,132 +13179,152 @@ msgid ""
"adb shell /data/local/tmp/hello_rust_logs\n" "adb shell /data/local/tmp/hello_rust_logs\n"
"```" "```"
msgstr "" 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 #: src/android/logging.md
msgid "The logs show up in `adb logcat`:" msgid "The logs show up in `adb logcat`:"
msgstr "" msgstr "لاگ‌ها در `adb logcat` نشان‌داده می‌شوند:"
#: src/android/interoperability.md #: src/android/interoperability.md
msgid "" msgid ""
"Rust has excellent support for interoperability with other languages. This " "Rust has excellent support for interoperability with other languages. This "
"means that you can:" "means that you can:"
msgstr "" msgstr ""
"‏‌Rust از قابلیت همکاری با زبان‌های دیگر پشتیبانی می‌کند. این بدان معنی است که "
"شما می‌توانید:"
#: src/android/interoperability.md #: src/android/interoperability.md
msgid "Call Rust functions from other languages." msgid "Call Rust functions from other languages."
msgstr "" msgstr "توابع Rust را از زبان های دیگر فراخوانی کنید."
#: src/android/interoperability.md #: src/android/interoperability.md
msgid "Call functions written in other languages from Rust." msgid "Call functions written in other languages from Rust."
msgstr "" msgstr "فراخوانی توابع نوشته شده به زبان های دیگر از Rust."
#: src/android/interoperability.md #: src/android/interoperability.md
msgid "" msgid ""
"When you call functions in a foreign language we say that you're using a " "When you call functions in a foreign language we say that you're using a "
"_foreign function interface_, also known as FFI." "_foreign function interface_, also known as FFI."
msgstr "" msgstr ""
"وقتی توابعی را به‌ یک زبان خارجی فراخوانی می‌کنید، می‌گوییم که از یک رابط تابع "
"خارج( _foreign function interface_) که به نام FFI نیز شناخته می‌شود، استفاده "
"می‌کنید."
#: src/android/interoperability/with-c.md:1 #: src/android/interoperability/with-c.md:1
msgid "Interoperability with C" msgid "Interoperability with C"
msgstr "" msgstr "قابلیت همکاری با C"
#: src/android/interoperability/with-c.md:3 #: src/android/interoperability/with-c.md:3
msgid "" msgid ""
"Rust has full support for linking object files with a C calling convention. " "Rust has full support for linking object files with a C calling convention. "
"Similarly, you can export Rust functions and call them from C." "Similarly, you can export Rust functions and call them from C."
msgstr "" msgstr ""
"‏ Rust پشتیبانی کاملی برای link دادن object fileهایی با یک فراخوانی C دارد. "
"به طور مشابه، می توانید توابع Rust را export کرده و آنها را از C فراخوانی "
"کنید."
#: src/android/interoperability/with-c.md:6 #: src/android/interoperability/with-c.md:6
msgid "You can do it by hand if you want:" msgid "You can do it by hand if you want:"
msgstr "" msgstr "در صورت تمایل می‌توانید این کار را دستی انجام دهید:"
#: src/android/interoperability/with-c.md:15 #: src/android/interoperability/with-c.md:15
#, fuzzy
msgid "// SAFETY: `abs` doesn't have any safety requirements.\n" msgid "// SAFETY: `abs` doesn't have any safety requirements.\n"
msgstr "" msgstr "// SAFETY: `abs` doesn't have any safety requirements.\n"
#: src/android/interoperability/with-c.md:17 #: src/android/interoperability/with-c.md:17
msgid "\"{x}, {abs_x}\"" msgid "\"{x}, {abs_x}\""
msgstr "" msgstr "\"{x}, {abs_x}\""
#: src/android/interoperability/with-c.md:21 #: src/android/interoperability/with-c.md:21
msgid "" msgid ""
"We already saw this in the [Safe FFI Wrapper exercise](../../unsafe-rust/" "We already saw this in the [Safe FFI Wrapper exercise](../../unsafe-rust/"
"exercise.md)." "exercise.md)."
msgstr "" msgstr ""
"ما قبلاً این را در [تمرین Safe FFI Wrapper](../../unsafe-rust/exercise.md) "
"دیدیم."
#: src/android/interoperability/with-c.md:24 #: src/android/interoperability/with-c.md:24
msgid "" msgid ""
"This assumes full knowledge of the target platform. Not recommended for " "This assumes full knowledge of the target platform. Not recommended for "
"production." "production."
msgstr "" msgstr ""
"این مستلزم آگاهی کامل از پلتفرم هدف است و برای production توصیه نمی‌شود."
#: src/android/interoperability/with-c.md:27 #: src/android/interoperability/with-c.md:27
msgid "We will look at better options next." msgid "We will look at better options next."
msgstr "" msgstr "در ادامه گزینه‌های بهتر را بررسی خواهیم کرد."
#: src/android/interoperability/with-c/bindgen.md:1 #: src/android/interoperability/with-c/bindgen.md:1
msgid "Using Bindgen" msgid "Using Bindgen"
msgstr "" msgstr "با استفاده از Bindgen"
#: src/android/interoperability/with-c/bindgen.md:3 #: src/android/interoperability/with-c/bindgen.md:3
msgid "" msgid ""
"The [bindgen](https://rust-lang.github.io/rust-bindgen/introduction.html) " "The [bindgen](https://rust-lang.github.io/rust-bindgen/introduction.html) "
"tool can auto-generate bindings from a C header file." "tool can auto-generate bindings from a C header file."
msgstr "" msgstr ""
"ابزار [bindgen](https://rust-lang.github.io/rust-bindgen/introduction.html) "
"می‌تواند اتصالات را از یک فایل هدر C به طور خودکار ایجاد کند."
#: src/android/interoperability/with-c/bindgen.md:6 #: src/android/interoperability/with-c/bindgen.md:6
msgid "First create a small C library:" msgid "First create a small C library:"
msgstr "" msgstr "ابتدا یک کتابخانه کوچک C ایجاد کنید:"
#: src/android/interoperability/with-c/bindgen.md:8 #: src/android/interoperability/with-c/bindgen.md:8
msgid "_interoperability/bindgen/libbirthday.h_:" msgid "_interoperability/bindgen/libbirthday.h_:"
msgstr "" msgstr "_interoperability/bindgen/libbirthday.h_:"
#: src/android/interoperability/with-c/bindgen.md:19 #: src/android/interoperability/with-c/bindgen.md:19
msgid "_interoperability/bindgen/libbirthday.c_:" msgid "_interoperability/bindgen/libbirthday.c_:"
msgstr "" msgstr "_interoperability/bindgen/libbirthday.c_:"
#: src/android/interoperability/with-c/bindgen.md:22 #: src/android/interoperability/with-c/bindgen.md:22
msgid "<stdio.h>" msgid "<stdio.h>"
msgstr "" msgstr "<stdio.h>"
#: src/android/interoperability/with-c/bindgen.md:23 #: src/android/interoperability/with-c/bindgen.md:23
#: src/android/interoperability/with-c/bindgen.md:50 #: src/android/interoperability/with-c/bindgen.md:50
msgid "\"libbirthday.h\"" msgid "\"libbirthday.h\""
msgstr "" msgstr "\"libbirthday.h\""
#: src/android/interoperability/with-c/bindgen.md:26 #: src/android/interoperability/with-c/bindgen.md:26
#: src/android/interoperability/with-c/bindgen.md:29 #: src/android/interoperability/with-c/bindgen.md:29
msgid "\"+--------------\\n\"" msgid "\"+--------------\\n\""
msgstr "" msgstr "\"+--------------\\n\""
#: src/android/interoperability/with-c/bindgen.md:27 #: src/android/interoperability/with-c/bindgen.md:27
msgid "\"| Happy Birthday %s!\\n\"" msgid "\"| Happy Birthday %s!\\n\""
msgstr "" msgstr "\"| Happy Birthday %s!\\n\""
#: src/android/interoperability/with-c/bindgen.md:28 #: src/android/interoperability/with-c/bindgen.md:28
msgid "\"| Congratulations with the %i years!\\n\"" msgid "\"| Congratulations with the %i years!\\n\""
msgstr "" msgstr "\"| Congratulations with the %i years!\\n\""
#: src/android/interoperability/with-c/bindgen.md:33 #: src/android/interoperability/with-c/bindgen.md:33
msgid "Add this to your `Android.bp` file:" msgid "Add this to your `Android.bp` file:"
msgstr "" msgstr "این را به فایل `Android.bp` خود اضافه کنید:"
#: src/android/interoperability/with-c/bindgen.md:35 #: src/android/interoperability/with-c/bindgen.md:35
#: src/android/interoperability/with-c/bindgen.md:55 #: src/android/interoperability/with-c/bindgen.md:55
#: src/android/interoperability/with-c/bindgen.md:69 #: src/android/interoperability/with-c/bindgen.md:69
#: src/android/interoperability/with-c/bindgen.md:109 #: src/android/interoperability/with-c/bindgen.md:109
msgid "_interoperability/bindgen/Android.bp_:" msgid "_interoperability/bindgen/Android.bp_:"
msgstr "" msgstr "_interoperability/bindgen/Android.bp_:"
#: src/android/interoperability/with-c/bindgen.md:39 #: src/android/interoperability/with-c/bindgen.md:39
#: src/android/interoperability/with-c/bindgen.md:63 #: src/android/interoperability/with-c/bindgen.md:63
msgid "\"libbirthday\"" msgid "\"libbirthday\""
msgstr "" msgstr "\"libbirthday\""
#: src/android/interoperability/with-c/bindgen.md:40 #: src/android/interoperability/with-c/bindgen.md:40
msgid "\"libbirthday.c\"" msgid "\"libbirthday.c\""
msgstr "" msgstr "\"libbirthday.c\""
#: src/android/interoperability/with-c/bindgen.md:44 #: src/android/interoperability/with-c/bindgen.md:44
msgid "" msgid ""
@ -18234,7 +18359,7 @@ msgid ""
"the RTC match. You can use the driver provided in the [`arm-gic`](https://" "the RTC match. You can use the driver provided in the [`arm-gic`](https://"
"docs.rs/arm-gic/) crate to configure the Arm Generic Interrupt Controller." "docs.rs/arm-gic/) crate to configure the Arm Generic Interrupt Controller."
msgstr "" msgstr ""
"ء _افزونه‌ها اگر زمان دارید:_ وقفه ایجاد شده توسط تطبیق RTC را فعال کرده و آن " " _افزونه‌ها اگر زمان دارید:_ وقفه ایجاد شده توسط تطبیق RTC را فعال کرده و آن "
"را مدیریت کنید. می‌توانید از درایور ارائه شده در crate [`arm-gic`](https://" "را مدیریت کنید. می‌توانید از درایور ارائه شده در crate [`arm-gic`](https://"
"docs.rs/arm-gic/) برای پیکربندی Arm Generic Interrupt Controller استفاده " "docs.rs/arm-gic/) برای پیکربندی Arm Generic Interrupt Controller استفاده "
"کنید." "کنید."
@ -18265,11 +18390,11 @@ msgid ""
"_src/exceptions.rs_ (you should only need to change this for the 3rd part of " "_src/exceptions.rs_ (you should only need to change this for the 3rd part of "
"the exercise):" "the exercise):"
msgstr "" msgstr ""
"ء _src/exceptions.rs_ (شما فقط باید این را برای بخش سوم تمرین تغییر دهید):" " _src/exceptions.rs_ (شما فقط باید این را برای بخش سوم تمرین تغییر دهید):"
#: src/exercises/bare-metal/rtc.md:156 #: src/exercises/bare-metal/rtc.md:156
msgid "_src/logger.rs_ (you shouldn't need to change this):" msgid "_src/logger.rs_ (you shouldn't need to change this):"
msgstr "ء _src/logger.rs_ (نیازی نیست این مورد را تغییر دهید):" msgstr " _src/logger.rs_ (نیازی نیست این مورد را تغییر دهید):"
#: src/exercises/bare-metal/rtc.md:216 #: src/exercises/bare-metal/rtc.md:216
msgid "_src/pl011.rs_ (you shouldn't need to change this):" msgid "_src/pl011.rs_ (you shouldn't need to change this):"