From b6a98b423fafac5adff8cbdd2a31a9b5dcf4eff4 Mon Sep 17 00:00:00 2001 From: ingen Date: Thu, 4 Jul 2024 11:18:58 +0330 Subject: [PATCH 1/2] feat: add persian (farsi) language --- Modules/Category/lang/fa/categories.php | 24 ++++++++++++++ Modules/Category/lang/fa/text.php | 15 +++++++++ Modules/Post/lang/fa/posts.php | 25 +++++++++++++++ Modules/Post/lang/fa/text.php | 15 +++++++++ Modules/Tag/lang/fa/text.php | 15 +++++++++ config/app.php | 1 + lang/fa/labels.php | 1 + lang/fa/validation.php | 42 ++++++++++++++++--------- 8 files changed, 124 insertions(+), 14 deletions(-) create mode 100644 Modules/Category/lang/fa/categories.php create mode 100644 Modules/Category/lang/fa/text.php create mode 100644 Modules/Post/lang/fa/posts.php create mode 100644 Modules/Post/lang/fa/text.php create mode 100644 Modules/Tag/lang/fa/text.php diff --git a/Modules/Category/lang/fa/categories.php b/Modules/Category/lang/fa/categories.php new file mode 100644 index 000000000..a63dcc9a4 --- /dev/null +++ b/Modules/Category/lang/fa/categories.php @@ -0,0 +1,24 @@ + 'نام', + 'slug' => 'نامک', + 'created_by_alias' => 'نام مستعار نویسنده', + 'intro' => 'معرفی', + 'content' => 'محتوا', + 'featured_image' => 'تصویر ویژه', + 'category_id' => 'دسته', + 'type' => 'نوع', + 'is_featured' => 'ویژه است', + 'tags' => 'برچسب ها', + 'status' => 'وضعیت', + 'published_at' => 'منتشر شده در', + + 'meta_title' => 'عنوان متا', + 'meta_keywords' => 'کلمات کلیدی متا', + 'meta_description' => 'توضیحات متا', + 'meta_og_image' => 'تصویر متا', + 'meta_og_url' => 'لینک متا', + 'order' => 'ترتیب', +]; diff --git a/Modules/Category/lang/fa/text.php b/Modules/Category/lang/fa/text.php new file mode 100644 index 000000000..34a6a4dc7 --- /dev/null +++ b/Modules/Category/lang/fa/text.php @@ -0,0 +1,15 @@ + 'نام', + 'slug' => 'نامک', + 'description' => 'توضیحات', + 'status' => 'وضعیت', + 'created_by' => 'ایجاد شده توسط', + 'updated_at' => 'آخرین ویرایش در', + 'updated_by' => 'ویرایش شده توسط', + 'deleted_by' => 'حذف شده توسط', + 'action' => 'عملیات', + +]; diff --git a/Modules/Post/lang/fa/posts.php b/Modules/Post/lang/fa/posts.php new file mode 100644 index 000000000..08caa6aab --- /dev/null +++ b/Modules/Post/lang/fa/posts.php @@ -0,0 +1,25 @@ + 'نام', + 'slug' => 'نامک', + 'created_by_alias' => 'نام مستعار نویسنده', + 'intro' => 'معرفی', + 'content' => 'محتوا', + 'image' => 'تصویر', + 'category_id' => 'دسته بندی', + 'type' => 'نوع', + 'is_featured' => 'ویژه است', + 'tags' => 'برچسب ها', + 'status' => 'وضعیت', + 'published_at' => 'منتشر شده در', + + 'meta_title' => 'عنوان متا', + 'meta_keywords' => 'کلمات کلیدی متا', + 'meta_description' => 'توضیحات متا', + 'meta_og_image' => 'تصویر متا', + 'meta_og_url' => 'لینک متا', + 'order' => 'ترتیب', + +]; diff --git a/Modules/Post/lang/fa/text.php b/Modules/Post/lang/fa/text.php new file mode 100644 index 000000000..34a6a4dc7 --- /dev/null +++ b/Modules/Post/lang/fa/text.php @@ -0,0 +1,15 @@ + 'نام', + 'slug' => 'نامک', + 'description' => 'توضیحات', + 'status' => 'وضعیت', + 'created_by' => 'ایجاد شده توسط', + 'updated_at' => 'آخرین ویرایش در', + 'updated_by' => 'ویرایش شده توسط', + 'deleted_by' => 'حذف شده توسط', + 'action' => 'عملیات', + +]; diff --git a/Modules/Tag/lang/fa/text.php b/Modules/Tag/lang/fa/text.php new file mode 100644 index 000000000..34a6a4dc7 --- /dev/null +++ b/Modules/Tag/lang/fa/text.php @@ -0,0 +1,15 @@ + 'نام', + 'slug' => 'نامک', + 'description' => 'توضیحات', + 'status' => 'وضعیت', + 'created_by' => 'ایجاد شده توسط', + 'updated_at' => 'آخرین ویرایش در', + 'updated_by' => 'ویرایش شده توسط', + 'deleted_by' => 'حذف شده توسط', + 'action' => 'عملیات', + +]; diff --git a/config/app.php b/config/app.php index 707a4104f..21d776be1 100644 --- a/config/app.php +++ b/config/app.php @@ -88,6 +88,7 @@ 'ar' => 'العربی (AR)', 'bn' => 'বাংলা (BN)', 'en' => 'English (EN)', + 'fa' => 'فارسی (FA)', 'vi' => 'Vietnamese (VI)', ], diff --git a/lang/fa/labels.php b/lang/fa/labels.php index 90d3999f0..7559d7d07 100644 --- a/lang/fa/labels.php +++ b/lang/fa/labels.php @@ -84,6 +84,7 @@ 'password_confirmation' => 'تایید رمز عبور', 'confirmed' => 'تایید شد', 'active' => 'فعال', + 'email_credentials' => 'اعتبار سنجی ایمیل', 'roles' => 'نقش ها', 'permissions' => 'اجازه ها', 'social' => 'اجتماعی', diff --git a/lang/fa/validation.php b/lang/fa/validation.php index 2f1a71691..2fe190569 100644 --- a/lang/fa/validation.php +++ b/lang/fa/validation.php @@ -14,6 +14,7 @@ 'accepted' => ':attribute باید پذیرفته شده باشد.', 'active_url' => 'آدرس :attribute معتبر نیست.', + 'accepted_if' => 'زمانی که :other معادل :value باشد باید :attribute پذیرفته شود.', 'after' => ':attribute باید تاریخی بعد از :date باشد.', 'after_or_equal' => ':attribute باید تاریخی بعد از :date، یا مطابق با آن باشد.', 'alpha' => ':attribute باید فقط حروف الفبا باشد.', @@ -23,17 +24,20 @@ 'before' => ':attribute باید تاریخی قبل از :date باشد.', 'before_or_equal' => ':attribute باید تاریخی قبل از :date، یا مطابق با آن باشد.', 'between' => [ - 'numeric' => ':attribute باید بین :min و :max باشد.', + 'array' => ':attribute باید بین :min و :max آیتم باشد.', 'file' => ':attribute باید بین :min و :max کیلوبایت باشد.', + 'numeric' => ':attribute باید بین :min و :max باشد.', 'string' => ':attribute باید بین :min و :max کاراکتر باشد.', - 'array' => ':attribute باید بین :min و :max آیتم باشد.', ], 'boolean' => 'فیلد :attribute فقط می‌تواند true و یا false باشد.', 'confirmed' => ':attribute با فیلد تکرار مطابقت ندارد.', 'date' => ':attribute یک تاریخ معتبر نیست.', + 'current_password' => 'رمز عبور معتبر نیست.', 'date_equals' => ':attribute باید یک تاریخ برابر با تاریخ :date باشد.', 'date_format' => ':attribute با الگوی :format مطابقت ندارد.', 'different' => ':attribute و :other باید از یکدیگر متفاوت باشند.', + 'declined' => ':attribute نباید پذیرفته شود.', + 'declined_if' => ':attribute نباید پذیرفته شود زمانی که :other معادل :value است.', 'digits' => ':attribute باید :digits رقم باشد.', 'digits_between' => ':attribute باید بین :min و :max رقم باشد.', 'dimensions' => 'ابعاد تصویر :attribute قابل قبول نیست.', @@ -41,19 +45,20 @@ 'email' => ':attribute باید یک ایمیل معتبر باشد.', 'ends_with' => 'فیلد :attribute باید با یکی از مقادیر زیر خاتمه یابد: :values', 'exists' => ':attribute انتخاب شده، معتبر نیست.', + 'enum' => ':attribute انتخاب شده معتبر نیست', 'file' => ':attribute باید یک فایل معتبر باشد.', 'filled' => 'فیلد :attribute باید مقدار داشته باشد.', 'gt' => [ - 'numeric' => ':attribute باید بزرگتر از :value باشد.', + 'array' => ':attribute باید بیشتر از :value آیتم داشته باشد.', 'file' => ':attribute باید بزرگتر از :value کیلوبایت باشد.', + 'numeric' => ':attribute باید بزرگتر از :value باشد.', 'string' => ':attribute باید بیشتر از :value کاراکتر داشته باشد.', - 'array' => ':attribute باید بیشتر از :value آیتم داشته باشد.', ], 'gte' => [ - 'numeric' => ':attribute باید بزرگتر یا مساوی :value باشد.', + 'array' => ':attribute باید بیشتر یا مساوی :value آیتم داشته باشد.', 'file' => ':attribute باید بزرگتر یا مساوی :value کیلوبایت باشد.', + 'numeric' => ':attribute باید بزرگتر یا مساوی :value باشد.', 'string' => ':attribute باید بیشتر یا مساوی :value کاراکتر داشته باشد.', - 'array' => ':attribute باید بیشتر یا مساوی :value آیتم داشته باشد.', ], 'image' => ':attribute باید یک تصویر معتبر باشد.', 'in' => ':attribute انتخاب شده، معتبر نیست.', @@ -64,22 +69,23 @@ 'ipv6' => ':attribute باید یک آدرس معتبر از نوع IPv6 باشد.', 'json' => 'فیلد :attribute باید یک رشته از نوع JSON باشد.', 'lt' => [ - 'numeric' => ':attribute باید کوچکتر از :value باشد.', + 'array' => ':attribute باید کمتر از :value آیتم داشته باشد.', 'file' => ':attribute باید کوچکتر از :value کیلوبایت باشد.', + 'numeric' => ':attribute باید کوچکتر از :value باشد.', 'string' => ':attribute باید کمتر از :value کاراکتر داشته باشد.', - 'array' => ':attribute باید کمتر از :value آیتم داشته باشد.', ], 'lte' => [ - 'numeric' => ':attribute باید کوچکتر یا مساوی :value باشد.', + 'array' => ':attribute باید کمتر یا مساوی :value آیتم داشته باشد.', 'file' => ':attribute باید کوچکتر یا مساوی :value کیلوبایت باشد.', + 'numeric' => ':attribute باید کوچکتر یا مساوی :value باشد.', 'string' => ':attribute باید کمتر یا مساوی :value کاراکتر داشته باشد.', - 'array' => ':attribute باید کمتر یا مساوی :value آیتم داشته باشد.', ], + 'mac_address' => ':attribute باید یک مک ادرس معتبر باشد', 'max' => [ - 'numeric' => ':attribute نباید بزرگتر از :max باشد.', + 'array' => ':attribute نباید بیشتر از :max آیتم داشته باشد.', 'file' => ':attribute نباید بزرگتر از :max کیلوبایت باشد.', + 'numeric' => ':attribute نباید بزرگتر از :max باشد.', 'string' => ':attribute نباید بیشتر از :max کاراکتر داشته باشد.', - 'array' => ':attribute نباید بیشتر از :max آیتم داشته باشد.', ], 'mimes' => 'فرمت‌های معتبر فایل عبارتند از: :values.', 'mimetypes' => 'فرمت‌های معتبر فایل عبارتند از: :values.', @@ -95,8 +101,13 @@ 'numeric' => ':attribute باید عدد یا رشته‌ای از اعداد باشد.', 'password' => 'رمزعبور اشتباه است.', 'present' => 'فیلد :attribute باید در پارامترهای ارسالی وجود داشته باشد.', + 'prohibited' => 'فیلد :attribute ممنوع است.', + 'prohibited_if' => 'فیلد :attribute ممنوع است، زمانی که :other معادل :value است.', + 'prohibited_unless' => 'فیلد :attribute ممنوع است، مگر اینکه :other در :values باشد.', + 'prohibits' => 'فیلد :attribute حضور :other را ممنوع می کند.', 'regex' => 'فرمت :attribute معتبر نیست.', 'required' => 'فیلد :attribute الزامی است.', + 'required_array_keys' => 'فیلد :attribute باید حاوی ورودی های برای :values باشد', 'required_if' => 'هنگامی که :other برابر با :value است، فیلد :attribute الزامی است.', 'required_unless' => 'فیلد :attribute الزامی است، مگر آنکه :other در :values موجود باشد.', 'required_with' => 'در صورت وجود فیلد :values، فیلد :attribute نیز الزامی است.', @@ -105,10 +116,10 @@ 'required_without_all' => 'در صورت عدم وجود هر یک از فیلدهای :values، فیلد :attribute الزامی است.', 'same' => ':attribute و :other باید همانند هم باشند.', 'size' => [ - 'numeric' => ':attribute باید برابر با :size باشد.', + 'array' => ':attribute باید شامل :size آیتم باشد.', 'file' => ':attribute باید برابر با :size کیلوبایت باشد.', + 'numeric' => ':attribute باید برابر با :size باشد.', 'string' => ':attribute باید برابر با :size کاراکتر باشد.', - 'array' => ':attribute باید شامل :size آیتم باشد.', ], 'starts_with' => ':attribute باید با یکی از این ها شروع شود: :values', 'string' => 'فیلد :attribute باید متن باشد.', @@ -130,6 +141,9 @@ */ 'custom' => [ + 'attribute-name' => [ + 'rule-name' => 'پیام اختصاصی', + ], ], /* From 59f05e339199e1fc19ab3ff0757be8d9d069718d Mon Sep 17 00:00:00 2001 From: ingen Date: Thu, 4 Jul 2024 22:09:58 +0330 Subject: [PATCH 2/2] pref: translate messages to farsi(persian) --- lang/fa.json | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100755 lang/fa.json diff --git a/lang/fa.json b/lang/fa.json new file mode 100755 index 000000000..62087a562 --- /dev/null +++ b/lang/fa.json @@ -0,0 +1,132 @@ +{ + "The :attribute must contain at least one letter.": ":attribute باید حداقل یک کاراکتر داشته باشد.", + "The :attribute must contain at least one number.": ":attribute باید حداقل یک عدد داشته باشد.", + "The :attribute must contain at least one symbol.": ":attribute باید حداقل یک کاراکتر خاص باشد.", + "The :attribute must contain at least one uppercase and one lowercase letter.": "ویژگی :attribute باید حداقل یک حرف بزرگ و یک حرف کوچک داشته باشد.", + "The given :attribute has appeared in a data leak. Please choose a different :attribute.": "ویژگی داده‌شده :attribute در یک نشت داده ظاهر شده است. لطفا یک :attribute دیگر انتخاب کنید.", + "Welcome to": "به داشبورد مدیریت :name خوش آمدید.", + "Home": "صفحه نخست", + "Contact": "ارتباط", + "Dashboard": "داشبورد", + "Already registered?": "قبلا ثبت نام کرده اید؟", + "Admin Dashboard": "داشبورد مدیریت", + "Name": "نام", + "Email": "ایمیل", + "Password": "رمز عبور", + "Password Confirmation": "تأیید رمز عبور", + "Confirm Password": "تأیید رمز عبور", + "Value": "مقدار", + "Index": "فهرست", + "List": "لیست", + "Show": "نمایش", + "Edit": "ویرایش", + "Action": "عملیات", + "Back": "بازگشت", + "Return back": "بازگشت", + "Save": "ذخیره", + "Cancel": "لغو", + "Create": "ایجاد", + "Created": "ایجاد شده", + "Created at": "ایجاد شده در", + "Update": "به‌روزرسانی", + "Updated": "به‌روزرسانی شده", + "Updated at": "به‌روزرسانی شده در", + "Delete": "حذف", + "Deleted": "حذف شده", + "Deleted at": "حذف شده در", + "Deleted List": "لیست حذف شده", + "Trash": "سطل زباله", + "Download": "دانلود", + "Activity Log": "گزارش فعالیت", + "Log": "لاگ", + "Logs": "لاگ‌ها", + "Current": "کنونی", + "Old": "قدیمی", + "At": "در", + "Type": "نوع", + "User": "کاربر", + "Change Password": "تغییر رمز عبور", + "Roles": "نقش‌ها", + "Permissions": "مجوزها", + "All Permissions": "تمامی مجوزها", + "Please fix the following errors & try again!": "لطفا خطاهای زیر را اصلاح کرده و دوباره تلاش کنید!", + "Copyright": "حق تکثیر", + "Change language": "تغییر زبان", + "Notifications": "اعلان‌ها", + "entries per page:": "تعداد در هر صفحه", + "Search": "جستجو", + "ٰView trash": "نمایش زباله دان", + "Delete all notifications": "حذف همه اعلانات", + "You have :count notifications": "شما :count اعلان دارید", + ":count unread": ":count خوانده نشده", + "Account": "حساب کاربری", + "Settings": "تنظیمات", + "Remember me": "مرا به خاطر بسپار", + "About": "درباره ما", + "Privacy": "حریم خصوصی", + "Terms": "شرایط و ضوابط", + "FAQs": "سوالات متداول", + "Super Admin": "پنل مدیریت", + "Users": "کاربران", + "Log Dashboard": "داشبورد رخداد ها", + "Daily Log": "داشبورد رخداد ها", + "Login": "ورود", + "Updated At": "آخرین تغییر", + "Created At": "ایجاد شده در", + "Created By": "ایجاد شده توسط", + "Updated By": "ویرایش شده توسط", + "Deleted By": "حذف شده توسط", + "Deleted At": "حذف شده در", + "Mark all as read": "همه موارد دیده شده", + "Log in": "ورود", + "Register": "ثبت نام", + "Create an account": "ایجاد حساب کاربری", + "Logout": "خروج", + "Create an account?": "ایجاد حساب کاربری:", + "Forgot your password?": "رمز عبور خود را فراموش کرده اید؟", + "All values of :module_name (Id: :id)": "تمام مقادیر :module_name (Id: :id).", + "Are you sure?": "آیا مطمئن هستید؟", + "Send confirmation email": "ارسال ایمیل تأیید", + ":module_name Management Dashboard": "داشبورد مدیریت :module_name", + "Create new :module_name": "ایجاد :module_name جدید", + "Backup": "پشتیبان‌گیری", + "Backups": "پشتیبان‌ها", + "File": "فایل", + "Size": "اندازه", + "Date": "تاریخ", + "Age": "سن", + "Download File": "دانلود فایل", + "Delete ": "حذف ", + "Delete File": "حذف فایل", + "There are no backups": "هیچ پشتیبانی موجود نیست", + "Mark All As Read": "علامت‌زدن همه به عنوان خوانده شده", + "Delete All Notifications": "حذف تمام اعلان‌ها", + "Text": "متن", + "Module": "ماژول", + "Total": "مجموع", + "Browse": "مرور", + "Management": "مدیریت", + "Log Viewer": "نمایش‌دهنده لاگ", + "Log Viewer Module": "ماژول نمایش‌دهنده لاگ", + "Logs by Date": "لاگ‌ها بر اساس تاریخ", + "Log Viewer Dashboard": "داشبورد نمایش‌دهنده لاگ", + "Delete Log File": "حذف فایل لاگ", + "Details": "جزئیات", + "Levels": "سطوح", + "Log Info": "اطلاعات لاگ", + "Select an option": "-- یک گزینه را انتخاب کنید --", + "URL": "آدرس اینترنتی", + "Username": "نام کاربری", + "Visit": "بازدید", + "Active": "فعال", + "Email Confirmed": "ایمیل تأیید شد", + "Email Credentials": "ارسال اطلاعات ورود به کاربر", + "Open main menu": "باز کردن منوی اصلی", + "Posts": "پست‌ها", + "Categories": "دسته‌بندی‌ها", + "Tags": "برچسب‌ها", + "Comments": "نظرات", + "Draft": "پیش نویس", + "Published": "منتشر شده", + "Unpublished": "منتشر نشده" +}