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