diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md
index 27383512e7..c885c0a3f3 100644
--- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md
+++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md
@@ -20,7 +20,7 @@ https://github.com/strapi/strapi/blob/main/CONTRIBUTING.md#reporting-an-issue
### Required System information
-
+
- Node.js version:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 4816948fde..b0384d5aaa 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -46,7 +46,7 @@ The Strapi core team will review your pull request and either merge it, request
## Contribution Prerequisites
-- You have [Node.js](https://nodejs.org/en/) at version >= v14 and <= v16 and [Yarn](https://yarnpkg.com/en/) at v1.2.0+ installed.
+- You have [Node.js](https://nodejs.org/en/) at version >= v14 and <= v18 and [Yarn](https://yarnpkg.com/en/) at v1.2.0+ installed.
- You are familiar with [Git](https://git-scm.com).
**Before submitting your pull request** make sure the following requirements are fulfilled:
diff --git a/README.md b/README.md
index cd4316975b..ceb5c86f35 100644
--- a/README.md
+++ b/README.md
@@ -86,7 +86,7 @@ Complete installation requirements can be found in the documentation under = 14 <= 16
+- NodeJS >= 14 <= 18
- NPM >= 6.x
**Database:**
diff --git a/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js b/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js
index 5349fc27cc..ec4239ee34 100644
--- a/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js
+++ b/packages/core/admin/admin/src/pages/AuthPage/utils/forms.js
@@ -52,7 +52,7 @@ const forms = {
fieldsToDisable: ['email'],
fieldsToOmit: ['userInfo.confirmPassword', 'userInfo.news', 'userInfo.email'],
schema: yup.object().shape({
- firstname: yup.string().required(translatedErrors.required),
+ firstname: yup.string().trim().required(translatedErrors.required),
lastname: yup.string(),
password: yup
.string()
@@ -76,7 +76,7 @@ const forms = {
fieldsToDisable: [],
fieldsToOmit: ['confirmPassword', 'news'],
schema: yup.object().shape({
- firstname: yup.string().required(translatedErrors.required),
+ firstname: yup.string().trim().required(translatedErrors.required),
lastname: yup.string(),
password: yup
.string()
diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js
index 9ae27dd2c5..adf046691b 100644
--- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js
+++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/ListPage/ModalForm/utils/schema.js
@@ -2,7 +2,7 @@ import * as yup from 'yup';
import { translatedErrors } from '@strapi/helper-plugin';
const schema = yup.object().shape({
- firstname: yup.string().required(translatedErrors.required),
+ firstname: yup.string().trim().required(translatedErrors.required),
lastname: yup.string(),
email: yup.string().email(translatedErrors.email).required(translatedErrors.required),
roles: yup.array().min(1, translatedErrors.required).required(translatedErrors.required),
diff --git a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js
index 3b241c1447..69b5a14668 100644
--- a/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js
+++ b/packages/core/admin/admin/src/pages/SettingsPage/pages/Users/utils/validations/users/profile.js
@@ -2,8 +2,8 @@ import * as yup from 'yup';
import { translatedErrors } from '@strapi/helper-plugin';
export const commonUserSchema = {
- firstname: yup.mixed().required(translatedErrors.required),
- lastname: yup.mixed(),
+ firstname: yup.string().trim().required(translatedErrors.required),
+ lastname: yup.string(),
email: yup.string().email(translatedErrors.email).lowercase().required(translatedErrors.required),
username: yup.string().nullable(),
password: yup
diff --git a/packages/core/admin/admin/src/translations/fr.json b/packages/core/admin/admin/src/translations/fr.json
index 63c5649dfc..64d3c70553 100644
--- a/packages/core/admin/admin/src/translations/fr.json
+++ b/packages/core/admin/admin/src/translations/fr.json
@@ -586,6 +586,38 @@
"content-manager.success.record.save": "Sauvegardé",
"content-manager.success.record.unpublish": "Publication annulée",
"content-manager.utils.data-loaded": "{number, plural, =1 {L'entrée a été chargée} other {Les entrées on été chargées} avec succès",
+ "content-manager.apiError.This attribute must be unique": "Le champ {field} doit être unique",
+ "form.button.continue": "Continuer",
+ "global.search": "Rechercher",
+ "global.actions": "Actions",
+ "global.back": "Retour",
+ "global.cancel": "Annuler",
+ "global.change-password": "Modifier le mot de passe",
+ "global.content-manager": "Gestion du contenu",
+ "global.continue": "Continuer",
+ "global.delete": "Supprimer",
+ "global.delete-target": "Supprimer {target}",
+ "global.description": "Description",
+ "global.details": "Détails",
+ "global.disabled": "Désactivé",
+ "global.documentation": "Documentation",
+ "global.enabled": "Activé",
+ "global.finish": "Terminer",
+ "global.marketplace": "Marketplace",
+ "global.name": "Nom",
+ "global.none": "Aucun",
+ "global.password": "Mot de passe",
+ "global.plugins": "Plugins",
+ "global.profile": "Profil",
+ "global.reset-password": "Réinitialiser le mot de passe",
+ "global.roles": "Rôles",
+ "global.save": "Enregistrer",
+ "global.see-more": "Voir plus",
+ "global.select": "Sélectionner",
+ "global.select-all-entries": "Sélectionner toutes les entrées",
+ "global.settings": "Paramètres",
+ "global.type": "Type",
+ "global.users": "Utilisateurs",
"form.button.done": "Terminer",
"global.prompt.unsaved": "Êtes-vous sûr de vouloir quitter cette page? Toutes vos modifications seront perdues",
"notification.contentType.relations.conflict": "Le Type de Contenu à des relations qui rentrent en conflit",
diff --git a/packages/core/admin/server/validation/common-validators.js b/packages/core/admin/server/validation/common-validators.js
index 64716bd0df..42193d7ced 100644
--- a/packages/core/admin/server/validation/common-validators.js
+++ b/packages/core/admin/server/validation/common-validators.js
@@ -16,7 +16,7 @@ const getActionFromProvider = (actionId) => {
const email = yup.string().email().lowercase();
-const firstname = yup.string().min(1);
+const firstname = yup.string().trim().min(1);
const lastname = yup.string();
diff --git a/packages/core/strapi/README.md b/packages/core/strapi/README.md
index cd4316975b..ceb5c86f35 100644
--- a/packages/core/strapi/README.md
+++ b/packages/core/strapi/README.md
@@ -86,7 +86,7 @@ Complete installation requirements can be found in the documentation under = 14 <= 16
+- NodeJS >= 14 <= 18
- NPM >= 6.x
**Database:**
diff --git a/packages/core/strapi/lib/commands/admin-create.js b/packages/core/strapi/lib/commands/admin-create.js
index 967a58cc69..754c8b156a 100644
--- a/packages/core/strapi/lib/commands/admin-create.js
+++ b/packages/core/strapi/lib/commands/admin-create.js
@@ -17,7 +17,7 @@ const passwordValidator = yup
const adminCreateSchema = yup.object().shape({
email: emailValidator,
password: passwordValidator,
- firstname: yup.string().required('First name is required'),
+ firstname: yup.string().trim().required('First name is required'),
lastname: yup.string(),
});
diff --git a/packages/core/upload/package.json b/packages/core/upload/package.json
index f45625f887..a71ac8281a 100644
--- a/packages/core/upload/package.json
+++ b/packages/core/upload/package.json
@@ -42,7 +42,7 @@
"react-redux": "7.2.8",
"react-router": "^5.2.0",
"react-router-dom": "5.2.0",
- "sharp": "0.30.7"
+ "sharp": "0.31.0"
},
"devDependencies": {
"@testing-library/dom": "8.17.1",