diff --git a/packages/i18n/src/constants/language.ts b/packages/i18n/src/constants/language.ts index 132ee68c967..ca17a69b268 100644 --- a/packages/i18n/src/constants/language.ts +++ b/packages/i18n/src/constants/language.ts @@ -4,6 +4,7 @@ export const FALLBACK_LANGUAGE: TLanguage = "en"; export const SUPPORTED_LANGUAGES: ILanguageOption[] = [ { label: "English", value: "en" }, + { label: "فارسی", value: "fa" }, { label: "Français", value: "fr" }, { label: "Español", value: "es" }, { label: "日本語", value: "ja" }, diff --git a/packages/i18n/src/locales/fa/core.json b/packages/i18n/src/locales/fa/core.json new file mode 100644 index 00000000000..ca8522509ed --- /dev/null +++ b/packages/i18n/src/locales/fa/core.json @@ -0,0 +1,171 @@ +{ + "sidebar": { + "projects": "پروژه‌ها", + "pages": "صفحات", + "new_work_item": "آیتم کاری جدید", + "home": "خانه", + "your_work": "کارهای شما", + "inbox": "صندوق ورودی", + "workspace": "فضای کاری", + "views": "نمایش‌ها", + "analytics": "تحلیل‌ها", + "work_items": "آیتم‌های کاری", + "cycles": "چرخه‌ها", + "modules": "ماژول‌ها", + "intake": "ورودی", + "drafts": "پیش‌نویس‌ها", + "favorites": "مورد علاقه‌ها", + "pro": "حرفه‌ای", + "upgrade": "ارتقا" + }, + + "auth": { + "common": { + "email": { + "label": "ایمیل", + "placeholder": "نام@شرکت.com", + "errors": { + "required": "ایمیل الزامی است", + "invalid": "ایمیل نامعتبر است" + } + }, + "password": { + "label": "رمز عبور", + "set_password": "تنظیم رمز عبور", + "placeholder": "رمز عبور را وارد کنید", + "confirm_password": { + "label": "تایید رمز عبور", + "placeholder": "رمز عبور را تایید کنید" + }, + "current_password": { + "label": "رمز عبور فعلی" + }, + "new_password": { + "label": "رمز عبور جدید", + "placeholder": "رمز عبور جدید را وارد کنید" + }, + "change_password": { + "label": { + "default": "تغییر رمز عبور", + "submitting": "در حال تغییر رمز عبور" + } + }, + "errors": { + "match": "رمزهای عبور مطابقت ندارند", + "empty": "لطفا رمز عبور خود را وارد کنید", + "length": "طول رمز عبور باید بیشتر از ۸ کاراکتر باشد", + "strength": { + "weak": "رمز عبور ضعیف است", + "strong": "رمز عبور قوی است" + } + }, + "submit": "تنظیم رمز عبور", + "toast": { + "change_password": { + "success": { + "title": "موفقیت!", + "message": "رمز عبور با موفقیت تغییر کرد." + }, + "error": { + "title": "خطا!", + "message": "مشکلی پیش آمده است. لطفا دوباره تلاش کنید." + } + } + } + }, + "unique_code": { + "label": "کد یکتا", + "placeholder": "gets-sets-flys", + "paste_code": "کد ارسال شده به ایمیل خود را وارد کنید", + "requesting_new_code": "درخواست کد جدید", + "sending_code": "ارسال کد" + }, + "already_have_an_account": "حساب کاربری دارید؟", + "login": "ورود", + "create_account": "ایجاد حساب کاربری", + "new_to_plane": "تازه وارد Plane هستید؟", + "back_to_sign_in": "بازگشت به ورود", + "resend_in": "ارسال مجدد در {seconds} ثانیه", + "sign_in_with_unique_code": "ورود با کد یکتا", + "forgot_password": "رمز عبور خود را فراموش کرده‌اید؟" + }, + "sign_up": { + "header": { + "label": "برای شروع مدیریت کار با تیم خود، یک حساب کاربری ایجاد کنید.", + "step": { + "email": { + "header": "ثبت نام", + "sub_header": "" + }, + "password": { + "header": "ثبت نام", + "sub_header": "ثبت نام با استفاده از ایمیل و رمز عبور." + }, + "unique_code": { + "header": "ثبت نام", + "sub_header": "ثبت نام با استفاده از کد یکتای ارسال شده به آدرس ایمیل بالا." + } + } + }, + "errors": { + "password": { + "strength": "لطفا یک رمز عبور قوی تنظیم کنید تا ادامه دهید" + } + } + }, + "sign_in": { + "header": { + "label": "برای شروع مدیریت کار با تیم خود وارد شوید.", + "step": { + "email": { + "header": "ورود یا ثبت نام", + "sub_header": "" + }, + "password": { + "header": "ورود یا ثبت نام", + "sub_header": "با استفاده از ایمیل و رمز عبور خود وارد شوید." + }, + "unique_code": { + "header": "ورود یا ثبت نام", + "sub_header": "با استفاده از کد یکتای ارسال شده به آدرس ایمیل بالا وارد شوید." + } + } + } + }, + "forgot_password": { + "title": "بازیابی رمز عبور", + "description": "آدرس ایمیل تایید شده حساب کاربری خود را وارد کنید تا لینک بازیابی رمز عبور را برای شما ارسال کنیم.", + "email_sent": "لینک بازیابی را به آدرس ایمیل شما ارسال کردیم", + "send_reset_link": "ارسال لینک بازیابی", + "errors": { + "smtp_not_enabled": "متوجه شدیم که SMTP در سیستم شما فعال نشده است، بنابراین نمی‌توانیم لینک بازیابی رمز عبور را ارسال کنیم" + }, + "toast": { + "success": { + "title": "ایمیل ارسال شد", + "message": "صندوق ورودی خود را برای لینک بازیابی رمز عبور بررسی کنید. اگر در چند دقیقه ظاهر نشد، پوشه اسپم را بررسی کنید." + }, + "error": { + "title": "خطا!", + "message": "مشکلی پیش آمده است. لطفا دوباره تلاش کنید." + } + } + }, + "reset_password": { + "title": "تنظیم رمز عبور جدید", + "description": "حساب خود را با یک رمز عبور قوی امن کنید" + }, + "set_password": { + "title": "امن‌سازی حساب شما", + "description": "تنظیم رمز عبور به شما کمک می‌کند تا به صورت امن وارد شوید" + }, + "sign_out": { + "toast": { + "error": { + "title": "خطا!", + "message": "خروج ناموفق بود. لطفا دوباره تلاش کنید." + } + } + } + } +} diff --git a/packages/i18n/src/locales/fa/translations.json b/packages/i18n/src/locales/fa/translations.json new file mode 100644 index 00000000000..23d5bece222 --- /dev/null +++ b/packages/i18n/src/locales/fa/translations.json @@ -0,0 +1,2220 @@ +{ + "sidebar": { + "projects": "پروژه‌ها", + "pages": "صفحات", + "new_work_item": "آیتم کاری جدید", + "home": "خانه", + "your_work": "کارهای شما", + "inbox": "صندوق ورودی", + "workspace": "فضای کاری", + "views": "نمایش‌ها", + "analytics": "تحلیل‌ها", + "work_items": "آیتم‌های کاری", + "cycles": "چرخه‌ها", + "modules": "ماژول‌ها", + "intake": "ورودی", + "drafts": "پیش‌نویس‌ها", + "favorites": "مورد علاقه‌ها", + "pro": "حرفه‌ای", + "upgrade": "ارتقا" + }, + "submit": "ارسال", + "cancel": "لغو", + "loading": "در حال بارگذاری", + "error": "خطا", + "success": "موفقیت", + "warning": "هشدار", + "info": "اطلاعات", + "close": "بستن", + "yes": "بله", + "no": "خیر", + "ok": "تایید", + "name": "نام", + "description": "توضیحات", + "search": "جستجو", + "add_member": "افزودن عضو", + "adding_members": "در حال افزودن اعضا", + "remove_member": "حذف عضو", + "add_members": "افزودن اعضا", + "adding_member": "در حال افزودن عضو", + "remove_members": "حذف اعضا", + "add": "افزودن", + "adding": "در حال افزودن", + "remove": "حذف", + "add_new": "افزودن جدید", + "remove_selected": "حذف انتخاب شده", + "first_name": "نام", + "last_name": "نام خانوادگی", + "email": "ایمیل", + "display_name": "نام نمایشی", + "role": "نقش", + "timezone": "منطقه زمانی", + "avatar": "تصویر پروفایل", + "cover_image": "تصویر کاور", + "password": "رمز عبور", + "change_cover": "تغییر کاور", + "language": "زبان", + "saving": "در حال ذخیره", + "save_changes": "ذخیره تغییرات", + "deactivate_account": "غیرفعال کردن حساب", + "deactivate_account_description": "با غیرفعال کردن حساب، تمام داده‌ها و منابع موجود در آن به طور دائمی حذف شده و قابل بازیابی نخواهند بود.", + "profile_settings": "تنظیمات پروفایل", + "your_account": "حساب شما", + "security": "امنیت", + "activity": "فعالیت", + "appearance": "ظاهر", + "notifications": "اعلان‌ها", + "workspaces": "فضاهای کاری", + "create_workspace": "ایجاد فضای کاری", + "invitations": "دعوت‌ها", + "summary": "خلاصه", + "assigned": "تخصیص داده شده", + "created": "ایجاد شده", + "subscribed": "مشترک شده", + "you_do_not_have_the_permission_to_access_this_page": "شما دسترسی لازم برای مشاهده این صفحه را ندارید.", + "something_went_wrong_please_try_again": "خطایی رخ داد. لطفاً دوباره تلاش کنید.", + "load_more": "بارگذاری بیشتر", + "select_or_customize_your_interface_color_scheme": "انتخاب یا سفارشی‌سازی طرح رنگی رابط کاربری.", + "theme": "تم", + "system_preference": "ترجیح سیستم", + "light": "روشن", + "dark": "تاریک", + "light_contrast": "کنتراست روشن", + "dark_contrast": "کنتراست تاریک", + "custom": "تم سفارشی", + "select_your_theme": "تم خود را انتخاب کنید", + "customize_your_theme": "سفارشی‌سازی تم", + "background_color": "رنگ پس‌زمینه", + "text_color": "رنگ متن", + "primary_color": "رنگ اصلی (تم)", + "sidebar_background_color": "رنگ پس‌زمینه نوار کناری", + "sidebar_text_color": "رنگ متن نوار کناری", + "set_theme": "تنظیم تم", + "enter_a_valid_hex_code_of_6_characters": "یک کد هگز معتبر ۶ کاراکتری وارد کنید", + "background_color_is_required": "رنگ پس‌زمینه الزامی است", + "text_color_is_required": "رنگ متن الزامی است", + "primary_color_is_required": "رنگ اصلی الزامی است", + "sidebar_background_color_is_required": "رنگ پس‌زمینه نوار کناری الزامی است", + "sidebar_text_color_is_required": "رنگ متن نوار کناری الزامی است", + "updating_theme": "در حال به‌روزرسانی تم", + "theme_updated_successfully": "تم با موفقیت به‌روزرسانی شد", + "failed_to_update_the_theme": "به‌روزرسانی تم با خطا مواجه شد", + "email_notifications": "اعلان‌های ایمیل", + "stay_in_the_loop_on_issues_you_are_subscribed_to_enable_this_to_get_notified": "از موارد کاری که مشترک آنها هستید مطلع شوید. این گزینه را فعال کنید تا اعلان دریافت کنید.", + "email_notification_setting_updated_successfully": "تنظیمات اعلان ایمیل با موفقیت به‌روزرسانی شد", + "failed_to_update_email_notification_setting": "به‌روزرسانی تنظیمات اعلان ایمیل با خطا مواجه شد", + "notify_me_when": "وقتی که", + "property_changes": "تغییرات ویژگی", + "property_changes_description": "وقتی ویژگی‌های موارد کاری مانند مسئولان، اولویت، تخمین‌ها یا هر چیز دیگری تغییر می‌کند به من اطلاع دهید.", + "state_change": "تغییر وضعیت", + "state_change_description": "وقتی موارد کاری به وضعیت دیگری منتقل می‌شوند به من اطلاع دهید", + "issue_completed": "مورد کاری تکمیل شد", + "issue_completed_description": "فقط زمانی که یک مورد کاری تکمیل می‌شود به من اطلاع دهید", + "comments": "نظرات", + "comments_description": "وقتی کسی روی مورد کاری نظر می‌گذارد به من اطلاع دهید", + "mentions": "اشاره‌ها", + "mentions_description": "فقط زمانی که کسی در نظرات یا توضیحات به من اشاره می‌کند به من اطلاع دهید", + "old_password": "رمز عبور قبلی", + "general_settings": "تنظیمات عمومی", + "sign_out": "خروج", + "signing_out": "در حال خروج", + "active_cycles": "چرخه‌های فعال", + "active_cycles_description": "نظارت بر چرخه‌ها در پروژه‌ها، پیگیری موارد کاری با اولویت بالا و بررسی چرخه‌هایی که نیاز به توجه دارند.", + "on_demand_snapshots_of_all_your_cycles": "تصاویر فوری درخواستی از تمام چرخه‌های شما", + "upgrade": "ارتقا", + "10000_feet_view": "نمای کلی از تمام چرخه‌های فعال.", + "10000_feet_view_description": "برای مشاهده چرخه‌های در حال اجرا در تمام پروژه‌های خود به طور همزمان، به جای رفتن از چرخه به چرخه در هر پروژه، نمای کلی را ببینید.", + "get_snapshot_of_each_active_cycle": "دریافت تصویر فوری از هر چرخه فعال.", + "get_snapshot_of_each_active_cycle_description": "پیگیری معیارهای سطح بالا برای تمام چرخه‌های فعال، مشاهده وضعیت پیشرفت آنها و درک دامنه در برابر مهلت‌ها.", + "compare_burndowns": "مقایسه نمودارهای کاهش کار.", + "compare_burndowns_description": "نظارت بر عملکرد هر یک از تیم‌های شما با نگاهی به گزارش کاهش کار هر چرخه.", + "quickly_see_make_or_break_issues": "مشاهده سریع موارد کاری حیاتی.", + "quickly_see_make_or_break_issues_description": "پیش‌نمایش موارد کاری با اولویت بالا برای هر چرخه در برابر مهلت‌ها. مشاهده تمام آنها در هر چرخه با یک کلیک.", + "zoom_into_cycles_that_need_attention": "تمرکز بر چرخه‌هایی که نیاز به توجه دارند.", + "zoom_into_cycles_that_need_attention_description": "بررسی وضعیت هر چرخه‌ای که مطابق با انتظارات نیست با یک کلیک.", + "stay_ahead_of_blockers": "پیش‌روی از موانع.", + "stay_ahead_of_blockers_description": "شناسایی چالش‌ها از یک پروژه به پروژه دیگر و مشاهده وابستگی‌های بین چرخه‌ای که از هیچ نمای دیگری آشکار نیست.", + "analytics": "تحلیل‌ها", + "workspace_invites": "دعوت‌های فضای کاری", + "enter_god_mode": "ورود به حالت ادمین", + "workspace_logo": "لوگوی فضای کاری", + "new_issue": "مورد کاری جدید", + "your_work": "کار شما", + "drafts": "پیش‌نویس‌ها", + "projects": "پروژه‌ها", + "views": "نمایش‌ها", + "workspace": "فضای کاری", + "archives": "بایگانی‌ها", + "settings": "تنظیمات", + "failed_to_move_favorite": "انتقال مورد علاقه با خطا مواجه شد", + "favorites": "مورد علاقه‌ها", + "no_favorites_yet": "هنوز مورد علاقه‌ای وجود ندارد", + "create_folder": "ایجاد پوشه", + "new_folder": "پوشه جدید", + "favorite_updated_successfully": "مورد علاقه با موفقیت به‌روزرسانی شد", + "favorite_created_successfully": "مورد علاقه با موفقیت ایجاد شد", + "folder_already_exists": "پوشه قبلاً وجود دارد", + "folder_name_cannot_be_empty": "نام پوشه نمی‌تواند خالی باشد", + "something_went_wrong": "خطایی رخ داد", + "failed_to_reorder_favorite": "تغییر ترتیب مورد علاقه با خطا مواجه شد", + "favorite_removed_successfully": "مورد علاقه با موفقیت حذف شد", + "failed_to_create_favorite": "ایجاد مورد علاقه با خطا مواجه شد", + "failed_to_rename_favorite": "تغییر نام مورد علاقه با خطا مواجه شد", + "project_link_copied_to_clipboard": "لینک پروژه در کلیپ‌بورد کپی شد", + "link_copied": "لینک کپی شد", + "add_project": "افزودن پروژه", + "create_project": "ایجاد پروژه", + "failed_to_remove_project_from_favorites": "حذف پروژه از مورد علاقه‌ها با خطا مواجه شد. لطفاً دوباره تلاش کنید.", + "project_created_successfully": "پروژه با موفقیت ایجاد شد", + "project_created_successfully_description": "پروژه با موفقیت ایجاد شد. اکنون می‌توانید شروع به افزودن موارد کاری به آن کنید.", + "project_cover_image_alt": "تصویر کاور پروژه", + "name_is_required": "نام الزامی است", + "title_should_be_less_than_255_characters": "عنوان باید کمتر از ۲۵۵ کاراکتر باشد", + "project_name": "نام پروژه", + "project_id_must_be_at_least_1_character": "شناسه پروژه باید حداقل ۱ کاراکتر باشد", + "project_id_must_be_at_most_5_characters": "شناسه پروژه باید حداکثر ۵ کاراکتر باشد", + "project_id": "شناسه پروژه", + "project_id_tooltip_content": "به شما کمک می‌کند تا موارد کاری در پروژه را به طور منحصر به فرد شناسایی کنید. حداکثر ۵ کاراکتر.", + "description_placeholder": "توضیحات", + "only_alphanumeric_non_latin_characters_allowed": "فقط کاراکترهای الفبایی عددی و غیر لاتین مجاز هستند.", + "project_id_is_required": "شناسه پروژه الزامی است", + "project_id_allowed_char": "فقط کاراکترهای الفبایی عددی و غیر لاتین مجاز هستند.", + "project_id_min_char": "شناسه پروژه باید حداقل ۱ کاراکتر باشد", + "project_id_max_char": "شناسه پروژه باید حداکثر ۵ کاراکتر باشد", + "project_description_placeholder": "توضیحات پروژه را وارد کنید", + "select_network": "انتخاب شبکه", + "lead": "سرپرست", + "date_range": "بازه زمانی", + "private": "خصوصی", + "public": "عمومی", + "accessible_only_by_invite": "فقط با دعوت قابل دسترسی", + "anyone_in_the_workspace_except_guests_can_join": "هر کسی در فضای کاری به جز مهمانان می‌تواند عضو شود", + "creating": "در حال ایجاد", + "creating_project": "در حال ایجاد پروژه", + "adding_project_to_favorites": "در حال افزودن پروژه به مورد علاقه‌ها", + "project_added_to_favorites": "پروژه به مورد علاقه‌ها افزوده شد", + "couldnt_add_the_project_to_favorites": "افزودن پروژه به مورد علاقه‌ها با خطا مواجه شد. لطفاً دوباره تلاش کنید.", + "removing_project_from_favorites": "در حال حذف پروژه از مورد علاقه‌ها", + "project_removed_from_favorites": "پروژه از مورد علاقه‌ها حذف شد", + "couldnt_remove_the_project_from_favorites": "حذف پروژه از مورد علاقه‌ها با خطا مواجه شد. لطفاً دوباره تلاش کنید.", + "add_to_favorites": "افزودن به مورد علاقه‌ها", + "remove_from_favorites": "حذف از مورد علاقه‌ها", + "publish_settings": "تنظیمات انتشار", + "publish": "انتشار", + "copy_link": "کپی لینک", + "leave_project": "ترک پروژه", + "join_the_project_to_rearrange": "برای تغییر ترتیب به پروژه بپیوندید", + "drag_to_rearrange": "برای تغییر ترتیب بکشید", + "congrats": "تبریک!", + "open_project": "باز کردن پروژه", + "issues": "موارد کاری", + "cycles": "چرخه‌ها", + "modules": "ماژول‌ها", + "pages": "صفحات", + "intake": "ورودی", + "time_tracking": "پیگیری زمان", + "work_management": "مدیریت کار", + "projects_and_issues": "پروژه‌ها و موارد کاری", + "projects_and_issues_description": "این موارد را برای این پروژه فعال یا غیرفعال کنید.", + "cycles_description": "کار را به صورت دوره‌ای در هر پروژه تقسیم‌بندی کنید و فرکانس را از یک دوره به دوره دیگر تغییر دهید.", + "modules_description": "کار را در گروه‌های شبیه زیرپروژه با سرپرستان و مسئولان خود گروه‌بندی کنید.", + "views_description": "مرتب‌سازی‌ها، فیلترها و گزینه‌های نمایش را برای استفاده بعدی ذخیره کنید یا آنها را به اشتراک بگذارید.", + "pages_description": "هر چیزی را بنویسید، همانطور که هر چیزی را می‌نویسید.", + "intake_description": "از موارد کاری که مشترک آنها هستید مطلع شوید. این گزینه را فعال کنید تا اعلان دریافت کنید.", + "time_tracking_description": "زمان صرف شده برای موارد کاری و پروژه‌ها را پیگیری کنید.", + "work_management_description": "کار و پروژه‌های خود را به راحتی مدیریت کنید.", + "documentation": "مستندات", + "message_support": "پیام به پشتیبانی", + "contact_sales": "تماس با فروش", + "hyper_mode": "حالت فوق‌سریع", + "keyboard_shortcuts": "میانبرهای صفحه کلید", + "whats_new": "چه چیز جدیدی؟", + "version": "نسخه", + "we_are_having_trouble_fetching_the_updates": "در دریافت به‌روزرسانی‌ها مشکل داریم.", + "our_changelogs": "تغییرات ما", + "for_the_latest_updates": "برای آخرین به‌روزرسانی‌ها.", + "please_visit": "لطفاً به", + "docs": "مستندات", + "full_changelog": "تغییرات کامل", + "support": "پشتیبانی", + "discord": "دیسکورد", + "powered_by_plane_pages": "قدرت گرفته از صفحات Plane", + "please_select_at_least_one_invitation": "لطفاً حداقل یک دعوت را انتخاب کنید.", + "please_select_at_least_one_invitation_description": "لطفاً حداقل یک دعوت را برای پیوستن به فضای کاری انتخاب کنید.", + "we_see_that_someone_has_invited_you_to_join_a_workspace": "می‌بینیم که کسی شما را به پیوستن به یک فضای کاری دعوت کرده است", + "join_a_workspace": "پیوستن به یک فضای کاری", + "we_see_that_someone_has_invited_you_to_join_a_workspace_description": "می‌بینیم که کسی شما را به پیوستن به یک فضای کاری دعوت کرده است", + "join_a_workspace_description": "پیوستن به یک فضای کاری", + "accept_and_join": "پذیرش و پیوستن", + "go_home": "رفتن به خانه", + "no_pending_invites": "دعوت در انتظار وجود ندارد", + "you_can_see_here_if_someone_invites_you_to_a_workspace": "می‌توانید اینجا ببینید اگر کسی شما را به یک فضای کاری دعوت کند", + "back_to_home": "بازگشت به خانه", + "workspace_name": "نام-فضای-کاری", + "deactivate_your_account": "غیرفعال کردن حساب شما", + "deactivate_your_account_description": "پس از غیرفعال شدن، نمی‌توانید به موارد کاری اختصاص داده شوید و برای فضای کاری شما صورتحساب صادر شود. برای فعال‌سازی مجدد حساب خود، نیاز به دعوت به یک فضای کاری در این آدرس ایمیل خواهید داشت.", + "deactivating": "در حال غیرفعال کردن", + "confirm": "تایید", + "confirming": "در حال تایید", + "draft_created": "پیش‌نویس ایجاد شد", + "issue_created_successfully": "مورد کاری با موفقیت ایجاد شد", + "draft_creation_failed": "ایجاد پیش‌نویس با خطا مواجه شد", + "issue_creation_failed": "ایجاد مورد کاری با خطا مواجه شد", + "draft_issue": "پیش‌نویس مورد کاری", + "issue_updated_successfully": "مورد کاری با موفقیت به‌روزرسانی شد", + "issue_could_not_be_updated": "مورد کاری قابل به‌روزرسانی نبود", + "create_a_draft": "ایجاد پیش‌نویس", + "save_to_drafts": "ذخیره در پیش‌نویس‌ها", + "save": "ذخیره", + "update": "به‌روزرسانی", + "updating": "در حال به‌روزرسانی", + "create_new_issue": "ایجاد مورد کاری جدید", + "editor_is_not_ready_to_discard_changes": "ویرایشگر آماده دور ریختن تغییرات نیست", + "failed_to_move_issue_to_project": "انتقال مورد کاری به پروژه با خطا مواجه شد", + "create_more": "ایجاد بیشتر", + "add_to_project": "افزودن به پروژه", + "discard": "دور ریختن", + "duplicate_issue_found": "مورد کاری تکراری یافت شد", + "duplicate_issues_found": "موارد کاری تکراری یافت شدند", + "no_matching_results": "نتیجه مطابقی یافت نشد", + "title_is_required": "عنوان الزامی است", + "title": "عنوان", + "state": "وضعیت", + "priority": "اولویت", + "none": "هیچ", + "urgent": "فوری", + "high": "بالا", + "medium": "متوسط", + "low": "پایین", + "members": "اعضا", + "assignee": "مسئول", + "assignees": "مسئولان", + "you": "شما", + "labels": "برچسب‌ها", + "create_new_label": "ایجاد برچسب جدید", + "start_date": "تاریخ شروع", + "end_date": "تاریخ پایان", + "due_date": "تاریخ سررسید", + "estimate": "تخمین", + "change_parent_issue": "تغییر مورد کاری والد", + "remove_parent_issue": "حذف مورد کاری والد", + "add_parent": "افزودن والد", + "loading_members": "در حال بارگذاری اعضا", + "view_link_copied_to_clipboard": "لینک نمایش در کلیپ‌بورد کپی شد.", + "required": "الزامی", + "optional": "اختیاری", + "Cancel": "لغو", + "edit": "ویرایش", + "archive": "بایگانی", + "restore": "بازیابی", + "open_in_new_tab": "باز کردن در تب جدید", + "delete": "حذف", + "deleting": "در حال حذف", + "make_a_copy": "ساخت کپی", + "move_to_project": "انتقال به پروژه", + "good": "خوب", + "morning": "صبح", + "afternoon": "ظهر", + "evening": "عصر", + "show_all": "نمایش همه", + "show_less": "نمایش کمتر", + "no_data_yet": "هنوز داده‌ای وجود ندارد", + "syncing": "در حال همگام‌سازی", + "add_work_item": "افزودن مورد کاری", + "advanced_description_placeholder": "برای دستورات '/' را فشار دهید", + "create_work_item": "ایجاد مورد کاری", + "attachments": "پیوست‌ها", + "declining": "در حال رد کردن", + "declined": "رد شده", + "decline": "رد کردن", + "unassigned": "بدون مسئول", + "work_items": "موارد کاری", + "add_link": "افزودن لینک", + "points": "امتیازها", + "no_assignee": "بدون مسئول", + "no_assignees_yet": "هنوز مسئولی وجود ندارد", + "no_labels_yet": "هنوز برچسبی وجود ندارد", + "ideal": "ایده‌آل", + "current": "فعلی", + "no_matching_members": "عضو مطابقی یافت نشد", + "leaving": "در حال ترک کردن", + "removing": "در حال حذف", + "leave": "ترک کردن", + "refresh": "بروزرسانی", + "refreshing": "در حال بروزرسانی", + "refresh_status": "بروزرسانی وضعیت", + "prev": "قبلی", + "next": "بعدی", + "re_generating": "در حال تولید مجدد", + "re_generate": "تولید مجدد", + "re_generate_key": "تولید مجدد کلید", + "export": "خروجی", + "member": "{count, plural, one{# عضو} other{# عضو}}", + + "project_view": { + "sort_by": { + "created_at": "تاریخ ایجاد", + "updated_at": "تاریخ بروزرسانی", + "name": "نام" + } + }, + + "toast": { + "success": "موفقیت!", + "error": "خطا!" + }, + + "links": { + "toasts": { + "created": { + "title": "لینک ایجاد شد", + "message": "لینک با موفقیت ایجاد شد" + }, + "not_created": { + "title": "لینک ایجاد نشد", + "message": "لینک قابل ایجاد نبود" + }, + "updated": { + "title": "لینک بروزرسانی شد", + "message": "لینک با موفقیت بروزرسانی شد" + }, + "not_updated": { + "title": "لینک بروزرسانی نشد", + "message": "لینک قابل بروزرسانی نبود" + }, + "removed": { + "title": "لینک حذف شد", + "message": "لینک با موفقیت حذف شد" + }, + "not_removed": { + "title": "لینک حذف نشد", + "message": "لینک قابل حذف نبود" + } + } + }, + + "home": { + "empty": { + "quickstart_guide": "راهنمای شروع سریع شما", + "not_right_now": "الان نه", + "create_project": { + "title": "ایجاد پروژه", + "description": "بیشتر چیزها در Plane با یک پروژه شروع می‌شوند.", + "cta": "شروع کنید" + }, + "invite_team": { + "title": "دعوت از تیم خود", + "description": "با همکاران بسازید، ارسال کنید و مدیریت کنید.", + "cta": "آنها را اضافه کنید" + }, + "configure_workspace": { + "title": "فضای کاری خود را تنظیم کنید.", + "description": "ویژگی‌ها را فعال یا غیرفعال کنید یا فراتر از آن بروید.", + "cta": "تنظیم این فضای کاری" + }, + "personalize_account": { + "title": "Plane را مال خود کنید.", + "description": "تصویر، رنگ‌ها و موارد دیگر خود را انتخاب کنید.", + "cta": "شخصی‌سازی کنید" + }, + "widgets": { + "title": "بدون ویجت‌ها ساکت است، آنها را فعال کنید", + "description": "به نظر می‌رسد تمام ویجت‌های شما غیرفعال هستند. اکنون آنها را فعال کنید تا تجربه خود را بهبود بخشید!", + "primary_button": { + "text": "مدیریت ویجت‌ها" + } + } + }, + "quick_links": { + "empty": "لینک‌های سریع را برای موارد کاری که می‌خواهید در دسترس باشند ذخیره کنید.", + "add": "افزودن لینک سریع", + "title": "لینک سریع", + "title_plural": "لینک‌های سریع" + }, + "recents": { + "title": "اخیر", + "empty": { + "project": "پروژه‌های اخیر شما پس از بازدید از یکی از آنها اینجا ظاهر می‌شوند.", + "page": "صفحات اخیر شما پس از بازدید از یکی از آنها اینجا ظاهر می‌شوند.", + "issue": "موارد کاری اخیر شما پس از بازدید از یکی از آنها اینجا ظاهر می‌شوند.", + "default": "هنوز مورد اخیری ندارید." + }, + "filters": { + "all": "همه موارد", + "projects": "پروژه‌ها", + "pages": "صفحات", + "issues": "موارد کاری" + } + }, + "new_at_plane": { + "title": "جدید در Plane" + }, + "quick_tutorial": { + "title": "آموزش سریع" + }, + "widget": { + "reordered_successfully": "ویجت با موفقیت مرتب شد.", + "reordering_failed": "خطا در مرتب‌سازی ویجت رخ داد." + }, + "manage_widgets": "مدیریت ویجت‌ها", + "title": "خانه", + "star_us_on_github": "ما را در گیت‌هاب ستاره کنید" + }, + + "link": { + "modal": { + "url": { + "text": "URL", + "required": "URL نامعتبر است", + "placeholder": "URL را تایپ یا جایگذاری کنید" + }, + "title": { + "text": "عنوان نمایشی", + "placeholder": "چگونه می‌خواهید این لینک را ببینید" + } + } + }, + + "common": { + "all": "همه", + "states": "وضعیت‌ها", + "state": "وضعیت", + "state_groups": "گروه‌های وضعیت", + "state_group": "گروه وضعیت", + "priorities": "اولویت‌ها", + "priority": "اولویت", + "team_project": "پروژه تیمی", + "project": "پروژه", + "cycle": "چرخه", + "cycles": "چرخه‌ها", + "module": "ماژول", + "modules": "ماژول‌ها", + "labels": "برچسب‌ها", + "label": "برچسب", + "assignees": "مسئولان", + "assignee": "مسئول", + "created_by": "ایجاد شده توسط", + "none": "هیچ", + "link": "لینک", + "estimates": "تخمین‌ها", + "estimate": "تخمین", + "created_at": "تاریخ ایجاد", + "completed_at": "تاریخ تکمیل", + "layout": "طرح‌بندی", + "filters": "فیلترها", + "display": "نمایش", + "load_more": "بارگذاری بیشتر", + "activity": "فعالیت", + "analytics": "تحلیل‌ها", + "dates": "تاریخ‌ها", + "success": "موفقیت!", + "something_went_wrong": "خطایی رخ داد", + "error": { + "label": "خطا!", + "message": "خطایی رخ داد. لطفاً دوباره تلاش کنید." + }, + "group_by": "گروه‌بندی بر اساس", + "epic": "اپیک", + "epics": "اپیک‌ها", + "work_item": "مورد کاری", + "work_items": "موارد کاری", + "sub_work_item": "مورد کاری فرعی", + "add": "افزودن", + "warning": "هشدار", + "updating": "در حال بروزرسانی", + "adding": "در حال افزودن", + "update": "بروزرسانی", + "creating": "در حال ایجاد", + "create": "ایجاد", + "cancel": "لغو", + "description": "توضیحات", + "title": "عنوان", + "attachment": "پیوست", + "general": "عمومی", + "features": "ویژگی‌ها", + "automation": "خودکارسازی", + "project_name": "نام پروژه", + "project_id": "شناسه پروژه", + "project_timezone": "منطقه زمانی پروژه", + "created_on": "ایجاد شده در", + "update_project": "بروزرسانی پروژه", + "identifier_already_exists": "شناسه قبلاً وجود دارد", + "add_more": "افزودن بیشتر", + "defaults": "پیش‌فرض‌ها", + "add_label": "افزودن برچسب", + "customize_time_range": "سفارشی‌سازی بازه زمانی", + "loading": "در حال بارگذاری", + "attachments": "پیوست‌ها", + "property": "ویژگی", + "properties": "ویژگی‌ها", + "parent": "والد", + "page": "صفحه", + "remove": "حذف", + "archiving": "در حال بایگانی", + "archive": "بایگانی", + "access": { + "public": "عمومی", + "private": "خصوصی" + }, + "done": "انجام شد", + "sub_work_items": "موارد کاری فرعی", + "comment": "نظر", + "workspace_level": "سطح فضای کاری", + "order_by": { + "label": "مرتب‌سازی بر اساس", + "manual": "دستی", + "last_created": "آخرین ایجاد شده", + "last_updated": "آخرین بروزرسانی شده", + "start_date": "تاریخ شروع", + "due_date": "تاریخ سررسید", + "asc": "صعودی", + "desc": "نزولی", + "updated_on": "بروزرسانی شده در" + }, + "sort": { + "asc": "صعودی", + "desc": "نزولی", + "created_on": "ایجاد شده در", + "updated_on": "بروزرسانی شده در" + }, + "comments": "نظرات", + "updates": "بروزرسانی‌ها", + "clear_all": "پاک کردن همه", + "copied": "کپی شد!", + "link_copied": "لینک کپی شد!", + "link_copied_to_clipboard": "لینک در کلیپ‌بورد کپی شد", + "copied_to_clipboard": "لینک مورد کاری در کلیپ‌بورد کپی شد", + "is_copied_to_clipboard": "مورد کاری در کلیپ‌بورد کپی شد", + "no_links_added_yet": "هنوز لینکی افزوده نشده است", + "add_link": "افزودن لینک", + "links": "لینک‌ها", + "go_to_workspace": "رفتن به فضای کاری", + "progress": "پیشرفت", + "optional": "اختیاری", + "join": "پیوستن", + "go_back": "بازگشت", + "continue": "ادامه", + "resend": "ارسال مجدد", + "relations": "روابط", + "errors": { + "default": { + "title": "خطا!", + "message": "خطایی رخ داد. لطفاً دوباره تلاش کنید." + }, + "required": "این فیلد الزامی است", + "entity_required": "{entity} الزامی است" + }, + "update_link": "بروزرسانی لینک", + "attach": "پیوست کردن", + "create_new": "ایجاد جدید", + "add_existing": "افزودن موجود", + "type_or_paste_a_url": "URL را تایپ یا جایگذاری کنید", + "url_is_invalid": "URL نامعتبر است", + "display_title": "عنوان نمایشی", + "link_title_placeholder": "چگونه می‌خواهید این لینک را ببینید", + "url": "URL", + "side_peek": "نمای کناری", + "modal": "مودال", + "full_screen": "تمام صفحه", + "close_peek_view": "بستن نمای کناری", + "toggle_peek_view_layout": "تغییر طرح‌بندی نمای کناری", + "options": "گزینه‌ها", + "duration": "مدت زمان", + "today": "امروز", + "week": "هفته", + "month": "ماه", + "quarter": "سه ماهه", + "press_for_commands": "برای دستورات '/' را فشار دهید", + "click_to_add_description": "برای افزودن توضیحات کلیک کنید", + "search": { + "label": "جستجو", + "placeholder": "برای جستجو تایپ کنید", + "no_matches_found": "مطابقی یافت نشد", + "no_matching_results": "نتیجه مطابقی یافت نشد" + }, + "actions": { + "edit": "ویرایش", + "make_a_copy": "ساخت کپی", + "open_in_new_tab": "باز کردن در تب جدید", + "copy_link": "کپی لینک", + "archive": "بایگانی", + "restore": "بازیابی", + "delete": "حذف", + "remove_relation": "حذف رابطه", + "subscribe": "مشترک شدن", + "unsubscribe": "لغو اشتراک", + "clear_sorting": "پاک کردن مرتب‌سازی", + "show_weekends": "نمایش آخر هفته‌ها", + "enable": "فعال کردن", + "disable": "غیرفعال کردن" + }, + "name": "نام", + "discard": "دور ریختن", + "confirm": "تایید", + "confirming": "در حال تایید", + "read_the_docs": "خواندن مستندات", + "default": "پیش‌فرض", + "active": "فعال", + "enabled": "فعال شده", + "disabled": "غیرفعال شده", + "mandate": "اجبار", + "mandatory": "اجباری", + "yes": "بله", + "no": "خیر", + "please_wait": "لطفاً صبر کنید", + "enabling": "در حال فعال کردن", + "disabling": "در حال غیرفعال کردن", + "beta": "بتا", + "or": "یا", + "next": "بعدی", + "back": "بازگشت", + "cancelling": "در حال لغو", + "configuring": "در حال تنظیم", + "clear": "پاک کردن", + "import": "ورود", + "connect": "اتصال", + "authorizing": "در حال مجوزدهی", + "processing": "در حال پردازش", + "no_data_available": "داده‌ای موجود نیست", + "from": "از {name}", + "authenticated": "احراز هویت شده", + "select": "انتخاب", + "upgrade": "ارتقا", + "add_seats": "افزودن صندلی", + "projects": "پروژه‌ها", + "workspace": "فضای کاری", + "workspaces": "فضاهای کاری", + "team": "تیم", + "teams": "تیم‌ها", + "entity": "موجودیت", + "entities": "موجودیت‌ها", + "task": "وظیفه", + "tasks": "وظایف", + "section": "بخش", + "sections": "بخش‌ها", + "edit": "ویرایش", + "connecting": "در حال اتصال", + "connected": "متصل شده", + "disconnect": "قطع اتصال", + "disconnecting": "در حال قطع اتصال", + "installing": "در حال نصب", + "install": "نصب", + "reset": "بازنشانی", + "live": "زنده", + "change_history": "تاریخچه تغییرات", + "coming_soon": "به زودی", + "members": "اعضا", + "you": "شما", + "upgrade_cta": { + "higher_subscription": "ارتقا به اشتراک بالاتر", + "talk_to_sales": "صحبت با فروش" + }, + "category": "دسته‌بندی", + "categories": "دسته‌بندی‌ها", + "saving": "در حال ذخیره", + "save_changes": "ذخیره تغییرات", + "delete": "حذف", + "deleting": "در حال حذف", + "pending": "در انتظار", + "invite": "دعوت", + "view": "نمایش" + }, + + "chart": { + "x_axis": "محور X", + "y_axis": "محور Y", + "metric": "معیار" + }, + + "form": { + "title": { + "required": "عنوان الزامی است", + "max_length": "عنوان باید کمتر از {length} کاراکتر باشد" + } + }, + + "entity": { + "grouping_title": "گروه‌بندی {entity}", + "priority": "اولویت {entity}", + "all": "همه {entity}", + "drop_here_to_move": "برای انتقال {entity} اینجا رها کنید", + "delete": { + "label": "حذف {entity}", + "success": "{entity} با موفقیت حذف شد", + "failed": "حذف {entity} با خطا مواجه شد" + }, + "update": { + "failed": "بروزرسانی {entity} با خطا مواجه شد", + "success": "{entity} با موفقیت بروزرسانی شد" + }, + "link_copied_to_clipboard": "لینک {entity} در کلیپ‌بورد کپی شد", + "fetch": { + "failed": "خطا در دریافت {entity}" + }, + "add": { + "success": "{entity} با موفقیت افزوده شد", + "failed": "خطا در افزودن {entity}" + } + }, + + "epic": { + "all": "همه اپیک‌ها", + "label": "{count, plural, one {اپیک} other {اپیک‌ها}}", + "new": "اپیک جدید", + "adding": "در حال افزودن اپیک", + "create": { + "success": "اپیک با موفقیت ایجاد شد" + }, + "add": { + "press_enter": "برای افزودن اپیک دیگر 'Enter' را فشار دهید", + "label": "افزودن اپیک" + }, + "title": { + "label": "عنوان اپیک", + "required": "عنوان اپیک الزامی است." + } + }, + + "issue": { + "label": "{count, plural, one {مورد کاری} other {موارد کاری}}", + "all": "همه موارد کاری", + "edit": "ویرایش مورد کاری", + "title": { + "label": "عنوان مورد کاری", + "required": "عنوان مورد کاری الزامی است." + }, + "add": { + "press_enter": "برای افزودن مورد کاری دیگر 'Enter' را فشار دهید", + "label": "افزودن مورد کاری", + "cycle": { + "failed": "مورد کاری قابل افزودن به چرخه نبود. لطفاً دوباره تلاش کنید.", + "success": "{count, plural, one {مورد کاری} other {موارد کاری}} با موفقیت به چرخه افزوده شد.", + "loading": "در حال افزودن {count, plural, one {مورد کاری} other {موارد کاری}} به چرخه" + }, + "assignee": "افزودن مسئولان", + "start_date": "افزودن تاریخ شروع", + "due_date": "افزودن تاریخ سررسید", + "parent": "افزودن مورد کاری والد", + "sub_issue": "افزودن مورد کاری فرعی", + "relation": "افزودن رابطه", + "link": "افزودن لینک", + "existing": "افزودن مورد کاری موجود" + }, + "remove": { + "label": "حذف مورد کاری", + "cycle": { + "loading": "در حال حذف مورد کاری از چرخه", + "success": "مورد کاری با موفقیت از چرخه حذف شد.", + "failed": "مورد کاری قابل حذف از چرخه نبود. لطفاً دوباره تلاش کنید." + }, + "module": { + "loading": "در حال حذف مورد کاری از ماژول", + "success": "مورد کاری با موفقیت از ماژول حذف شد.", + "failed": "مورد کاری قابل حذف از ماژول نبود. لطفاً دوباره تلاش کنید." + }, + "parent": { + "label": "حذف مورد کاری والد" + } + }, + "new": "مورد کاری جدید", + "adding": "در حال افزودن مورد کاری", + "create": { + "success": "مورد کاری با موفقیت ایجاد شد" + }, + "priority": { + "urgent": "فوری", + "high": "بالا", + "medium": "متوسط", + "low": "پایین" + }, + "display": { + "properties": { + "label": "نمایش ویژگی‌ها", + "id": "شناسه", + "issue_type": "نوع مورد کاری", + "sub_issue_count": "تعداد موارد کاری فرعی", + "attachment_count": "تعداد پیوست‌ها", + "created_on": "ایجاد شده در", + "sub_issue": "مورد کاری فرعی", + "work_item_count": "تعداد موارد کاری" + }, + "extra": { + "show_sub_issues": "نمایش موارد کاری فرعی", + "show_empty_groups": "نمایش گروه‌های خالی" + } + }, + "layouts": { + "ordered_by_label": "این طرح‌بندی بر اساس مرتب شده است", + "list": "لیست", + "kanban": "تخته", + "calendar": "تقویم", + "spreadsheet": "جدول", + "gantt": "نمودار گانت", + "title": { + "list": "طرح‌بندی لیست", + "kanban": "طرح‌بندی تخته", + "calendar": "طرح‌بندی تقویم", + "spreadsheet": "طرح‌بندی جدول", + "gantt": "طرح‌بندی نمودار گانت" + } + }, + "states": { + "active": "فعال", + "backlog": "بک‌لاگ" + }, + "comments": { + "placeholder": "افزودن نظر", + "switch": { + "private": "تغییر به نظر خصوصی", + "public": "تغییر به نظر عمومی" + }, + "create": { + "success": "نظر با موفقیت ایجاد شد", + "error": "ایجاد نظر با خطا مواجه شد. لطفاً بعداً دوباره تلاش کنید." + }, + "update": { + "success": "نظر با موفقیت بروزرسانی شد", + "error": "بروزرسانی نظر با خطا مواجه شد. لطفاً بعداً دوباره تلاش کنید." + }, + "remove": { + "success": "نظر با موفقیت حذف شد", + "error": "حذف نظر با خطا مواجه شد. لطفاً بعداً دوباره تلاش کنید." + }, + "upload": { + "error": "بارگذاری فایل با خطا مواجه شد. لطفاً بعداً دوباره تلاش کنید." + } + }, + "empty_state": { + "issue_detail": { + "title": "مورد کاری وجود ندارد", + "description": "مورد کاری که به دنبال آن هستید وجود ندارد، بایگانی شده یا حذف شده است.", + "primary_button": { + "text": "مشاهده سایر موارد کاری" + } + } + }, + "sibling": { + "label": "موارد کاری هم‌سطح" + }, + "archive": { + "description": "فقط موارد کاری تکمیل شده یا لغو شده\nمی‌توانند بایگانی شوند", + "label": "بایگانی مورد کاری", + "confirm_message": "آیا مطمئن هستید که می‌خواهید این مورد کاری را بایگانی کنید؟ تمام موارد کاری بایگانی شده شما بعداً قابل بازیابی هستند.", + "success": { + "label": "بایگانی موفق", + "message": "بایگانی‌های شما را می‌توانید در بایگانی‌های پروژه پیدا کنید." + }, + "failed": { + "message": "مورد کاری قابل بایگانی نبود. لطفاً دوباره تلاش کنید." + } + }, + "restore": { + "success": { + "title": "بازیابی موفق", + "message": "مورد کاری شما را می‌توانید در موارد کاری پروژه پیدا کنید." + }, + "failed": { + "message": "مورد کاری قابل بازیابی نبود. لطفاً دوباره تلاش کنید." + } + }, + "relation": { + "relates_to": "مرتبط با", + "duplicate": "تکراری از", + "blocked_by": "مسدود شده توسط", + "blocking": "مسدود کننده" + }, + "copy_link": "کپی لینک مورد کاری", + "delete": { + "label": "حذف مورد کاری", + "error": "خطا در حذف مورد کاری" + }, + "subscription": { + "actions": { + "subscribed": "مشترک شدن در مورد کاری با موفقیت انجام شد", + "unsubscribed": "لغو اشتراک مورد کاری با موفقیت انجام شد" + } + }, + "select": { + "error": "لطفاً حداقل یک مورد کاری را انتخاب کنید", + "empty": "مورد کاری انتخاب نشده است", + "add_selected": "افزودن موارد کاری انتخاب شده" + }, + "open_in_full_screen": "باز کردن مورد کاری در تمام صفحه" + }, + + "attachment": { + "error": "فایل قابل پیوست نبود. لطفاً دوباره بارگذاری کنید.", + "only_one_file_allowed": "فقط یک فایل می‌تواند در یک زمان بارگذاری شود.", + "file_size_limit": "فایل باید {size} مگابایت یا کمتر باشد.", + "drag_and_drop": "فایل را برای بارگذاری بکشید و رها کنید", + "delete": "حذف پیوست" + }, + + "label": { + "select": "انتخاب برچسب", + "create": { + "success": "برچسب با موفقیت ایجاد شد", + "failed": "ایجاد برچسب با خطا مواجه شد", + "already_exists": "برچسب قبلاً وجود دارد", + "type": "برای افزودن برچسب جدید تایپ کنید" + } + }, + + "sub_work_item": { + "update": { + "success": "مورد کاری فرعی با موفقیت بروزرسانی شد", + "error": "خطا در بروزرسانی مورد کاری فرعی" + }, + "remove": { + "success": "مورد کاری فرعی با موفقیت حذف شد", + "error": "خطا در حذف مورد کاری فرعی" + } + }, + + "view": { + "label": "{count, plural, one {نمایش} other {نمایش‌ها}}", + "create": { + "label": "ایجاد نمایش" + }, + "update": { + "label": "بروزرسانی نمایش" + } + }, + + "inbox_issue": { + "status": { + "pending": { + "title": "در انتظار", + "description": "در انتظار" + }, + "declined": { + "title": "رد شده", + "description": "رد شده" + }, + "snoozed": { + "title": "به تعویق افتاده", + "description": "{days, plural, one{# روز} other{# روز}} باقی مانده" + }, + "accepted": { + "title": "پذیرفته شده", + "description": "پذیرفته شده" + }, + "duplicate": { + "title": "تکراری", + "description": "تکراری" + } + }, + "modals": { + "decline": { + "title": "رد مورد کاری", + "content": "آیا مطمئن هستید که می‌خواهید مورد کاری {value} را رد کنید؟" + }, + "delete": { + "title": "حذف مورد کاری", + "content": "آیا مطمئن هستید که می‌خواهید مورد کاری {value} را حذف کنید؟", + "success": "مورد کاری با موفقیت حذف شد" + } + }, + "errors": { + "snooze_permission": "فقط مدیران پروژه می‌توانند موارد کاری را به تعویق بیندازند/از تعویق خارج کنند", + "accept_permission": "فقط مدیران پروژه می‌توانند موارد کاری را بپذیرند", + "decline_permission": "فقط مدیران پروژه می‌توانند موارد کاری را رد کنند" + }, + "actions": { + "accept": "پذیرش", + "decline": "رد", + "snooze": "به تعویق انداختن", + "unsnooze": "خروج از تعویق", + "copy": "کپی لینک مورد کاری", + "delete": "حذف", + "open": "باز کردن مورد کاری", + "mark_as_duplicate": "علامت‌گذاری به عنوان تکراری", + "move": "انتقال {value} به موارد کاری پروژه" + }, + "source": { + "in-app": "در برنامه" + }, + "order_by": { + "created_at": "تاریخ ایجاد", + "updated_at": "تاریخ بروزرسانی", + "id": "شناسه" + }, + "label": "ورودی", + "page_label": "{workspace} - ورودی", + "modal": { + "title": "ایجاد مورد کاری ورودی" + }, + "tabs": { + "open": "باز", + "closed": "بسته" + }, + "empty_state": { + "sidebar_open_tab": { + "title": "مورد کاری باز وجود ندارد", + "description": "موارد کاری باز را اینجا پیدا کنید. ایجاد مورد کاری جدید." + }, + "sidebar_closed_tab": { + "title": "مورد کاری بسته وجود ندارد", + "description": "تمام موارد کاری پذیرفته شده یا رد شده را می‌توانید اینجا پیدا کنید." + }, + "sidebar_filter": { + "title": "مورد کاری مطابق با فیلتر وجود ندارد", + "description": "مورد کاری مطابق با فیلتر اعمال شده در ورودی وجود ندارد. ایجاد مورد کاری جدید." + }, + "detail": { + "title": "برای مشاهده جزئیات مورد کاری را انتخاب کنید." + } + } + }, + + "workspace_creation": { + "heading": "فضای کاری خود را ایجاد کنید", + "subheading": "برای شروع استفاده از Plane، باید یک فضای کاری ایجاد کنید یا به یکی بپیوندید.", + "form": { + "name": { + "label": "نام فضای کاری خود را انتخاب کنید", + "placeholder": "چیزی آشنا و قابل تشخیص همیشه بهترین است." + }, + "url": { + "label": "URL فضای کاری خود را تنظیم کنید", + "placeholder": "URL را تایپ یا جایگذاری کنید", + "edit_slug": "شما فقط می‌توانید بخش نام URL را ویرایش کنید" + }, + "organization_size": { + "label": "چند نفر از این فضای کاری استفاده خواهند کرد؟", + "placeholder": "انتخاب یک محدوده" + } + }, + "errors": { + "creation_disabled": { + "title": "فقط مدیر نمونه می‌تواند فضاهای کاری ایجاد کند", + "description": "اگر آدرس ایمیل مدیر نمونه را می‌دانید، برای ارتباط با آنها روی دکمه زیر کلیک کنید.", + "request_button": "درخواست مدیر نمونه" + }, + "validation": { + "name_alphanumeric": "نام‌های فضای کاری فقط می‌توانند شامل کاراکترهای (' '), ('-'), ('_') و الفبایی عددی باشند.", + "name_length": "نام خود را به ۸۰ کاراکتر محدود کنید.", + "url_alphanumeric": "URL‌ها فقط می‌توانند شامل کاراکترهای ('-') و الفبایی عددی باشند.", + "url_length": "URL خود را به ۴۸ کاراکتر محدود کنید.", + "url_already_taken": "URL فضای کاری قبلاً استفاده شده است!" + } + }, + "request_email": { + "subject": "درخواست فضای کاری جدید", + "body": "سلام مدیر نمونه،\n\nلطفاً یک فضای کاری جدید با URL [/workspace-name] برای [هدف ایجاد فضای کاری] ایجاد کنید.\n\nبا تشکر،\n{firstName} {lastName}\n{email}" + }, + "button": { + "default": "ایجاد فضای کاری", + "loading": "در حال ایجاد فضای کاری" + }, + "toast": { + "success": { + "title": "موفقیت", + "message": "فضای کاری با موفقیت ایجاد شد" + }, + "error": { + "title": "خطا", + "message": "فضای کاری قابل ایجاد نبود. لطفاً دوباره تلاش کنید." + } + } + }, + + "workspace_dashboard": { + "empty_state": { + "general": { + "title": "نمای کلی پروژه‌ها، فعالیت‌ها و معیارهای شما", + "description": "به Plane خوش آمدید، ما از حضور شما هیجان‌زده هستیم. اولین پروژه خود را ایجاد کنید و موارد کاری خود را پیگیری کنید، و این صفحه به فضایی تبدیل خواهد شد که به پیشرفت شما کمک می‌کند. مدیران همچنین مواردی را خواهند دید که به پیشرفت تیم آنها کمک می‌کند.", + "primary_button": { + "text": "ساخت اولین پروژه خود", + "comic": { + "title": "همه چیز در Plane با یک پروژه شروع می‌شود", + "description": "یک پروژه می‌تواند نقشه راه یک محصول، یک کمپین بازاریابی یا راه‌اندازی یک ماشین جدید باشد." + } + } + } + } + }, + + "workspace_analytics": { + "label": "تحلیل‌ها", + "page_label": "{workspace} - تحلیل‌ها", + "open_tasks": "کل وظایف باز", + "error": "خطایی در دریافت داده‌ها رخ داد.", + "work_items_closed_in": "موارد کاری بسته شده در", + "selected_projects": "پروژه‌های انتخاب شده", + "total_members": "کل اعضا", + "total_cycles": "کل چرخه‌ها", + "total_modules": "کل ماژول‌ها", + "pending_work_items": { + "title": "موارد کاری در انتظار", + "empty_state": "تحلیل موارد کاری در انتظار توسط همکاران اینجا ظاهر می‌شود." + }, + "work_items_closed_in_a_year": { + "title": "موارد کاری بسته شده در یک سال", + "empty_state": "موارد کاری را ببندید تا تحلیل آنها را در قالب نمودار مشاهده کنید." + }, + "most_work_items_created": { + "title": "بیشترین موارد کاری ایجاد شده", + "empty_state": "همکاران و تعداد موارد کاری ایجاد شده توسط آنها اینجا ظاهر می‌شود." + }, + "most_work_items_closed": { + "title": "بیشترین موارد کاری بسته شده", + "empty_state": "همکاران و تعداد موارد کاری بسته شده توسط آنها اینجا ظاهر می‌شود." + }, + "tabs": { + "scope_and_demand": "محدوده و تقاضا", + "custom": "تحلیل‌های سفارشی" + }, + "empty_state": { + "general": { + "title": "پیشرفت، حجم کار و تخصیص‌ها را پیگیری کنید. روندها را شناسایی کنید، موانع را برطرف کنید و کار را سریع‌تر انجام دهید", + "description": "محدوده در برابر تقاضا، تخمین‌ها و افزایش محدوده را ببینید. عملکرد اعضای تیم و تیم‌ها را دریافت کنید و مطمئن شوید که پروژه شما به موقع اجرا می‌شود.", + "primary_button": { + "text": "شروع اولین پروژه خود", + "comic": { + "title": "تحلیل‌ها با چرخه‌ها + ماژول‌ها بهترین عملکرد را دارند", + "description": "ابتدا، موارد کاری خود را در چرخه‌ها زمان‌بندی کنید و اگر می‌توانید، موارد کاری که بیش از یک چرخه طول می‌کشند را در ماژول‌ها گروه‌بندی کنید. هر دو را در ناوبری سمت چپ بررسی کنید." + } + } + } + } + }, + + "workspace_projects": { + "label": "{count, plural, one {پروژه} other {پروژه‌ها}}", + "create": { + "label": "افزودن پروژه" + }, + "network": { + "label": "شبکه", + "private": { + "title": "خصوصی", + "description": "فقط با دعوت قابل دسترسی" + }, + "public": { + "title": "عمومی", + "description": "هر کسی در فضای کاری به جز مهمانان می‌تواند عضو شود" + } + }, + "error": { + "permission": "شما دسترسی لازم برای انجام این عملیات را ندارید.", + "cycle_delete": "حذف چرخه با خطا مواجه شد", + "module_delete": "حذف ماژول با خطا مواجه شد", + "issue_delete": "حذف مورد کاری با خطا مواجه شد" + }, + "state": { + "backlog": "بک‌لاگ", + "unstarted": "شروع نشده", + "started": "شروع شده", + "completed": "تکمیل شده", + "cancelled": "لغو شده" + }, + "sort": { + "manual": "دستی", + "name": "نام", + "created_at": "تاریخ ایجاد", + "members_length": "تعداد اعضا" + }, + "scope": { + "my_projects": "پروژه‌های من", + "archived_projects": "بایگانی شده" + }, + "common": { + "months_count": "{months, plural, one{# ماه} other{# ماه}}" + }, + "empty_state": { + "general": { + "title": "پروژه فعالی وجود ندارد", + "description": "هر پروژه را به عنوان والد کارهای هدف‌محور در نظر بگیرید. پروژه‌ها جایی هستند که وظایف، چرخه‌ها و ماژول‌ها زندگی می‌کنند و همراه با همکاران شما به شما کمک می‌کنند تا به آن هدف برسید. یک پروژه جدید ایجاد کنید یا برای پروژه‌های بایگانی شده فیلتر کنید.", + "primary_button": { + "text": "شروع اولین پروژه خود", + "comic": { + "title": "همه چیز در Plane با یک پروژه شروع می‌شود", + "description": "یک پروژه می‌تواند نقشه راه یک محصول، یک کمپین بازاریابی یا راه‌اندازی یک ماشین جدید باشد." + } + } + }, + "no_projects": { + "title": "پروژه‌ای وجود ندارد", + "description": "برای ایجاد موارد کاری یا مدیریت کار خود، باید یک پروژه ایجاد کنید یا بخشی از یکی باشید.", + "primary_button": { + "text": "شروع اولین پروژه خود", + "comic": { + "title": "همه چیز در Plane با یک پروژه شروع می‌شود", + "description": "یک پروژه می‌تواند نقشه راه یک محصول، یک کمپین بازاریابی یا راه‌اندازی یک ماشین جدید باشد." + } + } + }, + "filter": { + "title": "پروژه مطابقی وجود ندارد", + "description": "هیچ پروژه‌ای با معیارهای مطابق یافت نشد. \n به جای آن یک پروژه جدید ایجاد کنید." + }, + "search": { + "description": "هیچ پروژه‌ای با معیارهای مطابق یافت نشد.\nبه جای آن یک پروژه جدید ایجاد کنید" + } + } + }, + + "workspace_views": { + "add_view": "افزودن نمایش", + "empty_state": { + "all-issues": { + "title": "مورد کاری در پروژه وجود ندارد", + "description": "اولین پروژه تمام شد! حالا، کار خود را به قطعات قابل پیگیری با موارد کاری تقسیم کنید. بیایید شروع کنیم!", + "primary_button": { + "text": "ایجاد مورد کاری جدید" + } + }, + "assigned": { + "title": "هنوز مورد کاری وجود ندارد", + "description": "موارد کاری اختصاص داده شده به شما را می‌توان از اینجا پیگیری کرد.", + "primary_button": { + "text": "ایجاد مورد کاری جدید" + } + }, + "created": { + "title": "هنوز مورد کاری وجود ندارد", + "description": "تمام موارد کاری ایجاد شده توسط شما اینجا می‌آیند، مستقیماً آنها را اینجا پیگیری کنید.", + "primary_button": { + "text": "ایجاد مورد کاری جدید" + } + }, + "subscribed": { + "title": "هنوز مورد کاری وجود ندارد", + "description": "به موارد کاری که به آنها علاقه دارید مشترک شوید، همه آنها را اینجا پیگیری کنید." + }, + "custom-view": { + "title": "هنوز مورد کاری وجود ندارد", + "description": "موارد کاری که با فیلترها مطابقت دارند، همه آنها را اینجا پیگیری کنید." + } + } + }, + + "workspace_settings": { + "label": "تنظیمات فضای کاری", + "page_label": "{workspace} - تنظیمات عمومی", + "key_created": "کلید ایجاد شد", + "copy_key": "این کلید مخفی را در صفحات Plane کپی و ذخیره کنید. پس از کلیک روی بستن نمی‌توانید این کلید را ببینید. یک فایل CSV حاوی کلید دانلود شده است.", + "token_copied": "توکن در کلیپ‌بورد کپی شد.", + "settings": { + "general": { + "title": "عمومی", + "upload_logo": "بارگذاری لوگو", + "edit_logo": "ویرایش لوگو", + "name": "نام فضای کاری", + "company_size": "اندازه شرکت", + "url": "URL فضای کاری", + "update_workspace": "بروزرسانی فضای کاری", + "delete_workspace": "حذف این فضای کاری", + "delete_workspace_description": "با حذف فضای کاری، تمام داده‌ها و منابع موجود در آن به طور دائمی حذف شده و قابل بازیابی نخواهند بود.", + "delete_btn": "حذف این فضای کاری", + "delete_modal": { + "title": "آیا مطمئن هستید که می‌خواهید این فضای کاری را حذف کنید؟", + "description": "شما یک دوره آزمایشی فعال برای یکی از طرح‌های پولی ما دارید. لطفاً ابتدا آن را لغو کنید تا ادامه دهید.", + "dismiss": "رد کردن", + "cancel": "لغو دوره آزمایشی", + "success_title": "فضای کاری حذف شد.", + "success_message": "به زودی به صفحه پروفایل خود خواهید رفت.", + "error_title": "این کار انجام نشد.", + "error_message": "لطفاً دوباره تلاش کنید." + }, + "errors": { + "name": { + "required": "نام الزامی است", + "max_length": "نام فضای کاری نباید از ۸۰ کاراکتر تجاوز کند" + }, + "company_size": { + "required": "اندازه شرکت الزامی است", + "select_a_range": "اندازه سازمان را انتخاب کنید" + } + } + }, + "members": { + "title": "اعضا", + "add_member": "افزودن عضو", + "pending_invites": "دعوت‌های در انتظار", + "invitations_sent_successfully": "دعوت‌ها با موفقیت ارسال شدند", + "leave_confirmation": "آیا مطمئن هستید که می‌خواهید فضای کاری را ترک کنید؟ دیگر به این فضای کاری دسترسی نخواهید داشت. این عملیات قابل برگشت نیست.", + "details": { + "full_name": "نام کامل", + "display_name": "نام نمایشی", + "email_address": "آدرس ایمیل", + "account_type": "نوع حساب", + "authentication": "احراز هویت", + "joining_date": "تاریخ پیوستن" + }, + "modal": { + "title": "دعوت از افراد برای همکاری", + "description": "از افراد برای همکاری در فضای کاری خود دعوت کنید.", + "button": "ارسال دعوت‌ها", + "button_loading": "در حال ارسال دعوت‌ها", + "placeholder": "name@company.com", + "errors": { + "required": "برای دعوت آنها به یک آدرس ایمیل نیاز داریم.", + "invalid": "ایمیل نامعتبر است" + } + } + }, + "billing_and_plans": { + "title": "صورتحساب و طرح‌ها", + "current_plan": "طرح فعلی", + "free_plan": "شما در حال حاضر از طرح رایگان استفاده می‌کنید", + "view_plans": "مشاهده طرح‌ها" + }, + "exports": { + "title": "خروجی‌ها", + "exporting": "در حال خروجی گرفتن", + "previous_exports": "خروجی‌های قبلی", + "export_separate_files": "خروجی گرفتن از داده‌ها در فایل‌های جداگانه", + "modal": { + "title": "خروجی به", + "toasts": { + "success": { + "title": "خروجی موفق", + "message": "می‌توانید {entity} خروجی گرفته شده را از خروجی قبلی دانلود کنید." + }, + "error": { + "title": "خروجی ناموفق", + "message": "خروجی ناموفق بود. لطفاً دوباره تلاش کنید." + } + } + } + }, + "webhooks": { + "title": "وب‌هوک‌ها", + "add_webhook": "افزودن وب‌هوک", + "modal": { + "title": "ایجاد وب‌هوک", + "details": "جزئیات وب‌هوک", + "payload": "URL محموله", + "question": "کدام رویدادها می‌خواهید این وب‌هوک را فعال کنند؟", + "error": "URL الزامی است" + }, + "secret_key": { + "title": "کلید مخفی", + "message": "تولید یک توکن برای ورود به محموله وب‌هوک" + }, + "options": { + "all": "همه چیز را برای من ارسال کن", + "individual": "انتخاب رویدادهای فردی" + }, + "toasts": { + "created": { + "title": "وب‌هوک ایجاد شد", + "message": "وب‌هوک با موفقیت ایجاد شد" + }, + "not_created": { + "title": "وب‌هوک ایجاد نشد", + "message": "وب‌هوک قابل ایجاد نبود" + }, + "updated": { + "title": "وب‌هوک بروزرسانی شد", + "message": "وب‌هوک با موفقیت بروزرسانی شد" + }, + "not_updated": { + "title": "وب‌هوک بروزرسانی نشد", + "message": "وب‌هوک قابل بروزرسانی نبود" + }, + "removed": { + "title": "وب‌هوک حذف شد", + "message": "وب‌هوک با موفقیت حذف شد" + }, + "not_removed": { + "title": "وب‌هوک حذف نشد", + "message": "وب‌هوک قابل حذف نبود" + }, + "secret_key_copied": { + "message": "کلید مخفی در کلیپ‌بورد کپی شد." + }, + "secret_key_not_copied": { + "message": "خطا در کپی کردن کلید مخفی رخ داد." + } + } + }, + "api_tokens": { + "title": "توکن‌های API", + "add_token": "افزودن توکن API", + "create_token": "ایجاد توکن", + "never_expires": "هرگز منقضی نمی‌شود", + "generate_token": "تولید توکن", + "generating": "در حال تولید", + "delete": { + "title": "حذف توکن API", + "description": "هر برنامه‌ای که از این توکن استفاده می‌کند دیگر به داده‌های Plane دسترسی نخواهد داشت. این عملیات قابل برگشت نیست.", + "success": { + "title": "موفقیت!", + "message": "توکن API با موفقیت حذف شد" + }, + "error": { + "title": "خطا!", + "message": "توکن API قابل حذف نبود" + } + } + } + }, + "empty_state": { + "api_tokens": { + "title": "توکن API ایجاد نشده است", + "description": "API‌های Plane می‌توانند برای ادغام داده‌های شما در Plane با هر سیستم خارجی استفاده شوند. برای شروع یک توکن ایجاد کنید." + }, + "webhooks": { + "title": "وب‌هوکی افزوده نشده است", + "description": "وب‌هوک‌ها را برای دریافت به‌روزرسانی‌های بلادرنگ و خودکارسازی اقدامات ایجاد کنید." + }, + "exports": { + "title": "هنوز خروجی‌ای وجود ندارد", + "description": "هر زمان که خروجی می‌گیرید، یک کپی نیز برای مرجع اینجا خواهید داشت." + }, + "imports": { + "title": "هنوز ورودی‌ای وجود ندارد", + "description": "تمام ورودی‌های قبلی خود را اینجا پیدا کنید و آنها را دانلود کنید." + } + } + }, + + "profile": { + "label": "پروفایل", + "page_label": "کار شما", + "work": "کار", + "details": { + "joined_on": "پیوستن در", + "time_zone": "منطقه زمانی" + }, + "stats": { + "workload": "حجم کار", + "overview": "نمای کلی", + "created": "موارد کاری ایجاد شده", + "assigned": "موارد کاری اختصاص داده شده", + "subscribed": "موارد کاری مشترک شده", + "state_distribution": { + "title": "موارد کاری بر اساس وضعیت", + "empty": "موارد کاری را ایجاد کنید تا آنها را بر اساس وضعیت‌ها در نمودار برای تحلیل بهتر مشاهده کنید." + }, + "priority_distribution": { + "title": "موارد کاری بر اساس اولویت", + "empty": "موارد کاری را ایجاد کنید تا آنها را بر اساس اولویت در نمودار برای تحلیل بهتر مشاهده کنید." + }, + "recent_activity": { + "title": "فعالیت‌های اخیر", + "empty": "داده‌ای پیدا نکردیم. لطفاً ورودی‌های خود را بررسی کنید", + "button": "دانلود فعالیت‌های امروز", + "button_loading": "در حال دانلود" + } + }, + "actions": { + "profile": "پروفایل", + "security": "امنیت", + "activity": "فعالیت", + "appearance": "ظاهر", + "notifications": "اعلان‌ها" + }, + "tabs": { + "summary": "خلاصه", + "assigned": "اختصاص داده شده", + "created": "ایجاد شده", + "subscribed": "مشترک شده", + "activity": "فعالیت" + }, + "empty_state": { + "activity": { + "title": "هنوز فعالیتی وجود ندارد", + "description": "با ایجاد یک مورد کاری جدید شروع کنید! جزئیات و ویژگی‌ها را به آن اضافه کنید. در Plane بیشتر کاوش کنید تا فعالیت خود را ببینید." + }, + "assigned": { + "title": "هیچ مورد کاری به شما اختصاص داده نشده است", + "description": "موارد کاری اختصاص داده شده به شما را می‌توان از اینجا پیگیری کرد." + }, + "created": { + "title": "هنوز مورد کاری وجود ندارد", + "description": "تمام موارد کاری ایجاد شده توسط شما اینجا می‌آیند، مستقیماً آنها را اینجا پیگیری کنید." + }, + "subscribed": { + "title": "هنوز مورد کاری وجود ندارد", + "description": "به موارد کاری که به آنها علاقه دارید مشترک شوید، همه آنها را اینجا پیگیری کنید." + } + } + }, + + "project_settings": { + "general": { + "enter_project_id": "شناسه پروژه را وارد کنید", + "please_select_a_timezone": "لطفاً یک منطقه زمانی انتخاب کنید", + "archive_project": { + "title": "بایگانی پروژه", + "description": "بایگانی کردن پروژه، پروژه شما را از ناوبری کناری حذف می‌کند، اگرچه همچنان می‌توانید از صفحه پروژه‌های خود به آن دسترسی داشته باشید. می‌توانید پروژه را در هر زمان که بخواهید بازیابی یا حذف کنید.", + "button": "بایگانی پروژه" + }, + "delete_project": { + "title": "حذف پروژه", + "description": "با حذف پروژه، تمام داده‌ها و منابع موجود در آن به طور دائمی حذف شده و قابل بازیابی نخواهند بود.", + "button": "حذف پروژه من" + }, + "toast": { + "success": "پروژه با موفقیت بروزرسانی شد", + "error": "پروژه قابل بروزرسانی نبود. لطفاً دوباره تلاش کنید." + } + }, + "members": { + "label": "اعضا", + "project_lead": "سرپرست پروژه", + "default_assignee": "مسئول پیش‌فرض", + "guest_super_permissions": { + "title": "اعطای دسترسی مشاهده به تمام موارد کاری برای کاربران مهمان:", + "sub_heading": "این به مهمانان اجازه می‌دهد تا به تمام موارد کاری پروژه دسترسی مشاهده داشته باشند." + }, + "invite_members": { + "title": "دعوت از اعضا", + "sub_heading": "از اعضا برای کار روی پروژه خود دعوت کنید.", + "select_co_worker": "انتخاب همکار" + } + }, + "states": { + "describe_this_state_for_your_members": "این وضعیت را برای اعضای خود توضیح دهید.", + "empty_state": { + "title": "هیچ وضعیتی برای گروه {groupKey} موجود نیست", + "description": "لطفاً یک وضعیت جدید ایجاد کنید" + } + }, + "labels": { + "label_title": "عنوان برچسب", + "label_title_is_required": "عنوان برچسب الزامی است", + "label_max_char": "نام برچسب نباید از ۲۵۵ کاراکتر تجاوز کند", + "toast": { + "error": "خطا در بروزرسانی برچسب" + } + }, + "estimates": { + "title": "فعال کردن تخمین‌ها برای پروژه من", + "description": "آنها به شما در ارتباط پیچیدگی و حجم کار تیم کمک می‌کنند." + }, + "automations": { + "label": "خودکارسازی‌ها", + "auto-archive": { + "title": "بایگانی خودکار موارد کاری بسته شده", + "description": "Plane موارد کاری که تکمیل یا لغو شده‌اند را به طور خودکار بایگانی می‌کند.", + "duration": "بایگانی خودکار موارد کاری که برای بسته شده‌اند" + }, + "auto-close": { + "title": "بستن خودکار موارد کاری", + "description": "Plane موارد کاری که تکمیل یا لغو نشده‌اند را به طور خودکار می‌بندد.", + "duration": "بستن خودکار موارد کاری که برای غیرفعال هستند", + "auto_close_status": "وضعیت بستن خودکار" + } + }, + + "empty_state": { + "labels": { + "title": "هنوز برچسبی وجود ندارد", + "description": "برچسب‌ها را برای کمک به سازماندهی و فیلتر کردن موارد کاری در پروژه خود ایجاد کنید." + }, + "estimates": { + "title": "هنوز سیستم تخمینی وجود ندارد", + "description": "یک مجموعه تخمین برای ارتباط مقدار کار در هر مورد کاری ایجاد کنید.", + "primary_button": "افزودن سیستم تخمین" + } + } + }, + + "project_cycles": { + "add_cycle": "افزودن چرخه", + "more_details": "جزئیات بیشتر", + "cycle": "چرخه", + "update_cycle": "بروزرسانی چرخه", + "create_cycle": "ایجاد چرخه", + "no_matching_cycles": "چرخه مطابقی وجود ندارد", + "remove_filters_to_see_all_cycles": "فیلترها را حذف کنید تا تمام چرخه‌ها را ببینید", + "remove_search_criteria_to_see_all_cycles": "معیارهای جستجو را حذف کنید تا تمام چرخه‌ها را ببینید", + "only_completed_cycles_can_be_archived": "فقط چرخه‌های تکمیل شده می‌توانند بایگانی شوند", + "active_cycle": { + "label": "چرخه فعال", + "progress": "پیشرفت", + "chart": "نمودار کاهش کار", + "priority_issue": "موارد کاری با اولویت", + "assignees": "مسئولان", + "issue_burndown": "کاهش کار مورد کاری", + "ideal": "ایده‌آل", + "current": "فعلی", + "labels": "برچسب‌ها" + }, + "upcoming_cycle": { + "label": "چرخه آینده" + }, + "completed_cycle": { + "label": "چرخه تکمیل شده" + }, + "status": { + "days_left": "روزهای باقی مانده", + "completed": "تکمیل شده", + "yet_to_start": "هنوز شروع نشده", + "in_progress": "در حال انجام", + "draft": "پیش‌نویس" + }, + "action": { + "restore": { + "title": "بازیابی چرخه", + "success": { + "title": "چرخه بازیابی شد", + "description": "چرخه بازیابی شد." + }, + "failed": { + "title": "بازیابی چرخه با خطا مواجه شد", + "description": "چرخه قابل بازیابی نبود. لطفاً دوباره تلاش کنید." + } + }, + "favorite": { + "loading": "در حال افزودن چرخه به مورد علاقه‌ها", + "success": { + "description": "چرخه به مورد علاقه‌ها افزوده شد.", + "title": "موفقیت!" + }, + "failed": { + "description": "افزودن چرخه به مورد علاقه‌ها با خطا مواجه شد. لطفاً دوباره تلاش کنید.", + "title": "خطا!" + } + }, + "unfavorite": { + "loading": "در حال حذف چرخه از مورد علاقه‌ها", + "success": { + "description": "چرخه از مورد علاقه‌ها حذف شد.", + "title": "موفقیت!" + }, + "failed": { + "description": "حذف چرخه از مورد علاقه‌ها با خطا مواجه شد. لطفاً دوباره تلاش کنید.", + "title": "خطا!" + } + }, + "update": { + "loading": "در حال بروزرسانی چرخه", + "success": { + "description": "چرخه با موفقیت بروزرسانی شد.", + "title": "موفقیت!" + }, + "failed": { + "description": "خطا در بروزرسانی چرخه. لطفاً دوباره تلاش کنید.", + "title": "خطا!" + }, + "error": { + "already_exists": "شما قبلاً یک چرخه در تاریخ‌های داده شده دارید، اگر می‌خواهید یک چرخه پیش‌نویس ایجاد کنید، می‌توانید با حذف هر دو تاریخ این کار را انجام دهید." + } + } + }, + "empty_state": { + "general": { + "title": "کار خود را در چرخه‌ها گروه‌بندی کنید.", + "description": "کار را به صورت دوره‌ای تقسیم‌بندی کنید، از مهلت پروژه خود به عقب کار کنید تا تاریخ‌ها را تنظیم کنید و به عنوان یک تیم پیشرفت ملموس داشته باشید.", + "primary_button": { + "text": "تنظیم اولین چرخه خود", + "comic": { + "title": "چرخه‌ها دوره‌های تکرار شونده هستند.", + "description": "یک اسپرینت، یک تکرار و یا هر اصطلاح دیگری که برای پیگیری هفتگی یا دو هفتگی کار استفاده می‌کنید یک چرخه است." + } + } + }, + "no_issues": { + "title": "مورد کاری به چرخه افزوده نشده است", + "description": "موارد کاری که می‌خواهید در این چرخه زمان‌بندی و تحویل دهید را اضافه یا ایجاد کنید", + "primary_button": { + "text": "ایجاد مورد کاری جدید" + }, + "secondary_button": { + "text": "افزودن مورد کاری موجود" + } + }, + "completed_no_issues": { + "title": "مورد کاری در چرخه وجود ندارد", + "description": "مورد کاری در چرخه وجود ندارد. موارد کاری یا منتقل شده‌اند یا مخفی شده‌اند. برای مشاهده موارد کاری مخفی شده اگر وجود دارند، ویژگی‌های نمایش خود را بر اساس آن بروزرسانی کنید." + }, + "active": { + "title": "چرخه فعالی وجود ندارد", + "description": "یک چرخه فعال شامل هر دوره‌ای است که تاریخ امروز در محدوده آن قرار می‌گیرد. پیشرفت و جزئیات چرخه فعال را اینجا پیدا کنید." + }, + "archived": { + "title": "هنوز چرخه بایگانی شده‌ای وجود ندارد", + "description": "برای مرتب کردن پروژه خود، چرخه‌های تکمیل شده را بایگانی کنید. پس از بایگانی آنها را اینجا پیدا کنید." + } + } + }, + + "project_issues": { + "empty_state": { + "no_issues": { + "title": "یک مورد کاری ایجاد کنید و آن را به کسی، حتی خودتان اختصاص دهید", + "description": "موارد کاری را به عنوان شغل، وظیفه، کار یا JTBD در نظر بگیرید. که ما دوست داریم. یک مورد کاری و موارد کاری فرعی آن معمولاً اقدامات مبتنی بر زمان هستند که به اعضای تیم شما اختصاص داده می‌شوند. تیم شما موارد کاری را ایجاد می‌کند، اختصاص می‌دهد و تکمیل می‌کند تا پروژه شما را به سمت هدف خود حرکت دهد.", + "primary_button": { + "text": "ایجاد اولین مورد کاری خود", + "comic": { + "title": "موارد کاری بلوک‌های ساختمانی در Plane هستند.", + "description": "طراحی مجدد رابط کاربری Plane، تغییر نام شرکت، یا راه‌اندازی سیستم تزریق سوخت جدید نمونه‌هایی از موارد کاری هستند که احتمالاً موارد کاری فرعی دارند." + } + } + }, + "no_archived_issues": { + "title": "هنوز مورد کاری بایگانی شده‌ای وجود ندارد", + "description": "به صورت دستی یا از طریق خودکارسازی، می‌توانید موارد کاری که تکمیل یا لغو شده‌اند را بایگانی کنید. پس از بایگانی آنها را اینجا پیدا کنید.", + "primary_button": { + "text": "تنظیم خودکارسازی" + } + }, + "issues_empty_filter": { + "title": "مورد کاری مطابق با فیلترهای اعمال شده یافت نشد", + "secondary_button": { + "text": "پاک کردن تمام فیلترها" + } + } + } + }, + + "project_module": { + "add_module": "افزودن ماژول", + "update_module": "بروزرسانی ماژول", + "create_module": "ایجاد ماژول", + "archive_module": "بایگانی ماژول", + "restore_module": "بازیابی ماژول", + "delete_module": "حذف ماژول", + "empty_state": { + "general": { + "title": "نقاط عطف پروژه خود را به ماژول‌ها نگاشت کنید و کار تجمیع شده را به راحتی پیگیری کنید.", + "description": "گروهی از موارد کاری که به یک والد منطقی و سلسله مراتبی تعلق دارند یک ماژول را تشکیل می‌دهند. آنها را به عنوان راهی برای پیگیری کار بر اساس نقاط عطف پروژه در نظر بگیرید. آنها دوره‌ها و مهلت‌های خود را دارند و همچنین تحلیل‌هایی برای کمک به شما در دیدن نزدیکی یا دوری از یک نقطه عطف.", + "primary_button": { + "text": "ساخت اولین ماژول خود", + "comic": { + "title": "Modules help group work by hierarchy.", + "description": "A cart module, a chassis module, and a warehouse module are all good example of this grouping." + } + } + }, + "no_issues": { + "title": "هیچ مورد کاری در ماژول وجود ندارد", + "description": "موارد کاری که می‌خواهید به عنوان بخشی از این ماژول انجام دهید را ایجاد یا اضافه کنید", + "primary_button": { + "text": "ایجاد موارد کاری جدید" + }, + "secondary_button": { + "text": "افزودن مورد کاری موجود" + } + }, + "archived": { + "title": "هنوز هیچ ماژول بایگانی شده‌ای وجود ندارد", + "description": "برای مرتب‌سازی پروژه خود، ماژول‌های تکمیل شده یا لغو شده را بایگانی کنید. پس از بایگانی می‌توانید آنها را اینجا پیدا کنید." + }, + "sidebar": { + "in_active": "This module isn't active yet.", + "invalid_date": "Invalid date. Please enter valid date." + } + }, + "quick_actions": { + "archive_module": "بایگانی ماژول", + "archive_module_description": "فقط ماژول‌های تکمیل شده یا لغو شده\nمی‌توانند بایگانی شوند.", + "delete_module": "حذف ماژول" + }, + "toast": { + "copy": { + "success": "لینک ماژول در کلیپ‌بورد کپی شد" + }, + "delete": { + "success": "ماژول با موفقیت حذف شد", + "error": "حذف ماژول با خطا مواجه شد" + } + } + }, + + "project_views": { + "empty_state": { + "general": { + "title": "نمایش‌های فیلتر شده پروژه خود را ذخیره کنید. به تعداد نیاز خود ایجاد کنید", + "description": "نمایش‌ها مجموعه‌ای از فیلترهای ذخیره شده هستند که اغلب از آنها استفاده می‌کنید یا می‌خواهید به راحتی به آنها دسترسی داشته باشید. تمام همکاران شما در یک پروژه می‌توانند نمایش‌های همه را ببینند و هر کدام که برای نیازهای آنها مناسب‌تر است را انتخاب کنند.", + "primary_button": { + "text": "ایجاد اولین نمایش خود", + "comic": { + "title": "نمایش‌ها بر اساس ویژگی‌های مورد کاری کار می‌کنند.", + "description": "می‌توانید از اینجا نمایشی با هر تعداد ویژگی و فیلتر که مناسب می‌دانید ایجاد کنید." + } + } + }, + "filter": { + "title": "هیچ نمایش مطابقی یافت نشد", + "description": "هیچ نمایشی با معیارهای جستجو مطابقت ندارد. \n به جای آن یک نمایش جدید ایجاد کنید." + } + } + }, + + "project_page": { + "empty_state": { + "general": { + "title": "یک یادداشت، سند یا پایگاه دانش کامل بنویسید. از گالیله، دستیار هوشمند Plane، برای شروع کمک بگیرید", + "description": "صفحات فضای ثبت افکار در Plane هستند. یادداشت‌های جلسات را بنویسید، به راحتی آنها را فرمت‌بندی کنید، موارد کاری را جاسازی کنید، با استفاده از کتابخانه‌ای از اجزا آنها را چیدمان کنید و همه را در زمینه پروژه خود نگه دارید. برای سرعت بخشیدن به هر سندی، گالیله، هوش مصنوعی Plane را با میانبر یا کلیک یک دکمه فراخوانی کنید.", + "primary_button": { + "text": "ایجاد اولین صفحه خود" + } + }, + "private": { + "title": "هنوز هیچ صفحه خصوصی وجود ندارد", + "description": "افکار خصوصی خود را اینجا نگه دارید. وقتی آماده به اشتراک‌گذاری هستید، تیم فقط یک کلیک فاصله دارد.", + "primary_button": { + "text": "ایجاد اولین صفحه خود" + } + }, + "public": { + "title": "هنوز هیچ صفحه عمومی وجود ندارد", + "description": "صفحات به اشتراک گذاشته شده با همه در پروژه شما را اینجا ببینید.", + "primary_button": { + "text": "ایجاد اولین صفحه خود" + } + }, + "archived": { + "title": "هنوز هیچ صفحه بایگانی شده‌ای وجود ندارد", + "description": "صفحاتی که در دستور کار شما نیستند را بایگانی کنید. وقتی نیاز دارید به آنها دسترسی پیدا کنید." + } + } + }, + + "command_k": { + "empty_state": { + "search": { + "title": "نتیجه‌ای یافت نشد" + } + } + }, + + "issue_relation": { + "empty_state": { + "search": { + "title": "هیچ مورد کاری مطابقی یافت نشد" + }, + "no_issues": { + "title": "هیچ مورد کاری یافت نشد" + } + } + }, + + "issue_comment": { + "empty_state": { + "general": { + "title": "هنوز هیچ نظری وجود ندارد", + "description": "نظرات می‌توانند به عنوان فضایی برای بحث و پیگیری موارد کاری استفاده شوند" + } + } + }, + + "notification": { + "label": "صندوق ورودی", + "page_label": "{workspace} - صندوق ورودی", + "options": { + "mark_all_as_read": "علامت‌گذاری همه به عنوان خوانده شده", + "mark_read": "علامت‌گذاری به عنوان خوانده شده", + "mark_unread": "علامت‌گذاری به عنوان خوانده نشده", + "refresh": "بروزرسانی", + "filters": "فیلترهای صندوق ورودی", + "show_unread": "نمایش خوانده نشده‌ها", + "show_snoozed": "نمایش به تعویق افتاده‌ها", + "show_archived": "نمایش بایگانی شده‌ها", + "mark_archive": "بایگانی", + "mark_unarchive": "خروج از بایگانی", + "mark_snooze": "به تعویق انداختن", + "mark_unsnooze": "لغو تعویق" + }, + "toasts": { + "read": "اعلان به عنوان خوانده شده علامت‌گذاری شد", + "unread": "اعلان به عنوان خوانده نشده علامت‌گذاری شد", + "archived": "اعلان به عنوان بایگانی شده علامت‌گذاری شد", + "unarchived": "اعلان از حالت بایگانی خارج شد", + "snoozed": "اعلان به تعویق افتاد", + "unsnoozed": "تعویق اعلان لغو شد" + }, + "empty_state": { + "detail": { + "title": "برای مشاهده جزئیات انتخاب کنید." + }, + "all": { + "title": "هیچ مورد کاری به شما اختصاص داده نشده است", + "description": "به‌روزرسانی‌های موارد کاری اختصاص داده شده به شما را می‌توانید\nاینجا مشاهده کنید" + }, + "mentions": { + "title": "هیچ مورد کاری به شما اختصاص داده نشده است", + "description": "به‌روزرسانی‌های موارد کاری اختصاص داده شده به شما را می‌توانید\nاینجا مشاهده کنید" + } + }, + "tabs": { + "all": "همه", + "mentions": "اشارات" + }, + "filter": { + "assigned": "اختصاص داده شده به من", + "created": "ایجاد شده توسط من", + "subscribed": "مشترک شده توسط من" + }, + "snooze": { + "1_day": "۱ روز", + "3_days": "۳ روز", + "5_days": "۵ روز", + "1_week": "۱ هفته", + "2_weeks": "۲ هفته", + "custom": "سفارشی" + } + }, + + "active_cycle": { + "empty_state": { + "progress": { + "title": "برای مشاهده پیشرفت چرخه، موارد کاری را به آن اضافه کنید" + }, + "chart": { + "title": "برای مشاهده نمودار کاهش، موارد کاری را به چرخه اضافه کنید." + }, + "priority_issue": { + "title": "موارد کاری با اولویت بالا که در چرخه انجام می‌شوند را در یک نگاه مشاهده کنید." + }, + "assignee": { + "title": "برای مشاهده تقسیم‌بندی کار بر اساس اختصاص‌یافته‌ها، افراد را به موارد کاری اضافه کنید." + }, + "label": { + "title": "برای مشاهده تقسیم‌بندی کار بر اساس برچسب‌ها، برچسب‌ها را به موارد کاری اضافه کنید." + } + } + }, + + "disabled_project": { + "empty_state": { + "inbox": { + "title": "ورودی برای پروژه فعال نشده است.", + "description": "ورودی به شما کمک می‌کند درخواست‌های ورودی به پروژه خود را مدیریت کنید و آنها را به عنوان موارد کاری در گردش کار خود اضافه کنید. برای مدیریت درخواست‌ها، ورودی را از تنظیمات پروژه فعال کنید.", + "primary_button": { + "text": "مدیریت ویژگی‌ها" + } + }, + "cycle": { + "title": "چرخه‌ها برای این پروژه فعال نشده‌اند.", + "description": "کار را به بخش‌های زمانی تقسیم کنید، از مهلت پروژه به عقب کار کنید تا تاریخ‌ها را تعیین کنید و به عنوان یک تیم پیشرفت ملموس داشته باشید. برای شروع استفاده از چرخه‌ها، ویژگی چرخه‌ها را برای پروژه خود فعال کنید.", + "primary_button": { + "text": "مدیریت ویژگی‌ها" + } + }, + "module": { + "title": "ماژول‌ها برای پروژه فعال نشده‌اند.", + "description": "ماژول‌ها بلوک‌های سازنده پروژه شما هستند. برای شروع استفاده از ماژول‌ها، آنها را از تنظیمات پروژه فعال کنید.", + "primary_button": { + "text": "مدیریت ویژگی‌ها" + } + }, + "page": { + "title": "صفحات برای پروژه فعال نشده‌اند.", + "description": "صفحات بلوک‌های سازنده پروژه شما هستند. برای شروع استفاده از صفحات، آنها را از تنظیمات پروژه فعال کنید.", + "primary_button": { + "text": "مدیریت ویژگی‌ها" + } + }, + "view": { + "title": "نمایش‌ها برای پروژه فعال نشده‌اند.", + "description": "نمایش‌ها بلوک‌های سازنده پروژه شما هستند. برای شروع استفاده از نمایش‌ها، آنها را از تنظیمات پروژه فعال کنید.", + "primary_button": { + "text": "مدیریت ویژگی‌ها" + } + } + } + }, + "workspace_draft_issues": { + "draft_an_issue": "پیش‌نویس یک مورد کاری", + "empty_state": { + "title": "موارد کاری نیمه‌تمام و به زودی، نظرات اینجا نمایش داده خواهند شد.", + "description": "برای امتحان کردن، شروع به افزودن یک مورد کاری کنید و آن را نیمه‌کاره رها کنید یا اولین پیش‌نویس خود را در زیر ایجاد کنید. 😉", + "primary_button": { + "text": "ایجاد اولین پیش‌نویس خود" + } + }, + "delete_modal": { + "title": "حذف پیش‌نویس", + "description": "آیا مطمئن هستید که می‌خواهید این پیش‌نویس را حذف کنید؟ این عملیات قابل بازگشت نیست." + }, + "toasts": { + "created": { + "success": "پیش‌نویس ایجاد شد", + "error": "مورد کاری نمی‌توانست ایجاد شود. لطفاً دوباره تلاش کنید." + }, + "deleted": { + "success": "پیش‌نویس حذف شد" + } + } + }, + + "stickies": { + "title": "نکات چسبان شما", + "placeholder": "برای تایپ اینجا کلیک کنید", + "all": "همه نکات چسبان", + "no-data": "یک ایده را یادداشت کنید، یک لحظه الهام را ثبت کنید یا یک فکر را بنویسید. برای شروع یک نکته چسبان اضافه کنید.", + "add": "افزودن نکته چسبان", + "search_placeholder": "جستجو بر اساس عنوان", + "delete": "حذف نکته چسبان", + "delete_confirmation": "آیا مطمئن هستید که می‌خواهید این نکته چسبان را حذف کنید؟", + "empty_state": { + "simple": "یک ایده را یادداشت کنید، یک لحظه الهام را ثبت کنید یا یک فکر را بنویسید. برای شروع یک نکته چسبان اضافه کنید.", + "general": { + "title": "نکات چسبان یادداشت‌ها و کارهای سریع شما هستند که در حال حرکت می‌نویسید.", + "description": "افکار و ایده‌های خود را با ایجاد نکات چسبانی که می‌توانید در هر زمان و از هر مکان به آنها دسترسی داشته باشید، به راحتی ثبت کنید.", + "primary_button": { + "text": "افزودن نکته چسبان" + } + }, + "search": { + "title": "این با هیچ یک از نکات چسبان شما مطابقت ندارد.", + "description": "یک عبارت دیگر را امتحان کنید یا به ما اطلاع دهید\nاگر مطمئن هستید که جستجوی شما درست است.", + "primary_button": { + "text": "افزودن نکته چسبان" + } + } + }, + "toasts": { + "errors": { + "wrong_name": "نام نکته چسبان نمی‌تواند بیشتر از ۱۰۰ کاراکتر باشد.", + "already_exists": "از قبل یک نکته چسبان بدون توضیحات وجود دارد" + }, + "created": { + "title": "نکته چسبان ایجاد شد", + "message": "نکته چسبان با موفقیت ایجاد شد" + }, + "not_created": { + "title": "نکته چسبان ایجاد نشد", + "message": "نکته چسبان نمی‌توانست ایجاد شود" + }, + "updated": { + "title": "نکته چسبان به‌روزرسانی شد", + "message": "نکته چسبان با موفقیت به‌روزرسانی شد" + }, + "not_updated": { + "title": "نکته چسبان به‌روزرسانی نشد", + "message": "نکته چسبان نمی‌توانست به‌روزرسانی شود" + }, + "removed": { + "title": "نکته چسبان حذف شد", + "message": "نکته چسبان با موفقیت حذف شد" + }, + "not_removed": { + "title": "نکته چسبان حذف نشد", + "message": "نکته چسبان نمی‌توانست حذف شود" + } + } + }, + + "role_details": { + "guest": { + "title": "مهمان", + "description": "اعضای خارجی سازمان‌ها می‌توانند به عنوان مهمان دعوت شوند." + }, + "member": { + "title": "عضو", + "description": "توانایی خواندن، نوشتن، ویرایش و حذف موجودیت‌ها در پروژه‌ها، چرخه‌ها و ماژول‌ها" + }, + "admin": { + "title": "مدیر", + "description": "همه مجوزها در فضای کاری روی true تنظیم شده‌اند." + } + }, + + "user_roles": { + "product_or_project_manager": "مدیر محصول / پروژه", + "development_or_engineering": "توسعه / مهندسی", + "founder_or_executive": "بنیانگذار / اجرایی", + "freelancer_or_consultant": "فریلنسر / مشاور", + "marketing_or_growth": "بازاریابی / رشد", + "sales_or_business_development": "فروش / توسعه کسب و کار", + "support_or_operations": "پشتیبانی / عملیات", + "student_or_professor": "دانشجو / استاد", + "human_resources": "منابع انسانی", + "other": "سایر" + }, + + "importer": { + "github": { + "title": "گیت‌هاب", + "description": "موارد کاری را از مخازن گیت‌هاب وارد و همگام‌سازی کنید." + }, + "jira": { + "title": "جیرا", + "description": "موارد کاری و اپیک‌ها را از پروژه‌ها و اپیک‌های جیرا وارد کنید." + } + }, + + "exporter": { + "csv": { + "title": "CSV", + "description": "موارد کاری را به یک فایل CSV صادر کنید.", + "short_description": "صادر به صورت csv" + }, + "excel": { + "title": "اکسل", + "description": "موارد کاری را به یک فایل اکسل صادر کنید.", + "short_description": "صادر به صورت excel" + }, + "xlsx": { + "title": "اکسل", + "description": "موارد کاری را به یک فایل اکسل صادر کنید.", + "short_description": "صادر به صورت excel" + }, + "json": { + "title": "JSON", + "description": "موارد کاری را به یک فایل JSON صادر کنید.", + "short_description": "صادر به صورت json" + } + }, + "default_global_view": { + "all_issues": "همه موارد کاری", + "assigned": "اختصاص داده شده", + "created": "ایجاد شده", + "subscribed": "مشترک شده" + }, + + "themes": { + "theme_options": { + "system_preference": { + "label": "ترجیح سیستم" + }, + "light": { + "label": "روشن" + }, + "dark": { + "label": "تاریک" + }, + "light_contrast": { + "label": "کنتراست بالا روشن" + }, + "dark_contrast": { + "label": "کنتراست بالا تاریک" + }, + "custom": { + "label": "تم سفارشی" + } + } + }, + "project_modules": { + "status": { + "backlog": "پیش‌نویس", + "planned": "برنامه‌ریزی شده", + "in_progress": "در حال انجام", + "paused": "مکث شده", + "completed": "تکمیل شده", + "cancelled": "لغو شده" + }, + "layout": { + "list": "طرح لیست", + "board": "طرح گالری", + "timeline": "طرح خط زمانی" + }, + "order_by": { + "name": "نام", + "progress": "پیشرفت", + "issues": "تعداد موارد کاری", + "due_date": "تاریخ سررسید", + "created_at": "تاریخ ایجاد", + "manual": "دستی" + } + }, + + "cycle": { + "label": "{count, plural, one {چرخه} other {چرخه‌ها}}", + "no_cycle": "بدون چرخه" + }, + + "module": { + "label": "{count, plural, one {ماژول} other {ماژول‌ها}}", + "no_module": "بدون ماژول" + } +} \ No newline at end of file diff --git a/packages/i18n/src/store/index.ts b/packages/i18n/src/store/index.ts index c711e0e63a3..93ac6f25147 100644 --- a/packages/i18n/src/store/index.ts +++ b/packages/i18n/src/store/index.ts @@ -163,8 +163,10 @@ export class TranslationStore { return import("../locales/ua/translations.json"); case "pl": return import("../locales/pl/translations.json"); - case "ko": - return import("../locales/ko/translations.json"); + case "ko": + return import("../locales/ko/translations.json"); + case "fa": + return import("../locales/fa/translations.json"); default: throw new Error(`Unsupported language: ${language}`); } diff --git a/packages/i18n/src/types/language.ts b/packages/i18n/src/types/language.ts index 9e345064a9e..90144948326 100644 --- a/packages/i18n/src/types/language.ts +++ b/packages/i18n/src/types/language.ts @@ -1,4 +1,4 @@ -export type TLanguage = "en" | "fr" | "es" | "ja" | "zh-CN" | "zh-TW" | "ru" | "it" | "cs" | "sk" | "de" | "ua" | "pl" | "ko"; +export type TLanguage = "en" | "fr" | "es" | "ja" | "zh-CN" | "zh-TW" | "ru" | "it" | "cs" | "sk" | "de" | "ua" | "pl" | "ko" | "fa"; export interface ILanguageOption { label: string; diff --git a/packages/ui/src/button/toggle-switch.tsx b/packages/ui/src/button/toggle-switch.tsx index c779cb4360e..a3a3933b498 100644 --- a/packages/ui/src/button/toggle-switch.tsx +++ b/packages/ui/src/button/toggle-switch.tsx @@ -40,9 +40,9 @@ const ToggleSwitch: React.FC = (props) => { "translate-x-5 bg-white": value, "h-2 w-2": size === "sm", "h-3 w-3": size === "md", - "translate-x-3": value && size === "sm", - "translate-x-4": value && size === "md", - "translate-x-0.5 bg-custom-background-90": !value, + "-translate-x-3": value && size === "sm", + "-translate-x-4": value && size === "md", + "-translate-x-0.5 bg-custom-background-90": !value, "cursor-not-allowed bg-custom-background-90": disabled, } )} diff --git a/web/.gitignore b/web/.gitignore index 7d7c7a5f2d0..dc3c454e3d1 100644 --- a/web/.gitignore +++ b/web/.gitignore @@ -1,3 +1,5 @@ # Sentry Config File .env.sentry-build-plugin +.next +node_modules diff --git a/web/app/[workspaceSlug]/(projects)/analytics/page.tsx b/web/app/[workspaceSlug]/(projects)/analytics/page.tsx index 8875e1465f3..472c103acbe 100644 --- a/web/app/[workspaceSlug]/(projects)/analytics/page.tsx +++ b/web/app/[workspaceSlug]/(projects)/analytics/page.tsx @@ -61,7 +61,7 @@ const AnalyticsPage = observer(() => { > {t(tab.i18n_title)}
)} diff --git a/web/app/[workspaceSlug]/(projects)/extended-project-sidebar.tsx b/web/app/[workspaceSlug]/(projects)/extended-project-sidebar.tsx index c79a63237ed..e54af337c6e 100644 --- a/web/app/[workspaceSlug]/(projects)/extended-project-sidebar.tsx +++ b/web/app/[workspaceSlug]/(projects)/extended-project-sidebar.tsx @@ -108,12 +108,12 @@ export const ExtendedProjectSidebar = observer(() => {
@@ -134,7 +134,7 @@ export const ExtendedProjectSidebar = observer(() => { )}
-
+
{
diff --git a/web/app/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx b/web/app/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx index 49fa5d2e5a1..ba7594bb70b 100644 --- a/web/app/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx +++ b/web/app/[workspaceSlug]/(projects)/profile/[userId]/mobile-header.tsx @@ -122,7 +122,7 @@ export const ProfileIssuesMobileHeader = observer(() => { customButton={
{t("common.layout")} - +
} customButtonClassName="flex flex-center text-custom-text-200 text-sm" @@ -144,14 +144,14 @@ export const ProfileIssuesMobileHeader = observer(() => { ); })} -
+
{t("common.filters")} - +
} isFiltersApplied={isIssueFilterActive(issueFilters)} @@ -170,14 +170,14 @@ export const ProfileIssuesMobileHeader = observer(() => { />
-
+
{t("common.display")} - +
} > diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx index 381b567dfd9..f0682166661 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/[cycleId]/page.tsx @@ -68,7 +68,7 @@ const CycleDetailPage = observer(() => { {cycleId && !isSidebarCollapsed && (
{ ... @@ -223,7 +223,7 @@ export const CycleIssuesHeader: React.FC = observer(() => {
} - className="ml-1.5 flex-shrink-0 truncate" + className="mr-1.5 flex-shrink-0 truncate" placement="bottom-start" > {currentProjectCycleIds?.map((cycleId) => )} diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx index 31eb5b249fd..33223216871 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/cycles/(detail)/mobile-header.tsx @@ -152,14 +152,14 @@ export const CycleIssuesMobileHeader = () => { ))} -
+
{t("common.filters")} - + } isFiltersApplied={isIssueFilterActive(issueFilters)} @@ -180,14 +180,14 @@ export const CycleIssuesMobileHeader = () => { />
-
+
{t("common.display")} - + } > @@ -208,7 +208,7 @@ export const CycleIssuesMobileHeader = () => { setAnalyticsModal(true)} - className="flex flex-grow justify-center text-custom-text-200 text-sm border-l border-custom-border-200" + className="flex flex-grow justify-center text-custom-text-200 text-sm border-r border-custom-border-200" > {t("common.analytics")} diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx index 2200b31f123..18b414f3348 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/draft-issues/header.tsx @@ -118,7 +118,7 @@ export const ProjectDraftIssueHeader: FC = observer(() => { ) : null}
-
+
handleLayoutChange(layout)} diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx index 6b86cd88d95..6da8e20744c 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/issues/(list)/mobile-header.tsx @@ -118,7 +118,7 @@ export const ProjectIssuesMobileHeader = observer(() => { customButton={
{t("common.layout")} - +
} customButtonClassName="flex flex-grow justify-center text-custom-text-200 text-sm" @@ -137,14 +137,14 @@ export const ProjectIssuesMobileHeader = observer(() => { ))} -
+
{t("common.filters")} - + } isFiltersApplied={isIssueFilterActive(issueFilters)} @@ -165,14 +165,14 @@ export const ProjectIssuesMobileHeader = observer(() => { />
-
+
{t("common.display")} - + } > @@ -192,7 +192,7 @@ export const ProjectIssuesMobileHeader = observer(() => { diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx index d35f3146549..3867abb041d 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/[moduleId]/page.tsx @@ -69,7 +69,7 @@ const ModuleIssuesPage = observer(() => { {moduleId && !isSidebarCollapsed && (
{ ... @@ -218,7 +218,7 @@ export const ModuleIssuesHeader: React.FC = observer(() => {
} - className="ml-1.5 flex-shrink-0" + className="mr-1.5 flex-shrink-0" placement="bottom-start" > {projectModuleIds?.map((moduleId) => )} diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx index 1f000bae2e4..4e24c07a1d4 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/modules/(detail)/mobile-header.tsx @@ -133,14 +133,14 @@ export const ModuleIssuesMobileHeader = observer(() => { ))} -
+
Filters - + } isFiltersApplied={isIssueFilterActive(issueFilters)} @@ -161,14 +161,14 @@ export const ModuleIssuesMobileHeader = observer(() => { />
-
+
Display - + } > @@ -189,7 +189,7 @@ export const ModuleIssuesMobileHeader = observer(() => { diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/(with-sidebar)/layout.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/(with-sidebar)/layout.tsx index 221ecf44288..4cd779ba5f3 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/(with-sidebar)/layout.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/settings/(with-sidebar)/layout.tsx @@ -17,7 +17,7 @@ const ProjectSettingLayout: FC = (props) => { <> } />
-
+
diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx index cc9a8fff6eb..66cea9f0bd7 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(detail)/[viewId]/header.tsx @@ -172,7 +172,7 @@ export const ProjectViewIssuesHeader: React.FC = observer(() => { {viewDetails?.name && truncateText(viewDetails.name, 40)} } - className="ml-1.5" + className="mr-1.5" placement="bottom-start" > {projectViewIds?.map((viewId) => { diff --git a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx index 608ed5dff17..4de9e7ee909 100644 --- a/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx +++ b/web/app/[workspaceSlug]/(projects)/projects/(detail)/[projectId]/views/(list)/mobile-header.tsx @@ -21,7 +21,7 @@ export const ViewMobileHeader = observer(() => { return ( <>
- + { isMobile /> -
+
} title="Filters" @@ -41,7 +41,7 @@ export const ViewMobileHeader = observer(() => { menuButton={ Filters - + } > diff --git a/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/layout.tsx b/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/layout.tsx index 6dfe44ed66c..747def4d0ef 100644 --- a/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/layout.tsx +++ b/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/layout.tsx @@ -35,7 +35,7 @@ const WorkspaceSettingLayout: FC = observer((props) => ) : ( <> -
+
diff --git a/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/members/page.tsx b/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/members/page.tsx index 8be7a9d22f5..48c1a677bd2 100644 --- a/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/members/page.tsx +++ b/web/app/[workspaceSlug]/(projects)/settings/(with-sidebar)/members/page.tsx @@ -118,7 +118,7 @@ const WorkspaceMembersSettingsPage = observer(() => { )} -
+
{ <>
{ ref={ref} hasError={Boolean(errors.email)} placeholder={t("auth.common.email.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 placeholder:text-onboarding-text-400" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 placeholder:text-onboarding-text-400" autoComplete="on" disabled={resendTimerCode > 0} /> diff --git a/web/app/accounts/reset-password/page.tsx b/web/app/accounts/reset-password/page.tsx index e0230f205f5..44e7c33d7a4 100644 --- a/web/app/accounts/reset-password/page.tsx +++ b/web/app/accounts/reset-password/page.tsx @@ -155,7 +155,7 @@ const ResetPasswordPage = observer(() => { value={resetFormData.email} //hasError={Boolean(errors.email)} placeholder={t("auth.common.email.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 text-onboarding-text-400 cursor-not-allowed" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 text-onboarding-text-400 cursor-not-allowed" autoComplete="on" disabled /> @@ -173,7 +173,7 @@ const ResetPasswordPage = observer(() => { onChange={(e) => handleFormChange("password", e.target.value)} //hasError={Boolean(errors.password)} placeholder={t("auth.common.password.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 placeholder:text-onboarding-text-400" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 placeholder:text-onboarding-text-400" minLength={8} onFocus={() => setIsPasswordInputFocused(true)} onBlur={() => setIsPasswordInputFocused(false)} @@ -182,12 +182,12 @@ const ResetPasswordPage = observer(() => { /> {showPassword.password ? ( handleShowPassword("password")} /> ) : ( handleShowPassword("password")} /> )} @@ -205,18 +205,18 @@ const ResetPasswordPage = observer(() => { value={resetFormData.confirm_password} onChange={(e) => handleFormChange("confirm_password", e.target.value)} placeholder={t("auth.common.password.confirm_password.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 placeholder:text-onboarding-text-400" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 placeholder:text-onboarding-text-400" onFocus={() => setIsRetryPasswordInputFocused(true)} onBlur={() => setIsRetryPasswordInputFocused(false)} /> {showPassword.retypePassword ? ( handleShowPassword("retypePassword")} /> ) : ( handleShowPassword("retypePassword")} /> )} diff --git a/web/app/accounts/set-password/page.tsx b/web/app/accounts/set-password/page.tsx index 5bfa7c08f5f..1b2682a9f9d 100644 --- a/web/app/accounts/set-password/page.tsx +++ b/web/app/accounts/set-password/page.tsx @@ -149,7 +149,7 @@ const SetPasswordPage = observer(() => { value={user?.email} //hasError={Boolean(errors.email)} placeholder={t("auth.common.email.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 text-onboarding-text-400 cursor-not-allowed" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 text-onboarding-text-400 cursor-not-allowed" autoComplete="on" disabled /> @@ -167,7 +167,7 @@ const SetPasswordPage = observer(() => { onChange={(e) => handleFormChange("password", e.target.value)} //hasError={Boolean(errors.password)} placeholder={t("auth.common.password.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 placeholder:text-onboarding-text-400" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 placeholder:text-onboarding-text-400" minLength={8} onFocus={() => setIsPasswordInputFocused(true)} onBlur={() => setIsPasswordInputFocused(false)} @@ -176,12 +176,12 @@ const SetPasswordPage = observer(() => { /> {showPassword.password ? ( handleShowPassword("password")} /> ) : ( handleShowPassword("password")} /> )} @@ -199,18 +199,18 @@ const SetPasswordPage = observer(() => { value={passwordFormData.confirm_password} onChange={(e) => handleFormChange("confirm_password", e.target.value)} placeholder={t("auth.common.password.confirm_password.placeholder")} - className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pr-12 placeholder:text-onboarding-text-400" + className="h-[46px] w-full border border-onboarding-border-100 !bg-onboarding-background-200 pl-12 placeholder:text-onboarding-text-400" onFocus={() => setIsRetryPasswordInputFocused(true)} onBlur={() => setIsRetryPasswordInputFocused(false)} /> {showPassword.retypePassword ? ( handleShowPassword("retypePassword")} /> ) : ( handleShowPassword("retypePassword")} /> )} diff --git a/web/app/create-workspace/page.tsx b/web/app/create-workspace/page.tsx index 8425320345a..9148ebae9aa 100644 --- a/web/app/create-workspace/page.tsx +++ b/web/app/create-workspace/page.tsx @@ -62,20 +62,20 @@ const CreateWorkspacePage = observer(() => {
-
+
Plane logo
-
+
{currentUser?.email}
-
+
{isWorkspaceCreationDisabled ? (
Workspace creation disabled diff --git a/web/app/installations/[provider]/page.tsx b/web/app/installations/[provider]/page.tsx index 218d7dee24c..b194f8a02aa 100644 --- a/web/app/installations/[provider]/page.tsx +++ b/web/app/installations/[provider]/page.tsx @@ -67,7 +67,7 @@ export default function AppPostInstallation() { }, [state, installation_id, provider, code]); return ( -
+

Installing. Please wait...

diff --git a/web/app/invitations/page.tsx b/web/app/invitations/page.tsx index df6befa6869..fa7baa2949d 100644 --- a/web/app/invitations/page.tsx +++ b/web/app/invitations/page.tsx @@ -134,22 +134,22 @@ const UserInvitationsPage = observer(() => {
-
+
Plane logo
-
+
{currentUser?.email}
{invitations ? ( invitations.length > 0 ? ( -
+
{t("we_see_that_someone_has_invited_you_to_join_a_workspace")}

{t("join_a_workspace")}

@@ -209,7 +209,7 @@ const UserInvitationsPage = observer(() => {
) : ( -
+
+ + { /> {showPassword?.oldPassword ? ( handleShowPassword("oldPassword")} /> ) : ( handleShowPassword("oldPassword")} /> )} @@ -175,12 +175,12 @@ const SecurityPage = observer(() => { /> {showPassword?.password ? ( handleShowPassword("password")} /> ) : ( handleShowPassword("password")} /> )} @@ -215,12 +215,12 @@ const SecurityPage = observer(() => { /> {showPassword?.confirmPassword ? ( handleShowPassword("confirmPassword")} /> ) : ( handleShowPassword("confirmPassword")} /> )} diff --git a/web/app/profile/sidebar.tsx b/web/app/profile/sidebar.tsx index 07fd746c640..df2cbcf69db 100644 --- a/web/app/profile/sidebar.tsx +++ b/web/app/profile/sidebar.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import { usePathname } from "next/navigation"; // icons import { - ChevronLeft, + ChevronRight, LogOut, MoveLeft, Plus, @@ -125,10 +125,10 @@ export const ProfileLayoutSidebar = observer(() => { return (
@@ -139,7 +139,7 @@ export const ProfileLayoutSidebar = observer(() => { }`} > - + {!sidebarCollapsed && (

{t("profile_settings")}

@@ -159,7 +159,7 @@ export const ProfileLayoutSidebar = observer(() => { @@ -188,7 +188,7 @@ export const ProfileLayoutSidebar = observer(() => {
{workspacesList.map((workspace) => ( @@ -213,7 +213,7 @@ export const ProfileLayoutSidebar = observer(() => { {workspace?.logo_url && workspace.logo_url !== "" ? ( Workspace Logo ) : ( @@ -234,7 +234,7 @@ export const ProfileLayoutSidebar = observer(() => { @@ -275,7 +275,7 @@ export const ProfileLayoutSidebar = observer(() => {
- + {
- + { alt="r-1" /> - + = (props) => { id="editor-ai-response" initialValue={response} containerClassName="!p-0 border-none" - editorClassName="!pl-0" + editorClassName="!pr-0" workspaceId={workspaceId} workspaceSlug={workspaceSlug} /> diff --git a/web/ce/components/pages/editor/ai/menu.tsx b/web/ce/components/pages/editor/ai/menu.tsx index cef586a7712..f7ba203071a 100644 --- a/web/ce/components/pages/editor/ai/menu.tsx +++ b/web/ce/components/pages/editor/ai/menu.tsx @@ -1,7 +1,7 @@ "use client"; import React, { RefObject, useEffect, useRef, useState } from "react"; -import { ChevronRight, CornerDownRight, LucideIcon, RefreshCcw, Sparkles, TriangleAlert } from "lucide-react"; +import { ChevronLeft, CornerDownRight, LucideIcon, RefreshCcw, Sparkles, TriangleAlert } from "lucide-react"; // plane editor import { EditorRefApi } from "@plane/editor"; // plane ui @@ -173,7 +173,7 @@ export const EditorAIMenu: React.FC = (props) => { {item.label} - = (props) => { id="editor-ai-response" initialValue={response} containerClassName="!p-0 border-none" - editorClassName="!pl-0" + editorClassName="!pr-0" workspaceId={workspaceId} workspaceSlug={workspaceSlug} /> @@ -262,7 +262,7 @@ export const EditorAIMenu: React.FC = (props) => {

)}
-
+
{TONES_LIST.map((tone) => ( )} diff --git a/web/core/components/analytics/project-modal/modal.tsx b/web/core/components/analytics/project-modal/modal.tsx index fb45d6aa9dd..5a62327a53e 100644 --- a/web/core/components/analytics/project-modal/modal.tsx +++ b/web/core/components/analytics/project-modal/modal.tsx @@ -39,13 +39,13 @@ export const ProjectAnalyticsModal: React.FC = observer((props) => {
= ({ defaultAnalytics }) => { }} />
{group.state_group}
- + {group.state_count}
@@ -42,7 +42,7 @@ export const AnalyticsDemand: React.FC = ({ defaultAnalytics }) => {
= ({ users, title, emptyState
{user?.display_name
diff --git a/web/core/components/api-token/modal/generated-token-details.tsx b/web/core/components/api-token/modal/generated-token-details.tsx index da833cefb3e..97bbb3484a8 100644 --- a/web/core/components/api-token/modal/generated-token-details.tsx +++ b/web/core/components/api-token/modal/generated-token-details.tsx @@ -42,7 +42,7 @@ export const GeneratedTokenDetails: React.FC = (props) => { onClick={() => copyApiToken(tokenDetails.token ?? "")} className="mt-4 flex truncate w-full items-center justify-between rounded-md border-[0.5px] border-custom-border-200 px-3 py-2 text-sm font-medium outline-none" > - {tokenDetails.token} + {tokenDetails.token} diff --git a/web/core/components/api-token/token-list-item.tsx b/web/core/components/api-token/token-list-item.tsx index 958fc81d09b..435c715169b 100644 --- a/web/core/components/api-token/token-list-item.tsx +++ b/web/core/components/api-token/token-list-item.tsx @@ -30,7 +30,7 @@ export const ApiTokenListItem: React.FC = (props) => { @@ -40,7 +40,7 @@ export const ApiTokenListItem: React.FC = (props) => { {token.is_active ? "Active" : "Expired"} diff --git a/web/core/components/automation/select-month-modal.tsx b/web/core/components/automation/select-month-modal.tsx index b35b9885ee4..46b10efc6b0 100644 --- a/web/core/components/automation/select-month-modal.tsx +++ b/web/core/components/automation/select-month-modal.tsx @@ -102,7 +102,7 @@ export const SelectMonthModal: React.FC = ({ type, initialValues, isOpen, min={1} max={12} /> - Months + Months
)} /> @@ -136,7 +136,7 @@ export const SelectMonthModal: React.FC = ({ type, initialValues, isOpen, min={1} max={12} /> - Months + Months
)} /> diff --git a/web/core/components/common/filters/created-by.tsx b/web/core/components/common/filters/created-by.tsx index 6bc75047bd0..6456e50a03f 100644 --- a/web/core/components/common/filters/created-by.tsx +++ b/web/core/components/common/filters/created-by.tsx @@ -86,7 +86,7 @@ export const FilterCreatedBy: React.FC = observer((props: Props) => { {sortedOptions.length > 5 && ( @@ -79,12 +79,12 @@ export const NewEmptyState: React.FC = ({ isHovered && (comicBox.direction === "right" ? (
-
-
+
+

@@ -94,9 +94,9 @@ export const NewEmptyState: React.FC = ({

) : ( -
-
-
+
+
+

diff --git a/web/core/components/core/content-overflow-HOC.tsx b/web/core/components/core/content-overflow-HOC.tsx index f8089c34bc0..c2c43780f54 100644 --- a/web/core/components/core/content-overflow-HOC.tsx +++ b/web/core/components/core/content-overflow-HOC.tsx @@ -125,7 +125,7 @@ export const ContentOverflowWrapper = observer((props: IContentOverflowWrapper) {containerHeight > maxHeight && (
= ({ title, handleClose, isOpen, o
After: {renderFormattedDate(watch("date1"))} - Before: + Before: {!isInvalid && {renderFormattedDate(watch("date2"))}}
)} diff --git a/web/core/components/core/image-picker-popover.tsx b/web/core/components/core/image-picker-popover.tsx index b3bf735887b..f77bb526aa8 100644 --- a/web/core/components/core/image-picker-popover.tsx +++ b/web/core/components/core/image-picker-popover.tsx @@ -160,7 +160,7 @@ export const ImagePickerPopover: React.FC = observer((props) => { {isOpen && (
= observer((props) => { {image.alt_description}
))} @@ -271,7 +271,7 @@ export const ImagePickerPopover: React.FC = observer((props) => { {`Default
))} @@ -306,7 +306,7 @@ export const ImagePickerPopover: React.FC = observer((props) => { > diff --git a/web/core/components/core/modals/bulk-delete-issues-modal.tsx b/web/core/components/core/modals/bulk-delete-issues-modal.tsx index 642a59bbc72..892afeadef5 100644 --- a/web/core/components/core/modals/bulk-delete-issues-modal.tsx +++ b/web/core/components/core/modals/bulk-delete-issues-modal.tsx @@ -170,12 +170,12 @@ export const BulkDeleteIssuesModal: React.FC = observer((props) => { >