diff --git a/app/assets/javascripts/components/locales/fa.jsx b/app/assets/javascripts/components/locales/fa.jsx new file mode 100644 index 0000000000000000000000000000000000000000..ed46a890ba9cdaf2cf3ff4131fcbcce8fe2c0d43 --- /dev/null +++ b/app/assets/javascripts/components/locales/fa.jsx @@ -0,0 +1,146 @@ +/** + * Note for Contributors: + * This file (en.jsx) serve as a template for other languages. + * To make other contributors' life easier, please REMEMBER: + * 1. to add your new string here; and + * 2. to remove old strings that are no longer needed; and + * 3. to sort the strings by the key. + * 4. To rename the `en` const name and export default name to match your locale. + * Thanks! + */ +const fa = { + "account.block": "@{name} را مسدود Ú©Ù†", + "account.disclaimer": "این کاربر عضو سرور متÙاوتی است. شاید عدد واقعی بیشتر از این باشد.", + "account.edit_profile": "ویرایش نمایه", + "account.follow": "Ù¾ÛŒ بگیرید", + "account.followers": "پیگیران", + "account.follows_you": "پیگیر شماست", + "account.follows": "Ù¾ÛŒ می‌گیرد", + "account.mention": "نام‌بردن از @{name}", + "account.mute": "بی‌صدا کردن @{name}", + "account.posts": "نوشته‌ها", + "account.report": "گزارش @{name}", + "account.requested": "در انتظار پذیرش", + "account.unblock": "رÙع انسداد @{name}", + "account.unfollow": "پایان پیگیری", + "account.unmute": "باصدا کردن @{name}", + "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", + "column_back_button.label": "بازگشت", + "column.blocks": "کاربران مسدودشده", + "column.community": "نوشته‌های Ù…ØÙ„ÛŒ", + "column.favourites": "پسندیده‌ها", + "column.follow_requests": "درخواست‌های پیگیری", + "column.home": "خانه", + "column.mutes": "کاربران بی‌صداشده", + "column.notifications": "اعلان‌ها", + "column.public": "نوشته‌های همه‌جا", + "compose_form.placeholder": "تازه Ú†Ù‡ خبر؟", + "compose_form.privacy_disclaimer": "نوشتهٔ خصوصی شما به کاربران نام‌برده‌شده در {domains} Ùرستاده می‌شود. آیا به {domainsCount, plural, one {آن سرور} other {آن سرورها}} اعتماد دارید؟ تنظیمات Øریم خصوصی نوشته‌ها تنها در سرورهای ماستدون کار می‌کند. اگر {domains} {domainsCount, plural, one {یک سرور ماستدون نباشد} other {سرورهای ماستدون نباشند}}ØŒ اشاره‌ای به خصوصی‌بودن نوشتهٔ شما نخواهد شد Ùˆ شاید نوشتهٔ شما هم‌رسان شود یا برای کاربرانی Ú©Ù‡ نمی‌خواهید نمایش یابد.", + "compose_form.publish": "بوق", + "compose_form.sensitive": "تصاویر Øساس هستند", + "compose_form.spoiler_placeholder": "هشدار Ù…Øتوا", + "compose_form.spoiler": "نوشته را پشت هشدار پنهان کنید", + "emoji_button.label": "اÙزودن Ø´Ú©Ù„Ú©", + "emoji_button.search": "جستجو...", + "emoji_button.people": "مردم", + "emoji_button.nature": "طبیعت", + "emoji_button.food": "غذا Ùˆ نوشیدنی", + "emoji_button.activity": "Ùعالیت", + "emoji_button.travel": "سÙر Ùˆ مکان", + "emoji_button.objects": "اشیا", + "emoji_button.symbols": "نمادها", + "emoji_button.flags": "پرچم‌ها", + "empty_column.community": "Ùهرست نوشته‌های Ù…ØÙ„ÛŒ خالی است. چیزی بنویسید تا چرخش بچرخد!", + "empty_column.hashtag": "هنوز هیچ چیزی با این هشتگ نیست.", + "empty_column.home.public_timeline": "Ùهرست نوشته‌های همه‌جا", + "empty_column.home": "شما هنوز پیگیر کسی نیستید. {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.", + "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشته‌های دیگران واکنش نشان دهید تا Ú¯Ùتگو آغاز شود.", + "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران دیگر را Ù¾ÛŒ بگیرید تا این‌جا پر شود", + "follow_request.authorize": "اجازه دهید", + "follow_request.reject": "اجازه ندهید", + "getting_started.apps": "اپ‌های گوناگونی در دسترس‌اند", + "getting_started.heading": "آغاز کنید", + "getting_started.open_source_notice": "ماستدون یک نرم‌اÙزار آزاد است. می‌توانید در ساخت آن مشارکت کنید یا مشکلاتش را در {github} گزارش دهید. {apps}.", + "home.column_settings.advanced": "پیشرÙته", + "home.column_settings.basic": "اصلی", + "home.column_settings.filter_regex": "با عبارت‌های باقاعده Ùیلتر کنید", + "home.column_settings.show_reblogs": "نمایش بازبوق‌ها", + "home.column_settings.show_replies": "نمایش پاسخ‌ها", + "home.settings": "تنظیمات ستون", + "lightbox.close": "بستن", + "loading_indicator.label": "بارگیری...", + "media_gallery.toggle_visible": "تغییر پیدایی", + "missing_indicator.label": "پیدا نشد", + "navigation_bar.blocks": "کاربران مسدودشده", + "navigation_bar.community_timeline": "نوشته‌های Ù…ØÙ„ÛŒ", + "navigation_bar.edit_profile": "ویرایش نمایه", + "navigation_bar.favourites": "پسندیده‌ها", + "navigation_bar.follow_requests": "درخواست‌های پیگیری", + "navigation_bar.info": "اطلاعات تکمیلی", + "navigation_bar.logout": "خروج", + "navigation_bar.mutes": "کاربران بی‌صداشده", + "navigation_bar.preferences": "ترجیØات", + "navigation_bar.public_timeline": "نوشته‌های همه‌جا", + "notification.favourite": "{name} نوشتهٔ شما را پسندید", + "notification.follow": "{name} پیگیر شما شد", + "notification.mention": "{name} از شما نام برد", + "notification.reblog": "{name} نوشتهٔ شما را بازبوقید", + "notifications.clear_confirmation": "واقعاً می‌خواهید همهٔ اعلان‌هایتان را برای همیشه پاک کنید؟", + "notifications.clear": "پاک‌کردن اعلان‌ها", + "notifications.column_settings.alert": "اعلان در کامپیوتر", + "notifications.column_settings.favourite": "پسندیده‌ها:", + "notifications.column_settings.follow": "پیگیران تازه:", + "notifications.column_settings.mention": "نام‌بردن‌ها:", + "notifications.column_settings.reblog": "بازبوق‌ها:", + "notifications.column_settings.show": "در ستون نشان بده", + "notifications.column_settings.sound": "صدا را پخش Ú©Ù†", + "notifications.settings": "تنظیمات ستون", + "privacy.change": "تنظیم Øریم خصوصی نوشته‌ها", + "privacy.direct.long": "تنها به کاربران نام‌برده‌شده نشان بده", + "privacy.direct.short": "مستقیم", + "privacy.private.long": "تنها به پیگیران نشان بده", + "privacy.private.short": "خصوصی", + "privacy.public.long": "در Ùهرست نوشته‌های عمومی نشان بده", + "privacy.public.short": "عمومی", + "privacy.unlisted.long": "در Ùهرست نوشته‌های همه‌جا نشان نده", + "privacy.unlisted.short": "Ùهرست‌نشده", + "reply_indicator.cancel": "لغو", + "report.heading": "گزارش تازه", + "report.placeholder": "ØªÙˆØ¶ÛŒØ Ø§Ø¶Ø§ÙÙ‡", + "report.submit": "بÙرست", + "report.target": "گزارش‌دادن", + "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}", + "search.placeholder": "جستجو", + "search.status_by": "نوشتهٔ {name}", + "status.delete": "پاک‌کردن", + "status.favourite": "پسندیدن", + "status.load_more": "بیشتر نشان بده", + "status.media_hidden": "تصویر پنهان شده", + "status.mention": "از @{name} نام ببرید", + "status.open": "این نوشته را باز Ú©Ù†", + "status.reblog": "بوق", + "status.cannot_reblog": "این نوشته را نمی‌شود بازبوقید", + "status.reblogged_by": "{name} بازبوقید", + "status.reply": "پاسخ", + "status.replyAll": "به نوشته پاسخ دهید", + "status.report": "@{name} را گزارش دهید", + "status.sensitive_toggle": "برای دیدن کلیک کنید", + "status.sensitive_warning": "Ù…Øتوای Øساس", + "status.show_less": "نهÙتن", + "status.show_more": "نمایش", + "tabs_bar.compose": "بنویسید", + "tabs_bar.federated_timeline": "همگانی", + "tabs_bar.home": "خانه", + "tabs_bar.local_timeline": "Ù…ØÙ„ÛŒ", + "tabs_bar.notifications": "اعلان‌ها", + "upload_area.title": "برای بارگذاری به این‌جا بکشید", + "upload_button.label": "اÙزودن تصویر", + "upload_form.undo": "واگردانی", + "upload_progress.label": "بارگذاری...", + "video_player.toggle_sound": "تغییر صداداری", + "video_player.toggle_visible": "تغییر پیدایی", + "video_player.expand": "بازکردن ویدیو", + "video_player.video_error": "ویدیو نمی‌تواند پخش شود", +}; + +export default fa; diff --git a/app/assets/javascripts/components/locales/index.jsx b/app/assets/javascripts/components/locales/index.jsx index 9bda9a83e4c8bd83368bf97c9daea3988f4567b8..9d187774a331b4f5c63812d9f10c6f9efa10eb84 100644 --- a/app/assets/javascripts/components/locales/index.jsx +++ b/app/assets/javascripts/components/locales/index.jsx @@ -2,6 +2,7 @@ import ar from './ar'; import en from './en'; import de from './de'; import es from './es'; +import fa from './fa'; import hr from './hr'; import hu from './hu'; import io from './io'; @@ -27,6 +28,7 @@ const locales = { en, de, es, + fa, hr, hu, io, diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e2ea9485646b897ab208e0b7c35ba00820cd16dc..ba6803b4b84722aedcf53e5dafa4d2c6c6e04d8f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,7 +10,7 @@ module ApplicationHelper end def add_rtl_body_class(other_classes) - other_classes = "#{other_classes} rtl" if [:ar].include?(I18n.locale) + other_classes = "#{other_classes} rtl" if [:ar, :fa].include?(I18n.locale) other_classes end end diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 128e1e98c26a84a374f2cfb2bd569d0db2199966..cbc0adbba48ee8cd9eb9cc1dd62a6a604503f009 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -8,6 +8,7 @@ module SettingsHelper de: 'Deutsch', eo: 'Esperanto', es: 'Español', + fa: 'Ùارسی', fi: 'Suomi', fr: 'Français', hr: 'Hrvatski', diff --git a/config/application.rb b/config/application.rb index dddc3e4fb768731b645d1874339ddc8ef1e158db..7711b96a0b770ea4d52978b8295ab6ab470b08d7 100644 --- a/config/application.rb +++ b/config/application.rb @@ -32,6 +32,7 @@ module Mastodon :de, :eo, :es, + :fa, :fi, :fr, :hr, diff --git a/config/locales/devise.fa.yml b/config/locales/devise.fa.yml new file mode 100644 index 0000000000000000000000000000000000000000..6fa9b5917dd3b437e653447eea9ec7d2b881c7fd --- /dev/null +++ b/config/locales/devise.fa.yml @@ -0,0 +1,61 @@ +--- +fa: + devise: + confirmations: + confirmed: نشانی ایمیل شما با موÙقیت تأیید شد. + send_instructions: تا دقایقی دیگر ایمیلی خواهید گرÙت Ú©Ù‡ به شما می‌گوید چگونه باید نشانی ایمیل خود را تأیید کنید. + send_paranoid_instructions: اگر ایمیل شما در پایگاه دادهٔ ما موجود باشد، تا دقایقی دیگر ایمیلی خواهید گرÙت Ú©Ù‡ به شما می‌گوید چگونه باید نشانی ایمیل خود را تأیید کنید. + failure: + already_authenticated: شما الان هم وارد سیستم هستید. + inactive: Øساب شما هنوز Ùعال نشده است. + invalid: خطای %{authentication_keys} یا رمز نامعتبر. + last_attempt: پیش از آن Ú©Ù‡ Øساب شما Ù‚ÙÙ„ شود، یک Ùرصت دیگر دارید. + locked: Øساب شما Ù‚ÙÙ„ شده است. + not_found_in_database: خطای %{authentication_keys} یا رمز نامعتبر. + timeout: مهلت این ورود شما به سر رسید. برای ادامه، دوباره وارد شوید. + unauthenticated: برای ادامه باید وارد شوید یا ثبت نام کنید. + unconfirmed: برای ادامه باید نشانی ایمیل خود را تأیید کنید. + mailer: + confirmation_instructions: + subject: 'Mastodon: راهنمایی برای تأیید %{instance}' + password_change: + subject: 'ماستدون: رمزتان عوض شد' + reset_password_instructions: + subject: 'ماستدون: راهنمایی برای بازنشانی رمز' + unlock_instructions: + subject: 'ماستدون: راهنمایی برای بازکردن Ù‚ÙÙ„' + omniauth_callbacks: + failure: تصدیق اعتبار شما از راه %{kind} انجام نشد زیرا "%{reason}". + success: تصدیق اعتبار شما از %{kind} با موÙقیت انجام شد. + passwords: + no_token: این صÙØÙ‡ را تنها از راه یک ایمیل بازنشانی رمز می‌شود دید. اگر از چنین ایمیلی می‌آیید، لطÙاً مطمئن شوید Ú©Ù‡ نشانی موجود در ایمیل را کامل به کار برده‌اید. + send_instructions: اگر ایمیل شما در پایگاه دادهٔ ما موجود باشد، تا دقایقی دیگر یک ایمیل بازیابی رمز دریاÙت خواهید کرد. + send_paranoid_instructions: اگر ایمیل شما در پایگاه دادهٔ ما موجود باشد، تا دقایقی دیگر یک ایمیل بازیابی رمز دریاÙت خواهید کرد. + updated: رمز شما با موÙقیت تغییر کرد. شما الان وارد سیستم هستید. + updated_not_active: رمز شما با موÙقیت تغییر کرد. + registrations: + destroyed: بدرود! Øساب شما با موÙقیت لغو شد. امیدواریم دوباره شما را ببینیم. + signed_up: خوش آمدید! شما با موÙقیت ثبت نام کردید. + signed_up_but_inactive: خوش آمدید! شما با موÙقیت ثبت نام کردید. ولی هنوز وارد سیستم نیستید زیرا Øساب شما هنوز Ùعال نیست. + signed_up_but_locked: خوش آمدید! شما با موÙقیت ثبت نام کردید. ولی هنوز وارد سیستم نیستید زیرا Øساب شما Ù‚ÙÙ„ شده است. + signed_up_but_unconfirmed: یک پیغام برای تأیید به نشانی ایمیل شما Ùرستاده شده. لطÙاً پیوند موجود در ایمیل را دنبال کنید تا Øسابتان Ùعال شود. + update_needs_confirmation: شما با موÙقیت Øسابتان را به‌روز کردید، ولی لازم است Ú©Ù‡ ما نشانی ایمیل تازهٔ شما را تأیید کنیم. لطÙاً ایمیل خود را ببینید Ùˆ پیوند موجود در ایمیل را دنبال کنید تا تا نشانی ایمیل تازهٔ شما تأیید شود. + updated: Øساب شما با موÙقبت به‌روز شد. + sessions: + already_signed_out: با موÙقیت خارج شدید. + signed_in: با موÙقیت وارد شدید. + signed_out: با موÙقیت خارج شدید. + unlocks: + send_instructions: تا دقایقی دیگر ایمیلی خواهید گرÙت Ú©Ù‡ به شما می‌گوید چگونه باید Ù‚ÙÙ„ Øساب خود را باز کنید. + send_paranoid_instructions: اگر Øساب شما موجود باشد، تا دقایقی دیگر ایمیلی خواهید گرÙت Ú©Ù‡ به شما می‌گوید چگونه باید Ù‚ÙÙ„ آن را باز کنید. + unlocked: Ù‚ÙÙ„ Øساب شما با موÙقیت باز شد. لطÙاً برای ادامه وارد سیستم شوید. + errors: + messages: + already_confirmed: تأیید شده، لطÙاً وارد شوید + confirmation_period_expired: باید ظر٠%{period} تأیید شود، لطÙاً دوباره درخواست دهید + expired: مهلتش به سر رسید، لطÙاً دوباره درخواست دهید + not_found: پیدا نشد + not_locked: Ù‚ÙÙ„ نبود + not_saved: + one: 'خطایی نگذاشت Ú©Ù‡ این %{resource} ذخیره شود' + other: "به خاطر %{count} خطا، این %{resource} ذخیره نشد" diff --git a/config/locales/doorkeeper.fa.yml b/config/locales/doorkeeper.fa.yml new file mode 100644 index 0000000000000000000000000000000000000000..bab777f587fe7ab3343b6e64359c2317bc0da7e1 --- /dev/null +++ b/config/locales/doorkeeper.fa.yml @@ -0,0 +1,113 @@ +--- +fa: + activerecord: + attributes: + doorkeeper/application: + name: Name + redirect_uri: Redirect URI + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: cannot contain a fragment. + invalid_uri: must be a valid URI. + relative_uri: must be an absolute URI. + secured_uri: must be an HTTPS/SSL URI. + doorkeeper: + applications: + buttons: + authorize: Authorize + cancel: Cancel + destroy: Destroy + edit: Edit + submit: Submit + confirmations: + destroy: Are you sure? + edit: + title: Edit application + form: + error: Whoops! Check your form for possible errors + help: + native_redirect_uri: Use %{native_redirect_uri} for local tests + redirect_uri: Use one line per URI + scopes: Separate scopes with spaces. Leave blank to use the default scopes. + index: + callback_url: Callback URL + name: Name + new: New Application + title: Your applications + new: + title: New Application + show: + actions: Actions + application_id: Application Id + callback_urls: Callback urls + scopes: Scopes + secret: Secret + title: 'Application: %{name}' + authorizations: + buttons: + authorize: Authorize + deny: Deny + error: + title: An error has occurred + new: + able_to: It will be able to + prompt: Application %{client_name} requests access to your account + title: Authorization required + show: + title: Authorization code + authorized_applications: + buttons: + revoke: Revoke + confirmations: + revoke: Are you sure? + index: + application: Application + created_at: Authorized + date_format: "%Y-%m-%d %H:%M:%S" + scopes: Scopes + title: Your authorized applications + errors: + messages: + access_denied: The resource owner or authorization server denied the request. + credential_flow_not_configured: Resource Owner Password Credentials flow failed due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured. + invalid_client: Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method. + invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. + invalid_redirect_uri: The redirect uri included is not valid. + invalid_request: The request is missing a required parameter, includes an unsupported parameter value, or is otherwise malformed. + invalid_resource_owner: The provided resource owner credentials are not valid, or resource owner cannot be found + invalid_scope: The requested scope is invalid, unknown, or malformed. + invalid_token: + expired: The access token expired + revoked: The access token was revoked + unknown: The access token is invalid + resource_owner_authenticator_not_configured: Resource Owner find failed due to Doorkeeper.configure.resource_owner_authenticator being unconfiged. + server_error: The authorization server encountered an unexpected condition which prevented it from fulfilling the request. + temporarily_unavailable: The authorization server is currently unable to handle the request due to a temporary overloading or maintenance of the server. + unauthorized_client: The client is not authorized to perform this request using this method. + unsupported_grant_type: The authorization grant type is not supported by the authorization server. + unsupported_response_type: The authorization server does not support this response type. + flash: + applications: + create: + notice: Application created. + destroy: + notice: Application deleted. + update: + notice: Application updated. + authorized_applications: + destroy: + notice: Application revoked. + layouts: + admin: + nav: + applications: Applications + oauth2_provider: OAuth2 Provider + application: + title: OAuth authorization required + scopes: + follow: follow, block, unblock and unfollow accounts + read: read your account's data + write: post on your behalf diff --git a/config/locales/fa.yml b/config/locales/fa.yml new file mode 100644 index 0000000000000000000000000000000000000000..d118582a00df9b76e1f2ee1b8ad612961d59c438 --- /dev/null +++ b/config/locales/fa.yml @@ -0,0 +1,324 @@ +--- +fa: + about: + about_mastodon: ماستدون (Mastodon) یک شبکهٔ اجتماعی <em>آزاد Ùˆ کدباز</em> است. یک جایگزین <em>غیرمتمرکز</em> برای شبکه‌های تجاری، Ú©Ù‡ نمی‌گذارد ارتباط‌های شما را یک شرکت در انØصار خود بگیرد. یک سرور مورد اعتماد را انتخاب کنید—هر سروری Ú©Ù‡ باشد، همچنان می‌توانید با سرورهای دیگر ارتباط داشته باشید. هر کسی می‌تواند سرور ماستدون خود را راه بیندازد Ùˆ در <em>شبکهٔ اجتماعی</em> سهیم شود. + about_this: دربارهٔ این سرور + apps: برنامه‌ها + business_email: 'ایمیل کاری:' + closed_registrations: "امکان ثبت نام روی این سرور هم‌اینک Ùعال نیست." + contact: تماس + description_headline: "%{domain} چیست؟" + domain_count_after: سرورهای دیگر + domain_count_before: متصل به + features: + api: رابط برنامه‌نویسی برای برنامه‌ها Ùˆ سرویس‌های دیگر + blocks: ابزارهای قدرتمند برای مسدود یا بی‌صدا کردن دیگران + characters: ÛµÛ°Û° Øر٠برای هر نوشته + chronology: نمایش نوشته‌های دیگران به ترتیب زمانی + ethics: 'اخلاق‌مدار: بدون تبلیغات، بدون ردگیری' + gifv: تصاویر متØرک Ùˆ ویدیوهای کوتاه + privacy: تنظیمات Øریم خصوصی جداگانه برای هر نوشته + public: نمایش نوشته‌های عمومی دیگران از همه‌جا + features_headline: برگ‌های برندهٔ ماستدون + get_started: آغاز کنید + links: پیوندها + other_instances: سرورهای دیگر + source_code: کدهای منبع + status_count_after: چیز نوشته‌اند + status_count_before: Ú©Ù‡ جمعاً + terms: شرایط استÙاده + user_count_after: کاربر + user_count_before: دارای + version: نسخه + accounts: + follow: Ù¾ÛŒ بگیرید + followers: پیگیران + following: Ù¾ÛŒ می‌گیرد + nothing_here: این‌جا چیزی نیست! + people_followed_by: کسانی Ú©Ù‡ %{name} Ù¾ÛŒ می‌گیرد + people_who_follow: کسانی Ú©Ù‡ %{name} را Ù¾ÛŒ می‌گیرند + posts: نوشته + remote_follow: پیگیری غیرمستقیم + unfollow: پایان پیگیری + activitypub: + outbox: + name: "صندوق خروجی %{account_name}" + summary: "مجموعه‌ای از Ùعالیت‌های کاربر %{account_name}." + activity: + create: + name: "%{account_name} یادداشتی نوشت." + announce: + name: "%{account_name} Ùعالیتی آغاز کرد." + admin: + accounts: + are_you_sure: آیا مطمئن هستید؟ + confirm: تأیید + confirmed: تأیید شد + display_name: نمایش به نام + domain: دامین + edit: ویرایش + email: ایمیل + feed_url: نشانی Ùید + followers: پیگیران + follows: Ù¾ÛŒ می‌گیرد + location: + all: همه + local: Ù…ØÙ„ÛŒ + remote: غیرمستقیم + title: مکان + media_attachments: ضمیمه‌های تصویری + moderation: + all: همه + silenced: بی‌صدا شده + suspended: معلق شده + title: مدیریت + most_recent_activity: آخرین Ùعالیت‌ها + most_recent_ip: آخرین IP ها + not_subscribed: عضو نیست + order: + alphabetic: الÙبایی + most_recent: تازه‌ترین‌ها + title: ترتیب + perform_full_suspension: Perform full suspension + profile_url: نشانی نمایه + public: عمومی + push_subscription_expires: عضویت از راه PuSH منقضی شد + reset_password: بازنشانی رمز + salmon_url: نشانی Salmon + show: + created_reports: گزارش‌ها از طر٠این Øساب + report: گزارش + targeted_reports: گزارش‌ها دربارهٔ این Øساب + silence: بی‌صدا + statuses: نوشته‌ها + title: Øساب‌ها + undo_silenced: واگردانی بی‌صداکردن + undo_suspension: واگردانی تعلیق + username: نام کاربری + web: وب + domain_blocks: + add_new: اÙزودن تازه + created_msg: مسدودکردن دامین در Øال انجام است + destroyed_msg: مسدودکردن دامین واگردانده شد + domain: دامین + new: + create: مسدودسازی + hint: مسدودسازی دامین جلوی Ùهرست‌شدن Øساب‌ها در پایگاه داده را نمی‌گیرد، بلکه به طور خودکار روش‌های مدیریتی را روی Ùعالیت‌های Ùعلی Ùˆ گذشتهٔ آن Øساب‌ها اعمال می‌کند. + severity: + desc_html: "<strong>بی‌صداکردن</strong> یک Øساب نوشته‌های آن را برای همه (به جز پیگیرانش) ناپدید می‌کند. <strong>معلق‌کردن</strong> Øساب همهٔ نوشته‌ها، تصویرها، Ùˆ اطلاعات Øساب را پاک می‌کند." + silence: بی‌صداکردن + suspend: معلق‌کردن + title: مسدودسازی دامین دیگر + reject_media: نپذیرÙتن پرونده‌های تصویری + reject_media_hint: تصویرهای ذخیره‌شده در این‌جا را پاک می‌کند Ùˆ جلوی دریاÙت تصویرها را در آینده می‌گیرد. بی‌تأثیر برای معلق‌شده‌ها + severities: + silence: بی‌صداکردن + suspend: معلق‌کردن + severity: شدت + show: + affected_accounts: + one: روی یک Øساب در پایگاه داده تأثیر گذاشت + other: "روی %{count} Øساب در پایگاه داده تأثیر گذاشت" + retroactive: + silence: بی‌صداشدن همهٔ Øساب‌های این دامین را لغو Ú©Ù† + suspend: معلق‌شدن همهٔ Øساب‌های این دامین را لغو Ú©Ù† + title: واگردانی مسدودسازی دامنه برای %{domain} + undo: واگردانی + title: دامین‌های مسدودشده + undo: واگردانی + instances: + account_count: Øساب‌های شناخته‌شده + domain_name: دامین + title: سرورهای شناخته‌شده + pubsubhubbub: + callback_url: نشانی Callback + confirmed: تأییدشده + expires_in: مهلت منقضی‌شدن + last_delivery: آخرین ارسال + title: PubSubHubbub + topic: موضوع + reports: + comment: + label: ØªÙˆØ¶ÛŒØ + none: خالی + delete: پاک‌کردن + id: شناسه + mark_as_resolved: علامت‌گذاری به عنوان Øل‌شده + report: 'گزارش #%{id}' + reported_account: Øساب گزارش‌شده + reported_by: گزارش از طر٠+ resolved: Øل‌شده + silence_account: بی‌صدا کردن Øساب + status: نوشته + suspend_account: معلق‌کردن Øساب + target: هد٠+ title: گزارش‌ها + unresolved: Øل‌نشده + view: نمایش + settings: + click_to_edit: برای ویرایش کلیک کنید + contact_information: + email: یک نشانی ایمیل عمومی وارد کنید + label: اطلاعات تماس + username: یک نام کاربری وارد کنید + registrations: + closed_message: + desc_html: وقتی امکان ثبت نام روی سرور Ùعال نباشد در صÙØÙ‡Ù” اصلی نمایش می‌یابد<br>می‌توانید HTML بنویسید + title: پیغام برای Ùعال‌نبودن ثبت نام + open: + disabled: غیرÙعال + enabled: Ùعال + title: امکان ثبت نام + setting: تنظیمات + site_description: + desc_html: روی صÙØÙ‡Ù” اصلی نمایش می‌یابد Ùˆ همچنین به عنوان تگ‌های HTML.<br>می‌توانید HTML بنویسید, به‌ویژه <code><a></code> Ùˆ <code><em></code>. + title: دربارهٔ سایت + site_description_extended: + desc_html: در صÙØÙ‡Ù” اطلاعات تکمیلی نشان داده می‌شود<br>می‌توانید HTML بنویسید + title: اطلاعات بیشتر دربارهٔ سایت + site_title: نام سایت + title: تنظیمات سایت + title: مدیریت + application_mailer: + settings: 'تغییر تنظیمات ایمیل: %{link}' + signature: اعلان‌های ماستدون از %{instance} + view: 'نمایش:' + applications: + invalid_url: نشانی واردشده معتبر نیست + auth: + change_password: اطلاعات Øساب + didnt_get_confirmation: راهنمایی برای تأیید را دریاÙت نکردید؟ + forgot_password: رمزتان را Ú¯Ù… کرده‌اید؟ + login: ورود + logout: خروج + register: عضو شوید + resend_confirmation: راهنمایی برای تأیید را دوباره بÙرست + reset_password: بازنشانی رمز + set_new_password: تعیین رمز تازه + authorize_follow: + error: متأسÙانه Øین یاÙتن آن Øساب خطایی رخ داد + follow: Ù¾ÛŒ بگیرید + prompt_html: 'شما (<strong>%{self}</strong>) می‌خواهید این Øساب را Ù¾ÛŒ بگیرید:' + title: پیگیری %{acct} + datetime: + distance_in_words: + about_x_hours: "%{count} ساعت" + about_x_months: "%{count} ماه" + about_x_years: "%{count} سال" + almost_x_years: "%{count} سال" + half_a_minute: همین الان + less_than_x_minutes: "%{count} دقیقه" + less_than_x_seconds: همین الان + over_x_years: "%{count} سال" + x_days: "%{count} روز" + x_minutes: "%{count} دقیقه" + x_months: "%{count} ماه" + x_seconds: "%{count} ثانیه" + errors: + '403': شما اجازهٔ دیدن این صÙØÙ‡ را ندارید. + '404': صÙØه‌ای Ú©Ù‡ می‌خواستید ببینید وجود ندارد. + '410': صÙØه‌ای Ú©Ù‡ می‌خواستید ببینید دیگر وجود ندارد. + '422': + content: تأیید امنیتی انجام نشد. آیا مرورگر شما کوکی‌ها را مسدود می‌کند؟ + title: تأیید امنیتی شکست خورد + exports: + blocks: Øساب‌های مسدودشده + csv: CSV + follows: Øساب‌های پی‌گرÙته + mutes: Øساب‌های بی‌صداشده + storage: تصویرهای ذخیره‌شده + generic: + changes_saved_msg: تغییرات با موÙقیت ذخیره شدند! + powered_by: نیرو گرÙته از %{link} + save_changes: ذخیرهٔ تغییرات + validation_errors: + one: یک چیزی هنوز درست نیست! لطÙاً خطاهای زیر را ببینید + other: یک چیزی هنوز درست نیست! لطÙاً %{count} خطای زیر را ببینید + imports: + preface: شما می‌توانید داده‌هایی از قبیل کاربرانی Ú©Ù‡ Ù¾ÛŒ می‌گرÙتید یا مسدود می‌کردید را در Øساب خود روی این سرور درون‌ریزی کنید. برای این کار پرونده‌هایی Ú©Ù‡ از سرور دیگر برون‌سپاری کرده‌اید را به‌کار ببرید. + success: داده‌های شما با موÙقیت بارگذاری شد Ùˆ به زودی پردازش می‌شود + types: + blocking: Ùهرست مسدودشده‌ها + following: Ùهرست پی‌گیری‌ها + muting: Ùهرست بی‌صداشده‌ها + upload: بارگذاری + landing_strip_html: <strong>%{name}</strong> کاربری روی <strong>%{domain}</strong> است. شما با داشتن Øساب روی هر سروری می‌توانید نوشته‌های او را پیگیری کرده یا با او ارتباط داشته باشید. اگر هنوز Øسابی ندارید <a href="%{sign_up_path}">این‌جا Øساب باز کنید</a>. + media_attachments: + validations: + images_and_video: نمی‌توان برای نوشته‌ای Ú©Ù‡ تصویر دارد ویدیو بارگذاری کرد + too_many: نمی‌توان بیشتر از Û´ تصویر بارگذاری کرد + notification_mailer: + digest: + body: 'خلاصه‌ای از آن‌چه از زمان آخرین بازدید شما در %{since} روی %{instance} رخ داد :' + mention: "%{name} این‌جا از شما نام برد:" + new_followers_summary: + one: شما یک پیگیر تازه دارید! ای ول! + other: شما %{count} پیگیر تازه دارید! Ú†Ù‡ عالی! + subject: + one: "یک اعلان تازه از زمان آخرین بازدید شما \U0001F418" + other: "%{count} اعلان تازه از زمان آخرین بازدید شما \U0001F418" + favourite: + body: '%{name} این نوشتهٔ شما را پسندید:' + subject: "%{name} نوشتهٔ شما را پسندید" + follow: + body: "%{name} هم‌اینک پیگیر شماست!" + subject: "%{name} هم‌اینک پیگیر شماست" + follow_request: + body: "%{name} می‌خواهد پیگیر نوشته‌های شما باشد" + subject: 'منتظر پیگیری: %{name}' + mention: + body: '%{name} در این‌جا از شما نام برد:' + subject: '%{name} از شما نام برد' + reblog: + body: '%{name} نوشتهٔ شما را بازبوقید:' + subject: "%{name} نوشتهٔ شما را بازبوقید" + pagination: + next: بعدی + prev: قبلی + truncate: "…" + remote_follow: + acct: نشانی Øساب username@domain خود را این‌جا بنویسید + missing_resource: نشانی اینترنتی برای رسیدن به Øساب شما پیدا نشد + proceed: درخواست پیگیری + prompt: 'شما قرار است این Øساب را پیگیری کنید:' + settings: + authorized_apps: برنامه‌های مجاز + back: بازگشت به ماستدون + edit_profile: ویرایش نمایه + export: برون‌سپاری داده‌ها + import: درون‌ریزی + preferences: ترجیØات + settings: تنظیمات + two_factor_authentication: ورود دومرØله‌ای + statuses: + open_in_web: بازکردن در وب + over_character_limit: از Øد مجاز %{max} Øر٠Ùراتر رÙتید + show_more: نمایش + visibilities: + private: نمایش تنها به پیگیران + public: عمومی + unlisted: عمومی، ولی در Ùهرست نوشته‌ها نمایش نده + stream_entries: + click_to_show: برای نمایش کلیک کنید + reblogged: بازبوقیده + sensitive_content: Ù…Øتوای Øساس + time: + formats: + default: "%b %d, %Y, %H:%M" + two_factor_authentication: + code_hint: برای تأیید، کدی را Ú©Ù‡ برنامهٔ تأییدکننده ساخته است وارد کنید + description_html: اگر <strong>ورود دومرØله‌ای</strong> را Ùعال کنید، برای ورود به سیستم به تلÙÙ† خود نیاز خواهید داشت تا برایتان یک کد موقتی بسازد + disable: غیرÙعال‌کردن + enable: Ùعال‌کردن + enabled_success: ورود دومرØله‌ای با موÙقیت Ùعال شد + generate_recovery_codes: ساخت کدهای بازیابی + instructions_html: "<strong>این کد QR را با برنامهٔ Google Authenticator یا برنامه‌های TOTP مشابه اسکن کنید</strong>. از این به بعد، آن برنامه کدهایی موقتی خواهد ساخت Ú©Ù‡ برای ورود باید آن‌ها را وارد کنید." + lost_recovery_codes: با کدهای بازیابی می‌توانید اگر تلÙÙ† خود را Ú¯Ù… کردید به Øساب خود دسترسی داشته باشید. اگر کدهای بازیابی خود را Ú¯Ù… کردید، آن‌ها را این‌جا دوباره بسازید. کدهای بازیابی قبلی شما نامعتبر خواهند شد. + manual_instructions: 'اگر نمی‌توانید کدها را اسکن کنید Ùˆ باید آن‌ها را دستی وارد کنید، متن کد امنیتی این‌جاست:' + recovery_codes_regenerated: کدهای بازیابی با موÙقیت ساخته شدند + recovery_instructions: اگر تلÙÙ† خود را Ú¯Ù… کردید، می‌توانید با یکی از کدهای بازیابی زیر کنترل Øساب خود را به دست بگیرید. این کدها را در جای امنی Ù†Ú¯Ù‡ دارید، مثلاً آن‌ها را چاپ کنید Ùˆ کنار سایر مدارک مهم خود قرار دهید + setup: راه اندازی + wrong_code: کدی Ú©Ù‡ وارد کردید نامعتبر بود! آیا ساعت سرور Ùˆ ساعت دستگاه شما درست تنظیم شده‌اند؟ + users: + invalid_email: نشانی ایمیل نامعتبر است + invalid_otp_token: کد ورود دومرØله‌ای نامعتبر است diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml new file mode 100644 index 0000000000000000000000000000000000000000..b0af0575af13d1ae3975dc101ae52de027f6a117 --- /dev/null +++ b/config/locales/simple_form.fa.yml @@ -0,0 +1,51 @@ +--- +en: + simple_form: + hints: + defaults: + avatar: یکی از قالب‌های PNG یا GIF یا JPG. بیشترین اندازه Û² مگابایت. تصویر به اندازهٔ ۱۲۰×۱۲۰ پیکسل تبدیل خواهد شد. + display_name: '%{counter} Øر٠باقی مانده' + header: یکی از قالب‌های PNG یا GIF یا JPG. بیشترین اندازه Û² مگابایت. تصویر به اندازهٔ ۳۳۵×۷۰۰ پیکسل تبدیل خواهد شد + locked: باید پیگیران تازه را خودتان تأیید کنید. Øریم خصوصی پیش‌Ùرض نوشته‌ها را روی پیگیران تنظیم می‌کند + note: '%{counter} Øر٠باقی مانده' + imports: + data: پروندهٔ CSV Ú©Ù‡ از سرور ماستدون دیگری برون‌سپاری شده + sessions: + otp: کد تأیید دومرØله‌ای را از تلÙÙ† خود وارد کنید یا یکی از کدهای بازیابی را به کار ببرید. + labels: + defaults: + avatar: تصویر نمایه + confirm_new_password: تأیید رمز تازه + confirm_password: تأیید رمز + current_password: رمز Ùعلی + data: داده‌ها + display_name: نمایش به نام + email: نشانی ایمیل + header: موضوع + locale: تصویر زمینه + locked: خصوصی‌کردن Øساب + new_password: رمز تازه + note: دربارهٔ شما + otp_attempt: کد ورود دومرØله‌ای + password: رمز + setting_auto_play_gif: پخش خودکار تصویرهای متØرک + setting_boost_modal: نمایش پیغام تأیید پیش از بازبوقیدن + setting_default_privacy: Øریم خصوصی نوشته‌ها + severity: شدت + type: نوع درون‌ریزی + username: نام کاربری + interactions: + must_be_follower: مسدودکردن اعلان‌های همه به جز پیگیران + must_be_following: مسدودکردن اعلان‌های کسانی Ú©Ù‡ شما Ù¾ÛŒ نمی‌گیرید + notification_emails: + digest: خلاصه‌کردن چند اعلان در یک ایمیل + favourite: وقتی کسی نوشتهٔ شما پسندید ایمیل بÙرست + follow: وقتی کسی پیگیر شما شد ایمیل بÙرست + follow_request: وقتی کسی درخواست پیگیری کرد ایمیل بÙرست + mention: وقتی کسی از شما نام برد ایمیل بÙرست + reblog: وقتی کسی نوشتهٔ شما را بازبوقید ایمیل بÙرست + 'no': 'خیر' + required: + mark: "*" + text: ضروری + 'yes': 'بله'