From 53ca983ef22ed35676454784f025cf02f79afdf7 Mon Sep 17 00:00:00 2001 From: Mohammad Lashkari Date: Sun, 14 Jun 2026 23:00:56 +0330 Subject: [PATCH] Complete the Persian translation (#8923) Translate remaining TODO and DIRTY entries in the Persian locale. --- README.fr.md | 2 +- README.md | 2 +- app/i18n/fa/admin.php | 94 ++++++++++++++++++------------------ app/i18n/fa/api.php | 22 ++++----- app/i18n/fa/conf.php | 84 ++++++++++++++++---------------- app/i18n/fa/feedback.php | 18 +++---- app/i18n/fa/gen.php | 102 +++++++++++++++++++-------------------- app/i18n/fa/index.php | 62 ++++++++++++------------ app/i18n/fa/install.php | 38 +++++++-------- app/i18n/fa/sub.php | 70 +++++++++++++-------------- app/i18n/fa/user.php | 8 +-- 11 files changed, 251 insertions(+), 251 deletions(-) diff --git a/README.fr.md b/README.fr.md index de6b87252..4b7277144 100644 --- a/README.fr.md +++ b/README.fr.md @@ -233,7 +233,7 @@ Voir le [dépôt dédié à ces extensions](https://github.com/FreshRSS/Extensio | English (en) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen+%2F%28TODO%7CDIRTY%29%24%2F) | | English (United States) (en-US) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen-US+%2F%28TODO%7CDIRTY%29%24%2F) | | Español (es) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) | -| فارسی (fa) | ■■■■■■■■■・ 90% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) | +| فارسی (fa) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) | | Suomi (fi) | ■■■■■■■■■・ 92% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) | | Français (fr) | ■■■■■■■■■■ 100% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) | | עברית (he) | ■■■■・・・・・・ 42% | [contribuer](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) | diff --git a/README.md b/README.md index 0b1541321..24583e9f2 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ See the [repository dedicated to those extensions](https://github.com/FreshRSS/E | English (en) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen+%2F%28TODO%7CDIRTY%29%24%2F) | | English (United States) (en-US) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fen-US+%2F%28TODO%7CDIRTY%29%24%2F) | | Español (es) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fes+%2F%28TODO%7CDIRTY%29%24%2F) | -| فارسی (fa) | ■■■■■■■■■・ 90% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) | +| فارسی (fa) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffa+%2F%28TODO%7CDIRTY%29%24%2F) | | Suomi (fi) | ■■■■■■■■■・ 92% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffi+%2F%28TODO%7CDIRTY%29%24%2F) | | Français (fr) | ■■■■■■■■■■ 100% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Ffr+%2F%28TODO%7CDIRTY%29%24%2F) | | עברית (he) | ■■■■・・・・・・ 42% | [contribute](https://github.com/search?q=repo%3AFreshRSS%2FFreshRSS+path%3Aapp%2Fi18n%2Fhe+%2F%28TODO%7CDIRTY%29%24%2F) | diff --git a/app/i18n/fa/admin.php b/app/i18n/fa/admin.php index a50ec88f8..ffcfbc98d 100644 --- a/app/i18n/fa/admin.php +++ b/app/i18n/fa/admin.php @@ -14,81 +14,81 @@ return array( 'auth' => array( 'allow_anonymous' => ' اجازه خواندن ناشناس مقالات کاربر پیش‌فرض (%s)', 'allow_anonymous_refresh' => ' اجازه بازخوانی ناشناس مقالات را بدهید', - 'api_enabled' => ' اجازه دسترسی به API (الزامی برای برنامه های تلفن همراه and sharing user queries and sharing user queries)', // DIRTY - 'form' => ' فرم وب (سنتی', - 'http' => 'یک پروتکل ارتباطی است که برای انتقال داده‌ها ', + 'api_enabled' => 'اجازه دسترسی به API (برای برنامه‌های موبایل و اشتراک‌گذاری پرس‌وجوهای کاربر لازم است)', + 'form' => 'فرم وب (سنتی، نیازمند JavaScript)', + 'http' => 'HTTP (پیشرفته: مدیریت‌شده توسط وب‌سرور، OIDC، SSO و...)', 'none' => ' هیچ (خطرناک)', 'title' => ' احراز هویت', - 'token' => 'به نوعی دارایی دیجیتال اشاره دارد که از ویژگی حفظ ارزش و انتقال به دیگران برخوردار است. توکن ابزار دیجیتالی است که بر روی بلاک چین رمزگذاری می‌شود. می‌توان گفت که توکن همان ارزدیجیتال با ویژگی‌های منحصر به فرد است.', - 'token_help' => 'اجازه دسترسی به تمام خروجی های ار اس اس کاربر و همچنین به روزرسانی فید ها را بدون احراز هویت می دهد', + 'token' => 'توکن اصلی احراز هویت', + 'token_help' => 'اجازه دسترسی به همه خروجی‌های RSS کاربر و به‌روزرسانی فیدها را بدون احراز هویت می‌دهد:', 'type' => ' روش احراز هویت', ), 'extensions' => array( 'author' => ' نویسنده', - 'community' => ' پسوندهای جامعه موجود', + 'community' => ' افزونه‌های جامعه کاربری موجود', 'description' => ' توضیحات', - 'disabled' => ' معلول', - 'empty_list' => ' هیچ برنامه افزودنی نصب شده ای وجود ندارد', + 'disabled' => 'غیرفعال', + 'empty_list' => 'هیچ افزونه‌ای نصب نشده است', 'empty_list_help' => 'لاگ‌ها را بررسی کنید تا دلیل خالی بودن لیست افزونه‌ها مشخص شود', 'enabled' => ' فعال است', - 'is_compatible' => 'Is compatible', // TODO - 'latest' => ' نصب شده است', + 'is_compatible' => 'سازگار است', + 'latest' => 'نصب‌شده', 'name' => ' نام', 'no_configure_view' => ' این برنامه افزودنی قابل پیکربندی نیست.', 'system' => array( - '_' => ' پسوندهای سیستم', - 'no_rights' => ' پسوند سیستم (شما مجوزهای لازم را ندارید)', + '_' => 'افزونه‌های سیستم', + 'no_rights' => 'افزونه سیستم (شما مجوزهای لازم را ندارید)', ), - 'title' => ' برنامه های افزودنی', - 'update' => ' به روز رسانی موجود است', - 'user' => ' پسوندهای کاربر', + 'title' => 'افزونه‌ها', + 'update' => 'به‌روزرسانی موجود است', + 'user' => 'افزونه‌های کاربر', 'version' => ' نسخه', ), 'stats' => array( '_' => 'آمار', 'all_feeds' => ' همه فیدها', 'category' => ' دسته', - 'date_published' => 'Publication date', // TODO - 'date_received' => 'Received date', // TODO + 'date_published' => 'تاریخ انتشار', + 'date_received' => 'تاریخ دریافت', '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' => ' پارتیشن مجدد ورودی ها', + 'entry_per_day_of_week' => 'در هر روز هفته (میانگین: %.2f پیام)', + 'entry_per_hour' => 'در هر ساعت (میانگین: %.2f پیام)', + 'entry_per_month' => 'در هر ماه (میانگین: %.2f پیام)', + 'entry_repartition' => 'توزیع مقاله‌ها', 'feed' => ' خوراک', 'feed_per_category' => ' فید در هر دسته', - 'idle' => ' تغذیه بیکار', + 'idle' => 'فیدهای غیرفعال', 'main' => ' آمار اصلی', 'main_stream' => ' جریان اصلی', - 'nb_unreads' => 'Number of unread articles', // TODO - 'no_idle' => ' هیچ فید بیکار وجود ندارد!', + 'nb_unreads' => 'تعداد مقاله‌های خوانده‌نشده', + 'no_idle' => 'هیچ فید غیرفعالی وجود ندارد!', 'number_entries' => ' %d مقاله', 'overview' => 'بررسی اجمالی', - 'percent_of_total' => ' درصد از کل', - 'repartition' => 'تقسیم‌بندی مجدد', + 'percent_of_total' => 'درصد از کل', + 'repartition' => 'توزیع مقاله‌ها: %s', 'status_favorites' => ' موارد دلخواه', - 'status_read' => ' بخوانید', + 'status_read' => 'خوانده‌شده', 'status_total' => ' مجموع', - 'status_unread' => ' خوانده نشده', + 'status_unread' => 'خوانده‌نشده', 'title' => 'آمار', 'top_feed' => ' ده فید برتر', - 'unread_dates' => 'Dates with most unread articles', // TODO + 'unread_dates' => 'تاریخ‌هایی با بیشترین مقاله خوانده‌نشده', ), 'system' => array( '_' => ' پیکربندی سیستم', - 'auto-update-url' => ' به روز رسانی خودکار URL سرور', + 'auto-update-url' => 'نشانی سرور به‌روزرسانی خودکار', 'base-url' => array( '_' => 'آدرس پایه', 'recommendation' => 'توصیه: %s', ), - 'closed_registration_message' => 'Message if registrations are closed', // TODO + 'closed_registration_message' => 'پیام هنگام بسته بودن ثبت‌نام', 'cookie-duration' => array( 'help' => ' در ثانیه', 'number' => ' مدت زمان ورود به سیستم', ), - 'default_closed_registration_message' => 'This server does not accept new registrations at the moment.', // TODO + 'default_closed_registration_message' => 'این سرور در حال حاضر ثبت‌نام جدید نمی‌پذیرد.', 'force_email_validation' => ' اعتبارسنجی آدرس ایمیل اجباری', 'instance-name' => ' نام نمونه', 'max-categories' => ' حداکثر تعداد دسته ها برای هر کاربر', @@ -98,9 +98,9 @@ return array( 'select' => array( 'label' => ' فرم ثبت نام', 'option' => array( - 'noform' => ' معلولین: بدون فرم ثبت نام', - 'nolimit' => ' فعال: بدون محدودیت حساب', - 'setaccountsnumber' => ' حداکثر تنظیم کنید. تعداد حساب ها', + 'noform' => 'غیرفعال: بدون فرم ثبت‌نام', + 'nolimit' => 'فعال: بدون محدودیت تعداد حساب‌ها', + 'setaccountsnumber' => 'فعال: با حداکثر تعداد حساب‌ها', ), ), 'status' => array( @@ -109,33 +109,33 @@ return array( ), 'title' => 'فرم ثبت نام کاربر', ), - 'sensitive-parameter' => 'پارامتر حساس. Edit manually in ./data/config.php', + 'sensitive-parameter' => 'پارامتر حساس. به صورت دستی در ./data/config.php ویرایش کنید', 'tos' => array( 'disabled' => ' داده نشده است', 'enabled' => ' فعال است', 'help' => ' نحوه فعال کردن شرایط خدمات ', ), 'websub' => array( - 'help' => ' در مورد وب سایت', + 'help' => 'درباره WebSub', ), ), 'update' => array( - '_' => ' FreshRSS را به روز کنید', - 'apply' => ' شروع به روز رسانی', + '_' => 'به‌روزرسانی FreshRSS', + 'apply' => 'شروع به‌روزرسانی', 'changelog' => ' تغییرات', - 'check' => ' به روز رسانی های جدید را بررسی کنید', + 'check' => 'بررسی به‌روزرسانی‌های جدید', 'copiedFromURL' => 'update.php از %s به ./data کپی شد', 'current_version' => ' نسخه نصب شده فعلی', 'last' => ' آخرین بررسی', - 'loading' => ' به روز رسانی…', - 'none' => ' به روز رسانی در دسترس نیست', + 'loading' => 'در حال به‌روزرسانی…', + 'none' => 'به‌روزرسانی در دسترس نیست', 'releaseChannel' => array( '_' => ' کانال انتشار', - 'edge' => ' انتشار نورد ("لبه")', - 'latest' => ' انتشار پایدار ("آخرین")', + 'edge' => 'انتشار پیوسته («edge»)', + 'latest' => 'انتشار پایدار («latest»)', ), - 'title' => ' FreshRSS را به روز کنید', - 'viaGit' => ' به روز رسانی از طریق git و GitHub.com شروع شد', + 'title' => 'به‌روزرسانی FreshRSS', + 'viaGit' => 'به‌روزرسانی از طریق git و GitHub.com شروع شد', ), 'user' => array( 'admin' => ' مدیر', @@ -152,7 +152,7 @@ return array( 'list' => ' لیست کاربران', 'number' => ' %d حساب ایجاد شده است', 'numbers' => ' %d حساب ایجاد شده است', - 'password_form' => ' رمز عبور
(برایروش ورود به فرم وب)', + 'password_form' => 'رمز عبور
(برای روش ورود با فرم وب)', 'password_format' => ' حداقل 7 کاراکتر', 'title' => ' مدیریت کاربران', 'username' => ' نام کاربری', diff --git a/app/i18n/fa/api.php b/app/i18n/fa/api.php index 0021dfa98..517bd6007 100644 --- a/app/i18n/fa/api.php +++ b/app/i18n/fa/api.php @@ -12,22 +12,22 @@ return array( 'information' => array( - 'address' => 'Your API address:', // TODO + 'address' => 'نشانی API شما:', 'output' => array( - 'encoding-support' => '⚠️ WARN: no %2F support, some clients might not work!', // TODO - 'invalid-configuration' => '⚠️ WARN: Probable invalid base URL in ./data/config.php', // TODO - 'pass' => '✔️ PASS', // TODO - 'unknown-error' => '❌ ', // TODO + 'encoding-support' => '⚠️ هشدار: پشتیبانی از %2F وجود ندارد؛ ممکن است برخی کلاینت‌ها کار نکنند!', + 'invalid-configuration' => '⚠️ هشدار: احتمالاً نشانی پایه در ./data/config.php نامعتبر است', + 'pass' => '✔️ قبول', + 'unknown-error' => '❌ خطای ناشناخته', ), 'test' => array( - 'fever' => 'Fever API configuration test:', // TODO - 'greader' => 'Google Reader API configuration test:', // TODO + 'fever' => 'آزمون پیکربندی API سازگار با Fever:', + 'greader' => 'آزمون پیکربندی API سازگار با Google Reader:', ), 'title' => array( - '_' => 'FreshRSS API endpoints', // TODO - 'extension' => 'API for extensions', // TODO - 'fever' => 'Fever compatible API', // TODO - 'greader' => 'Google Reader compatible API', // TODO + '_' => 'نقاط پایانی API در FreshRSS', + 'extension' => 'API برای افزونه‌ها', + 'fever' => 'API سازگار با Fever', + 'greader' => 'API سازگار با Google Reader', ), ), ); diff --git a/app/i18n/fa/conf.php b/app/i18n/fa/conf.php index dc698de92..264b1ead3 100644 --- a/app/i18n/fa/conf.php +++ b/app/i18n/fa/conf.php @@ -36,7 +36,7 @@ return array( '_' => ' حالت تاریک خودکار', 'auto' => ' خودکار', 'help' => 'کمک', - 'no' => ' شماره', + 'no' => 'خیر', ), 'icon' => array( 'bottom_line' => ' خط پایین', @@ -56,21 +56,21 @@ return array( 'show_nav_buttons' => ' دکمه های ناوبری را نشان دهید', 'show_title_unread' => 'نمایش تعداد مقالات خوانده نشده در عنوان', 'show_unread_count' => array( - '_' => 'Show unread counts in sidebar', // TODO - 'all' => 'For all categories and feeds', // TODO - 'important' => 'For important feeds only', // TODO - 'important_locked' => 'Important feeds always show their unread count.', // TODO - 'none' => 'Never', // TODO + '_' => 'نمایش تعداد خوانده‌نشده‌ها در نوار کناری', + 'all' => 'برای همه دسته‌ها و فیدها', + 'important' => 'فقط برای فیدهای مهم', + 'important_locked' => 'فیدهای مهم همیشه تعداد خوانده‌نشده‌های خود را نشان می‌دهند.', + 'none' => 'هرگز', ), - 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO + 'sidebar_hidden_by_default' => 'پنهان کردن نوار کناری به صورت پیش‌فرض', 'theme' => array( '_' => ' موضوع', 'deprecated' => array( '_' => ' منسوخ شده است', - 'description' => ' این طرح زمینه دیگر پشتیبانی نمی‌شود و در آینده در دسترس نخواهد بود انتشار FreshRSS', + 'description' => 'این پوسته دیگر پشتیبانی نمی‌شود و در نسخه آینده FreshRSS در دسترس نخواهد بود', ), ), - 'theme_not_available' => ' طرح زمینه "%s" دیگر در دسترس نیست. لطفا موضوع دیگری را انتخاب کنید.', + 'theme_not_available' => 'پوسته «%s» دیگر در دسترس نیست. لطفاً پوسته دیگری انتخاب کنید.', 'thumbnail' => array( 'label' => ' تصویر بند انگشتی', 'landscape' => ' منظره', @@ -83,7 +83,7 @@ return array( 'website' => array( 'full' => ' نماد و نام', 'icon' => ' فقط نماد', - 'label' => ' وب سایت', + 'label' => 'وب‌سایت', 'name' => ' فقط نام', 'none' => ' هیچکدام', ), @@ -115,22 +115,22 @@ return array( 'small' => 'کوچک', ), 'notification' => array( - 'html5_enable_notif' => 'Enable notification', // TODO + 'html5_enable_notif' => 'فعال کردن اعلان', ), 'notification_timeout' => array( 'bad' => array( - 'label' => 'Show warning banner', // TODO - 'seconds' => 'seconds (at least 1)', // TODO + 'label' => 'نمایش نوار هشدار', + 'seconds' => 'ثانیه (حداقل ۱)', ), 'good' => array( - 'label' => 'Show acknowledgement banner', // TODO - 'seconds' => 'seconds (0 means not shown)', // TODO + 'label' => 'نمایش نوار تأیید', + 'seconds' => 'ثانیه (۰ یعنی نمایش داده نشود)', ), ), 'privacy' => array( '_' => 'حریم خصوصی', 'retrieve_extension_list' => 'بازیابی لیست افزونه‌ها', - 'send_referrer_allowlist' => 'Sites allowed to see your server address (%s)', // TODO + 'send_referrer_allowlist' => 'سایت‌هایی که مجازند نشانی سرور شما را ببینند (%s)', ), 'profile' => array( '_' => ' مدیریت پروفایل', @@ -142,11 +142,11 @@ return array( 'disabled' => 'غیرفعال', 'documentation_link' => 'See the مستندات و فهرست برنامه‌های شناخته‌شده', // IGNORE 'help' => 'See documentation', // IGNORE - 'security_warning' => 'Use HTTPS. The API password is transmitted in clear text and may appear in server logs if sent via GET.', // TODO + 'security_warning' => 'از HTTPS استفاده کنید. رمز عبور API به صورت متن ساده ارسال می‌شود و اگر با GET فرستاده شود ممکن است در لاگ‌های سرور ثبت شود.', ), 'change_password' => 'تغییر رمز عبور', 'confirm_new_password' => 'تأیید رمز عبور جدید', - 'current_password' => 'رمز عبور کنونی
(for the Web-form login method)', + 'current_password' => 'رمز عبور کنونی
(برای روش ورود با فرم وب)', 'delete' => array( '_' => ' حذف اکانت', 'warn' => ' حساب شما و تمام داده های مرتبط حذف خواهد شد.', @@ -159,19 +159,19 @@ return array( ), 'query' => array( '_' => ' پرس و جوهای کاربر', - 'create' => 'Create new user query', // TODO + 'create' => 'ایجاد پرس‌وجوی کاربری جدید', 'deprecated' => ' این عبارت دیگر معتبر نیست. دسته یا فید ارجاع شده حذف شده است.', 'description' => 'توضیحات', 'filter' => array( '_' => ' فیلتر اعمال شده:', - 'categories' => ' نمایش بر اساس دسته بندی', + 'categories' => 'نمایش بر اساس دسته‌بندی', 'feeds' => ' نمایش با فید', 'order' => ' مرتب سازی بر اساس تاریخ', - 'publish_labels_instead_of_tags' => 'Replace feed tags by user labels in the shared RSS', // TODO + 'publish_labels_instead_of_tags' => 'در RSS اشتراکی، برچسب‌های فید را با برچسب‌های کاربر جایگزین کنید', 'search' => ' بیان', 'shareOpml' => 'فعال‌سازی اشتراک‌گذاری دسته‌ها و فیدهای مربوطه با OPML', 'shareRss' => 'اشتراک‌گذاری RSS', - 'state' => ' ایالت', + 'state' => 'وضعیت', 'tags' => ' نمایش بر اساس برچسب', 'type' => ' نوع', ), @@ -184,15 +184,15 @@ return array( 'get_feed' => ' فید "%s" را نمایش دهید', 'get_important' => 'نمایش مقالات از فیدهای مهم', 'get_label' => 'نمایش مقالات با برچسب %s', - 'help' => 'See the مستندات مربوط به پرس‌وجوهای کاربران و بازنشر آن‌ها HTML / RSS / OPML.', + 'help' => 'مستندات مربوط به پرس‌وجوهای کاربر و بازنشر آن‌ها با HTML / RSS / OPML را ببینید.', 'image_url' => 'نشانی اینترنتی تصویر', 'name' => ' نام', 'no_filter' => ' بدون فیلتر', 'no_queries' => array( '_' => 'هنوز هیچ پرس‌وجوی کاربری ذخیره نشده است', - 'help' => 'See سند', + 'help' => 'مستندات را ببینید', ), - 'number' => ' پرس و جو n°%d', + 'number' => 'پرس‌وجوی شماره %d', 'order_asc' => ' ابتدا قدیمی ترین مقالات را نمایش دهید', 'order_desc' => ' ابتدا جدیدترین مقالات را نمایش دهید', 'search' => ' «%s» را جستجو کنید', @@ -216,10 +216,10 @@ return array( 'state_5' => ' نمایش مقالات مورد علاقه خوانده شده', 'state_6' => 'نمایش مقالات مورد علاقه خوانده نشده', 'state_7' => ' نمایش مقالات مورد علاقه', - 'state_8' => ' نمایش مقالات مورد علاقه نیست', + 'state_8' => 'نمایش مقاله‌های غیرموردعلاقه', 'state_9' => ' نمایش مقالات مورد علاقه خوانده نشده', - 'state_10' => ' نمایش مقالات خوانده نشده و نه مورد علاقه', - 'state_11' => ' نمایش مقالات مورد علاقه نیست', + 'state_10' => 'نمایش مقاله‌های خوانده‌نشده و غیرموردعلاقه', + 'state_11' => 'نمایش مقاله‌های غیرموردعلاقه', 'state_12' => ' نمایش همه مقالات', 'state_13' => ' نمایش مقالات خوانده شده', 'state_14' => ' نمایش مقالات خوانده نشده', @@ -246,7 +246,7 @@ return array( ), 'feed_title' => ' عنوان خوراک', 'icons' => array( - '_' => 'موقعیت آیکون‌ها
(Reading view only)', + '_' => 'موقعیت آیکون‌ها
(فقط در نمای خواندن)', 'above_title' => 'بالاتر از عنوان', 'with_authors' => 'در سطر نویسنده و تاریخ', ), @@ -267,7 +267,7 @@ return array( 'auto_remove_article' => ' مخفی کردن مقالات پس از خواندن', 'confirm_enabled' => ' یک دیالوگ تأیید را روی اقدامات "علامت گذاری همه به عنوان خوانده شده" نمایش دهید', 'display_articles_unfolded' => ' نمایش مقالاتی که به طور پیش فرض باز شده اند', - 'display_categories_unfolded' => ' دسته بندی هایی که باید آشکار شوند', + 'display_categories_unfolded' => 'دسته‌بندی‌هایی که باید باز باشند', 'headline' => array( 'articles' => ' مقالات: باز/بستن', 'articles_header_footer' => ' مقالات: سرصفحه / پاورقی', @@ -278,11 +278,11 @@ return array( ), 'hide_read_feeds' => ' دسته‌ها و فیدها را بدون مقاله خوانده نشده پنهان کنید (با پیکربندی «نمایش همه مقاله‌ها» کار نمی‌کند)', 'img_with_lazyload' => ' از حالت بار تنبل برای بارگیری تصاویر استفاده کنید', - 'jump_next' => ' پرش به خواهر و برادر خوانده نشده بعدی', + 'jump_next' => 'پرش به مورد خوانده‌نشده بعدی در همان سطح', 'mark_updated_article_unread' => ' مقالات به روز شده را به عنوان خوانده نشده علامت گذاری کنید', 'number_divided_when_reader' => ' در نمای خواندن بر 2 تقسیم کنید.', 'read' => array( - 'article_open_on_website' => ' هنگامی که مقاله در وب سایت اصلی خود باز می شود', + 'article_open_on_website' => 'هنگامی که مقاله در وب‌سایت اصلی خود باز می‌شود', 'article_viewed' => ' هنگام مشاهده مقاله', 'focus' => 'فقط هنگام انتخاب فید (به‌جز فیدهای مهم)', 'keep_max_n_unread' => ' حداکثر تعداد مقالات خوانده نشده', @@ -290,9 +290,9 @@ return array( 'upon_gone' => ' زمانی که دیگر در فید اخبار بالادستی نیست', 'upon_reception' => ' پس از دریافت مقاله', 'when' => ' علامت گذاری یک مقاله به عنوان خوانده شده…', - 'when_same_guid_in_category' => 'if an identical GUID already exists in the top n newest articles of the category', // TODO - 'when_same_title_in_category' => 'اگر عنوان مشابهی در بخش بالا وجود دارد n تازه‌ترین مقالات این دسته', - 'when_same_title_in_feed' => ' اگر عنوان یکسانی از قبل در n جدیدترین مقالات بالا وجود داشته باشد (از فید)', + 'when_same_guid_in_category' => 'اگر GUID یکسانی از قبل در n مقاله جدیدتر دسته وجود داشته باشد', + 'when_same_title_in_category' => 'اگر عنوان مشابهی از قبل در n مقاله جدیدتر این دسته وجود داشته باشد', + 'when_same_title_in_feed' => 'اگر عنوان مشابهی از قبل در n مقاله جدیدتر این فید وجود داشته باشد', ), 'show' => array( '_' => ' مقالات برای نمایش', @@ -301,7 +301,7 @@ return array( 'all_articles' => ' نمایش همه مقالات', 'all_categories' => ' همه دسته ها', 'no_category' => ' بدون دسته', - 'remember_categories' => ' دسته بندی های باز را به خاطر بسپارید', + 'remember_categories' => 'دسته‌بندی‌های باز را به خاطر بسپارید', 'unread' => ' فقط خوانده نشده را نشان دهد', 'unread_or_favorite' => 'نمایش خوانده‌نشده‌ها و موردعلاقه‌ها', ), @@ -323,7 +323,7 @@ return array( '_' => ' اشتراک گذاری', 'add' => ' یک روش اشتراک گذاری اضافه کنید', 'bluesky' => 'Bluesky( یک شبکه اجتماعی غیرمتمرکز است که به کاربران اجازه می‌دهد پست‌های کوتاه، عکس و ویدیو به اشتراک بگذارند)', - 'deprecated' => ' این سرویس منسوخ شده است و در نسخه آینده.', + 'deprecated' => 'این سرویس منسوخ شده است و در نسخه آینده از FreshRSS حذف خواهد شد.', 'diaspora' => ' دیاسپورا*', 'email' => ' ایمیل', 'facebook' => ' فیس بوک', @@ -340,11 +340,11 @@ return array( ), 'shortcut' => array( '_' => ' میانبرها', - 'article_action' => ' اقدامات ماده', + 'article_action' => 'اقدام‌های مقاله', 'auto_share' => ' اشتراک گذاری', 'auto_share_help' => ' اگر فقط یک حالت اشتراک گذاری وجود داشته باشد', 'close_menus' => ' منوها را ببندید', - 'collapse_article' => ' فروپاشی', + 'collapse_article' => 'جمع کردن مقاله', 'first_article' => ' اولین مقاله را باز کنید', 'focus_search' => ' به کادر جستجو دسترسی پیدا کنید', 'global_view' => ' تغییر به نمای جهانی', @@ -365,16 +365,16 @@ return array( 'previous_article' => ' مقاله قبلی را باز کنید', 'reading_view' => ' به نمای خواندن بروید', 'rss_view' => ' به عنوان فید RSS باز شود', - 'see_on_website' => ' به وب سایت اصلی مراجعه کنید', + 'see_on_website' => 'به وب‌سایت اصلی مراجعه کنید', 'shift_for_all_read' => '+ Alt ⎇ برای علامت گذاری مقالات قبلی به عنوان خوانده شده
+ ⇧ Shift برای علامت گذاری همه مقالات به عنوان خوانده شده', 'skip_next_article' => ' فوکوس بعدی بدون باز کردن', 'skip_previous_article' => ' فوکوس قبلی بدون باز کردن', 'title' => ' میانبرها', - 'toggle_aside' => 'Toggle sidebar', // TODO + 'toggle_aside' => 'تغییر وضعیت نوار کناری', 'toggle_media' => ' پخش/مکث رسانه', 'user_filter' => ' به درخواست های کاربر دسترسی پیدا کنید', 'user_filter_help' => ' اگر فقط یک درخواست کاربر وجود داشته باشد', - 'views' => ' بازدید', + 'views' => 'نماها', ), 'user' => array( 'articles_and_size' => '%s مقاله (%s)', diff --git a/app/i18n/fa/feedback.php b/app/i18n/fa/feedback.php index ee594c02e..22d9bd60b 100644 --- a/app/i18n/fa/feedback.php +++ b/app/i18n/fa/feedback.php @@ -50,7 +50,7 @@ return array( 'ko' => ' %s را نمی توان فعال کرد. برای جزئیات گزارش‌های FreshRSS را بررسی کنید.', 'ok' => ' %s اکنون فعال است', ), - 'invalid_view_mode' => 'حالت نمایشی که انتخاب کردی درست نیست! برمی‌گردم به حالت', + 'invalid_view_mode' => 'حالت نمایش «%s» نامعتبر است! بازگشت به «نمای عادی».', 'no_access' => ' شما به %s دسترسی ندارید', 'not_enabled' => '%s فعال نیست', 'not_found' => '%s وجود ندارد', @@ -58,8 +58,8 @@ return array( ), 'import_export' => array( 'export_no_zip_extension' => ' پسوند ZIP در سرور شما وجود ندارد. لطفا سعی کنید فایل ها را یکی یکی صادر کنید.', - 'feeds_imported' => ' فیدهای شما وارد شده اند و اکنون به روز خواهند شد / Your feeds have been imported. If you are done importing, you can now click the Update feeds button.', - 'feeds_imported_with_errors' => ' فیدهای شما وارد شده است / Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the Update feeds button.', + 'feeds_imported' => 'فیدهای شما وارد شده‌اند. اگر کار وارد کردن تمام شده است، اکنون می‌توانید روی دکمه به‌روزرسانی فیدها کلیک کنید.', + 'feeds_imported_with_errors' => 'فیدهای شما وارد شده‌اند، اما چند خطا رخ داده است. اگر کار وارد کردن تمام شده است، اکنون می‌توانید روی دکمه به‌روزرسانی فیدها کلیک کنید.', 'file_cannot_be_uploaded' => ' فایل قابل آپلود نیست!', 'no_zip_extension' => ' پسوند ZIP در سرور شما وجود ندارد.', 'zip_error' => ' در حین پردازش ZIP خطایی روی داد.', @@ -83,9 +83,9 @@ return array( 'name_exists' => ' نام دسته از قبل وجود دارد.', 'no_id' => ' شما باید شناسه دسته را مشخص کنید.', 'no_name' => ' نام دسته نمی تواند خالی باشد.', - 'not_delete_default' => ' شما نمی توانید دسته بندی پیش فرض را حذف کنید!', - 'not_exist' => ' دسته بندی وجود ندارد!', - 'over_max' => ' شما به حد مجاز دسته بندی خود رسیده اید (%d)', + 'not_delete_default' => 'شما نمی‌توانید دسته‌بندی پیش‌فرض را حذف کنید!', + 'not_exist' => 'دسته‌بندی وجود ندارد!', + 'over_max' => 'شما به حد مجاز دسته‌بندی‌های خود رسیده‌اید (%d)', 'updated' => ' رده به روز شده است.', ), 'feed' => array( @@ -100,7 +100,7 @@ return array( 'too_large' => 'نماد آپلود شده خیلی بزرگ است. حداکثر حجم فایل %s.', 'unsupported_format' => 'فرمت فایل تصویری پشتیبانی نمی‌شود!', ), - 'internal_problem' => ' فید خبری اضافه نشد. برای جزئیات گزارش‌های FreshRSS را بررسی کنید. می‌توانید با اضافه کردن #force_feed به URL', + 'internal_problem' => 'فید خبری اضافه نشد. برای جزئیات گزارش‌های FreshRSS را بررسی کنید. می‌توانید با افزودن #force_feed به انتهای URL، افزودن اجباری را امتحان کنید.', 'invalid_url' => ' URL %s نامعتبر است', 'n_actualized' => ' %d فید به روز شده است', 'n_entries_deleted' => ' %d مقاله حذف شده است', @@ -110,7 +110,7 @@ return array( 'over_max' => ' شما به حد مجاز فید خود رسیده اید (%d)', 'reloaded' => '%s دوباره بارگیری شده است', 'selector_preview' => array( - 'http_error' => ' محتوای وب سایت بارگیری نشد.', + 'http_error' => 'محتوای وب‌سایت بارگیری نشد.', 'no_entries' => ' هیچ مقاله ای در این فید وجود ندارد. برای ایجاد پیش نمایش به حداقل یک مقاله نیاز دارید.', 'no_feed' => ' خطای داخلی (فید یافت نمی شود).', 'no_result' => ' انتخابگر با چیزی مطابقت نداشت. به عنوان یک بازگشت', @@ -130,7 +130,7 @@ return array( 'update' => array( 'can_apply' => ' به‌روزرسانی FreshRSS موجود است: نسخه %s.', 'error' => ' فرآیند به روز رسانی با خطا مواجه شده است: %s', - 'file_is_nok' => ' به‌روزرسانی FreshRSS موجود است (نسخه %s)', + 'file_is_nok' => 'به‌روزرسانی FreshRSS موجود است (نسخه %s)، اما مجوزهای دایرکتوری %s را بررسی کنید. سرور HTTP باید مجوز نوشتن داشته باشد', 'finished' => ' به روز رسانی کامل شد!', 'none' => ' به روز رسانی در دسترس نیست', 'server_not_found' => ' سرور به روز رسانی یافت نمی شود. [%s]', diff --git a/app/i18n/fa/gen.php b/app/i18n/fa/gen.php index dff895f69..94395ef48 100644 --- a/app/i18n/fa/gen.php +++ b/app/i18n/fa/gen.php @@ -46,7 +46,7 @@ return array( 'refresh_opml' => ' OPML را بازخوانی کنید', 'remove' => ' حذف کنید', 'rename' => ' تغییر نام', - 'see_website' => ' به وب سایت مراجعه کنید', + 'see_website' => 'به وب‌سایت مراجعه کنید', 'submit' => ' ارسال کنید', 'truncate' => ' تمام مقالات را حذف کنید', 'update' => ' به روز رسانی', @@ -77,18 +77,18 @@ return array( ), ), 'date' => array( - 'Apr' => 'آ/و/ر/ی/ل//', - 'Aug' => 'آ/گ/و/س/ت//', - 'Dec' => 'د/س/ا/م/ب/ر//', - 'Feb' => 'ف/و/ر/ی/ه//', - 'Jan' => 'ژ/ا/ن/و/ی/ه//', - 'Jul' => 'ژ/و/ئ/ی/ه//', - 'Jun' => 'ژ/و/ئ/ن//', - 'Mar' => 'م/ا/ر/س//', - 'May' => 'م/ی//', - 'Nov' => 'ن/و/ا/م/ب/ر//', - 'Oct' => 'ا/ک/ت/ب/ر//', - 'Sep' => 'س/پ/ت/ا/م/ب/ر//', + 'Apr' => 'آوریل', + 'Aug' => 'اوت', + 'Dec' => 'دسامبر', + 'Feb' => 'فوریه', + 'Jan' => 'ژانویه', + 'Jul' => 'ژوئیه', + 'Jun' => 'ژوئن', + 'Mar' => 'مارس', + 'May' => 'مه', + 'Nov' => 'نوامبر', + 'Oct' => 'اکتبر', + 'Sep' => 'سپتامبر', 'apr' => ' آوریل', 'april' => ' آوریل', 'aug' => ' آگوست', @@ -115,7 +115,7 @@ return array( 'last_month' => ' ماه گذشته', 'last_week' => ' هفته گذشته', 'last_year' => ' سال گذشته', - 'mar' => ' مارس.', + 'mar' => ' مارس', 'march' => ' مارس', 'may' => ' مه', 'may_' => ' مه', @@ -126,7 +126,7 @@ return array( 'oct' => ' اکتبر', 'october' => ' اکتبر', 'sat' => ' شنبه', - 'sep' => ' سپتامبر.', + 'sep' => ' سپتامبر', 'september' => ' سپتامبر', 'sun' => ' یکشنبه', 'thu' => ' پنجشنبه', @@ -171,7 +171,7 @@ return array( 'category_empty' => ' دسته خالی', 'confirm_action' => ' آیا مطمئن هستید که می خواهید این عمل را انجام دهید؟ نمی توان آن را لغو کرد!', 'confirm_action_feed_cat' => ' آیا مطمئن هستید که می خواهید این عمل را انجام دهید؟ موارد دلخواه و درخواست های کاربر مرتبط را از دست خواهید داد. نمی توان آن را لغو کرد!', - 'confirm_exit_slider' => 'Are you sure you want to discard unsaved settings?', // TODO + 'confirm_exit_slider' => 'مطمئنید می‌خواهید تنظیمات ذخیره‌نشده را نادیده بگیرید؟', 'feedback' => array( 'body_new_articles' => ' %%d مقاله جدید برای خواندن در FreshRSS وجود دارد.', 'body_unread_articles' => ' (خوانده نشده: %%d)', @@ -181,7 +181,7 @@ return array( 'labels_empty' => 'بدون برچسب', 'new_article' => 'مقالات جدیدی موجود است', 'should_be_activated' => ' جاوا اسکریپت باید فعال باشد', - 'unsafe_csp_header' => 'The CSP header in use is unsafe and FreshRSS may be vulnerable to XSS attacks. See documentation', // TODO + 'unsafe_csp_header' => 'سرآیند CSP فعلی امن نیست و FreshRSS ممکن است در برابر حملات XSS آسیب‌پذیر باشد. مستندات را ببینید', ), 'lang' => array( 'cs' => 'Čeština', // IGNORE @@ -215,20 +215,20 @@ return array( 'menu' => array( 'about' => ' در مورد', 'account' => ' حساب', - 'admin' => ' اداره', - 'advanced_search' => 'Advanced Search', // TODO + 'admin' => 'مدیریت', + 'advanced_search' => 'جستجوی پیشرفته', 'archiving' => ' آرشیو', 'authentication' => ' احراز هویت', 'check_install' => ' بررسی نصب', 'configuration' => ' پیکربندی', 'display' => 'نمایش', - 'extensions' => ' برنامه های افزودنی', - 'logs' => ' سیاهههای مربوط', + 'extensions' => 'افزونه‌ها', + 'logs' => 'گزارش‌ها', 'privacy' => 'حریم خصوصی', 'queries' => ' پرس و جوهای کاربر', 'reading' => ' خواندن', 'search' => ' کلمات یا #برچسب ها را جستجو کنید', - 'search_help' => ' به مستندات پارامترهای جستجوی پیشرفته', + 'search_help' => 'به مستندات پارامترهای جستجوی پیشرفته مراجعه کنید', 'sharing' => ' اشتراک گذاری', 'shortcuts' => ' میانبرها', 'stats' => 'آمار', @@ -250,32 +250,32 @@ return array( 'translated' => 'Progress', // IGNORE ), 'search' => array( - 'advanced_search_help' => 'This form helps construct search queries, but manual queries are even more powerful.', // TODO - 'authors' => 'Authors', // TODO - 'categories' => 'Categories', // TODO - 'content' => 'Content', // TODO - 'date_from' => 'From', // TODO - 'date_modified' => 'Server Modification Date', // TODO - 'date_past' => 'In the past', // TODO - 'date_published' => 'Publication Date', // TODO - 'date_range' => 'Date Range', // TODO - 'date_received' => 'Received Date', // TODO - 'date_to' => 'To', // TODO - 'date_user' => 'User Modification Date', // TODO - 'feeds' => 'Feeds', // TODO - 'free_text' => 'Free Text', // TODO - 'free_text_help' => 'Search both in title and content', // TODO - 'full_documentation' => 'View full search documentation', // TODO - 'labels' => 'My Labels', // TODO - 'multiple_help' => 'Select one or more (hold Ctrl or Cmd)', // TODO - 'sources' => 'Sources', // TODO - 'tags' => 'Article Tags', // TODO - 'text' => 'Text Search', // TODO - 'text_help' => 'Multiple lines are combined by a logical or. Also supports regular expressions.', // TODO - 'text_placeholder' => 'Keyword', // TODO - 'title' => 'Title', // TODO - 'url' => 'URL', // TODO - 'user_queries' => 'User Queries', // TODO + 'advanced_search_help' => 'این فرم به ساخت پرس‌وجوهای جستجو کمک می‌کند، اما پرس‌وجوهای دستی حتی قدرتمندتر هستند.', + 'authors' => 'نویسندگان', + 'categories' => 'دسته‌ها', + 'content' => 'محتوا', + 'date_from' => 'از', + 'date_modified' => 'تاریخ ویرایش در سرور', + 'date_past' => 'در گذشته', + 'date_published' => 'تاریخ انتشار', + 'date_range' => 'بازه تاریخ', + 'date_received' => 'تاریخ دریافت', + 'date_to' => 'تا', + 'date_user' => 'تاریخ ویرایش کاربر', + 'feeds' => 'فیدها', + 'free_text' => 'متن آزاد', + 'free_text_help' => 'جستجو در عنوان و محتوا', + 'full_documentation' => 'مستندات کامل جستجو را ببینید', + 'labels' => 'برچسب‌های من', + 'multiple_help' => 'یک یا چند مورد را انتخاب کنید (Ctrl یا Cmd را نگه دارید)', + 'sources' => 'منابع', + 'tags' => 'برچسب‌های مقاله', + 'text' => 'جستجوی متن', + 'text_help' => 'چند خط با یا منطقی ترکیب می‌شوند. همچنین از عبارت‌های منظم پشتیبانی می‌کند.', + 'text_placeholder' => 'کلیدواژه', + 'title' => 'عنوان', + 'url' => 'نشانی وب', + 'user_queries' => 'پرس‌وجوهای کاربر', ), 'share' => array( 'Known' => ' سایت های مبتنی بر شناخته شده', @@ -316,9 +316,9 @@ return array( 'blank_to_disable' => ' برای غیرفعال کردن', 'by_author' => ' توسط:', 'by_default' => ' به طور پیش فرض', - 'damn' => ' انفجار!', - 'default_category' => ' دسته بندی نشده', - 'no' => ' شماره', + 'damn' => 'خطا!', + 'default_category' => 'دسته‌بندی‌نشده', + 'no' => 'خیر', 'not_applicable' => ' در دسترس نیست', 'ok' => ' باشه!', 'or' => ' یا', diff --git a/app/i18n/fa/index.php b/app/i18n/fa/index.php index c538d4117..3facc07ba 100644 --- a/app/i18n/fa/index.php +++ b/app/i18n/fa/index.php @@ -21,29 +21,29 @@ return array( 'database' => 'پایگاه داده', 'server_software' => 'نرم‌افزار سرور', 'version_curl' => 'نسخه cURL', - 'version_frss' => 'سخه FreshRSS', + 'version_frss' => 'نسخه FreshRSS', 'version_php' => 'نسخه PHP', ), ), 'bugs_reports' => ' گزارش اشکال', 'documentation' => ' اسناد و مدارک', - 'freshrss_description' => ' FreshRSS یک جمع کننده و خواننده RSS خود میزبان است. این به شما امکان می دهد بدون نیاز به مرور از یک وب سایت به وب سایت دیگر', + 'freshrss_description' => 'FreshRSS یک گردآورنده و خواننده RSS خودمیزبان است. با آن می‌توانید بدون رفتن از یک وب‌سایت به وب‌سایت دیگر، محتوای تازه را دنبال کنید.', 'github' => ' در GitHub', 'license' => ' مجوز', - 'project_website' => ' وب سایت پروژه', + 'project_website' => 'وب‌سایت پروژه', 'title' => ' در مورد', 'version' => ' نسخه', ), 'feed' => array( 'empty' => ' هیچ مقاله ای برای نمایش وجود ندارد.', 'published' => array( - '_' => 'Published', // TODO - 'future' => 'Published in the future', // TODO - 'today' => 'Published today', // TODO - 'yesterday' => 'Published yesterday', // TODO + '_' => 'منتشر شده', + 'future' => 'منتشر شده در آینده', + 'today' => 'امروز منتشر شده', + 'yesterday' => 'دیروز منتشر شده', ), 'received' => array( - '_' => 'Received', // TODO + '_' => 'دریافت شده', 'today' => 'امروز دریافت شد', 'yesterday' => 'دیروز دریافت شد', ), @@ -52,21 +52,21 @@ return array( 'title_fav' => ' موارد دلخواه', 'title_global' => ' نمای جهانی', 'userModified' => array( - '_' => 'Modified by user', // TODO - 'today' => 'Modified by user today', // TODO - 'yesterday' => 'Modified by user yesterday', // TODO + '_' => 'ویرایش شده توسط کاربر', + 'today' => 'امروز توسط کاربر ویرایش شده', + 'yesterday' => 'دیروز توسط کاربر ویرایش شده', ), ), 'log' => array( - '_' => ' سیاهههای مربوط', - 'clear' => ' سیاهههای مربوط را پاک کنید', + '_' => 'گزارش‌ها', + 'clear' => 'گزارش‌ها را پاک کنید', 'empty' => ' فایل لاگ خالی است', - 'title' => ' سیاهههای مربوط', + 'title' => 'گزارش‌ها', ), 'menu' => array( 'about' => ' درباره FreshRSS', - 'before_one_day' => ' بزرگتر از یک روز', - 'before_one_week' => ' بزرگتر از یک هفته', + 'before_one_day' => 'قدیمی‌تر از یک روز', + 'before_one_week' => 'قدیمی‌تر از یک هفته', 'bookmark_query' => ' درخواست فعلی را نشانک‌گذاری کنید', 'favorites' => ' موارد دلخواه (%s)', 'global_view' => ' نمای جهانی', @@ -85,37 +85,37 @@ return array( 'rss_view' => ' خوراک RSS', 'search_short' => ' جستجو', 'sort' => array( - 'asc' => 'Ascending', // TODO + 'asc' => 'صعودی', 'c' => array( - 'name_asc' => 'دسته بندی، عناوین فید A→Z', - 'name_desc' => 'دسته بندی، عناوین فید Z→A', + 'name_asc' => 'دسته‌بندی، عنوان‌های فید A→Z', + 'name_desc' => 'دسته‌بندی، عنوان‌های فید Z→A', ), 'date_asc' => 'تاریخ انتشار ۱→۹', 'date_desc' => 'تاریخ انتشار ۹→۱', - 'desc' => 'Descending', // TODO + 'desc' => 'نزولی', 'f' => array( 'name_asc' => 'عنوان فید A→Z', 'name_desc' => 'عنوان فید Z→A', ), - 'id_asc' => 'آخرین مورد، به تازه گی دریافت شد', - 'id_desc' => 'نخستین مورد دریافت‌شده به تازگی', - 'length_asc' => 'Content length 1→9', // TODO - 'length_desc' => 'Content length 9→1', // TODO + 'id_asc' => 'قدیمی‌ترین دریافت‌شده', + 'id_desc' => 'تازه‌ترین دریافت‌شده', + 'length_asc' => 'طول محتوا ۱→۹', + 'length_desc' => 'طول محتوا ۹→۱', 'link_asc' => 'لینک A→Z', 'link_desc' => 'لینک Z→A', 'primary' => array( - '_' => 'Sorting criterion', // TODO - 'help' => 'Sorting by received date is recommended in most cases, for consistency and performance', // TODO + '_' => 'معیار مرتب‌سازی', + 'help' => 'در بیشتر موارد، مرتب‌سازی بر اساس تاریخ دریافت برای سازگاری و کارایی بهتر پیشنهاد می‌شود', ), 'rand' => 'ترتیب تصادفی', 'secondary' => array( - '_' => 'Secondary sorting criterion', // TODO - 'help' => 'Only relevant when the primary sorting criterion is categories or feeds titles', // TODO + '_' => 'معیار مرتب‌سازی دوم', + 'help' => 'فقط زمانی کاربرد دارد که معیار اصلی مرتب‌سازی، عنوان دسته‌ها یا فیدها باشد', ), - 'title_asc' => 'عنوانA→Z', + 'title_asc' => 'عنوان A→Z', 'title_desc' => 'عنوان Z→A', - 'user_modified_asc' => 'User modified 1→9', // TODO - 'user_modified_desc' => 'User modified 9→1', // TODO + 'user_modified_asc' => 'ویرایش کاربر ۱→۹', + 'user_modified_desc' => 'ویرایش کاربر ۹→۱', ), 'starred' => ' نمایش موارد دلخواه', 'stats' => ' آمار', diff --git a/app/i18n/fa/install.php b/app/i18n/fa/install.php index 526ba757e..252e196af 100644 --- a/app/i18n/fa/install.php +++ b/app/i18n/fa/install.php @@ -22,7 +22,7 @@ return array( '_' => 'پایگاه داده', 'conf' => array( '_' => 'پیکربندی پایگاه داده', - 'ko' => 'یکربندی پایگاه داده خود را تأیید کنید.', + 'ko' => 'پیکربندی پایگاه داده خود را بررسی کنید.', 'ok' => 'تنظیمات پایگاه داده ذخیره شد.', ), 'host' => 'هاست', @@ -33,9 +33,9 @@ return array( ), 'check' => array( '_' => 'بررسی‌ها', - 'already_installed' => 'ما تشخیص دادم FreshRSS قبلا نصب شده', + 'already_installed' => 'تشخیص دادیم که FreshRSS قبلاً نصب شده است.', 'cache' => array( - 'nok' => 'بررسی مجوزها در %1$s دایرکتوری برای %2$s کاربر.سرور وب نیاز به دسترسی نوشتن دارد', + 'nok' => 'مجوزهای دایرکتوری %1$s را برای کاربر %2$s بررسی کنید. سرور وب به دسترسی نوشتن نیاز دارد.', 'ok' => 'مجوزهای موجود در فهرست حافظه پنهان خوب است.', ), 'ctype' => array( @@ -43,7 +43,7 @@ return array( 'ok' => 'شما کتابخانه مورد نیاز برای بررسی نوع کاراکتر (ctype) را دارید.', ), 'curl' => array( - 'nok' => 'کتابخانه cURL (بسته php-curl)را نمی‌تواند پیدا کند.', + 'nok' => 'کتابخانه cURL (بسته php-curl) پیدا نشد.', 'ok' => 'شما کتابخانه cURL را دارید.', ), 'data' => array( @@ -51,18 +51,18 @@ return array( 'ok' => 'مجوزهای مربوط به دایرکتوری داده خوب است.', ), 'database-connection' => array( - 'nok' => 'Database connection error.', // TODO - 'ok' => 'Database connection is good.', // TODO + 'nok' => 'خطا در اتصال به پایگاه داده.', + 'ok' => 'اتصال به پایگاه داده درست است.', ), 'database-table' => array( - 'nok' => 'Database table "%s" is incomplete.', // TODO - 'ok' => 'Database table "%s" is good.', // TODO + 'nok' => 'جدول پایگاه داده "%s" ناقص است.', + 'ok' => 'جدول پایگاه داده "%s" درست است.', ), 'database-tables' => array( - 'nok' => 'Some database tables are missing.', // TODO - 'ok' => 'All database tables exist.', // TODO + 'nok' => 'برخی جدول‌های پایگاه داده وجود ندارند.', + 'ok' => 'همه جدول‌های پایگاه داده وجود دارند.', ), - 'database-title' => 'Database', // TODO + 'database-title' => 'پایگاه داده', 'dom' => array( 'nok' => 'کتابخانه مورد نیاز برای مرور DOM را نمی‌توان پیدا کرد.', 'ok' => 'شما کتابخانه مورد نیاز برای مرور DOM را دارید.', @@ -77,8 +77,8 @@ return array( ), 'files' => ' نصب فایل', 'intl' => array( - 'nok' => 'Cannot find the recommended library php-intl for internationalisation.', // TODO - 'ok' => 'You have the recommended library php-intl for internationalisation.', // TODO + 'nok' => 'کتابخانه پیشنهادی php-intl برای بین‌المللی‌سازی پیدا نشد.', + 'ok' => 'کتابخانه پیشنهادی php-intl برای بین‌المللی‌سازی روی سیستم شما نصب است.', ), 'json' => array( 'nok' => 'کتابخانه پیشنهادی برای تجزیه JSON پیدا نشد.', @@ -93,21 +93,21 @@ return array( 'ok' => 'شما کتابخانه مورد نیاز برای عبارات منظم (PCRE) را دارید.', ), 'pdo-mysql' => array( - 'nok' => 'Cannot find the required PDO driver for MySQL/MariaDB.', // TODO + 'nok' => 'درایور PDO مورد نیاز برای MySQL/MariaDB پیدا نشد.', ), 'pdo-pgsql' => array( - 'nok' => 'Cannot find the required PDO driver for PostgreSQL.', // TODO + 'nok' => 'درایور PDO مورد نیاز برای PostgreSQL پیدا نشد.', ), 'pdo-sqlite' => array( - 'nok' => 'Cannot find the PDO driver for SQLite.', // TODO - 'ok' => 'You have the PDO driver for SQLite.', // TODO + 'nok' => 'درایور PDO برای SQLite پیدا نشد.', + 'ok' => 'درایور PDO برای SQLite روی سیستم شما نصب است.', ), 'pdo' => array( 'nok' => 'نمی‌توان PDO یا یکی از درایورهای پشتیبانی‌شده (pdo_mysql، pdo_sqlite، pdo_pgsql) را پیدا کرد.', 'ok' => 'شما PDO و حداقل یکی از درایورهای پشتیبانی شده (pdo_mysql، pdo_sqlite، pdo_pgsql) را دارید.', ), 'php' => array( - '_' => ' نصب پی اچ پی', + '_' => 'نصب PHP', 'nok' => ' نسخه PHP شما %s است اما FreshRSS حداقل به نسخه %s نیاز دارد.', 'ok' => ' نسخه PHP شما (%s) با FreshRSS سازگار است.', ), @@ -144,7 +144,7 @@ return array( 'max_char' => 'حداکثر ۱۶ کاراکتر الفبایی-عددی', ), 'fix_errors_before' => 'لطفا قبل از رفتن به مرحله بعدی، خطاها را برطرف کنید.', - 'javascript_is_better' => 'FreshRSS با فعال بودن جاوا اسکریپت، کار امد تر است.', + 'javascript_is_better' => 'FreshRSS با فعال بودن جاوااسکریپت کارآمدتر است.', 'js' => array( 'confirm_reinstall' => 'با نصب مجدد FreshRSS، تنظیمات قبلی خود را از دست خواهید داد. آیا مطمئن هستید که می‌خواهید ادامه دهید؟', ), diff --git a/app/i18n/fa/sub.php b/app/i18n/fa/sub.php index 32291d3da..31a3e5f92 100644 --- a/app/i18n/fa/sub.php +++ b/app/i18n/fa/sub.php @@ -16,7 +16,7 @@ return array( 'title' => ' API', ), 'bookmarklet' => array( - 'documentation' => ' این دکمه را به نوار ابزار نشانک‌های خود بکشید یا روی آن راست کلیک کرده و «Bookmark This Link» را انتخاب کنید. سپس روی دکمه "اشتراک" در هر صفحه ای که می خواهید مشترک شوید کلیک کنید.', + 'documentation' => 'این دکمه را به نوار ابزار نشانک‌های خود بکشید یا روی آن راست‌کلیک کنید و «نشانک‌گذاری این پیوند» را انتخاب کنید. سپس در هر صفحه‌ای که می‌خواهید مشترک آن شوید، روی دکمه «اشتراک» کلیک کنید.', 'label' => ' مشترک شوید', 'title' => ' Bookmarklet', ), @@ -29,13 +29,13 @@ return array( 'help' => ' URL را به فایل OPML ارائه دهید تا به صورت پویا این دسته با فیدها پر شود.', ), 'empty' => ' دسته خالی', - 'error' => 'This dynamic OPML category has encountered a problem. Check that the OPML URL is still reachable and that the maximum number of feeds per user has not been exceeded.', // TODO + 'error' => 'این دسته OPML پویا با مشکل روبه‌رو شده است. بررسی کنید که URL فایل OPML هنوز در دسترس باشد و حداکثر تعداد فید برای هر کاربر رد نشده باشد.', 'expand' => 'دسته‌بندی را گسترش دهید', 'information' => ' اطلاعات', 'open' => 'دسته‌بندی باز', 'opml_url' => ' URL OPML', 'position' => ' موقعیت نمایش', - 'position_help' => ' برای کنترل ترتیب مرتب سازی دسته بندی', + 'position_help' => 'برای کنترل ترتیب مرتب‌سازی دسته‌بندی', 'title' => ' عنوان', ), 'feed' => array( @@ -63,14 +63,14 @@ return array( 'css_cookie' => ' هنگام واکشی محتوای مقاله از کوکی ها استفاده کنید', 'css_cookie_help' => ' مثال: foo=bar; gdpr_consent=true; cookie=value', 'css_help' => ' فیدهای RSS کوتاه شده را بازیابی می کند (احتیاط', - 'css_path' => ' انتخاب کننده CSS مقاله در وب سایت اصلی', + 'css_path' => 'انتخابگر CSS مقاله در وب‌سایت اصلی', 'css_path_filter' => array( '_' => ' انتخابگر CSS از عناصر برای حذف', 'help' => ' یک انتخابگر CSS ممکن است لیستی باشد مانند: .footer', ), 'description' => ' توضیحات', 'empty' => ' این فید خالی است. لطفاً بررسی کنید که هنوز نگهداری می شود.', - 'error' => ' این فید با مشکل مواجه شده است. لطفاً بررسی کنید که همیشه در دسترس است و سپس آن را به روز کنید.', // DIRTY + 'error' => 'این فید با مشکل روبه‌رو شده است. بررسی کنید که هنوز در دسترس باشد و سپس آن را به‌روزرسانی کنید.', 'export-as-opml' => array( 'download' => 'دانلود', 'help' => 'فایل XML (زیرمجموعه داده‌ها. مستندات را ببینید)', @@ -81,13 +81,13 @@ return array( 'filteractions' => array( '_' => ' اعمال فیلتر', 'help' => ' در هر خط یک فیلتر جستجو بنویسید. اپراتورها مستندات را ببینید.', - 'view_filter' => 'Preview filters on existing articles (new window)', // TODO + 'view_filter' => 'پیش‌نمایش فیلترها روی مقاله‌های موجود (پنجره جدید)', ), 'http_headers' => 'HTTP سربرگ‌ها', 'http_headers_help' => 'سر برگ ها با یک خط جدید از هم جدا می‌شوند و نام و مقدار سربرگ ها با یک دونقطه از هم جدا می‌شوند (مثلاً: پذیرش: application/atom+xml
مجوز: Bearer some-token
).', 'icon' => 'آیکون', 'information' => ' اطلاعات', - 'keep_adding_feed' => 'Then add more feeds', // TODO + 'keep_adding_feed' => 'سپس فیدهای بیشتری اضافه کنید', 'keep_min' => ' حداقل تعداد مقالات برای نگهداری', 'kind' => array( '_' => ' نوع منبع خوراک', @@ -104,7 +104,7 @@ return array( '_' => ' عنوان خوراک', 'help' => ' مثال: //title یا یک رشته ثابت: "فید سفارشی من"', ), - 'help' => 'XPath 1.0 یک زبان جستجوی استاندارد برای پیشرفته است کاربران', + 'help' => 'XPath 1.0 یک زبان جستجوی استاندارد برای کاربران پیشرفته است', 'item' => array( '_' => ' یافتن اخبار اقلام
(مهمترین)', 'help' => ' مثال: //div[@class="news-item"]', @@ -124,7 +124,7 @@ return array( ), 'item_timeFormat' => array( '_' => ' فرمت تاریخ/زمان سفارشی', - 'help' => ' اختیاری. قالبی که توسط DateTime::createFromFormat() پشتیبانی می‌شود', // DIRTY + 'help' => 'اختیاری. قالبی که توسط DateTime::createFromFormat() پشتیبانی می‌شود، مانند d-m-Y H:i:s', ), 'item_timestamp' => array( '_' => ' تاریخ مورد', @@ -132,7 +132,7 @@ return array( ), 'item_title' => array( '_' => ' عنوان مورد', - 'help' => ' به طور خاص از محور XPath descendant:: مانند descendant::h2', + 'help' => 'به طور مشخص از محور XPath descendant:: استفاده کنید؛ مانند descendant::h2', ), 'item_uid' => array( '_' => ' شناسه منحصر به فرد مورد', @@ -159,7 +159,7 @@ return array( 'item_author' => 'نویسنده ', 'item_categories' => 'برچسب‌های آیتم', 'item_content' => array( - '_' => 'محتوای در مورد', + '_' => 'محتوای آیتم', 'help' => 'کلیدی که محتوا در آن یافت می‌شود، مثلاً content', ), 'item_thumbnail' => array( @@ -171,11 +171,11 @@ return array( 'help' => 'اختیاری. فرمتی که توسط DateTime::createFromFormat() پشتیبانی می‌شود، مانند d-m-Y H:i:s', ), 'item_timestamp' => array( - '_' => 'تاریخ کالا', + '_' => 'تاریخ آیتم', 'help' => 'نتیجه توسط strtotime() تجزیه و تحلیل خواهد شد.', ), 'item_title' => 'عنوان مورد', - 'item_uid' => 'شناسه منحصر به فرد کالا', + 'item_uid' => 'شناسه یکتای آیتم', 'item_uri' => array( '_' => 'لینک مورد (URL)', 'help' => 'مثال: پیوند یکتا', @@ -187,10 +187,10 @@ return array( 'rss' => ' RSS / Atom (پیش‌فرض)', 'xml_xpath' => ' XML + XPath', ), - 'last-entry-publication-date' => 'Last article published .', // TODO - 'last-entry-received-date' => 'Last article received .', // TODO - 'last-error-date' => 'Last erroneous update .', // TODO - 'last-update' => 'Last successful update .', // TODO + 'last-entry-publication-date' => 'آخرین مقاله در منتشر شده است.', + 'last-entry-received-date' => 'آخرین مقاله در دریافت شده است.', + 'last-error-date' => 'آخرین به‌روزرسانی ناموفق در بوده است.', + 'last-update' => 'آخرین به‌روزرسانی موفق در بوده است.', 'maintenance' => array( 'clear_cache' => ' کش را پاک کنید', 'clear_cache_help' => ' کش این فید را پاک کنید.', @@ -204,8 +204,8 @@ return array( '_' => 'روش HTTP', ), 'method_help' => 'بار داده‌ی POST به طور خودکار از application/x-www-form-urlencoded و application/json پشتیبانی می‌کند.', - 'method_postparams' => 'بار مفید برای پست', - 'moved_category_deleted' => ' هنگامی که یک دسته را حذف می کنید', + 'method_postparams' => 'بدنه درخواست POST', + 'moved_category_deleted' => 'هنگام حذف دسته «%s»', 'mute' => array( '_' => ' بی صدا', 'state_is_muted' => 'این فید بی‌صدا است', @@ -216,8 +216,8 @@ return array( 'path_entries_conditions' => 'شرایط بازیابی محتوا', 'priority' => array( '_' => ' دید', - 'category' => ' نمایش در دسته بندی خود', - 'feed' => 'Show in its feed', // TODO + 'category' => 'نمایش در دسته‌بندی خودش', + 'feed' => 'در فید خودش نشان داده شود', 'hidden' => 'نشان ندهید.', 'important' => 'نمایش در فیدهای مهم', 'main_stream' => ' نمایش در جریان اصلی', @@ -244,26 +244,26 @@ return array( 'title_add' => ' یک فید RSS اضافه کنید', 'ttl' => ' به‌طور خودکار بیشتر از آن رفرش نکنید', 'unicityCriteria' => array( - '_' => 'معیارهای وحدت مقاله', - 'forced' => 'اجباری', - 'help' => 'مربوط به فیدهای نامعتبر.
⚠️ تغییر سیاست باعث ایجاد موارد تکراری می‌شود..', + '_' => 'معیارهای یکتایی مقاله', + 'forced' => 'اجباری', + 'help' => 'مربوط به فیدهای نامعتبر.
⚠️ تغییر این سیاست باعث ایجاد موارد تکراری می‌شود.', 'id' => 'شناسه استاندارد (پیش‌ فرض)', 'link' => 'لینک', - 'sha1:content' => 'Content', // TODO - 'sha1:content_published' => 'Content + Date', // TODO + 'sha1:content' => 'محتوا', + 'sha1:content_published' => 'محتوا + تاریخ', 'sha1:link_published' => 'لینک + تاریخ', 'sha1:link_published_title' => 'لینک + تاریخ + عنوان', 'sha1:link_published_title_content' => 'لینک + تاریخ + عنوان + محتوا', - 'sha1:published' => 'Date', // TODO - 'sha1:title' => 'Title', // TODO - 'sha1:title_published' => 'Title + Date', // TODO - 'sha1:title_published_content' => 'Title + Date + Content', // TODO + 'sha1:published' => 'تاریخ', + 'sha1:title' => 'عنوان', + 'sha1:title_published' => 'عنوان + تاریخ', + 'sha1:title_published_content' => 'عنوان + تاریخ + محتوا', ), 'url' => ' URL فید', 'useragent' => ' عامل کاربر را برای واکشی این فید تنظیم کنید', 'useragent_help' => ' مثال: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)', 'validator' => ' اعتبار خوراک را بررسی کنید', - 'website' => ' آدرس وب سایت', + 'website' => 'نشانی وب‌سایت', 'websub' => ' اطلاع رسانی فوری با WebSub', ), 'import_export' => array( @@ -286,10 +286,10 @@ return array( 'import_export' => ' واردات / صادرات', 'label_management' => ' مدیریت برچسب', 'stats' => array( - 'idle' => ' تغذیه بیکار', + 'idle' => 'فیدهای غیرفعال', 'main' => ' آمار اصلی', - 'repartition' => ' تقسیم مجدد مقالات', - 'unread_dates' => 'Unread dates', // TODO + 'repartition' => 'توزیع مقاله‌ها', + 'unread_dates' => 'تاریخ‌های خوانده‌نشده', ), 'subscription_management' => ' مدیریت اشتراک', 'subscription_tools' => 'ابزارهای اشتراک', @@ -309,7 +309,7 @@ return array( 'add_label' => ' یک برچسب اضافه کنید', 'add_opml_category' => 'نام دسته OPML', 'delete_label' => ' یک برچسب را حذف کنید', - 'feed_management' => ' فیدهای RSS را مدیریت می کندment', + 'feed_management' => 'مدیریت فیدهای RSS', 'subscription_tools' => 'ابزارهای اشتراک', ), ); diff --git a/app/i18n/fa/user.php b/app/i18n/fa/user.php index 39fa69782..409f583c8 100644 --- a/app/i18n/fa/user.php +++ b/app/i18n/fa/user.php @@ -27,16 +27,16 @@ return array( 'unnecessary' => ' این آدرس ایمیل قبلاً تأیید شده است.', 'wrong_token' => ' این آدرس ایمیل به دلیل یک توکن اشتباه تأیید نشد.', ), - 'need_to' => ' قبل از اینکه بتوانید از %s استفاده کنید', + 'need_to' => 'پیش از اینکه بتوانید از %s استفاده کنید، باید آدرس ایمیل خود را تأیید کنید.', 'resend_email' => ' ایمیل را دوباره ارسال کنید', 'title' => ' اعتبار سنجی آدرس ایمیل', ), ), 'mailer' => array( 'email_need_validation' => array( - 'body' => ' شما به تازگی در %s ثبت نام کرده اید', + 'body' => 'شما به‌تازگی در %s ثبت‌نام کرده‌اید، اما هنوز باید آدرس ایمیل خود را تأیید کنید. برای این کار، کافی است این پیوند را دنبال کنید:', 'title' => ' باید حساب خود را تأیید کنید', - 'welcome' => ' خوش آمدید %s', + 'welcome' => 'خوش آمدید %s،', ), ), 'password' => array( @@ -49,6 +49,6 @@ return array( ), 'username' => array( 'invalid' => ' این نام کاربری نامعتبر است.', - 'taken' => ' این نام کاربری', + 'taken' => 'این نام کاربری، %s، قبلاً گرفته شده است.', ), );