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' => ' يرجى ملاحظة: strong> تعتبر أذونات "جزءًا من كود" ولا يمكن تعديلها من خلال الواجهة. لإضافة أذونات أو إزالتها أو تعديلها ، سيحتاج مشرفو الموقع إلى استخدام 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.',
],
],
];