diff options
| author | 2023-08-07 11:39:31 +0330 | |
|---|---|---|
| committer | 2023-08-07 10:09:31 +0200 | |
| commit | 6d8a5429cbcd8ba1142bf365785cd351f762f81a (patch) | |
| tree | 2ebe31047a239a8597970980942087895a4d4b11 | |
| parent | 8f188b57ee20f188a9f882fdf6e5cbf5efa0028d (diff) | |
Add Persian/فارسی Language (#5571)
* Add Persian/فارسی Language
* Fix i18n
* make fix-all
And several manual fixes
* Exclude Persian from English typo check
* Update CREDITS.md
I added myself to the list
* Credits alphabetic order
---------
Co-authored-by: AmirHossein <marjani@outlook.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
32 files changed, 1427 insertions, 0 deletions
diff --git a/.typos.toml b/.typos.toml index aef37ca17..32c8afe53 100644 --- a/.typos.toml +++ b/.typos.toml @@ -17,6 +17,7 @@ extend-exclude = [ "app/i18n/cz/", "app/i18n/de/", "app/i18n/es/", + "app/i18n/fa/", "app/i18n/fr/", "app/i18n/he/", "app/i18n/id/", @@ -32,6 +33,7 @@ extend-exclude = [ "app/i18n/sk/", "app/i18n/tr/", "app/i18n/zh-cn/", + "app/i18n/zh-tw/", "bin/", "CHANGELOG-old.md", "composer.lock", diff --git a/CREDITS.md b/CREDITS.md index 21dc96728..70da1885f 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -18,6 +18,7 @@ People are sorted by name so please keep this order. * [Alexis Degrugillier](https://github.com/aledeg): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:aledeg) * [Alwaysin](https://github.com/Alwaysin): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Alwaysin) * [Amaury Carrade](https://github.com/AmauryCarrade): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:AmauryCarrade), [Web](https://amaury.carrade.eu/) +* [AmirHossein Marjani](https://github.com/Marjani): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:Marjani) * [Amrul Izwan](https://github.com/amrulizwan): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:amrulizwan) * [Andrew Barrow](https://github.com/acbgbca): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:acbgbca) * [Andrew Hunter](https://github.com/rexbron): [contributions](https://github.com/FreshRSS/FreshRSS/pulls?q=is:pr+author:rexbron) diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index a3dedc176..069035ccd 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 426bf4032..3e7faeee9 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/el/gen.php b/app/i18n/el/gen.php index 47a89e38f..16dd83c9c 100644 --- a/app/i18n/el/gen.php +++ b/app/i18n/el/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/en-us/gen.php b/app/i18n/en-us/gen.php index d6cd70b6b..2a58885d4 100644 --- a/app/i18n/en-us/gen.php +++ b/app/i18n/en-us/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 37d78dc59..1bd8095e3 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', 'en-us' => 'English (United States)', 'es' => 'Español', + 'fa' => 'فارسی', 'fr' => 'Français', 'he' => 'עברית', 'id' => 'Bahasa Indonesia', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 2498aa9c0..aeb4d3a7e 100644 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/fa/admin.php b/app/i18n/fa/admin.php new file mode 100644 index 000000000..e93b76988 --- /dev/null +++ b/app/i18n/fa/admin.php @@ -0,0 +1,230 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'auth' => array( + 'allow_anonymous' => ' اجازه خواندن ناشناس مقالات کاربر پیشفرض (%s)', + 'allow_anonymous_refresh' => ' اجازه بازخوانی ناشناس مقالات را بدهید', + 'api_enabled' => ' اجازه دسترسی به <abbr>API</abbr> <small>(الزامی برای برنامه های تلفن همراه)</small>', + 'form' => ' فرم وب (سنتی', + 'http' => ' HTTP (برای کاربران پیشرفته با HTTPS)', + 'none' => ' هیچ (خطرناک)', + 'title' => ' احراز هویت', + 'token' => ' نشانه احراز هویت', + 'token_help' => ' امکان دسترسی به خروجی RSS کاربر پیش فرض بدون احراز هویت را می دهد:', + 'type' => ' روش احراز هویت', + 'unsafe_autologin' => ' اجازه ورود خودکار ناامن را با استفاده از قالب:', + ), + 'check_install' => array( + 'cache' => array( + 'nok' => ' مجوزهای دایرکتوری <em>./data/cache</em> را بررسی کنید. سرور HTTP باید مجوز نوشتن داشته باشد.', + 'ok' => ' مجوزهای دایرکتوری کش خوب است.', + ), + 'categories' => array( + 'nok' => ' جدول دسته بندی به درستی پیکربندی نشده است.', + 'ok' => ' جدول رده درست است.', + ), + 'connection' => array( + 'nok' => ' اتصال به پایگاه داده نمی تواند برقرار شود.', + 'ok' => ' اتصال به پایگاه داده مشکلی ندارد.', + ), + 'ctype' => array( + 'nok' => ' نمی توان یک کتابخانه مورد نیاز برای بررسی نوع کاراکتر (php-ctype) پیدا کرد.', + 'ok' => ' شما کتابخانه مورد نیاز برای بررسی نوع کاراکتر (ctype) دارید.', + ), + 'curl' => array( + 'nok' => ' نمی توان کتابخانه cURL (بسته php-curl) را پیدا کرد.', + 'ok' => ' شما کتابخانه cURL را دارید.', + ), + 'data' => array( + 'nok' => ' مجوزهای دایرکتوری <em>./data</em> را بررسی کنید. سرور HTTP باید مجوز نوشتن داشته باشد.', + 'ok' => ' مجوزهای دایرکتوری داده ها خوب است.', + ), + 'database' => ' نصب پایگاه داده', + 'dom' => array( + 'nok' => ' نمی توان یک کتابخانه مورد نیاز برای مرور DOM (بسته php-xml) پیدا کرد.', + 'ok' => ' شما کتابخانه مورد نیاز برای مرور DOM را دارید.', + ), + 'entries' => array( + 'nok' => ' جدول ورودی به درستی پیکربندی نشده است.', + 'ok' => ' جدول ورودی اشکالی ندارد.', + ), + 'favicons' => array( + 'nok' => ' مجوزهای دایرکتوری <em>./data/favicons</em> را بررسی کنید. سرور HTTP باید مجوز نوشتن داشته باشد.', + 'ok' => ' مجوزهای موجود در فهرست فاویکون ها خوب است.', + ), + 'feeds' => array( + 'nok' => ' جدول خوراک به درستی پیکربندی نشده است.', + 'ok' => ' جدول خوراک درست است.', + ), + 'fileinfo' => array( + 'nok' => ' نمی توان کتابخانه اطلاعات فایل PHP (بسته اطلاعات فایل) را پیدا کرد.', + 'ok' => ' شما کتابخانه fileinfo را دارید.', + ), + 'files' => ' نصب فایل', + 'json' => array( + 'nok' => ' JSON (بسته php-json) را نمی توان پیدا کرد.', + 'ok' => ' شما پسوند JSON دارید.', + ), + 'mbstring' => array( + 'nok' => ' نمی توان کتابخانه mbstring توصیه شده برای یونیکد را پیدا کرد.', + 'ok' => ' شما کتابخانه mbstring توصیه شده برای یونیکد را دارید.', + ), + 'pcre' => array( + 'nok' => ' نمی توان یک کتابخانه مورد نیاز برای عبارات منظم (php-pcre) پیدا کرد.', + 'ok' => ' شما کتابخانه مورد نیاز برای عبارات منظم (PCRE) را دارید.', + ), + 'pdo' => array( + 'nok' => ' PDO یا یکی از درایورهای پشتیبانی شده (pdo_mysql', + 'ok' => ' شما دارای PDO و حداقل یکی از درایورهای پشتیبانی شده (pdo_mysql', + ), + 'php' => array( + '_' => ' نصب پی اچ پی', + 'nok' => ' نسخه PHP شما %s است اما FreshRSS حداقل به نسخه %s نیاز دارد.', + 'ok' => ' نسخه PHP شما (%s) با FreshRSS سازگار است.', + ), + 'tables' => array( + 'nok' => ' یک یا چند جدول مفقود در پایگاه داده وجود دارد.', + 'ok' => ' جداول مناسب در پایگاه داده وجود دارد.', + ), + 'title' => ' بررسی نصب', + 'tokens' => array( + 'nok' => ' مجوزهای دایرکتوری <em>./data/tokens</em> را بررسی کنید. سرور HTTP باید مجوز نوشتن داشته باشد', + 'ok' => ' مجوزهای دایرکتوری توکن ها خوب است.', + ), + 'users' => array( + 'nok' => ' مجوزهای فهرست <em>./data/users</em> را بررسی کنید. سرور HTTP باید مجوز نوشتن داشته باشد', + 'ok' => ' مجوزهای دایرکتوری کاربران خوب است.', + ), + 'zip' => array( + 'nok' => ' نمی توان پسوند ZIP (بسته php-zip) را پیدا کرد.', + 'ok' => ' شما پسوند ZIP را دارید.', + ), + ), + 'extensions' => array( + 'author' => ' نویسنده', + 'community' => ' پسوندهای جامعه موجود', + 'description' => ' توضیحات', + 'disabled' => ' معلول', + 'empty_list' => ' هیچ برنامه افزودنی نصب شده ای وجود ندارد', + 'enabled' => ' فعال است', + 'latest' => ' نصب شده است', + 'name' => ' نام', + 'no_configure_view' => ' این برنامه افزودنی قابل پیکربندی نیست.', + 'system' => array( + '_' => ' پسوندهای سیستم', + 'no_rights' => ' پسوند سیستم (شما مجوزهای لازم را ندارید)', + ), + 'title' => ' برنامه های افزودنی', + 'update' => ' به روز رسانی موجود است', + 'user' => ' پسوندهای کاربر', + 'version' => ' نسخه', + ), + 'stats' => array( + '_' => 'آمار', + 'all_feeds' => ' همه فیدها', + 'category' => ' دسته', + 'entry_count' => ' تعداد ورودی', + 'entry_per_category' => ' ورودی در هر دسته', + 'entry_per_day' => ' ورودی در روز (30 روز گذشته)', + 'entry_per_day_of_week' => ' در هر روز هفته (میانگین: %2f پیام)', + 'entry_per_hour' => ' در ساعت (میانگین: %2f پیام)', + 'entry_per_month' => ' در هر ماه (میانگین: %2f پیام)', + 'entry_repartition' => ' پارتیشن مجدد ورودی ها', + 'feed' => ' خوراک', + 'feed_per_category' => ' فید در هر دسته', + 'idle' => ' تغذیه بیکار', + 'main' => ' آمار اصلی', + 'main_stream' => ' جریان اصلی', + 'no_idle' => ' هیچ فید بیکار وجود ندارد!', + 'number_entries' => ' %d مقاله', + 'percent_of_total' => ' درصد از کل', + 'repartition' => ' تقسیم مجدد مقالات', + 'status_favorites' => ' موارد دلخواه', + 'status_read' => ' بخوانید', + 'status_total' => ' مجموع', + 'status_unread' => ' خوانده نشده', + 'title' => 'آمار', + 'top_feed' => ' ده فید برتر', + ), + 'system' => array( + '_' => ' پیکربندی سیستم', + 'auto-update-url' => ' به روز رسانی خودکار URL سرور', + 'cookie-duration' => array( + 'help' => ' در ثانیه', + 'number' => ' مدت زمان ورود به سیستم', + ), + 'force_email_validation' => ' اعتبارسنجی آدرس ایمیل اجباری', + 'instance-name' => ' نام نمونه', + 'max-categories' => ' حداکثر تعداد دسته ها برای هر کاربر', + 'max-feeds' => ' حداکثر تعداد فید برای هر کاربر', + 'registration' => array( + 'number' => ' حداکثر تعداد حساب ها', + 'select' => array( + 'label' => ' فرم ثبت نام', + 'option' => array( + 'noform' => ' معلولین: بدون فرم ثبت نام', + 'nolimit' => ' فعال: بدون محدودیت حساب', + 'setaccountsnumber' => ' حداکثر تنظیم کنید. تعداد حساب ها', + ), + ), + 'status' => array( + 'disabled' => ' فرم غیرفعال است', + 'enabled' => ' فرم فعال است', + ), + 'title' => 'فرم ثبت نام کاربر', + ), + 'tos' => array( + 'disabled' => ' داده نشده است', + 'enabled' => ' <a href="./?a=tos">فعال است</a>', + 'help' => ' نحوه <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">فعال کردن شرایط خدمات </a>', + ), + ), + 'update' => array( + '_' => ' FreshRSS را به روز کنید', + 'apply' => ' شروع به روز رسانی', + 'changelog' => ' تغییرات', + 'check' => ' به روز رسانی های جدید را بررسی کنید', + 'copiedFromURL' => 'update.php از %s به ./data کپی شد', + 'current_version' => ' نسخه نصب شده فعلی', + 'last' => ' آخرین بررسی', + 'loading' => ' به روز رسانی…', + 'none' => ' به روز رسانی در دسترس نیست', + 'releaseChannel' => array( + '_' => ' کانال انتشار', + 'edge' => ' انتشار نورد ("لبه")', + 'latest' => ' انتشار پایدار ("آخرین")', + ), + 'title' => ' FreshRSS را به روز کنید', + 'viaGit' => ' به روز رسانی از طریق git و Github.com شروع شد', + ), + 'user' => array( + 'admin' => ' مدیر', + 'article_count' => ' مقالات', + 'back_to_manage' => ' ← بازگشت به لیست کاربران', + 'create' => ' ایجاد کاربر جدید', + 'database_size' => ' اندازه پایگاه داده', + 'email' => ' آدرس ایمیل', + 'enabled' => ' فعال است', + 'feed_count' => ' فیدها', + 'is_admin' => ' مدیر است', + 'language' => ' زبان', + 'last_user_activity' => ' آخرین فعالیت کاربر', + 'list' => ' لیست کاربران', + 'number' => ' %d حساب ایجاد شده است', + 'numbers' => ' %d حساب ایجاد شده است', + 'password_form' => ' رمز عبور<br /><small>(برایروش ورود به فرم وب)</small>', + 'password_format' => ' حداقل 7 کاراکتر', + 'title' => ' مدیریت کاربران', + 'username' => ' نام کاربری', + ), +); diff --git a/app/i18n/fa/conf.php b/app/i18n/fa/conf.php new file mode 100644 index 000000000..a2c7291a1 --- /dev/null +++ b/app/i18n/fa/conf.php @@ -0,0 +1,302 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'archiving' => array( + '_' => ' بایگانی', + 'exception' => ' استثناء پاکسازی', + 'help' => ' گزینه های بیشتری در تنظیمات فید فردی موجود است', + 'keep_favourites' => ' هرگز موارد دلخواه را حذف نکنید', + 'keep_labels' => ' هرگز برچسب ها را حذف نکنید', + 'keep_max' => ' حداکثر تعداد مقالات برای نگهداری در هر فید', + 'keep_min_by_feed' => ' حداقل تعداد مقالات برای نگهداری در هر فید', + 'keep_period' => ' حداکثر سن مقالات برای نگهداری', + 'keep_unreads' => ' هرگز مقالات خوانده نشده را حذف نکنید', + 'maintenance' => ' تعمیر و نگهداری', + 'optimize' => ' پایگاه داده را بهینه کنید', + 'optimize_help' => ' گاهی اوقات برای کاهش اندازه پایگاه داده اجرا کنید', + 'policy' => ' سیاست پاکسازی', + 'policy_warning' => ' اگر سیاست پاکسازی انتخاب نشود', + 'purge_now' => ' اکنون پاکسازی کنید', + 'title' => ' بایگانی', + 'ttl' => ' بهطور خودکار بیشتر از آن رفرش نکنید', + ), + 'display' => array( + '_' => ' نمایش', + 'darkMode' => array( + '_' => ' حالت تاریک خودکار (بتا)', + 'auto' => ' خودکار', + 'no' => ' شماره', + ), + 'icon' => array( + 'bottom_line' => ' خط پایین', + 'display_authors' => ' نویسندگان', + 'entry' => ' نمادهای مقاله', + 'publication_date' => ' تاریخ انتشار', + 'related_tags' => ' برچسب های مقاله', + 'sharing' => ' اشتراک گذاری', + 'summary' => ' خلاصه', + 'top_line' => ' خط بالا', + ), + 'language' => ' زبان', + 'notif_html5' => array( + 'seconds' => ' ثانیه (0 به معنای عدم وجود مهلت زمانی است)', + 'timeout' => ' وقفه اعلان HTML5', + ), + 'show_nav_buttons' => ' دکمه های ناوبری را نشان دهید', + 'theme' => array( + '_' => ' موضوع', + 'deprecated' => array( + '_' => ' منسوخ شده است', + 'description' => ' این طرح زمینه دیگر پشتیبانی نمیشود و در <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">آینده در دسترس نخواهد بود انتشار FreshRSS</a>', + ), + ), + 'theme_not_available' => ' طرح زمینه "%s" دیگر در دسترس نیست. لطفا موضوع دیگری را انتخاب کنید.', + 'thumbnail' => array( + 'label' => ' تصویر بند انگشتی', + 'landscape' => ' منظره', + 'none' => ' هیچ', + 'portrait' => ' پرتره', + 'square' => ' مربع', + ), + 'timezone' => ' منطقه زمانی', + 'title' => ' نمایش', + 'website' => array( + 'full' => ' نماد و نام', + 'icon' => ' فقط نماد', + 'label' => ' وب سایت', + 'name' => ' فقط نام', + 'none' => ' هیچکدام', + ), + 'width' => array( + 'content' => ' عرض محتوا', + 'large' => ' عریض', + 'medium' => ' متوسط', + 'no_limit' => ' عرض کامل', + 'thin' => ' باریک', + ), + ), + 'logs' => array( + 'loglist' => array( + 'level' => ' سطح گزارش', + 'message' => ' پیام ورود', + 'timestamp' => ' مهر زمان', + ), + 'pagination' => array( + 'first' => ' اول', + 'last' => ' آخرین', + 'next' => ' بعدی', + 'previous' => ' قبلی', + ), + ), + 'profile' => array( + '_' => ' مدیریت پروفایل', + 'api' => ' مدیریت API', + 'delete' => array( + '_' => ' حذف اکانت', + 'warn' => ' حساب شما و تمام داده های مرتبط حذف خواهد شد.', + ), + 'email' => ' آدرس ایمیل', + 'password_api' => ' رمز عبور API<br /><small>(مثلاً برای برنامه های تلفن همراه)</small>', + 'password_form' => ' رمز عبور<br /><small>(برای روش ورود به فرم وب)</small>', + 'password_format' => ' حداقل 7 کاراکتر', + 'title' => ' نمایه', + ), + 'query' => array( + '_' => ' پرس و جوهای کاربر', + 'deprecated' => ' این عبارت دیگر معتبر نیست. دسته یا فید ارجاع شده حذف شده است.', + 'filter' => array( + '_' => ' فیلتر اعمال شده:', + 'categories' => ' نمایش بر اساس دسته بندی', + 'feeds' => ' نمایش با فید', + 'order' => ' مرتب سازی بر اساس تاریخ', + 'search' => ' بیان', + 'state' => ' ایالت', + 'tags' => ' نمایش بر اساس برچسب', + 'type' => ' نوع', + ), + 'get_all' => ' نمایش همه مقالات', + 'get_category' => ' دسته «%s» را نمایش دهید', + 'get_favorite' => ' نمایش مقالات مورد علاقه', + 'get_feed' => ' فید "%s" را نمایش دهید', + 'name' => ' نام', + 'no_filter' => ' بدون فیلتر', + 'number' => ' پرس و جو n°%d', + 'order_asc' => ' ابتدا قدیمی ترین مقالات را نمایش دهید', + 'order_desc' => ' ابتدا جدیدترین مقالات را نمایش دهید', + 'search' => ' «%s» را جستجو کنید', + 'state_0' => 'نمایش همه مقالات', + 'state_1' => 'نمایش مقالات خوانده شده', + 'state_2' => 'نمایش مقالات خوانده نشده', + 'state_3' => 'نمایش همه مقالات', + 'state_4' => ' نمایش مقالات مورد علاقه', + 'state_5' => ' نمایش مقالات مورد علاقه خوانده شده', + 'state_6' => 'نمایش مقالات مورد علاقه خوانده نشده', + 'state_7' => ' نمایش مقالات مورد علاقه', + 'state_8' => ' نمایش مقالات مورد علاقه نیست', + 'state_9' => ' نمایش مقالات مورد علاقه خوانده نشده', + 'state_10' => ' نمایش مقالات خوانده نشده و نه مورد علاقه', + 'state_11' => ' نمایش مقالات مورد علاقه نیست', + 'state_12' => ' نمایش همه مقالات', + 'state_13' => ' نمایش مقالات خوانده شده', + 'state_14' => ' نمایش مقالات خوانده نشده', + 'state_15' => ' نمایش همه مقالات', + 'title' => ' پرس و جوهای کاربر', + ), + 'reading' => array( + '_' => ' خواندن', + 'after_onread' => ' بعد از "علامت گذاری همه به عنوان خوانده شده"', + 'always_show_favorites' => ' نمایش همه مقالات در موارد دلخواه به طور پیش فرض', + 'article' => array( + 'authors_date' => array( + '_' => ' نویسندگان و تاریخ', + 'both' => ' در سرصفحه و پاورقی', + 'footer' => ' در پاورقی', + 'header' => ' در سربرگ', + 'none' => ' هیچکدام', + ), + 'feed_name' => array( + 'above_title' => ' بالای عنوان/برچسب ها', + 'none' => ' هیچ', + 'with_authors' => ' در نویسندگان و ردیف تاریخ', + ), + 'feed_title' => ' عنوان خوراک', + 'tags' => array( + '_' => ' برچسب ها', + 'both' => ' در سرصفحه و پاورقی', + 'footer' => ' در پاورقی', + 'header' => ' در سربرگ', + 'none' => ' هیچ', + ), + 'tags_max' => array( + '_' => ' حداکثر تعداد برچسب نشان داده شده است', + 'help' => '0 به این معنی است: همه برچسب ها را نشان دهید و آنها را جمع نکنید', + ), + ), + 'articles_per_page' => ' تعداد مقاله در هر صفحه', + 'auto_load_more' => ' مقالات بیشتری را در پایین صفحه بارگذاری کنید', + 'auto_remove_article' => ' مخفی کردن مقالات پس از خواندن', + 'confirm_enabled' => ' یک دیالوگ تأیید را روی اقدامات "علامت گذاری همه به عنوان خوانده شده" نمایش دهید', + 'display_articles_unfolded' => ' نمایش مقالاتی که به طور پیش فرض باز شده اند', + 'display_categories_unfolded' => ' دسته بندی هایی که باید آشکار شوند', + 'headline' => array( + 'articles' => ' مقالات: باز/بستن', + 'articles_header_footer' => ' مقالات: سرصفحه / پاورقی', + 'categories' => ' ناوبری چپ: دسته ها', + 'mark_as_read' => ' مقاله را به عنوان خوانده شده علامت گذاری کنید', + 'misc' => ' متفرقه', + 'view' => ' مشاهده', + ), + 'hide_read_feeds' => ' دستهها و فیدها را بدون مقاله خوانده نشده پنهان کنید (با پیکربندی «نمایش همه مقالهها» کار نمیکند)', + 'img_with_lazyload' => ' از حالت <em>بار تنبل</em> برای بارگیری تصاویر استفاده کنید', + 'jump_next' => ' پرش به خواهر و برادر خوانده نشده بعدی (فید یا دسته)', + 'mark_updated_article_unread' => ' مقالات به روز شده را به عنوان خوانده نشده علامت گذاری کنید', + 'number_divided_when_reader' => ' در نمای خواندن بر 2 تقسیم کنید.', + 'read' => array( + 'article_open_on_website' => ' هنگامی که مقاله در وب سایت اصلی خود باز می شود', + 'article_viewed' => ' هنگام مشاهده مقاله', + 'keep_max_n_unread' => ' حداکثر تعداد مقالات خوانده نشده', + 'scroll' => ' در حین پیمایش', + 'upon_gone' => ' زمانی که دیگر در فید اخبار بالادستی نیست', + 'upon_reception' => ' پس از دریافت مقاله', + 'when' => ' علامت گذاری یک مقاله به عنوان خوانده شده…', + 'when_same_title' => ' اگر عنوان یکسانی از قبل در <i>n</i> جدیدترین مقالات بالا وجود داشته باشد', + ), + 'show' => array( + '_' => ' مقالات برای نمایش', + 'active_category' => ' دسته فعال', + 'adaptive' => ' نمایش را تنظیم کنید', + 'all_articles' => ' نمایش همه مقالات', + 'all_categories' => ' همه دسته ها', + 'no_category' => ' بدون دسته', + 'remember_categories' => ' دسته بندی های باز را به خاطر بسپارید', + 'unread' => ' فقط خوانده نشده را نشان دهد', + ), + 'show_fav_unread_help' => ' روی برچسب ها نیز اعمال می شود', + 'sides_close_article' => ' با کلیک کردن خارج از ناحیه متن مقاله', + 'sort' => array( + '_' => ' ترتیب مرتب سازی', + 'newer_first' => ' ابتدا جدیدترین', + 'older_first' => ' اول قدیمی ترین', + ), + 'sticky_post' => ' وقتی باز شد مقاله را به بالا بچسبانید', + 'title' => ' خواندن', + 'view' => array( + 'default' => ' نمای پیش فرض', + 'global' => ' نمای جهانی', + 'normal' => ' نمای عادی', + 'reader' => ' مشاهده خواندن', + ), + ), + 'sharing' => array( + '_' => ' اشتراک گذاری', + 'add' => ' یک روش اشتراک گذاری اضافه کنید', + 'blogotext' => ' وبلاگ متن', + 'deprecated' => ' این سرویس منسوخ شده است و در <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="باز کردن اسناد برای اطلاعات بیشتر" target= از FreshRSS حذف خواهد شد. "_blank">نسخه آینده</a>.', + 'diaspora' => ' دیاسپورا*', + 'email' => ' ایمیل', + 'facebook' => ' فیس بوک', + 'more_information' => ' اطلاعات بیشتر', + 'print' => ' چاپ', + 'raindrop' => ' Raindrop.io', + 'remove' => ' روش اشتراک گذاری را حذف کنید', + 'shaarli' => ' شعرلی', + 'share_name' => ' نام اشتراک گذاری برای نمایش', + 'share_url' => ' URL را برای استفاده به اشتراک بگذارید', + 'title' => ' اشتراک گذاری', + 'twitter' => ' توییتر', + 'wallabag' => 'والباگ', + ), + 'shortcut' => array( + '_' => ' میانبرها', + 'article_action' => ' اقدامات ماده', + 'auto_share' => ' اشتراک گذاری', + 'auto_share_help' => ' اگر فقط یک حالت اشتراک گذاری وجود داشته باشد', + 'close_dropdown' => ' منوها را ببندید', + 'collapse_article' => ' فروپاشی', + 'first_article' => ' اولین مقاله را باز کنید', + 'focus_search' => ' به کادر جستجو دسترسی پیدا کنید', + 'global_view' => ' تغییر به نمای جهانی', + 'help' => ' نمایش اسناد', + 'javascript' => ' برای استفاده از میانبرها باید جاوا اسکریپت فعال باشد', + 'last_article' => ' آخرین مقاله را باز کنید', + 'load_more' => ' بارگذاری مقالات بیشتر', + 'mark_favorite' => ' موارد دلخواه را تغییر دهید', + 'mark_read' => ' خواندن را تغییر دهید', + 'navigation' => ' ناوبری', + 'navigation_help' => ' با اصلاحکننده <kbd>⇧ Shift</kbd>', + 'navigation_no_mod_help' => ' میانبرهای پیمایش زیر از اصلاح کننده ها پشتیبانی نمی کنند.', + 'next_article' => ' مقاله بعدی را باز کنید', + 'next_unread_article' => ' مقاله خوانده نشده بعدی را باز کنید', + 'non_standard' => ' برخی از کلیدها (<kbd>%s</kbd>) ممکن است به عنوان میانبر کار نکنند.', + 'normal_view' => ' تبدیل به نمای عادی', + 'other_action' => ' سایر اقدامات', + 'previous_article' => ' مقاله قبلی را باز کنید', + 'reading_view' => ' به نمای خواندن بروید', + 'rss_view' => ' به عنوان فید RSS باز شود', + 'see_on_website' => ' به وب سایت اصلی مراجعه کنید', + 'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> برای علامت گذاری مقالات قبلی به عنوان خوانده شده<br />+ <kbd>⇧ Shift</kbd> برای علامت گذاری همه مقالات به عنوان خوانده شده', + 'skip_next_article' => ' فوکوس بعدی بدون باز کردن', + 'skip_previous_article' => ' فوکوس قبلی بدون باز کردن', + 'title' => ' میانبرها', + 'toggle_media' => ' پخش/مکث رسانه', + 'user_filter' => ' به درخواست های کاربر دسترسی پیدا کنید', + 'user_filter_help' => ' اگر فقط یک درخواست کاربر وجود داشته باشد', + 'views' => ' بازدید', + ), + 'user' => array( + 'articles_and_size' => '%s مقاله (%s)', + 'current' => ' کاربر فعلی', + 'is_admin' => ' مدیر است', + 'users' => ' کاربران', + ), +); diff --git a/app/i18n/fa/feedback.php b/app/i18n/fa/feedback.php new file mode 100644 index 000000000..68424df36 --- /dev/null +++ b/app/i18n/fa/feedback.php @@ -0,0 +1,144 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'access' => array( + 'denied' => ' شما اجازه دسترسی به این صفحه را ندارید', + 'not_found' => ' شما به دنبال صفحه ای هستید که وجود ندارد', + ), + 'admin' => array( + 'optimization_complete' => ' بهینه سازی کامل شد', + ), + 'api' => array( + 'password' => array( + 'failed' => ' رمز عبور شما قابل تغییر نیست', + 'updated' => ' رمز عبور شما اصلاح شده است', + ), + ), + 'auth' => array( + 'login' => array( + 'invalid' => ' ورود نامعتبر است', + 'success' => ' شما متصل هستید', + ), + 'logout' => array( + 'success' => ' شما قطع شده اید', + ), + ), + 'conf' => array( + 'error' => ' هنگام ذخیره پیکربندی خطایی روی داد', + 'query_created' => ' پرس و جو "%s" ایجاد شده است.', + 'shortcuts_updated' => ' میانبرها به روز شده اند', + 'updated' => ' پیکربندی به روز شده است', + ), + 'extensions' => array( + 'already_enabled' => '%s قبلاً فعال شده است', + 'cannot_remove' => ' %s قابل حذف نیست', + 'disable' => array( + 'ko' => '%s را نمی توان غیرفعال کرد. برای جزئیات <a href="%s">گزارشهای FreshRSS</a> را بررسی کنید.', + 'ok' => ' %s اکنون غیرفعال است', + ), + 'enable' => array( + 'ko' => ' %s را نمی توان فعال کرد. برای جزئیات <a href="%s">گزارشهای FreshRSS</a> را بررسی کنید.', + 'ok' => ' %s اکنون فعال است', + ), + 'no_access' => ' شما به %s دسترسی ندارید', + 'not_enabled' => '%s فعال نیست', + 'not_found' => '%s وجود ندارد', + 'removed' => '%s حذف شد', + ), + 'import_export' => array( + 'export_no_zip_extension' => ' پسوند ZIP در سرور شما وجود ندارد. لطفا سعی کنید فایل ها را یکی یکی صادر کنید.', + 'feeds_imported' => ' فیدهای شما وارد شده اند و اکنون به روز خواهند شد', + 'feeds_imported_with_errors' => ' فیدهای شما وارد شده است', + 'file_cannot_be_uploaded' => ' فایل قابل آپلود نیست!', + 'no_zip_extension' => ' پسوند ZIP در سرور شما وجود ندارد.', + 'zip_error' => ' در حین پردازش ZIP خطایی روی داد.', + ), + 'profile' => array( + 'error' => ' نمایه شما قابل تغییر نیست', + 'updated' => ' نمایه شما اصلاح شده است', + ), + 'sub' => array( + 'actualize' => ' به روز رسانی', + 'articles' => array( + 'marked_read' => ' مقالات انتخاب شده به عنوان خوانده شده علامت گذاری شده اند.', + 'marked_unread' => ' مقالات به عنوان خوانده نشده علامت گذاری شده اند.', + ), + 'category' => array( + 'created' => ' رده %s ایجاد شده است.', + 'deleted' => ' دسته حذف شده است.', + 'emptied' => ' رده خالی شده است', + 'error' => ' دسته را نمی توان به روز کرد', + 'name_exists' => ' نام دسته از قبل وجود دارد.', + 'no_id' => ' شما باید شناسه دسته را مشخص کنید.', + 'no_name' => ' نام دسته نمی تواند خالی باشد.', + 'not_delete_default' => ' شما نمی توانید دسته بندی پیش فرض را حذف کنید!', + 'not_exist' => ' دسته بندی وجود ندارد!', + 'over_max' => ' شما به حد مجاز دسته بندی خود رسیده اید (%d)', + 'updated' => ' رده به روز شده است.', + ), + 'feed' => array( + 'actualized' => '<em>%s</em> به روز شده است', + 'actualizeds' => ' فیدهای RSS به روز شده اند', + 'added' => ' فید RSS <em>%s</em> اضافه شده است', + 'already_subscribed' => ' شما قبلاً در <em>%s</em> مشترک شده اید', + 'cache_cleared' => '<em>%s</em> کش پاک شده است', + 'deleted' => ' فید حذف شده است', + 'error' => ' فید را نمی توان به روز کرد', + 'internal_problem' => ' فید خبری اضافه نشد. برای جزئیات <a href="%s">گزارشهای FreshRSS</a> را بررسی کنید. میتوانید با اضافه کردن <code>#force_feed</code> به URL', + 'invalid_url' => ' URL <em>%s</em> نامعتبر است', + 'n_actualized' => ' %d فید به روز شده است', + 'n_entries_deleted' => ' %d مقاله حذف شده است', + 'no_refresh' => ' هیچ فید برای تازه کردن وجود ندارد', + 'not_added' => '<em>%s</em> اضافه نشد', + 'not_found' => ' فید یافت نمی شود', + 'over_max' => ' شما به حد مجاز فید خود رسیده اید (%d)', + 'reloaded' => '<em>%s</em> دوباره بارگیری شده است', + 'selector_preview' => array( + 'http_error' => ' محتوای وب سایت بارگیری نشد.', + 'no_entries' => ' هیچ مقاله ای در این فید وجود ندارد. برای ایجاد پیش نمایش به حداقل یک مقاله نیاز دارید.', + 'no_feed' => ' خطای داخلی (فید یافت نمی شود).', + 'no_result' => ' انتخابگر با چیزی مطابقت نداشت. به عنوان یک بازگشت', + 'selector_empty' => ' انتخابگر خالی است. برای ایجاد پیش نمایش باید یکی را تعریف کنید.', + ), + 'updated' => ' فید به روز شده است', + ), + 'purge_completed' => ' پاکسازی کامل شد (%d مقاله حذف شد)', + ), + 'tag' => array( + 'created' => ' برچسب "%s" ایجاد شده است.', + 'name_exists' => ' نام برچسب از قبل وجود دارد.', + 'renamed' => ' برچسب "%s" به "%s" تغییر نام داده است.', + ), + 'update' => array( + 'can_apply' => ' بهروزرسانی FreshRSS موجود است: <strong>نسخه %s</strong>.', + 'error' => ' فرآیند به روز رسانی با خطا مواجه شده است: %s', + 'file_is_nok' => ' بهروزرسانی FreshRSS موجود است (<strong>نسخه %s</strong>)', + 'finished' => ' به روز رسانی کامل شد!', + 'none' => ' به روز رسانی در دسترس نیست', + 'server_not_found' => ' سرور به روز رسانی یافت نمی شود. [%s]', + ), + 'user' => array( + 'created' => array( + '_' => ' کاربر %s ایجاد شده است', + 'error' => ' کاربر %s نمی تواند ایجاد شود', + ), + 'deleted' => array( + '_' => ' کاربر %s حذف شده است', + 'error' => ' کاربر %s قابل حذف نیست', + ), + 'updated' => array( + '_' => ' کاربر %s به روز شده است', + 'error' => ' کاربر %s به روز نشده است', + ), + ), +); diff --git a/app/i18n/fa/gen.php b/app/i18n/fa/gen.php new file mode 100644 index 000000000..162fc7c8d --- /dev/null +++ b/app/i18n/fa/gen.php @@ -0,0 +1,246 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'action' => array( + 'actualize' => ' فیدها را به روز کنید', + 'add' => ' اضافه کنید', + 'back' => '← به عقب برگرد', + 'back_to_rss_feeds' => '← به فیدهای RSS خود برگردید', + 'cancel' => ' لغو', + 'create' => ' ایجاد کنید', + 'delete_muted_feeds' => ' فیدهای خاموش را حذف کنید', + 'demote' => ' تنزل دادن', + 'disable' => ' غیر فعال کردن', + 'empty' => ' خالی', + 'enable' => ' فعال کنید', + 'export' => ' صادرات', + 'filter' => ' فیلتر', + 'import' => ' واردات', + 'load_default_shortcuts' => ' میانبرهای پیش فرض را بارگیری کنید', + 'manage' => ' مدیریت', + 'mark_read' => ' علامت گذاری به عنوان خوانده شده', + 'open_url' => ' URL را باز کنید', + 'promote' => ' ترویج', + 'purge' => ' پاکسازی', + 'refresh_opml' => ' OPML را بازخوانی کنید', + 'remove' => ' حذف کنید', + 'rename' => ' تغییر نام', + 'see_website' => ' به وب سایت مراجعه کنید', + 'submit' => ' ارسال کنید', + 'truncate' => ' تمام مقالات را حذف کنید', + 'update' => ' به روز رسانی', + ), + 'auth' => array( + 'accept_tos' => ' من <a href="%s">شرایط خدمات</a> را می پذیرم.', + 'email' => ' آدرس ایمیل', + 'keep_logged_in' => ' مرا به سیستم <small>(%s روز)</small> نگه دارید', + 'login' => ' ورود', + 'logout' => ' خروج', + 'password' => array( + '_' => ' رمز عبور', + 'format' => '<small>حداقل 7 نویسه</small>', + ), + 'registration' => array( + '_' => ' حساب جدید', + 'ask' => ' یک حساب کاربری ایجاد کنید؟', + 'title' => ' ایجاد حساب', + ), + 'username' => array( + '_' => ' نام کاربری', + 'format' => '<small>حداکثر 16 نویسه الفبای عددی</small>', + ), + ), + 'date' => array( + 'Apr' => '\\A\\p\\r\\i\\l', // TODO + 'Aug' => '\\A\\u\\g\\u\\s\\t', // TODO + 'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r', // TODO + 'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y', // TODO + 'Jan' => '\\J\\a\\n\\u\\a\\r\\y', // TODO + 'Jul' => '\\J\\u\\l\\y', // TODO + 'Jun' => '\\J\\u\\n\\e', // TODO + 'Mar' => '\\M\\a\\r\\c\\h', // TODO + 'May' => '\\M\\a\\y', // TODO + 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r', // TODO + 'Oct' => '\\O\\c\\t\\o\\b\\e\\r', // TODO + 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r', // TODO + 'apr' => ' آوریل', + 'april' => ' آوریل', + 'aug' => ' آگوست', + 'august' => ' آگوست', + 'before_yesterday' => ' قبل از دیروز', + 'dec' => ' دسامبر', + 'december' => ' دسامبر', + 'feb' => ' فوریه', + 'february' => ' فوریه', + 'format_date' => 'j %s Y', // TODO + 'format_date_hour' => 'j %s Y \\a\\t H\\:i', // TODO + 'fri' => ' جمعه', + 'jan' => ' ژانویه', + 'january' => ' ژانویه', + 'jul' => ' ژوئیه', + 'july' => ' ژوئیه', + 'jun' => ' ژوئن', + 'june' => ' ژوئن', + 'last_2_year' => ' دو سال گذشته', + 'last_3_month' => ' سه ماه گذشته', + 'last_3_year' => ' سه سال گذشته', + 'last_5_year' => ' پنج سال گذشته', + 'last_6_month' => ' شش ماه گذشته', + 'last_month' => ' ماه گذشته', + 'last_week' => ' هفته گذشته', + 'last_year' => ' سال گذشته', + 'mar' => ' مارس.', + 'march' => ' مارس', + 'may' => ' مه', + 'may_' => ' مه', + 'mon' => ' دوشنبه', + 'month' => ' ماه', + 'nov' => ' نوامبر', + 'november' => ' نوامبر', + 'oct' => ' اکتبر', + 'october' => ' اکتبر', + 'sat' => ' شنبه', + 'sep' => ' سپتامبر.', + 'september' => ' سپتامبر', + 'sun' => ' یکشنبه', + 'thu' => ' پنجشنبه', + 'today' => ' امروز', + 'tue' => ' سه شنبه', + 'wed' => ' چهارشنبه', + 'yesterday' => ' دیروز', + ), + 'dir' => 'rtl', + 'freshrss' => array( + '_' => ' FreshRSS', + 'about' => 'درباره FreshRSS', + ), + 'js' => array( + 'category_empty' => ' دسته خالی', + 'confirm_action' => ' آیا مطمئن هستید که می خواهید این عمل را انجام دهید؟ نمی توان آن را لغو کرد!', + 'confirm_action_feed_cat' => ' آیا مطمئن هستید که می خواهید این عمل را انجام دهید؟ موارد دلخواه و درخواست های کاربر مرتبط را از دست خواهید داد. نمی توان آن را لغو کرد!', + 'feedback' => array( + 'body_new_articles' => ' %%d مقاله جدید برای خواندن در FreshRSS وجود دارد.', + 'body_unread_articles' => ' (خوانده نشده: %%d)', + 'request_failed' => ' یک درخواست شکست خورده است', + 'title_new_articles' => ' FreshRSS: مقالات جدید!', + ), + 'new_article' => 'مقالات جدیدی موجود است', + 'should_be_activated' => ' جاوا اسکریپت باید فعال باشد', + ), + 'lang' => array( + 'cz' => 'Čeština', // IGNORE + 'de' => 'Deutsch', // IGNORE + 'el' => 'Ελληνικά', // IGNORE + 'en' => 'English', // IGNORE + 'en-us' => 'English (United States)', // IGNORE + 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE + 'fr' => 'Français', // IGNORE + 'he' => 'עברית', // IGNORE + 'id' => 'Bahasa Indonesia', // IGNORE + 'it' => 'Italiano', // IGNORE + 'ja' => '日本語', // IGNORE + 'ko' => '한국어', // IGNORE + 'lv' => 'Latviešu', // IGNORE + 'nl' => 'Nederlands', // IGNORE + 'oc' => 'Occitan', // IGNORE + 'pl' => 'Polski', // IGNORE + 'pt-br' => 'Português (Brasil)', // IGNORE + 'ru' => 'Русский', // IGNORE + 'sk' => 'Slovenčina', // IGNORE + 'tr' => 'Türkçe', // IGNORE + 'zh-cn' => '简体中文', // IGNORE + 'zh-tw' => '正體中文', // IGNORE + ), + 'menu' => array( + 'about' => ' در مورد', + 'account' => ' حساب', + 'admin' => ' اداره', + 'archiving' => ' آرشیو', + 'authentication' => ' احراز هویت', + 'check_install' => ' بررسی نصب', + 'configuration' => ' پیکربندی', + 'display' => 'نمایش', + 'extensions' => ' برنامه های افزودنی', + 'logs' => ' سیاهههای مربوط', + 'queries' => ' پرس و جوهای کاربر', + 'reading' => ' خواندن', + 'search' => ' کلمات یا #برچسب ها را جستجو کنید', + 'search_help' => ' به مستندات <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">پارامترهای جستجوی پیشرفته</a مراجعه کنید >', + 'sharing' => ' اشتراک گذاری', + 'shortcuts' => ' میانبرها', + 'stats' => 'آمار', + 'system' => ' پیکربندی سیستم', + 'update' => ' به روز رسانی', + 'user_management' => ' مدیریت کاربران', + 'user_profile' => ' نمایه', + ), + 'period' => array( + 'days' => ' روز', + 'hours' => ' ساعت', + 'months' => ' ماه', + 'weeks' => ' هفته', + 'years' => ' سال', + ), + 'share' => array( + 'Known' => ' سایت های مبتنی بر شناخته شده', + 'archiveORG' => ' archive.org', + 'archivePH' => ' archive.ph', + 'blogotext' => ' وبلاگ متن', + 'buffer' => ' بافر', + 'clipboard' => ' کلیپ بورد', + 'diaspora' => ' دیاسپورا*', + 'email' => ' ایمیل', + 'email-webmail-firefox-fix' => ' ایمیل (وب میل - تعمیر برای فایرفاکس)', + 'facebook' => ' فیس بوک', + 'gnusocial' => ' گنو اجتماعی', + 'jdh' => 'ژورنال دو هکر', + 'lemmy' => ' لمی', + 'linkding' => ' پیوند دادن', + 'linkedin' => ' لینکدین', + 'mastodon' => ' ماستودون', + 'movim' => ' Movim', + 'omnivore' => ' همه چیزخوار', + 'pinboard' => ' پینبرد', + 'pinterest' => ' پینترست', + 'pocket' => ' جیبی', + 'print' => ' چاپ', + 'raindrop' => ' Raindrop.io', + 'reddit' => ' Reddit', + 'shaarli' => ' شعرلی', + 'twitter' => ' توییتر', + 'wallabag' => ' wallabag نسخه 1', + 'wallabagv2' => ' wallabag نسخه 2', + 'web-sharing-api' => ' اشتراک گذاری سیستم', + 'whatsapp' => ' واتساپ', + 'xing' => ' زینگ', + ), + 'short' => array( + 'attention' => ' هشدار!', + 'blank_to_disable' => ' برای غیرفعال کردن', + 'by_author' => ' توسط:', + 'by_default' => ' به طور پیش فرض', + 'damn' => ' انفجار!', + 'default_category' => ' دسته بندی نشده', + 'no' => ' شماره', + 'not_applicable' => ' در دسترس نیست', + 'ok' => ' باشه!', + 'or' => ' یا', + 'yes' => ' بله', + ), + 'stream' => array( + 'load_more' => ' بارگذاری مقالات بیشتر', + 'mark_all_read' => ' همه را به عنوان خوانده شده علامت گذاری کنید', + 'nothing_to_load' => ' مقاله دیگری وجود ندارد', + ), +); diff --git a/app/i18n/fa/index.php b/app/i18n/fa/index.php new file mode 100644 index 000000000..5396d04b7 --- /dev/null +++ b/app/i18n/fa/index.php @@ -0,0 +1,76 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'about' => array( + '_' => ' در مورد', + 'agpl3' => ' <a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>', + 'bugs_reports' => ' گزارش اشکال', + 'credits' => ' اعتبار', + 'credits_content' => ' برخی از عناصر طراحی از <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> می آیند', + 'documentation' => ' اسناد و مدارک', + 'freshrss_description' => ' FreshRSS یک جمع کننده و خواننده RSS خود میزبان است. این به شما امکان می دهد بدون نیاز به مرور از یک وب سایت به وب سایت دیگر', + 'github' => ' <a href="https://github.com/FreshRSS/FreshRSS/issues">در Github</a>', + 'license' => ' مجوز', + 'project_website' => ' وب سایت پروژه', + 'title' => ' در مورد', + 'version' => ' نسخه', + ), + 'feed' => array( + 'add' => ' لطفاً چند فید اضافه کنید.', + 'empty' => ' هیچ مقاله ای برای نمایش وجود ندارد.', + 'rss_of' => ' فید RSS %s', + 'title' => ' جریان اصلی', + 'title_fav' => ' موارد دلخواه', + 'title_global' => ' نمای جهانی', + ), + 'log' => array( + '_' => ' سیاهههای مربوط', + 'clear' => ' سیاهههای مربوط را پاک کنید', + 'empty' => ' فایل لاگ خالی است', + 'title' => ' سیاهههای مربوط', + ), + 'menu' => array( + 'about' => ' درباره FreshRSS', + 'before_one_day' => ' بزرگتر از یک روز', + 'before_one_week' => ' بزرگتر از یک هفته', + 'bookmark_query' => ' درخواست فعلی را نشانکگذاری کنید', + 'favorites' => ' موارد دلخواه (%s)', + 'global_view' => ' نمای جهانی', + 'main_stream' => ' جریان اصلی', + 'mark_all_read' => ' همه را به عنوان خوانده شده علامت گذاری کنید', + 'mark_cat_read' => ' دسته را به عنوان خوانده شده علامت گذاری کنید', + 'mark_feed_read' => ' فید را به عنوان خوانده شده علامت گذاری کنید', + 'mark_selection_unread' => ' انتخاب را به عنوان خوانده نشده علامت گذاری کنید', + 'newer_first' => ' ابتدا جدیدتر', + 'non-starred' => ' موارد غیر مورد علاقه را نشان دهید', + 'normal_view' => ' نمای عادی', + 'older_first' => ' اول مسن ترین', + 'queries' => ' پرس و جوهای کاربر', + 'read' => ' نمایش خوانده شده', + 'reader_view' => ' مشاهده خواندن', + 'rss_view' => ' خوراک RSS', + 'search_short' => ' جستجو', + 'starred' => ' نمایش موارد دلخواه', + 'stats' => ' آمار', + 'subscription' => ' مدیریت اشتراک', + 'tags' => ' برچسب های من', + 'unread' => ' نمایش خوانده نشده', + ), + 'share' => ' به اشتراک بگذارید', + 'tag' => array( + 'related' => ' برچسب های مقاله', + ), + 'tos' => array( + 'title' => ' شرایط خدمات', + ), +); diff --git a/app/i18n/fa/install.php b/app/i18n/fa/install.php new file mode 100644 index 000000000..7d86b78d0 --- /dev/null +++ b/app/i18n/fa/install.php @@ -0,0 +1,136 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'action' => array( + 'finish' => 'Complete installation', // TODO + 'fix_errors_before' => 'Please all fix errors before continuing to the next step.', // TODO + 'keep_install' => 'Keep previous configuration', // TODO + 'next_step' => 'Go to the next step', // TODO + 'reinstall' => 'Reinstall FreshRSS', // TODO + ), + 'auth' => array( + 'form' => 'Web form (traditional', + 'http' => 'HTTP (for advanced users with HTTPS)', // TODO + 'none' => 'None (dangerous)', // TODO + 'password_form' => 'Password<br /><small>(for the Web-form login method)</small>', // TODO + 'password_format' => 'At least 7 characters', // TODO + 'type' => 'Authentication method', // TODO + ), + 'bdd' => array( + '_' => 'Database', // TODO + 'conf' => array( + '_' => 'Database configuration', // TODO + 'ko' => 'Verify your database configuration.', // TODO + 'ok' => 'Database configuration has been saved.', // TODO + ), + 'host' => 'Host', // TODO + 'password' => 'Database password', // TODO + 'prefix' => 'Table prefix', // TODO + 'type' => 'Type of database', // TODO + 'username' => 'Database username', // TODO + ), + 'check' => array( + '_' => 'Checks', // TODO + 'already_installed' => 'We have detected that FreshRSS is already installed!', // TODO + 'cache' => array( + 'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permission.', // TODO + 'ok' => 'Permissions on the cache directory are good.', // TODO + ), + 'ctype' => array( + 'nok' => 'Cannot find the required library for character type checking (php-ctype).', // TODO + 'ok' => 'You have the required library for character type checking (ctype).', // TODO + ), + 'curl' => array( + 'nok' => 'Cannot find the cURL library (php-curl package).', // TODO + 'ok' => 'You have the cURL library.', // TODO + ), + 'data' => array( + 'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permission.', // TODO + 'ok' => 'Permissions on the data directory are good.', // TODO + ), + 'dom' => array( + 'nok' => 'Cannot find the required library to browse the DOM.', // TODO + 'ok' => 'You have the required library to browse the DOM.', // TODO + ), + 'favicons' => array( + 'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permission.', // TODO + 'ok' => 'Permissions on the favicons directory are good.', // TODO + ), + 'fileinfo' => array( + 'nok' => 'Cannot find the PHP fileinfo library (fileinfo package).', // TODO + 'ok' => 'You have the fileinfo library.', // TODO + ), + 'json' => array( + 'nok' => 'Cannot find the recommended library to parse JSON.', // TODO + 'ok' => 'You have the recommended library to parse JSON.', // TODO + ), + 'mbstring' => array( + 'nok' => 'Cannot find the recommended library mbstring for Unicode.', // TODO + 'ok' => 'You have the recommended library mbstring for Unicode.', // TODO + ), + 'pcre' => array( + 'nok' => 'Cannot find the required library for regular expressions (php-pcre).', // TODO + 'ok' => 'You have the required library for regular expressions (PCRE).', // TODO + ), + 'pdo' => array( + 'nok' => 'Cannot find PDO or one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', // TODO + 'ok' => 'You have PDO and at least one of the supported drivers (pdo_mysql, pdo_sqlite, pdo_pgsql).', // TODO + ), + 'php' => array( + 'nok' => 'Your PHP version is %s, but FreshRSS requires at least version %s.', // TODO + 'ok' => 'Your PHP version, %s, is compatible with FreshRSS.', // TODO + ), + 'reload' => 'Check again', // TODO + 'tmp' => array( + 'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.', // TODO + 'ok' => 'Permissions on the temp directory are good.', // TODO + ), + 'unknown_process_username' => 'unknown', // TODO + 'users' => array( + 'nok' => 'Check permissions on the <em>%1$s</em> directory for <em>%2$s</em> user. The HTTP server must have write permissions.', // TODO + 'ok' => 'Permissions on the users directory are good.', // TODO + ), + 'xml' => array( + 'nok' => 'Cannot find the required library to parse XML.', // TODO + 'ok' => 'You have the required library to parse XML.', // TODO + ), + ), + 'conf' => array( + '_' => 'General configuration', // TODO + 'ok' => 'General configuration has been saved.', // TODO + ), + 'congratulations' => 'Congratulations!', // TODO + 'default_user' => array( + '_' => 'Username of the default user', // TODO + 'max_char' => 'maximum 16 alphanumeric characters', // TODO + ), + 'fix_errors_before' => 'Please fix errors before continuing to the next step.', // TODO + 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', // TODO + 'js' => array( + 'confirm_reinstall' => 'You will lose your previous configuration by reinstalling FreshRSS. Are you sure you want to continue?', // TODO + ), + 'language' => array( + '_' => 'Language', // TODO + 'choose' => 'Choose a language for FreshRSS', // TODO + 'defined' => 'Language has been defined.', // TODO + ), + 'missing_applied_migrations' => 'Something went wrong; you should create an empty file <em>%s</em> manually.', // TODO + 'ok' => 'The installation process was successful.', // TODO + 'session' => array( + 'nok' => 'The web server seems to be incorrectly configured for cookies required for PHP sessions!', // TODO + ), + 'step' => 'step %d', // TODO + 'steps' => 'Steps', // TODO + 'this_is_the_end' => 'This is the end', // TODO + 'title' => 'Installation · FreshRSS', // TODO +); diff --git a/app/i18n/fa/sub.php b/app/i18n/fa/sub.php new file mode 100644 index 000000000..ca789d7b6 --- /dev/null +++ b/app/i18n/fa/sub.php @@ -0,0 +1,214 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'api' => array( + 'documentation' => ' URL زیر را برای استفاده از آن در یک ابزار خارجی کپی کنید.', + 'title' => ' API', + ), + 'bookmarklet' => array( + 'documentation' => ' این دکمه را به نوار ابزار نشانکهای خود بکشید یا روی آن راست کلیک کرده و «Bookmark This Link» را انتخاب کنید. سپس روی دکمه "اشتراک" در هر صفحه ای که می خواهید مشترک شوید کلیک کنید.', + 'label' => ' مشترک شوید', + 'title' => ' Bookmarklet', + ), + 'category' => array( + '_' => ' دسته', + 'add' => ' یک دسته اضافه کنید', + 'archiving' => ' بایگانی', + 'dynamic_opml' => array( + '_' => ' OPML پویا', + 'help' => ' URL را به <a href="http://opml.org/" target="_blank">فایل OPML</a> ارائه دهید تا به صورت پویا این دسته با فیدها پر شود.', + ), + 'empty' => ' دسته خالی', + 'information' => ' اطلاعات', + 'opml_url' => ' URL OPML', + 'position' => ' موقعیت نمایش', + 'position_help' => ' برای کنترل ترتیب مرتب سازی دسته بندی', + 'title' => ' عنوان', + ), + 'feed' => array( + 'accept_cookies' => ' کوکی ها را بپذیرید', + 'accept_cookies_help' => ' به سرور فید اجازه دهید تا کوکی ها را تنظیم کند (فقط برای مدت زمان درخواست در حافظه ذخیره می شود)', + 'add' => ' یک فید RSS اضافه کنید', + 'advanced' => ' پیشرفته', + 'archiving' => ' بایگانی', + 'auth' => array( + 'configuration' => ' ورود', + 'help' => ' دسترسی به فیدهای RSS محافظت شده HTTP را می دهد', + 'http' => ' احراز هویت HTTP', + 'password' => ' رمز عبور HTTP', + 'username' => ' نام کاربری HTTP', + ), + 'clear_cache' => ' همیشه حافظه پنهان را پاک کنید', + 'content_action' => array( + '_' => ' اقدام محتوا هنگام واکشی محتوای مقاله', + 'append' => ' پس از محتوای موجود اضافه کنید', + 'prepend' => ' قبل از محتوای موجود اضافه کنید', + 'replace' => ' محتوای موجود را جایگزین کنید', + ), + 'css_cookie' => ' هنگام واکشی محتوای مقاله از کوکی ها استفاده کنید', + 'css_cookie_help' => ' مثال: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', + 'css_help' => ' فیدهای RSS کوتاه شده را بازیابی می کند (احتیاط', + 'css_path' => ' انتخاب کننده CSS مقاله در وب سایت اصلی', + 'css_path_filter' => array( + '_' => ' انتخابگر CSS از عناصر برای حذف', + 'help' => ' یک انتخابگر CSS ممکن است لیستی باشد مانند: <kbd>.footer', + ), + 'description' => ' توضیحات', + 'empty' => ' این فید خالی است. لطفاً بررسی کنید که هنوز نگهداری می شود.', + 'error' => ' این فید با مشکل مواجه شده است. لطفاً بررسی کنید که همیشه در دسترس است و سپس آن را به روز کنید.', + 'filteractions' => array( + '_' => ' اعمال فیلتر', + 'help' => ' در هر خط یک فیلتر جستجو بنویسید. اپراتورها <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">مستندات را ببینید</a>.', + ), + 'information' => ' اطلاعات', + 'keep_min' => ' حداقل تعداد مقالات برای نگهداری', + 'kind' => array( + '_' => ' نوع منبع خوراک', + 'html_xpath' => array( + '_' => ' HTML + XPath (خراش دادن وب)', + 'feed_title' => array( + '_' => ' عنوان خوراک', + 'help' => ' مثال: <code>//title</code> یا یک رشته ثابت: <code>"فید سفارشی من"</code>', + ), + 'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> یک زبان جستجوی استاندارد برای پیشرفته است کاربران', + 'item' => array( + '_' => ' یافتن اخبار <strong>اقلام</strong><br /><small>(مهمترین)</small>', + 'help' => ' مثال: <code>//div[@class="news-item"]</code>', + ), + 'item_author' => array( + '_' => ' نویسنده مورد', + 'help' => ' همچنین می تواند یک رشته ثابت باشد. مثال: <code>"ناشناس"</code>', + ), + 'item_categories' => ' برچسب های آیتم', + 'item_content' => array( + '_' => ' محتوای مورد', + 'help' => ' مثالی برای گرفتن کامل مورد: <code>.</code>', + ), + 'item_thumbnail' => array( + '_' => ' تصویر کوچک مورد', + 'help' => ' مثال: <code>فرزند::img/@src</code>', + ), + 'item_timeFormat' => array( + '_' => ' فرمت تاریخ/زمان سفارشی', + 'help' => ' اختیاری. قالبی که توسط <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> پشتیبانی میشود', + ), + 'item_timestamp' => array( + '_' => ' تاریخ مورد', + 'help' => ' نتیجه با <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a> تجزیه خواهد شد', + ), + 'item_title' => array( + '_' => ' عنوان مورد', + 'help' => ' به طور خاص از <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">محور XPath</a> <code>فرزند::</code استفاده کنید > مانند <code>فرزند::h2</code>', + ), + 'item_uid' => array( + '_' => ' شناسه منحصر به فرد مورد', + 'help' => ' اختیاری. مثال: <code>فرزند::div/@data-uri</code>', + ), + 'item_uri' => array( + '_' => ' پیوند مورد (URL)', + 'help' => ' مثال: <code>فرزند::a/@href</code>', + ), + 'relative' => 'XPath (نسبت به مورد) برای:', + 'xpath' => ' XPath برای:', + ), + 'rss' => ' RSS / Atom (پیشفرض)', + 'xml_xpath' => ' XML + XPath', + ), + 'maintenance' => array( + 'clear_cache' => ' کش را پاک کنید', + 'clear_cache_help' => ' کش این فید را پاک کنید.', + 'reload_articles' => ' بارگذاری مجدد مقالات', + 'reload_articles_help' => ' تعداد زیادی مقاله را بارگیری مجدد کنید و در صورت تعریف انتخابگر', + 'title' => ' تعمیر و نگهداری', + ), + 'max_http_redir' => ' حداکثر تغییر مسیر HTTP', + 'max_http_redir_help' => ' روی 0 تنظیم کنید یا برای غیرفعال کردن آن را خالی بگذارید', + 'moved_category_deleted' => ' هنگامی که یک دسته را حذف می کنید', + 'mute' => ' بی صدا', + 'no_selected' => ' هیچ خوراکی انتخاب نشده است.', + 'number_entries' => ' %d مقاله', + 'priority' => array( + '_' => ' دید', + 'archived' => ' نشان داده نشود (بایگانی شده)', + 'main_stream' => ' نمایش در جریان اصلی', + 'normal' => ' نمایش در دسته بندی خود', + ), + 'proxy' => ' یک پروکسی برای واکشی این فید تنظیم کنید', + 'proxy_help' => ' یک پروتکل (به عنوان مثال: SOCKS5) انتخاب کنید و آدرس پراکسی را وارد کنید (به عنوان مثال: <kbd>127.0.0.1:1080</kbd>)', + 'selector_preview' => array( + 'show_raw' => ' نمایش کد منبع', + 'show_rendered' => 'نمایش محتوا', + ), + 'show' => array( + 'all' => ' نمایش همه فیدها', + 'error' => ' نمایش فقط فیدهای دارای خطا', + ), + 'showing' => array( + 'error' => ' نمایش فقط فیدهای دارای خطا', + ), + 'ssl_verify' => ' امنیت SSL را تأیید کنید', + 'stats' => ' آمار', + 'think_to_add' => ' می توانید چند فید اضافه کنید.', + 'timeout' => ' تایم اوت در ثانیه', + 'title' => ' عنوان', + 'title_add' => ' یک فید RSS اضافه کنید', + 'ttl' => ' بهطور خودکار بیشتر از آن رفرش نکنید', + 'url' => ' URL فید', + 'useragent' => ' عامل کاربر را برای واکشی این فید تنظیم کنید', + 'useragent_help' => ' مثال: <kbd>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)</kbd>', + 'validator' => ' اعتبار خوراک را بررسی کنید', + 'website' => ' آدرس وب سایت', + 'websub' => ' اطلاع رسانی فوری با WebSub', + ), + 'import_export' => array( + 'export' => ' صادرات', + 'export_labelled' => ' مقالات برچسب دار خود را صادر کنید', + 'export_opml' => ' لیست صادرات فیدها (OPML)', + 'export_starred' => ' موارد دلخواه خود را صادر کنید', + 'feed_list' => ' فهرست %s مقاله', + 'file_to_import' => ' فایل برای وارد کردن<br />(OPML', + 'file_to_import_no_zip' => ' فایل برای وارد کردن<br /> (OPML یا JSON)', + 'import' => 'واردات', + 'starred_list' => ' فهرست مقالات مورد علاقه', + 'title' => ' واردات / صادرات', + ), + 'menu' => array( + 'add' => ' یک فید یا دسته اضافه کنید', + 'import_export' => ' واردات / صادرات', + 'label_management' => ' مدیریت برچسب', + 'stats' => array( + 'idle' => ' تغذیه بیکار', + 'main' => ' آمار اصلی', + 'repartition' => ' تقسیم مجدد مقالات', + ), + 'subscription_management' => ' مدیریت اشتراک', + 'subscription_tools' => 'ابزارهای اشتراک', + ), + 'tag' => array( + 'name' => ' نام', + 'new_name' => ' نام جدید', + 'old_name' => ' نام قدیمی', + ), + 'title' => array( + '_' => ' مدیریت اشتراک', + 'add' => ' یک فید یا دسته اضافه کنید', + 'add_category' => ' یک دسته اضافه کنید', + 'add_dynamic_opml' => ' OPML پویا را اضافه کنید', + 'add_feed' => ' یک فید اضافه کنید', + 'add_label' => ' یک برچسب اضافه کنید', + 'delete_label' => ' یک برچسب را حذف کنید', + 'feed_management' => ' فیدهای RSS را مدیریت می کندment', + 'rename_label' => ' نام یک برچسب را تغییر دهید', + 'subscription_tools' => 'ابزارهای اشتراک', + ), +); diff --git a/app/i18n/fa/user.php b/app/i18n/fa/user.php new file mode 100644 index 000000000..a15647620 --- /dev/null +++ b/app/i18n/fa/user.php @@ -0,0 +1,54 @@ +<?php + +/******************************************************************************/ +/* Each entry of that file can be associated with a comment to indicate its */ +/* state. When there is no comment, it means the entry is fully translated. */ +/* The recognized comments are (comment matching is case-insensitive): */ +/* + TODO: the entry has never been translated. */ +/* + DIRTY: the entry has been translated but needs to be updated. */ +/* + IGNORE: the entry does not need to be translated. */ +/* When a comment is not recognized, it is discarded. */ +/******************************************************************************/ + +return array( + 'email' => array( + 'feedback' => array( + 'invalid' => ' این آدرس ایمیل نامعتبر است.', + 'required' => ' یک آدرس ایمیل مورد نیاز است.', + ), + 'validation' => array( + 'change_email' => ' میتوانید آدرس ایمیل خود را <a href="%s">در صفحه نمایه</a> تغییر دهید.', + 'email_sent_to' => ' ما یک ایمیل برای شما به آدرس <strong>%s</strong> ارسال کردیم. لطفاً دستورالعمل های آن را برای تأیید اعتبار آدرس خود دنبال کنید.', + 'feedback' => array( + 'email_failed' => ' به دلیل یک خطای پیکربندی سرور نتوانستیم برای شما ایمیل ارسال کنیم.', + 'email_sent' => ' یک ایمیل به آدرس شما ارسال شده است.', + 'error' => ' اعتبار آدرس ایمیل ناموفق بود.', + 'ok' => ' این آدرس ایمیل تایید شده است.', + 'unnecessary' => ' این آدرس ایمیل قبلاً تأیید شده است.', + 'wrong_token' => ' این آدرس ایمیل به دلیل یک توکن اشتباه تأیید نشد.', + ), + 'need_to' => ' قبل از اینکه بتوانید از %s استفاده کنید', + 'resend_email' => ' ایمیل را دوباره ارسال کنید', + 'title' => ' اعتبار سنجی آدرس ایمیل', + ), + ), + 'mailer' => array( + 'email_need_validation' => array( + 'body' => ' شما به تازگی در %s ثبت نام کرده اید', + 'title' => ' باید حساب خود را تأیید کنید', + 'welcome' => ' خوش آمدید %s', + ), + ), + 'password' => array( + 'invalid' => ' رمز عبور نامعتبر است.', + ), + 'tos' => array( + 'feedback' => array( + 'invalid' => ' برای اینکه بتوانید ثبت نام کنید باید شرایط خدمات را بپذیرید.', + ), + ), + 'username' => array( + 'invalid' => ' این نام کاربری نامعتبر است.', + 'taken' => ' این نام کاربری', + ), +); diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index e1f0feb1d..b068995c7 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index 01adc9a9e..f11c6c02a 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/id/gen.php b/app/i18n/id/gen.php index 80228677d..db6dcb97d 100644 --- a/app/i18n/id/gen.php +++ b/app/i18n/id/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 7376f8265..709f2a0a5 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/ja/gen.php b/app/i18n/ja/gen.php index d52cb5217..3d35adbd9 100644 --- a/app/i18n/ja/gen.php +++ b/app/i18n/ja/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/ko/gen.php b/app/i18n/ko/gen.php index e3ed5754c..e5a842375 100644 --- a/app/i18n/ko/gen.php +++ b/app/i18n/ko/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/lv/gen.php b/app/i18n/lv/gen.php index 96701c043..70e6f6191 100644 --- a/app/i18n/lv/gen.php +++ b/app/i18n/lv/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 4fd88f546..d7eb7f565 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index c4af26737..ee649c506 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/pl/gen.php b/app/i18n/pl/gen.php index 83c423464..c4d4c338a 100644 --- a/app/i18n/pl/gen.php +++ b/app/i18n/pl/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index d705fe180..9e9200833 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 86ae0273d..01b1d68ce 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php index 980869cb6..3900fdcd3 100644 --- a/app/i18n/sk/gen.php +++ b/app/i18n/sk/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 8b298fa56..707b58ea8 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 155671978..0cb9696cf 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE diff --git a/app/i18n/zh-tw/gen.php b/app/i18n/zh-tw/gen.php index 1f0a0aff4..ef3a8cf18 100644 --- a/app/i18n/zh-tw/gen.php +++ b/app/i18n/zh-tw/gen.php @@ -144,6 +144,7 @@ return array( 'en' => 'English', // IGNORE 'en-us' => 'English (United States)', // IGNORE 'es' => 'Español', // IGNORE + 'fa' => 'فارسی', // IGNORE 'fr' => 'Français', // IGNORE 'he' => 'עברית', // IGNORE 'id' => 'Bahasa Indonesia', // IGNORE |
