From 89eb754353f0809c73caec8edaa4a5777a40e32b Mon Sep 17 00:00:00 2001 From: darkelfe14728 Date: Thu, 7 May 2020 16:15:46 +0200 Subject: [PATCH] Set-up translation --- .idea/giftopic.iml | 1 + .idea/jsLibraryMappings.xml | 6 + config/packages/security.yaml | 2 +- config/routes.yaml | 2 +- public/css/site/base.css | 3 + public/javascript/site/base.js | 6 + src/Controller/SecurityController.php | 21 +- src/Security/LoginFormAuthenticator.php | 4 +- templates/base.html.twig | 37 +- templates/security/login.html.twig | 35 -- templates/security/sign-in.html.twig | 26 ++ translations/messages+intl-icu.en.xlf | 15 + translations/messages+intl-icu.fr.xlf | 15 + translations/security+intl-icu.en.xlf | 64 ++- translations/security+intl-icu.fr.xlf | 67 ++- translations/validators+intl-icu.en.xlf | 593 +++++++++++++++++++++++ translations/validators+intl-icu.fr.xlf | 595 ++++++++++++++++++++++++ 17 files changed, 1426 insertions(+), 66 deletions(-) create mode 100644 .idea/jsLibraryMappings.xml create mode 100644 public/css/site/base.css create mode 100644 public/javascript/site/base.js delete mode 100644 templates/security/login.html.twig create mode 100644 templates/security/sign-in.html.twig create mode 100644 translations/validators+intl-icu.en.xlf create mode 100644 translations/validators+intl-icu.fr.xlf diff --git a/.idea/giftopic.iml b/.idea/giftopic.iml index 1102adb..679bf37 100644 --- a/.idea/giftopic.iml +++ b/.idea/giftopic.iml @@ -119,5 +119,6 @@ + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..83d1fa0 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/config/packages/security.yaml b/config/packages/security.yaml index 316d782..8291375 100644 --- a/config/packages/security.yaml +++ b/config/packages/security.yaml @@ -25,6 +25,6 @@ security: path: app_security_logout target: app_site_index access_control: - - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY } + - { path: ^/sign-in$, roles: IS_AUTHENTICATED_ANONYMOUSLY } role_hierarchy: ROLE_ADMIN: ROLE_USER diff --git a/config/routes.yaml b/config/routes.yaml index e6c1223..7e8fe18 100644 --- a/config/routes.yaml +++ b/config/routes.yaml @@ -1,7 +1,7 @@ # Redirige l'URL racine vers celle de la langue par défaut index: path: / - controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::redirectAction + controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController defaults: route: 'app_external_index' _locale: '%kernel.default_locale%' diff --git a/public/css/site/base.css b/public/css/site/base.css new file mode 100644 index 0000000..2293178 --- /dev/null +++ b/public/css/site/base.css @@ -0,0 +1,3 @@ +#messages { + display: none; +} \ No newline at end of file diff --git a/public/javascript/site/base.js b/public/javascript/site/base.js new file mode 100644 index 0000000..6d97ce0 --- /dev/null +++ b/public/javascript/site/base.js @@ -0,0 +1,6 @@ +$(function () { + /* Messages */ + $('#messages div').each(function () { + $(this).dialog(); + }); +}); \ No newline at end of file diff --git a/src/Controller/SecurityController.php b/src/Controller/SecurityController.php index 1956c13..3971100 100644 --- a/src/Controller/SecurityController.php +++ b/src/Controller/SecurityController.php @@ -7,6 +7,7 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Http\Authentication\AuthenticationUtils; +use Symfony\Contracts\Translation\TranslatorInterface; /** * Controller about security (login / logout) @@ -17,21 +18,23 @@ class SecurityController extends AbstractController { /** * Show login form * - * @param AuthenticationUtils $authenticationUtils + * @param TranslatorInterface $translator Interface for translation + * @param AuthenticationUtils $authenticationUtils Helper for authentication information * * @return Response Page response * - * @Route("/login") + * @Route("/sign-in") */ - public function login (AuthenticationUtils $authenticationUtils): Response { + public function sign_in (TranslatorInterface $translator, AuthenticationUtils $authenticationUtils): Response { $error = $authenticationUtils->getLastAuthenticationError(); - $lastUsername = $authenticationUtils->getLastUsername(); + if ($error !== null) { + $this->addFlash('error', $translator->trans($error->getMessageKey(), $error->getMessageData(), 'security')); + } return $this->render( - 'security/login.html.twig', + 'security/sign-in.html.twig', [ - 'last_username' => $lastUsername, - 'error' => $error, + 'last_username' => $authenticationUtils->getLastUsername(), ] ); } @@ -41,9 +44,9 @@ class SecurityController extends AbstractController { * * @throws Exception When firewall failed and this method is *really* called * - * @Route("/logout") + * @Route("/sign-out") */ - public function logout () { + public function sign_out () { throw new Exception('This method can be blank - it will be intercepted by the logout key on your firewall'); } } diff --git a/src/Security/LoginFormAuthenticator.php b/src/Security/LoginFormAuthenticator.php index 638588a..e878f3c 100644 --- a/src/Security/LoginFormAuthenticator.php +++ b/src/Security/LoginFormAuthenticator.php @@ -41,7 +41,7 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator implements P } public function supports (Request $request) { - return 'app_security_login' === $request->attributes->get('_route') && $request->isMethod('POST'); + return 'app_security_sign_in' === $request->attributes->get('_route') && $request->isMethod('POST'); } public function getCredentials (Request $request) { @@ -98,6 +98,6 @@ class LoginFormAuthenticator extends AbstractFormLoginAuthenticator implements P } protected function getLoginUrl () { - return $this->urlGenerator->generate('app_security_login'); + return $this->urlGenerator->generate('app_security_sign_in'); } } diff --git a/templates/base.html.twig b/templates/base.html.twig index 5afaea3..dfc552b 100644 --- a/templates/base.html.twig +++ b/templates/base.html.twig @@ -2,11 +2,46 @@ - Giftopic - {% block title %}{% endblock %} + + {% block title %}{% endblock %} - Giftopic + + + + {% block stylesheets %}{% endblock %} +
+
+ Giftopic +
+
+ {% if app.user %} + {{ app.user.username }}, {% trans from 'security' %}sign.out{% endtrans %} + {% endif %} +
+
+ {% block body %}{% endblock %} + +
+ +
+ {% for type, messages in app.flashes(['error', 'warning']) %} + {% if messages %} +
+ {% for message in messages %} +

