feat(projects): add Projects page and component modals + translations

This commit is contained in:
2026-03-15 02:06:41 +08:00
parent 0dddaa8185
commit 501e6c7ed2
7 changed files with 755 additions and 57 deletions

View File

@@ -4,10 +4,20 @@ export const fa = {
logoutToast: "با موفقیت خارج شدید!",
confirmLogoutTitle: "تایید خروج",
confirmLogoutMessage: "آیا مطمئن هستید که می‌خواهید از حساب خود خارج شوید؟",
confirmLeave: "تغییرات ذخیره نشده‌ای دارید. آیا مطمئن هستید که می‌خواهید خارج شوید؟",
cancel: "لغو",
save: "ذخیره",
lightMode: "حالت روشن",
darkMode: "حالت تاریک",
actions: {
create: "ایجاد",
view: "مشاهده",
edit: "ویرایش",
delete: "حذف",
cancel: "لغو",
},
login: {
welcome: (title: string = "Qlockifiy") => `به ${title} خوش آمدید`,
enterPassword: "رمز عبور خود را وارد کنید",
@@ -111,10 +121,10 @@ export const fa = {
workspace: {
title: "مدیریت ورک‌اسپیس‌ها",
createNew: "ایجاد فضای کاری جدید",
createNew: "ایجاد ورک‌اسپیس جدید",
manage: "مدیریت ورک‌اسپیس‌ها",
nameLabel: "نام فضای کاری",
namePlaceholder: "نام فضای کاری را وارد کنید",
nameLabel: "عنوان",
namePlaceholder: "نام ورک‌اسپیس را وارد کنید",
descriptionLabel: "توضیحات",
descriptionPlaceholder: "توضیحات (اختیاری)",
searchMemberPlaceholder: "جستجو با موبایل دقیق (مثلا 09123456789)",
@@ -129,17 +139,14 @@ export const fa = {
submit: "ایجاد",
cancel: "لغو",
loading: "در حال بارگذاری...",
confirmDelete: "آیا از حذف این فضای کاری اطمینان دارید؟",
deleteError: "خطا در حذف فضای کاری",
confirmDelete: "آیا از حذف این ورک‌اسپیس اطمینان دارید؟",
deleteError: "خطا در حذف ورک‌اسپیس",
subtitle: "ورک‌اسپیس‌های خود را مدیریت کنید",
noDescription: "بدون توضیحات",
view: "مشاهده",
edit: "ویرایش",
delete: "حذف",
emptyState: "شما در هیچ فضای کاری عضو نیستید.",
createTitle: "ایجاد فضای کاری",
editTitle: "ویرایش فضای کاری",
detailTitle: "جزئیات فضای کاری",
emptyState: "شما در هیچ ورک‌اسپیس عضو نیستید.",
createTitle: "ایجاد ورک‌اسپیس",
editTitle: "ویرایش ورک‌اسپیس",
detailTitle: "جزئیات ورک‌اسپیس",
save: "ذخیره",
create: "ایجاد",
back: "بازگشت به ورک‌اسپیس‌ها",
@@ -150,43 +157,40 @@ export const fa = {
member: "عضو",
guest: "مهمان",
},
createdSuccess: "فضای کاری با موفقیت ایجاد شد",
updatedSuccess: "فضای کاری با موفقیت ویرایش شد",
fetchError: "خطا در دریافت اطلاعات فضای کاری",
createdSuccess: "ورک‌اسپیس با موفقیت ایجاد شد",
updatedSuccess: "ورک‌اسپیس با موفقیت ویرایش شد",
fetchError: "خطا در دریافت اطلاعات ورک‌اسپیس",
remove: "حذف",
noUsersFound: "کاربری یافت نشد",
selectRole: "انتخاب نقش",
add: "افزودن",
searchPlaceholder: "جستوجوی ورک‌اسپیس‌ها...",
orderByUpdatedDesc: "آخرین ویرایش",
orderByCreatedDesc: "جدیدترین",
orderByCreatedAsc: "قدیمی‌ترین",
orderByName: "نام (الفبایی)",
deleteSuccess: "فضای کاری با موفقیت حذف شد",
deleteTitle: "حذف فضای کاری",
deleteWarning: "برای تأیید حذف، لطفاً نام فضای کاری را وارد کنید:",
deleteSuccess: "ورک‌اسپیس با موفقیت حذف شد",
deleteTitle: "حذف ورک‌اسپیس",
deleteWarning: "برای تأیید حذف، لطفاً نام ورک‌اسپیس را وارد کنید:",
members: "اعضا",
searchUser: "جستجوی کاربر با شماره موبایل",
searching: "در حال جستجو...",
noMembers: "عضوی یافت نشد.",
removeMemberTitle: "حذف عضو",
confirmDeleteTitle: "حذف عضو",
confirmDeleteMessage: "آیا مطمئن هستید که می‌خواهید این عضو را از فضای کاری حذف کنید؟",
confirmDeleteMessage: "آیا مطمئن هستید که می‌خواهید این عضو را از ورک‌اسپیس حذف کنید؟",
successCreate: "ورک‌اسپیس با موفقیت ایجاد شد.",
toast: {
successCreate: "فضای کاری با موفقیت ساخته شد.",
successUpdate: "فضای کاری با موفقیت به‌روزرسانی شد.",
errorUpdate: "به‌روزرسانی فضای کاری با خطا مواجه شد.",
successAdd: "کاربر جدید با موفقیت به فضای کاری افزوده شد.",
successCreate: "ورک‌اسپیس با موفقیت ساخته شد.",
errorCreate: "ایجاد ورک‌اسپیس ناموفق بود.",
successUpdate: "ورک‌اسپیس با موفقیت به‌روزرسانی شد.",
errorUpdate: "به‌روزرسانی ورک‌اسپیس با خطا مواجه شد.",
successAdd: "کاربر جدید با موفقیت به ورک‌اسپیس افزوده شد.",
errorAdd: "افزودن کاربر با خطا مواجه شد.",
successRemove: "کاربر با موفقیت از فضای کاری حذف شد.",
successRemove: "کاربر با موفقیت از ورک‌اسپیس حذف شد.",
errorRemove: "حذف کاربر با خطا مواجه شد.",
successRole: "نقش کاربر با موفقیت تغییر کرد.",
errorRole: "تغییر نقش کاربر با خطا مواجه شد.",
errorLoad: "دریافت اطلاعات فضای کاری با خطا مواجه شد.",
errorLoad: "دریافت اطلاعات ورک‌اسپیس با خطا مواجه شد.",
cannotAddSelf: "شما به‌صورت خودکار مالک هستید.",
},
errorCreate: "ایجاد فضای کاری ناموفق بود.",
successCreate: "فضای کاری با موفقیت ایجاد شد.",
onlyNumbersAllowed: "برای شماره موبایل فقط مجاز به وارد کردن عدد هستید.",
},
clients: {
@@ -198,7 +202,7 @@ export const fa = {
noClientsSearch: "لطفاً عبارت جستجو را تغییر دهید.",
noClientsAdd: "برای شروع اولین مشتری خود را اضافه کنید.",
addedOn: "تاریخ افزودن",
selectWorkspace: "لطفاً ابتدا یک فضای کاری انتخاب کنید.",
selectWorkspace: "لطفاً ابتدا یک ورک‌اسپیس انتخاب کنید.",
modalTitle: "ایجاد مشتری جدید",
clientName: "نام مشتری",
clientNamePlaceholder: "مثال: شرکت الف",
@@ -232,7 +236,35 @@ export const fa = {
sidebar: {
workspaces: 'ورک‌اسپیس‌ها',
clients: 'مشتریان',
projects: "پروژه‌ها",
expand: 'باز کردن',
collapse: 'جمع کردن',
},
ordering: {
createdAtDesc: "جدیدترین",
createdAt: "قدیمی‌ترین",
updatedAtDesc: "اخیراً بروزرسانی شده",
name: "نام (صعودی)",
nameDesc: "نام (نزولی)",
},
projects: {
title: "پروژه‌ها",
description: (workspaceName: string) => `مدیریت پروژه‌ها برای ${workspaceName}`,
active: "پروژه‌های فعال",
archived: "پروژه‌های آرشیو شده",
createNew: "ایجاد پروژه جدید",
searchPlaceholder: "جستجوی پروژه‌ها...",
loading: "در حال بارگذاری...",
client: "مشتری",
noClient: "بدون مشتری",
emptyState: "پروژه‌ای یافت نشد",
deleteTitle: "حذف پروژه",
deleteWarning: "برای تایید حذف، لطفاً نام پروژه را تایپ کنید:",
deleteSuccess: "پروژه با موفقیت حذف شد",
deleteError: "خطا در حذف پروژه",
cancel: "انصراف",
},
}