diff --git a/CHANGELOG.md b/CHANGELOG.md index c75ff700e..ca5b38506 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [v4.3.1] + +### Changed +- Update Arabic Locales ([#1028]) + +### Fixed +- Fix typos in user creation with initial password ([#1030]) + ## [v4.3.0] ### Changed Requirements @@ -842,9 +850,12 @@ See [http://learn.userfrosting.com/upgrading/40-to-41](Upgrading 4.0.x to 4.1.x [#1017]: https://github.com/userfrosting/UserFrosting/issues/1017 [#1018]: https://github.com/userfrosting/UserFrosting/issues/1018 [#1019]: https://github.com/userfrosting/UserFrosting/issues/1019 +[#1028]: https://github.com/userfrosting/UserFrosting/issues/1028 +[#1030]: https://github.com/userfrosting/UserFrosting/issues/1030 [v4.2.0]: https://github.com/userfrosting/UserFrosting/compare/v4.1.22...v4.2.0 [v4.2.1]: https://github.com/userfrosting/UserFrosting/compare/v4.2.0...v.4.2.1 [v4.2.2]: https://github.com/userfrosting/UserFrosting/compare/v.4.2.1...v4.2.2 [v4.2.3]: https://github.com/userfrosting/UserFrosting/compare/v4.2.2...v4.2.3 [v4.3.0]: https://github.com/userfrosting/UserFrosting/compare/v4.2.3...v4.3.0 +[v4.3.1]: https://github.com/userfrosting/UserFrosting/compare/v4.3.0...v4.3.1 diff --git a/app/sprinkles/account/locale/ar/messages.php b/app/sprinkles/account/locale/ar/messages.php index 82407cdf8..186a1e11f 100644 --- a/app/sprinkles/account/locale/ar/messages.php +++ b/app/sprinkles/account/locale/ar/messages.php @@ -50,15 +50,15 @@ 'EMAIL' => [ 'INVALID' => 'لا يوجد حساب ل {{email}}', 'IN_USE' => 'البريد الإلكتروني {{email}} قيد الاستخدام', - // 'VERIFICATION_REQUIRED' => 'Email (verification required - use a real address!)', + 'VERIFICATION_REQUIRED' => 'البريد الإلكتروني (التحقق مطلوب - استخدام عنوان حقيقي!)', ], - // 'EMAIL_OR_USERNAME' => 'Username or email address', + 'EMAIL_OR_USERNAME' => 'اسم المستخدم أو البريد الالكتروني', 'FIRST_NAME' => 'الاسم الاول', 'HEADER_MESSAGE_ROOT' => 'تسجيل الدخول باسم المستخدم ROOT', 'LAST_NAME' => 'اسم العائلة', 'LOCALE' => [ 'ACCOUNT' => 'اللغة التي تستخدم لحسابك', - // 'INVALID' => '{{locale}} is not a valid locale.', + 'INVALID' => 'ليست لغة صالحة {{locale}}', ], 'LOGIN' => [ '@TRANSLATION' => 'تسجيل الدخول', @@ -68,7 +68,7 @@ ], 'LOGOUT' => 'تسجيل الخروج', 'NAME' => 'اسم', - // 'NAME_AND_EMAIL' => 'Name and email', + 'NAME_AND_EMAIL' => 'الاسم والبريد الإلكتروني', 'PAGE' => [ 'LOGIN' => [ 'DESCRIPTION' => 'سجل الدخول إلى حسابك في {{site_name}} أو سجيل للحصول على حساب جديد', @@ -115,8 +115,8 @@ 'UPDATED' => 'جدد كلمة مرور', ], 'PROFILE' => [ - // 'SETTINGS' => 'Profile settings', - // 'UPDATED' => 'Profile settings updated', + 'SETTINGS' => 'إعدادات الملف الشخصي', + 'UPDATED' => 'تم تحديث إعدادات الملف الشخصي', ], 'RATE_LIMIT_EXCEEDED' => 'تم تجاوز الحد عددا لهذا الإجراء يجب الانتظار {{delay}} ثواني قبل القيام بمحاولة أخرى', 'REGISTER' => 'تسجيل', @@ -143,7 +143,7 @@ 'CHOOSE' => 'اختيار اسم مستخدم فريد', 'INVALID' => 'اسم المستخدم غير صالح', 'IN_USE' => 'اسم المستخدم {{user_name}} قيد الاستخدام', - // 'NOT_AVAILABLE' => 'Username {{user_name}} is not available. Choose a different name, or click \'suggest\'.', + 'NOT_AVAILABLE' => ' غير متاح. اختر اسمًا مختلفًا ، أواذغط "اقترح". {{user_name}} اسم المستخدم', ], 'USER_ID_INVALID' => 'عدم وجود هوية المستخدم المطلوب', 'USER_OR_EMAIL_INVALID' => 'اسم المستخدم أو عنوان البريد الإلكتروني غير صالح', diff --git a/app/sprinkles/account/locale/ar/validate.php b/app/sprinkles/account/locale/ar/validate.php index e3d240991..7f45228a9 100644 --- a/app/sprinkles/account/locale/ar/validate.php +++ b/app/sprinkles/account/locale/ar/validate.php @@ -17,6 +17,6 @@ return [ 'VALIDATE' => [ 'PASSWORD_MISMATCH' => 'يجب أن تكون كلمة المرور وكلمة المرور التأكيدية نفس', - // 'USERNAME' => 'Username may consist only of lowercase letters, numbers, \'.\', \'-\', and \'_\'.', + 'USERNAME' => '\'.\', \'-\', و \'_\'. قد يتكون اسم المستخدم فقط من أحرف صغيرة وأرقام', ], ]; diff --git a/app/sprinkles/admin/locale/ar/messages.php b/app/sprinkles/admin/locale/ar/messages.php index f7f6d1af8..7818a100e 100644 --- a/app/sprinkles/admin/locale/ar/messages.php +++ b/app/sprinkles/admin/locale/ar/messages.php @@ -33,30 +33,30 @@ 'DELETION_SUCCESSFUL' => 'المستعمل {{user_name}} حذف بنجاح', 'DETAILS_UPDATED' => 'جدد تفاصيل الحساب للمستخدم {{user_name}}', 'DISABLE_MASTER' => 'لا يمكنك تعطيل الحساب الرئيسي', - // 'DISABLE_SELF' => 'You cannot disable your own account!', + 'DISABLE_SELF' => 'لا يمكنك تعطيل حسابك !', 'DISABLE_SUCCESSFUL' => 'حساب المستخدم {{user_name}} عطيل بنجاح', 'ENABLE_SUCCESSFUL' => 'حساب المستخدم {{user_name}} مكين بنجاح', 'GROUP' => [ 1 => 'مجموعة', 2 => 'مجموعات', 'CREATE' => 'إنشاء مجموعة', - // 'CREATION_SUCCESSFUL' => 'Successfully created group {{name}}', + 'CREATION_SUCCESSFUL' => 'بنجاح {{name}} تم إنشاء المجموعة ', 'DELETE' => 'حذف مجموعة', 'DELETE_CONFIRM' => 'هل أنت متأكد أنك تريد حذف مجموعة {{name}}?', - // 'DELETE_DEFAULT' => 'You can\'t delete the group {{name}} because it is the default group for newly registered users.', + 'DELETE_DEFAULT' => 'لا يمكنك حذف المجموعة {{name}} لأنها المجموعة الافتراضية للمستخدمين المسجلين حديثًا.', 'DELETE_YES' => 'نعم، إحذف مجموعة', - // 'DELETION_SUCCESSFUL' => 'Successfully deleted group {{name}}', + 'DELETION_SUCCESSFUL' => 'تم حذف المجموعة {{name}} بنجاح', 'EDIT' => 'تعديل مجموعة', 'ICON' => 'رمز المجموعة', 'ICON_EXPLAIN' => 'رمز المستخدمين في المجموعه', 'INFO_PAGE' => 'صفحة معلومات المجموعة ل {{name}}', - // 'MANAGE' => 'Manage group', + 'MANAGE' => 'إدارة المجموعة', 'NAME' => 'أسم المجموعة', 'NAME_EXPLAIN' => 'ادخال اسم للمجموعة', - // 'NOT_EMPTY' => 'You can\'t do that because there are still users associated with the group {{name}}.', + 'NOT_EMPTY' => 'لا يمكنك فعل ذلك لأنه لا يزال هناك مستخدمون مرتبطون بالمجموعة {{name}} .', 'PAGE_DESCRIPTION' => 'قائمة المجموعات لموقعك يوفر أدوات لإدارة التحرير وحذف مجموعات', - // 'SUMMARY' => 'Group Summary', - // 'UPDATE' => 'Details updated for group {{name}}', + 'SUMMARY' => 'ملخص المجموعة', + 'UPDATE' => 'تم تحديث التفاصيل للمجموعة {{name}} ', ], 'MANUALLY_ACTIVATED' => 'تم تفعيل حساب{{user_name}}', 'MASTER_ACCOUNT_EXISTS' => 'الحساب الرئيسي موجود بالفعل', @@ -68,36 +68,36 @@ 2 => 'مأذونيات', 'ASSIGN_NEW' => 'تعيين إذن جديد', 'HOOK_CONDITION' => 'الظروف', - // 'ID' => 'Permission ID', - // 'INFO_PAGE' => 'Permission information page for \'{{name}}\'', + 'ID' => 'معرف إذن', + 'INFO_PAGE' => 'صفحة معلومات الأذونات لـ \'{{name}} \'', 'MANAGE' => 'إدارة المأذونات', - // 'NOTE_READ_ONLY' => 'Please note: permissions are considered "part of the code" and cannot be modified through the interface. To add, remove, or modify permissions, the site maintainers will need to use a database migration.', + 'NOTE_READ_ONLY' => ' يرجى ملاحظة: تعتبر أذونات "جزءًا من كود" ولا يمكن تعديلها من خلال الواجهة. لإضافة أذونات أو إزالتها أو تعديلها ، سيحتاج مشرفو الموقع إلى استخدام database migration.', 'PAGE_DESCRIPTION' => 'قائمة المأذونات لموقعك', - // 'SUMMARY' => 'Permission Summary', + 'SUMMARY' => 'ملخص إذن', 'UPDATE' => 'تحديث المأذونات', - // 'VIA_ROLES' => 'Has permission via roles', + 'VIA_ROLES' => 'لديه إذن عبر الأدوار', ], 'ROLE' => [ 1 => 'وظيفة', 2 => 'وظائف', 'ASSIGN_NEW' => 'تعيين دور جديد', 'CREATE' => 'إنشاء دور', - // 'CREATION_SUCCESSFUL' => 'Successfully created role {{name}}', + 'CREATION_SUCCESSFUL' => 'تم إنشاء الدور {{name}} بنجاح', 'DELETE' => 'حذف دور', 'DELETE_CONFIRM' => 'هل أنت متأكد أنك تريد حذف الدور {{name}}?', - // 'DELETE_DEFAULT' => 'You can\'t delete the role {{name}} because it is a default role for newly registered users.', + 'DELETE_DEFAULT' => 'لا يمكنك حذف الدور {{name}} لأنه دور افتراضي للمستخدمين المسجلين حديثًا.', 'DELETE_YES' => 'نعم، حذف دور', - // 'DELETION_SUCCESSFUL' => 'Successfully deleted role {{name}}', + 'DELETION_SUCCESSFUL' => 'تم حذف الدور {{name}} بنجاح', 'EDIT' => 'إدارة دور', - // 'HAS_USERS' => 'You can\'t do that because there are still users who have the role {{name}}.', + 'HAS_USERS' => 'لا يمكنك فعل ذلك لأنه لا يزال هناك مستخدمون لديهم الدور {{name}} .', 'INFO_PAGE' => 'صفحة معلومات دور {{name}}', 'MANAGE' => 'إدارة الوظائف', 'NAME' => 'اسم', 'NAME_EXPLAIN' => 'أدخل اسما للدور', - // 'NAME_IN_USE' => 'A role named {{name}} already exist', + 'NAME_IN_USE' => 'يوجد دور يسمى {{name}} ', 'PAGE_DESCRIPTION' => 'قائمة الوظائف لموقعك', - // 'PERMISSIONS_UPDATED' => 'Permissions updated for role {{name}}', - // 'SUMMARY' => 'Role Summary', + 'PERMISSIONS_UPDATED' => 'تم تحديث الأذونات للدور {{name}} ', + 'SUMMARY' => 'ملخص الدور', 'UPDATED' => 'تحديث الوظائف', ], 'SYSTEM_INFO' => [ @@ -111,7 +111,7 @@ 'UF_VERSION' => 'إصدار UserFrosting', 'URL' => 'رابط قاعدة الموقع', ], - // 'TOGGLE_COLUMNS' => 'Toggle columns', + 'TOGGLE_COLUMNS' => 'تبديل الأعمدة', 'USER' => [ 1 => 'مستخدم', 2 => 'المستخدمين', @@ -122,20 +122,20 @@ ], 'ACTIVATE' => 'تفعيل المستخدم', 'CREATE' => 'إنشاء مستخدم', - // 'CREATED' => 'User {{user_name}} has been successfully created', + 'CREATED' => 'تم إنشاء المستخدم {{user_name}} بنجاح', 'DELETE' => 'مسح المستخدم', 'DELETE_CONFIRM' => 'هل أنت متأكد أنك تريد حذف المستخدم {{name}}?', 'DELETE_YES' => 'نعم، حذف المستخدم', - // 'DELETED' => 'User deleted', + 'DELETED' => 'تم حذف المستخدم', 'DISABLE' => 'تعطيل المستخدم ', 'EDIT' => 'إدارة المستخدم', 'ENABLE' => 'تمكين المستخدم', 'INFO_PAGE' => 'صفحة معلومات المستخدم {{name}}', 'LATEST' => 'أحدث المستخدمين', 'PAGE_DESCRIPTION' => 'قائمة المستخدمين لموقعك', - // 'SUMMARY' => 'Account Summary', + 'SUMMARY' => 'ملخص الحساب', 'VIEW_ALL' => 'عرض جميع المستخدمين', - // 'WITH_PERMISSION' => 'Users with this permission', + 'WITH_PERMISSION' => 'المستخدمين ب هذا الإذن', ], 'X_USER' => [ 0 => 'لا يوجد اي مستخدمين', diff --git a/app/sprinkles/admin/schema/requests/user/create.yaml b/app/sprinkles/admin/schema/requests/user/create.yaml index 821482001..5ad6e155b 100644 --- a/app/sprinkles/admin/schema/requests/user/create.yaml +++ b/app/sprinkles/admin/schema/requests/user/create.yaml @@ -90,7 +90,7 @@ passwordc: message: VALIDATE.REQUIRED matches: domain: client - field: value + field: password label: "&PASSWORD.CONFIRM" message: VALIDATE.PASSWORD_MISMATCH length: diff --git a/app/sprinkles/admin/src/Controller/UserController.php b/app/sprinkles/admin/src/Controller/UserController.php index 74cc83c4c..5d9417b3d 100644 --- a/app/sprinkles/admin/src/Controller/UserController.php +++ b/app/sprinkles/admin/src/Controller/UserController.php @@ -167,7 +167,7 @@ public function create(Request $request, Response $response, $args) $passwordRequest = $this->ci->repoPasswordReset->create($user, $config['password_reset.timeouts.create']); // If the password_mode is manual, do not send an email to set it. Else, send the email. - if (!isset($data['value'])) { + if ($data['password'] === '') { // Create and send welcome email with password set link $message = new TwigMailMessage($this->ci->view, 'mail/password-create.html.twig'); @@ -786,8 +786,8 @@ public function getModalEditPassword(Request $request, Response $response, $args // Load validation rules $schema = new RequestSchema('schema://requests/user/edit-password.yaml'); - $schema->set('value.validators.length.min', $config['site.password.length.min']); - $schema->set('value.validators.length.max', $config['site.password.length.max']); + $schema->set('password.validators.length.min', $config['site.password.length.min']); + $schema->set('password.validators.length.max', $config['site.password.length.max']); $schema->set('passwordc.validators.length.min', $config['site.password.length.min']); $schema->set('passwordc.validators.length.max', $config['site.password.length.max']); $validator = new JqueryValidationAdapter($schema, $this->ci->translator); diff --git a/app/sprinkles/core/locale/ar/messages.php b/app/sprinkles/core/locale/ar/messages.php index 3dd29af94..64327f5ec 100644 --- a/app/sprinkles/core/locale/ar/messages.php +++ b/app/sprinkles/core/locale/ar/messages.php @@ -43,11 +43,11 @@ ], 'NAME' => 'اسم', 'NAVIGATION' => 'التنقل', - // 'NO_RESULTS' => 'Sorry, we\'ve got nothing here.', + 'NO_RESULTS' => 'آسف ، ليس لدينا شيء هنا.', 'PAGINATION' => [ 'GOTO' => 'انتقال إلى الصفحة', 'SHOW' => 'عرض', - // 'OUTPUT' => '{startRow} to {endRow} of {filteredRows} ({totalRows})', + 'OUTPUT' => '{startRow} إلى {endRow} من {filteredRows} ({totalRows})', 'NEXT' => 'الصفحة التالية', 'PREVIOUS' => 'الصفحة السابقة', 'FIRST' => 'الصفحة الأولى', @@ -57,11 +57,11 @@ '@TRANSLATION' => 'سياسة الخصوصية', 'DESCRIPTION' => 'تحدد سياسة الخصوصية لدينا نوع المعلومات التي نجمعها منك وكيفية استخدامها.', ], - // 'SLUG' => 'Slug', - 'SLUG_CONDITION' => 'Slug/الظروف', - // 'SLUG_IN_USE' => 'A {{slug}} slug already exists', + 'SLUG' => '\'سبيكة\'', + 'SLUG_CONDITION' => 'سبيكة\'الظروف\'', + 'SLUG_IN_USE' => 'يوجد {{slug}} سبيكة', 'STATUS' => 'الحالة', - // 'SUGGEST' => 'Suggest', + 'SUGGEST' => 'اقترح', 'UNKNOWN' => 'غير معروف', 'ACTIONS' => 'الأفعال', 'ACTIVATE' => 'تفعيل', diff --git a/app/sprinkles/core/locale/ar/validate.php b/app/sprinkles/core/locale/ar/validate.php index e8cc08b52..ecf308072 100644 --- a/app/sprinkles/core/locale/ar/validate.php +++ b/app/sprinkles/core/locale/ar/validate.php @@ -20,16 +20,16 @@ 'INTEGER' => 'القيم ل {{label}} يجب أن يكون رقم', 'INVALID_EMAIL' => 'عنوان البريد الإلكتروني غير صالح', 'LENGTH_RANGE' => '{{label}} لابد ان تكون بين {{min}} و {{max}} حورف', - // 'MAX_LENGTH' => '{{label}} must be maximum {{max}} characters in length.', - // 'MIN_LENGTH' => '{{label}} must be minimum {{min}} characters in length.', + 'MAX_LENGTH' => '{{label}} يجب أن يكون طول {{max}} الحد الأقصى .', + 'MIN_LENGTH' => '{{label}} يجب أن يكون الحد الأدنى {{min}} من الأحرف في الطول.', 'NO_LEAD_WS' => 'القيم ل {{label}} لا يمكن أن تبدأ المساحات، علامات، أو بيضاء أخرى', 'NO_TRAIL_WS' => 'القيم ل {{label}} لا يمكن أن ينتهي مع مسافات، علامات، أو بيضاء أخرى', - // 'RANGE' => 'The value for {{label}} must be between {{min}} and {{max}}.', + 'RANGE' => 'يجب أن تكون قيمة {{label}} بين {{min}} و {{max}}.', 'REQUIRED' => ' تحديد قيمة ل {{label}}', 'SPRUNJE' => [ - // 'BAD_FILTER' => '{{name}} is not a valid filter for this Sprunje.', - // 'BAD_LIST' => '{{name}} is not a valid list for this Sprunje.', - // 'BAD_SORT' => '{{name}} is not a valid sort field for this Sprunje.', + 'BAD_FILTER' => ' {{name}} ليس مرشحًا صالحًا لهذا Sprunje.', + 'BAD_LIST' => ' {{name}} ليست قائمة صالحة لهذا Sprunje.', + 'BAD_SORT' => ' {{name}} ليس حقل فرز صالحًا لهذا Sprunje.', ], ], ];