{{ message }}

+ {% endfor %} +
+ {% endif %} + {% endfor %} +
+ + + + + {% block javascripts %}{% endblock %} diff --git a/templates/security/login.html.twig b/templates/security/login.html.twig deleted file mode 100644 index 9ed6fdc..0000000 --- a/templates/security/login.html.twig +++ /dev/null @@ -1,35 +0,0 @@ -{% extends 'base.html.twig' %} - -{% block title %}Log in{% endblock %} - -{% block body %} -
- {% if error %} -
{{ error.messageKey|trans(error.messageData, 'security') }}
- {% endif %} - - {% if app.user %} -
- You are logged in as {{ app.user.username }}, Logout -
- {% endif %} - -

Please sign in

- - - - - - - - - -
- -
- - -
-{% endblock %} diff --git a/templates/security/sign-in.html.twig b/templates/security/sign-in.html.twig new file mode 100644 index 0000000..fefb358 --- /dev/null +++ b/templates/security/sign-in.html.twig @@ -0,0 +1,26 @@ +{% trans_default_domain 'security' %} +{% extends 'base.html.twig' %} + +{% block title %}{% trans %}sign.in{% endtrans %}{% endblock %} + +{% block body %} +
+

{% trans %}sign.in{% endtrans %}

+ + + + + + + + + +
+ +
+ + +
+{% endblock %} diff --git a/translations/messages+intl-icu.en.xlf b/translations/messages+intl-icu.en.xlf index f46885e..9b92a3d 100644 --- a/translations/messages+intl-icu.en.xlf +++ b/translations/messages+intl-icu.en.xlf @@ -1,6 +1,21 @@ + + + + error + Error + + + + + warning + Warning + + + + accueil diff --git a/translations/messages+intl-icu.fr.xlf b/translations/messages+intl-icu.fr.xlf index a9fb77c..5893ee4 100644 --- a/translations/messages+intl-icu.fr.xlf +++ b/translations/messages+intl-icu.fr.xlf @@ -1,6 +1,21 @@ + + + + error + Erreur + + + + + warning + Alerte + + + + accueil diff --git a/translations/security+intl-icu.en.xlf b/translations/security+intl-icu.en.xlf index 805e560..052750f 100644 --- a/translations/security+intl-icu.en.xlf +++ b/translations/security+intl-icu.en.xlf @@ -1,11 +1,59 @@ - - - - - Invalid credentials. - Invalid email or password. - - + + + + + + sign.in + Sign in + + + + + sign.up + Sign up + + + + + sign.out + Sign out + + + + + sign.remember_me + Remember me + + + + + + Email could not be found. + Invalid email or password. + + + + + Invalid credentials. + Invalid email or password. + + + + + + + + user.email + Email + + + + + user.password + Password + + + \ No newline at end of file diff --git a/translations/security+intl-icu.fr.xlf b/translations/security+intl-icu.fr.xlf index e814634..868108f 100644 --- a/translations/security+intl-icu.fr.xlf +++ b/translations/security+intl-icu.fr.xlf @@ -1,11 +1,60 @@ - - - - - - Invalid credentials. - Email ou mot de passe incorrect - - + + + + + + + sign.in + Connexion + + + + + + sign.up + Créer un compte + + + + + sign.out + Déconnexion + + + + + sign.remember_me + Se souvenir de moi + + + + + + Email could not be found. + Email ou mot de passe incorrect. + + + + + Invalid credentials. + Email ou mot de passe incorrect. + + + + + + + + user.email + Email + + + + + user.password + Mot de passe + + + \ No newline at end of file diff --git a/translations/validators+intl-icu.en.xlf b/translations/validators+intl-icu.en.xlf new file mode 100644 index 0000000..4a70ba1 --- /dev/null +++ b/translations/validators+intl-icu.en.xlf @@ -0,0 +1,593 @@ + + + + + + This value should be false. + This value should be false. + + + + + This value should be true. + This value should be true. + + + + + This value should be of type {{ type }}. + This value should be of type {{ type }}. + + + + + This value should be blank. + This value should be blank. + + + + + The value you selected is not a valid choice. + The value you selected is not a valid choice. + + + + + You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices. + You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices. + + + + + You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices. + You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices. + + + + + One or more of the given values is invalid. + One or more of the given values is invalid. + + + + + This field was not expected. + This field was not expected. + + + + + This field is missing. + This field is missing. + + + + + This value is not a valid date. + This value is not a valid date. + + + + + This value is not a valid datetime. + This value is not a valid datetime. + + + + + This value is not a valid email address. + This value is not a valid email address. + + + + + The file could not be found. + The file could not be found. + + + + + The file is not readable. + The file is not readable. + + + + + The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}. + The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}. + + + + + The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}. + The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}. + + + + + This value should be {{ limit }} or less. + This value should be {{ limit }} or less. + + + + + This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less. + This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less. + + + + + This value should be {{ limit }} or more. + This value should be {{ limit }} or more. + + + + + This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more. + This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more. + + + + + This value should not be blank. + This value should not be blank. + + + + + This value should not be null. + This value should not be null. + + + + + This value should be null. + This value should be null. + + + + + This value is not valid. + This value is not valid. + + + + + This value is not a valid time. + This value is not a valid time. + + + + + This value is not a valid URL. + This value is not a valid URL. + + + + + The two values should be equal. + The two values should be equal. + + + + + The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}. + The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}. + + + + + The file is too large. + The file is too large. + + + + + The file could not be uploaded. + The file could not be uploaded. + + + + + This value should be a valid number. + This value should be a valid number. + + + + + This file is not a valid image. + This file is not a valid image. + + + + + This is not a valid IP address. + This is not a valid IP address. + + + + + This value is not a valid language. + This value is not a valid language. + + + + + This value is not a valid locale. + This value is not a valid locale. + + + + + This value is not a valid country. + This value is not a valid country. + + + + + This value is already used. + This value is already used. + + + + + The size of the image could not be detected. + The size of the image could not be detected. + + + + + The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. + The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. + + + + + The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. + The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. + + + + + The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. + The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. + + + + + The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. + The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. + + + + + This value should be the user's current password. + This value should be the user's current password. + + + + + This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters. + This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters. + + + + + The file was only partially uploaded. + The file was only partially uploaded. + + + + + No file was uploaded. + No file was uploaded. + + + + + No temporary folder was configured in php.ini. + No temporary folder was configured in php.ini, or the configured folder does not exist. + + + + + Cannot write temporary file to disk. + Cannot write temporary file to disk. + + + + + A PHP extension caused the upload to fail. + A PHP extension caused the upload to fail. + + + + + This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more. + This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more. + + + + + This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less. + This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less. + + + + + This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements. + This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements. + + + + + Invalid card number. + Invalid card number. + + + + + Unsupported card type or invalid card number. + Unsupported card type or invalid card number. + + + + + This is not a valid International Bank Account Number (IBAN). + This is not a valid International Bank Account Number (IBAN). + + + + + This value is not a valid ISBN-10. + This value is not a valid ISBN-10. + + + + + This value is not a valid ISBN-13. + This value is not a valid ISBN-13. + + + + + This value is neither a valid ISBN-10 nor a valid ISBN-13. + This value is neither a valid ISBN-10 nor a valid ISBN-13. + + + + + This value is not a valid ISSN. + This value is not a valid ISSN. + + + + + This value is not a valid currency. + This value is not a valid currency. + + + + + This value should be equal to {{ compared_value }}. + This value should be equal to {{ compared_value }}. + + + + + This value should be greater than {{ compared_value }}. + This value should be greater than {{ compared_value }}. + + + + + This value should be greater than or equal to {{ compared_value }}. + This value should be greater than or equal to {{ compared_value }}. + + + + + This value should be identical to {{ compared_value_type }} {{ compared_value }}. + This value should be identical to {{ compared_value_type }} {{ compared_value }}. + + + + + This value should be less than {{ compared_value }}. + This value should be less than {{ compared_value }}. + + + + + This value should be less than or equal to {{ compared_value }}. + This value should be less than or equal to {{ compared_value }}. + + + + + This value should not be equal to {{ compared_value }}. + This value should not be equal to {{ compared_value }}. + + + + + This value should not be identical to {{ compared_value_type }} {{ compared_value }}. + This value should not be identical to {{ compared_value_type }} {{ compared_value }}. + + + + + The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. + The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. + + + + + The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. + The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. + + + + + The image is square ({{ width }}x{{ height }}px). Square images are not allowed. + The image is square ({{ width }}x{{ height }}px). Square images are not allowed. + + + + + The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. + The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. + + + + + The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. + The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. + + + + + An empty file is not allowed. + An empty file is not allowed. + + + + + The host could not be resolved. + The host could not be resolved. + + + + + This value does not match the expected {{ charset }} charset. + This value does not match the expected {{ charset }} charset. + + + + + This is not a valid Business Identifier Code (BIC). + This is not a valid Business Identifier Code (BIC). + + + + + Error + Error + + + + + This is not a valid UUID. + This is not a valid UUID. + + + + + This value should be a multiple of {{ compared_value }}. + This value should be a multiple of {{ compared_value }}. + + + + + This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. + This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. + + + + + This value should be valid JSON. + This value should be valid JSON. + + + + + This collection should contain only unique elements. + This collection should contain only unique elements. + + + + + This value should be positive. + This value should be positive. + + + + + This value should be either positive or zero. + This value should be either positive or zero. + + + + + This value should be negative. + This value should be negative. + + + + + This value should be either negative or zero. + This value should be either negative or zero. + + + + + This value is not a valid timezone. + This value is not a valid timezone. + + + + + This password has been leaked in a data breach, it must not be used. Please use another password. + This password has been leaked in a data breach, it must not be used. Please use another password. + + + + + This value should be between {{ min }} and {{ max }}. + This value should be between {{ min }} and {{ max }}. + + + + + This value is not a valid hostname. + This value is not a valid hostname. + + + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + The number of elements in this collection should be a multiple of {{ compared_value }}. + + + + + This value should satisfy at least one of the following constraints: + This value should satisfy at least one of the following constraints: + + + + + Each element of this collection should satisfy its own set of constraints. + Each element of this collection should satisfy its own set of constraints. + + + + + This form should not contain extra fields. + This form should not contain extra fields. + + + + + The uploaded file was too large. Please try to upload a smaller file. + The uploaded file was too large. Please try to upload a smaller file. + + + + + The CSRF token is invalid. Please try to resubmit the form. + The CSRF token is invalid. Please try to resubmit the form. + + + + diff --git a/translations/validators+intl-icu.fr.xlf b/translations/validators+intl-icu.fr.xlf new file mode 100644 index 0000000..8af25b1 --- /dev/null +++ b/translations/validators+intl-icu.fr.xlf @@ -0,0 +1,595 @@ + + + + + + This value should be false. + Cette valeur doit être fausse. + + + + + This value should be true. + Cette valeur doit être vraie. + + + + + This value should be of type {{ type }}. + Cette valeur doit être de type {{ type }}. + + + + + This value should be blank. + Cette valeur doit être vide. + + + + + The value you selected is not a valid choice. + Cette valeur doit être l'un des choix proposés. + + + + + You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices. + Vous devez sélectionner au moins {{ limit }} choix.|Vous devez sélectionner au moins {{ limit }} choix. + + + + + You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices. + Vous devez sélectionner au maximum {{ limit }} choix.|Vous devez sélectionner au maximum {{ limit }} choix. + + + + + One or more of the given values is invalid. + Une ou plusieurs des valeurs soumises sont invalides. + + + + + This field was not expected. + Ce champ n'a pas été prévu. + + + + + This field is missing. + Ce champ est manquant. + + + + + This value is not a valid date. + Cette valeur n'est pas une date valide. + + + + + This value is not a valid datetime. + Cette valeur n'est pas une date valide. + + + + + This value is not a valid email address. + Cette valeur n'est pas une adresse email valide. + + + + + The file could not be found. + Le fichier n'a pas été trouvé. + + + + + The file is not readable. + Le fichier n'est pas lisible. + + + + + The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}. + Le fichier est trop volumineux ({{ size }} {{ suffix }}). Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}. + + + + + The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}. + Le type du fichier est invalide ({{ type }}). Les types autorisés sont {{ types }}. + + + + + This value should be {{ limit }} or less. + Cette valeur doit être inférieure ou égale à {{ limit }}. + + + + + This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less. + Cette chaîne est trop longue. Elle doit avoir au maximum {{ limit }} caractère.|Cette chaîne est trop longue. Elle doit avoir au maximum {{ limit }} caractères. + + + + + + This value should be {{ limit }} or more. + Cette valeur doit être supérieure ou égale à {{ limit }}. + + + + + This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more. + Cette chaîne est trop courte. Elle doit avoir au minimum {{ limit }} caractère.|Cette chaîne est trop courte. Elle doit avoir au minimum {{ limit }} caractères. + + + + + + This value should not be blank. + Cette valeur ne doit pas être vide. + + + + + This value should not be null. + Cette valeur ne doit pas être nulle. + + + + + This value should be null. + Cette valeur doit être nulle. + + + + + This value is not valid. + Cette valeur n'est pas valide. + + + + + This value is not a valid time. + Cette valeur n'est pas une heure valide. + + + + + This value is not a valid URL. + Cette valeur n'est pas une URL valide. + + + + + The two values should be equal. + Les deux valeurs doivent être identiques. + + + + + The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}. + Le fichier est trop volumineux. Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}. + + + + + The file is too large. + Le fichier est trop volumineux. + + + + + The file could not be uploaded. + Le téléchargement de ce fichier est impossible. + + + + + This value should be a valid number. + Cette valeur doit être un nombre. + + + + + This file is not a valid image. + Ce fichier n'est pas une image valide. + + + + + This is not a valid IP address. + Cette adresse IP n'est pas valide. + + + + + This value is not a valid language. + Cette langue n'est pas valide. + + + + + This value is not a valid locale. + Ce paramètre régional n'est pas valide. + + + + + This value is not a valid country. + Ce pays n'est pas valide. + + + + + This value is already used. + Cette valeur est déjà utilisée. + + + + + The size of the image could not be detected. + La taille de l'image n'a pas pu être détectée. + + + + + The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px. + La largeur de l'image est trop grande ({{ width }}px). La largeur maximale autorisée est de {{ max_width }}px. + + + + + The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px. + La largeur de l'image est trop petite ({{ width }}px). La largeur minimale attendue est de {{ min_width }}px. + + + + + The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px. + La hauteur de l'image est trop grande ({{ height }}px). La hauteur maximale autorisée est de {{ max_height }}px. + + + + + The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px. + La hauteur de l'image est trop petite ({{ height }}px). La hauteur minimale attendue est de {{ min_height }}px. + + + + + This value should be the user's current password. + Cette valeur doit être le mot de passe actuel de l'utilisateur. + + + + + This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters. + Cette chaîne doit avoir exactement {{ limit }} caractère.|Cette chaîne doit avoir exactement {{ limit }} caractères. + + + + + The file was only partially uploaded. + Le fichier a été partiellement transféré. + + + + + No file was uploaded. + Aucun fichier n'a été transféré. + + + + + No temporary folder was configured in php.ini. + Aucun répertoire temporaire n'a été configuré dans le php.ini. + + + + + Cannot write temporary file to disk. + Impossible d'écrire le fichier temporaire sur le disque. + + + + + A PHP extension caused the upload to fail. + Une extension PHP a empêché le transfert du fichier. + + + + + This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more. + Cette collection doit contenir {{ limit }} élément ou plus.|Cette collection doit contenir {{ limit }} éléments ou plus. + + + + + This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less. + Cette collection doit contenir {{ limit }} élément ou moins.|Cette collection doit contenir {{ limit }} éléments ou moins. + + + + + This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements. + Cette collection doit contenir exactement {{ limit }} élément.|Cette collection doit contenir exactement {{ limit }} éléments. + + + + + Invalid card number. + Numéro de carte invalide. + + + + + Unsupported card type or invalid card number. + Type de carte non supporté ou numéro invalide. + + + + + This is not a valid International Bank Account Number (IBAN). + Le numéro IBAN (International Bank Account Number) saisi n'est pas valide. + + + + + This value is not a valid ISBN-10. + Cette valeur n'est pas un code ISBN-10 valide. + + + + + This value is not a valid ISBN-13. + Cette valeur n'est pas un code ISBN-13 valide. + + + + + This value is neither a valid ISBN-10 nor a valid ISBN-13. + Cette valeur n'est ni un code ISBN-10, ni un code ISBN-13 valide. + + + + + This value is not a valid ISSN. + Cette valeur n'est pas un code ISSN valide. + + + + + This value is not a valid currency. + Cette valeur n'est pas une devise valide. + + + + + This value should be equal to {{ compared_value }}. + Cette valeur doit être égale à {{ compared_value }}. + + + + + This value should be greater than {{ compared_value }}. + Cette valeur doit être supérieure à {{ compared_value }}. + + + + + This value should be greater than or equal to {{ compared_value }}. + Cette valeur doit être supérieure ou égale à {{ compared_value }}. + + + + + This value should be identical to {{ compared_value_type }} {{ compared_value }}. + Cette valeur doit être identique à {{ compared_value_type }} {{ compared_value }}. + + + + + This value should be less than {{ compared_value }}. + Cette valeur doit être inférieure à {{ compared_value }}. + + + + + This value should be less than or equal to {{ compared_value }}. + Cette valeur doit être inférieure ou égale à {{ compared_value }}. + + + + + This value should not be equal to {{ compared_value }}. + Cette valeur ne doit pas être égale à {{ compared_value }}. + + + + + This value should not be identical to {{ compared_value_type }} {{ compared_value }}. + Cette valeur ne doit pas être identique à {{ compared_value_type }} {{ compared_value }}. + + + + + The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}. + Le rapport largeur/hauteur de l'image est trop grand ({{ ratio }}). Le rapport maximal autorisé est {{ max_ratio }}. + + + + + The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}. + Le rapport largeur/hauteur de l'image est trop petit ({{ ratio }}). Le rapport minimal attendu est {{ min_ratio }}. + + + + + The image is square ({{ width }}x{{ height }}px). Square images are not allowed. + L'image est carrée ({{ width }}x{{ height }}px). Les images carrées ne sont pas autorisées. + + + + + The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed. + L'image est au format paysage ({{ width }}x{{ height }}px). Les images au format paysage ne sont pas autorisées. + + + + + The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed. + L'image est au format portrait ({{ width }}x{{ height }}px). Les images au format portrait ne sont pas autorisées. + + + + + An empty file is not allowed. + Un fichier vide n'est pas autorisé. + + + + + The host could not be resolved. + Le nom de domaine n'a pas pu être résolu. + + + + + This value does not match the expected {{ charset }} charset. + Cette valeur ne correspond pas au jeu de caractères {{ charset }} attendu. + + + + + This is not a valid Business Identifier Code (BIC). + Ce n'est pas un code universel d'identification des banques (BIC) valide. + + + + + Error + Erreur + + + + + This is not a valid UUID. + Ceci n'est pas un UUID valide. + + + + + This value should be a multiple of {{ compared_value }}. + Cette valeur doit être un multiple de {{ compared_value }}. + + + + + This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}. + Ce code d'identification d'entreprise (BIC) n'est pas associé à l'IBAN {{ iban }}. + + + + + This value should be valid JSON. + Cette valeur doit être un JSON valide. + + + + + This collection should contain only unique elements. + Cette collection ne doit pas comporter de doublons. + + + + + This value should be positive. + Cette valeur doit être strictement positive. + + + + + This value should be either positive or zero. + Cette valeur doit être supérieure ou égale à zéro. + + + + + This value should be negative. + Cette valeur doit être strictement négative. + + + + + This value should be either negative or zero. + Cette valeur doit être inférieure ou égale à zéro. + + + + + This value is not a valid timezone. + Cette valeur n'est pas un fuseau horaire valide. + + + + + This password has been leaked in a data breach, it must not be used. Please use another password. + Ce mot de passe a été divulgué lors d'une fuite de données, il ne doit plus être utilisé. Veuillez utiliser un autre mot de passe. + + + + + This value should be between {{ min }} and {{ max }}. + Cette valeur doit être comprise entre {{ min }} et {{ max }}. + + + + + This value is not a valid hostname. + Cette valeur n'est pas un nom d'hôte valide. + + + + + The number of elements in this collection should be a multiple of {{ compared_value }}. + Le nombre d'éléments de cette collection doit être un multiple de {{ compared_value }}. + + + + + This value should satisfy at least one of the following constraints: + Cette valeur doit satisfaire à au moins une des contraintes suivantes : + + + + + Each element of this collection should satisfy its own set of constraints. + Chaque élément de cette collection doit satisfaire à son propre jeu de contraintes. + + + + + This form should not contain extra fields. + Ce formulaire ne doit pas contenir des champs supplémentaires. + + + + + The uploaded file was too large. Please try to upload a smaller file. + Le fichier téléchargé est trop volumineux. Merci d'essayer d'envoyer un fichier plus petit. + + + + + The CSRF token is invalid. Please try to resubmit the form. + Le jeton CSRF est invalide. Veuillez renvoyer le formulaire. + + + +