Set-up translation

master
Julien Rosset 5 years ago
parent 3fe0dda209
commit 89eb754353

@ -119,5 +119,6 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="jquery-3.5.1" level="application" />
</component>
</module>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{jquery-3.5.1}" />
</component>
</project>

@ -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

@ -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%'

@ -0,0 +1,3 @@
#messages {
display: none;
}

@ -0,0 +1,6 @@
$(function () {
/* Messages */
$('#messages div').each(function () {
$(this).dialog();
});
});

@ -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');
}
}

@ -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');
}
}

@ -2,11 +2,46 @@
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Giftopic - {% block title %}{% endblock %}</title>
<title>{% block title %}{% endblock %} - Giftopic</title>
<!-- STYLESHEET -->
<link type="text/css" rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/redmond/jquery-ui.css">
<link type="text/css" rel="stylesheet" href="/css/site/base.css">
{% block stylesheets %}{% endblock %}
</head>
<body>
<header>
<div>
Giftopic
</div>
<div>
{% if app.user %}
{{ app.user.username }}, <a href="{{ path('app_security_sign_out') }}">{% trans from 'security' %}sign.out{% endtrans %}</a>
{% endif %}
</div>
</header>
{% block body %}{% endblock %}
<footer></footer>
<div id="messages">
{% for type, messages in app.flashes(['error', 'warning']) %}
{% if messages %}
<div id="flash-{{ type }}" title="{{ type|trans({}, 'messages') }}">
{% for message in messages %}
<p>{{ message }}</p>
{% endfor %}
</div>
{% endif %}
{% endfor %}
</div>
<!-- JAVASCRIPT -->
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
<script src="/javascript/site/base.js"></script>
{% block javascripts %}{% endblock %}
</body>
</html>

@ -1,35 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Log in{% endblock %}
{% block body %}
<form method="post">
{% if error %}
<div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}
{% if app.user %}
<div class="mb-3">
You are logged in as {{ app.user.username }}, <a href="{{ path('app_security_logout') }}">Logout</a>
</div>
{% endif %}
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
<label for="inputEmail">Email</label>
<input type="email" value="{{ last_username }}" name="email" id="inputEmail" class="form-control" required autofocus>
<label for="inputPassword">Password</label>
<input type="password" name="password" id="inputPassword" class="form-control" required>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<div class="checkbox mb-3">
<label>
<input type="checkbox" name="_remember_me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary" type="submit">Sign in</button>
</form>
{% endblock %}

@ -0,0 +1,26 @@
{% trans_default_domain 'security' %}
{% extends 'base.html.twig' %}
{% block title %}{% trans %}sign.in{% endtrans %}{% endblock %}
{% block body %}
<form method="post">
<h1 class="h3 mb-3 font-weight-normal">{% trans %}sign.in{% endtrans %}</h1>
<label for="email">{% trans %}user.email{% endtrans %}</label>
<input type="email" value="{{ last_username }}" name="email" id="email" class="form-control" required autofocus>
<label for="password">{% trans %}user.password{% endtrans %}</label>
<input type="password" name="password" id="password" class="form-control" required>
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
<div class="checkbox mb-3">
<label>
<input type="checkbox" name="_remember_me"> {% trans %}sign.remember_me{% endtrans %}
</label>
</div>
<button class="btn btn-lg btn-primary" type="submit">{% trans %}sign.in{% endtrans %}</button>
</form>
{% endblock %}

@ -1,6 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="en">
<file id="messages.intl-icu.en">
<group id="messages">
<unit id="error">
<segment>
<source>error</source>
<target>Error</target>
</segment>
</unit>
<unit id="warning">
<segment>
<source>warning</source>
<target>Warning</target>
</segment>
</unit>
</group>
<unit id="accueil">
<segment>
<source>accueil</source>

@ -1,6 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr">
<file id="messages.intl-icu.fr">
<group id="messages">
<unit id="error">
<segment>
<source>error</source>
<target>Erreur</target>
</segment>
</unit>
<unit id="warning">
<segment>
<source>warning</source>
<target>Alerte</target>
</segment>
</unit>
</group>
<unit id="accueil">
<segment>
<source>accueil</source>

@ -1,11 +1,59 @@
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="Invalid credentials.">
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="en">
<file id="messages.intl-icu.en">
<group id="sign">
<unit id="in">
<segment>
<source>sign.in</source>
<target>Sign in</target>
</segment>
</unit>
<unit id="up">
<segment>
<source>sign.up</source>
<target>Sign up</target>
</segment>
</unit>
<unit id="out">
<segment>
<source>sign.out</source>
<target>Sign out</target>
</segment>
</unit>
<unit id="remember_me">
<segment>
<source>sign.remember_me</source>
<target>Remember me</target>
</segment>
</unit>
<group id="incorrect">
<unit id="incorrect.email">
<segment>
<source>Email could not be found.</source>
<target>Invalid email or password.</target>
</segment>
</unit>
<unit id="incorrect.password">
<segment>
<source>Invalid credentials.</source>
<target>Invalid email or password.</target>
</trans-unit>
</body>
</segment>
</unit>
</group>
</group>
<group id="user">
<unit id="email">
<segment>
<source>user.email</source>
<target>Email</target>
</segment>
</unit>
<unit id="password">
<segment>
<source>user.password</source>
<target>Password</target>
</segment>
</unit>
</group>
</file>
</xliff>

@ -1,11 +1,60 @@
<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="Invalid credentials.">
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr">
<file id="messages.intl-icu.fr">
<group id="sign">
<unit id="in">
<segment>
<source>sign.in</source>
<target>Connexion</target>
</segment>
</unit>
<unit id="up">
<segment>
<source>sign.up</source>
<target>Créer un compte</target>
</segment>
</unit>
<unit id="out">
<segment>
<source>sign.out</source>
<target>Déconnexion</target>
</segment>
</unit>
<unit id="remember_me">
<segment>
<source>sign.remember_me</source>
<target>Se souvenir de moi</target>
</segment>
</unit>
<group id="incorrect">
<unit id="email">
<segment>
<source>Email could not be found.</source>
<target>Email ou mot de passe incorrect.</target>
</segment>
</unit>
<unit id="password">
<segment>
<source>Invalid credentials.</source>
<target>Email ou mot de passe incorrect</target>
</trans-unit>
</body>
<target>Email ou mot de passe incorrect.</target>
</segment>
</unit>
</group>
</group>
<group id="user">
<unit id="email">
<segment>
<source>user.email</source>
<target>Email</target>
</segment>
</unit>
<unit id="password">
<segment>
<source>user.password</source>
<target>Mot de passe</target>
</segment>
</unit>
</group>
</file>
</xliff>

@ -0,0 +1,593 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="en">
<file id="validators.en">
<unit id="zh5oKD9" name="This value should be false.">
<segment>
<source>This value should be false.</source>
<target>This value should be false.</target>
</segment>
</unit>
<unit id="NN2_iru" name="This value should be true.">
<segment>
<source>This value should be true.</source>
<target>This value should be true.</target>
</segment>
</unit>
<unit id="OjM_kpf" name="This value should be of type {{ type }}.">
<segment>
<source>This value should be of type {{ type }}.</source>
<target>This value should be of type {{ type }}.</target>
</segment>
</unit>
<unit id="f0P5pBD" name="This value should be blank.">
<segment>
<source>This value should be blank.</source>
<target>This value should be blank.</target>
</segment>
</unit>
<unit id="ih.4TRN" name="The value you selected is not a valid choice.">
<segment>
<source>The value you selected is not a valid choice.</source>
<target>The value you selected is not a valid choice.</target>
</segment>
</unit>
<unit id="u81CkP8" name="0d999f2">
<segment>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</target>
</segment>
</unit>
<unit id="nIvOQ_o" name="0824486">
<segment>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</target>
</segment>
</unit>
<unit id="87zjiHi" name="One or more of the given values is invalid.">
<segment>
<source>One or more of the given values is invalid.</source>
<target>One or more of the given values is invalid.</target>
</segment>
</unit>
<unit id="3NeQftv" name="This field was not expected.">
<segment>
<source>This field was not expected.</source>
<target>This field was not expected.</target>
</segment>
</unit>
<unit id="SwMV4zp" name="This field is missing.">
<segment>
<source>This field is missing.</source>
<target>This field is missing.</target>
</segment>
</unit>
<unit id="LO2vFKN" name="This value is not a valid date.">
<segment>
<source>This value is not a valid date.</source>
<target>This value is not a valid date.</target>
</segment>
</unit>
<unit id="86dU_nv" name="This value is not a valid datetime.">
<segment>
<source>This value is not a valid datetime.</source>
<target>This value is not a valid datetime.</target>
</segment>
</unit>
<unit id="PSvNXdi" name="This value is not a valid email address.">
<segment>
<source>This value is not a valid email address.</source>
<target>This value is not a valid email address.</target>
</segment>
</unit>
<unit id="3KeHbZy" name="The file could not be found.">
<segment>
<source>The file could not be found.</source>
<target>The file could not be found.</target>
</segment>
</unit>
<unit id="KtJhQZo" name="The file is not readable.">
<segment>
<source>The file is not readable.</source>
<target>The file is not readable.</target>
</segment>
</unit>
<unit id="JocOVM2" name="1ad411a">
<segment>
<source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
<target>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</target>
</segment>
</unit>
<unit id="YW21SPH" name="30a318d">
<segment>
<source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
<target>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</target>
</segment>
</unit>
<unit id="NubOmrs" name="This value should be {{ limit }} or less.">
<segment>
<source>This value should be {{ limit }} or less.</source>
<target>This value should be {{ limit }} or less.</target>
</segment>
</unit>
<unit id="HX7TOFm" name="0e0c1e1">
<segment>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</target>
</segment>
</unit>
<unit id="qgR8M_U" name="This value should be {{ limit }} or more.">
<segment>
<source>This value should be {{ limit }} or more.</source>
<target>This value should be {{ limit }} or more.</target>
</segment>
</unit>
<unit id="ekfrU.c" name="5188ff9">
<segment>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</target>
</segment>
</unit>
<unit id="1KV4L.t" name="This value should not be blank.">
<segment>
<source>This value should not be blank.</source>
<target>This value should not be blank.</target>
</segment>
</unit>
<unit id="2G4Vepm" name="This value should not be null.">
<segment>
<source>This value should not be null.</source>
<target>This value should not be null.</target>
</segment>
</unit>
<unit id="yDc3m6E" name="This value should be null.">
<segment>
<source>This value should be null.</source>
<target>This value should be null.</target>
</segment>
</unit>
<unit id="zKzWejA" name="This value is not valid.">
<segment>
<source>This value is not valid.</source>
<target>This value is not valid.</target>
</segment>
</unit>
<unit id="HSuBZpQ" name="This value is not a valid time.">
<segment>
<source>This value is not a valid time.</source>
<target>This value is not a valid time.</target>
</segment>
</unit>
<unit id="snWc_QT" name="This value is not a valid URL.">
<segment>
<source>This value is not a valid URL.</source>
<target>This value is not a valid URL.</target>
</segment>
</unit>
<unit id="jpaLsb2" name="The two values should be equal.">
<segment>
<source>The two values should be equal.</source>
<target>The two values should be equal.</target>
</segment>
</unit>
<unit id="fIlB1B_" name="The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.">
<segment>
<source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
<target>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</target>
</segment>
</unit>
<unit id="tW7o0t9" name="The file is too large.">
<segment>
<source>The file is too large.</source>
<target>The file is too large.</target>
</segment>
</unit>
<unit id=".exF5Ww" name="The file could not be uploaded.">
<segment>
<source>The file could not be uploaded.</source>
<target>The file could not be uploaded.</target>
</segment>
</unit>
<unit id="d7sS5yw" name="This value should be a valid number.">
<segment>
<source>This value should be a valid number.</source>
<target>This value should be a valid number.</target>
</segment>
</unit>
<unit id="BS2Ez6i" name="This file is not a valid image.">
<segment>
<source>This file is not a valid image.</source>
<target>This file is not a valid image.</target>
</segment>
</unit>
<unit id="ydcT9kU" name="This is not a valid IP address.">
<segment>
<source>This is not a valid IP address.</source>
<target>This is not a valid IP address.</target>
</segment>
</unit>
<unit id="lDOGNFX" name="This value is not a valid language.">
<segment>
<source>This value is not a valid language.</source>
<target>This value is not a valid language.</target>
</segment>
</unit>
<unit id="y9IdYkA" name="This value is not a valid locale.">
<segment>
<source>This value is not a valid locale.</source>
<target>This value is not a valid locale.</target>
</segment>
</unit>
<unit id="1YC0pOd" name="This value is not a valid country.">
<segment>
<source>This value is not a valid country.</source>
<target>This value is not a valid country.</target>
</segment>
</unit>
<unit id="B5ebaMp" name="This value is already used.">
<segment>
<source>This value is already used.</source>
<target>This value is already used.</target>
</segment>
</unit>
<unit id="L6097a6" name="The size of the image could not be detected.">
<segment>
<source>The size of the image could not be detected.</source>
<target>The size of the image could not be detected.</target>
</segment>
</unit>
<unit id="zVtJJEa" name="266051e">
<segment>
<source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
<target>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</target>
</segment>
</unit>
<unit id="s8LFQGC" name="c1c23f9">
<segment>
<source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
<target>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</target>
</segment>
</unit>
<unit id="Z.NgqFj" name="9a128f7">
<segment>
<source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
<target>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</target>
</segment>
</unit>
<unit id="AW1lWVM" name="8a4cd70">
<segment>
<source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
<target>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</target>
</segment>
</unit>
<unit id="PSdMNab" name="This value should be the user's current password.">
<segment>
<source>This value should be the user's current password.</source>
<target>This value should be the user's current password.</target>
</segment>
</unit>
<unit id="gYImVyV" name="fd389d6">
<segment>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</target>
</segment>
</unit>
<unit id="xJ2Bcr_" name="The file was only partially uploaded.">
<segment>
<source>The file was only partially uploaded.</source>
<target>The file was only partially uploaded.</target>
</segment>
</unit>
<unit id="HzkJDtF" name="No file was uploaded.">
<segment>
<source>No file was uploaded.</source>
<target>No file was uploaded.</target>
</segment>
</unit>
<unit id="mHfEaB3" name="No temporary folder was configured in php.ini.">
<segment>
<source>No temporary folder was configured in php.ini.</source>
<target>No temporary folder was configured in php.ini, or the configured folder does not exist.</target>
</segment>
</unit>
<unit id="y9K3BGb" name="Cannot write temporary file to disk.">
<segment>
<source>Cannot write temporary file to disk.</source>
<target>Cannot write temporary file to disk.</target>
</segment>
</unit>
<unit id="kx3yHIM" name="A PHP extension caused the upload to fail.">
<segment>
<source>A PHP extension caused the upload to fail.</source>
<target>A PHP extension caused the upload to fail.</target>
</segment>
</unit>
<unit id="gTJYRl6" name="b54c218">
<segment>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</target>
</segment>
</unit>
<unit id="FFn3lVn" name="949632c">
<segment>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</target>
</segment>
</unit>
<unit id="bSdilZv" name="e0582dc">
<segment>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</target>
</segment>
</unit>
<unit id="MAzmID7" name="Invalid card number.">
<segment>
<source>Invalid card number.</source>
<target>Invalid card number.</target>
</segment>
</unit>
<unit id="c3REGK3" name="Unsupported card type or invalid card number.">
<segment>
<source>Unsupported card type or invalid card number.</source>
<target>Unsupported card type or invalid card number.</target>
</segment>
</unit>
<unit id="XSVzcbV" name="This is not a valid International Bank Account Number (IBAN).">
<segment>
<source>This is not a valid International Bank Account Number (IBAN).</source>
<target>This is not a valid International Bank Account Number (IBAN).</target>
</segment>
</unit>
<unit id="yHirwNr" name="This value is not a valid ISBN-10.">
<segment>
<source>This value is not a valid ISBN-10.</source>
<target>This value is not a valid ISBN-10.</target>
</segment>
</unit>
<unit id="c_q0_ua" name="This value is not a valid ISBN-13.">
<segment>
<source>This value is not a valid ISBN-13.</source>
<target>This value is not a valid ISBN-13.</target>
</segment>
</unit>
<unit id="M4FlD6n" name="This value is neither a valid ISBN-10 nor a valid ISBN-13.">
<segment>
<source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
<target>This value is neither a valid ISBN-10 nor a valid ISBN-13.</target>
</segment>
</unit>
<unit id="cuct0Ow" name="This value is not a valid ISSN.">
<segment>
<source>This value is not a valid ISSN.</source>
<target>This value is not a valid ISSN.</target>
</segment>
</unit>
<unit id="JBLs1a1" name="This value is not a valid currency.">
<segment>
<source>This value is not a valid currency.</source>
<target>This value is not a valid currency.</target>
</segment>
</unit>
<unit id="c.WxzFW" name="This value should be equal to {{ compared_value }}.">
<segment>
<source>This value should be equal to {{ compared_value }}.</source>
<target>This value should be equal to {{ compared_value }}.</target>
</segment>
</unit>
<unit id="_jdjkwq" name="This value should be greater than {{ compared_value }}.">
<segment>
<source>This value should be greater than {{ compared_value }}.</source>
<target>This value should be greater than {{ compared_value }}.</target>
</segment>
</unit>
<unit id="o8A8a0H" name="This value should be greater than or equal to {{ compared_value }}.">
<segment>
<source>This value should be greater than or equal to {{ compared_value }}.</source>
<target>This value should be greater than or equal to {{ compared_value }}.</target>
</segment>
</unit>
<unit id="bOF1fpm" name="9670078">
<segment>
<source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
<target>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</target>
</segment>
</unit>
<unit id="jG0QFKw" name="This value should be less than {{ compared_value }}.">
<segment>
<source>This value should be less than {{ compared_value }}.</source>
<target>This value should be less than {{ compared_value }}.</target>
</segment>
</unit>
<unit id="9lWrKmm" name="This value should be less than or equal to {{ compared_value }}.">
<segment>
<source>This value should be less than or equal to {{ compared_value }}.</source>
<target>This value should be less than or equal to {{ compared_value }}.</target>
</segment>
</unit>
<unit id="ftTwGs." name="This value should not be equal to {{ compared_value }}.">
<segment>
<source>This value should not be equal to {{ compared_value }}.</source>
<target>This value should not be equal to {{ compared_value }}.</target>
</segment>
</unit>
<unit id="Bi22JLt" name="0eedf91">
<segment>
<source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
<target>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</target>
</segment>
</unit>
<unit id="VczCWzQ" name="9c3ad0f">
<segment>
<source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
<target>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</target>
</segment>
</unit>
<unit id="v57PXhq" name="4376d45">
<segment>
<source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
<target>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</target>
</segment>
</unit>
<unit id="rpajj.a" name="The image is square ({{ width }}x{{ height }}px). Square images are not allowed.">
<segment>
<source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
<target>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</target>
</segment>
</unit>
<unit id="G_lu2qW" name="1dc128a">
<segment>
<source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
<target>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</target>
</segment>
</unit>
<unit id="sFyGx4B" name="9e27714">
<segment>
<source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
<target>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</target>
</segment>
</unit>
<unit id="jZgqcpL" name="An empty file is not allowed.">
<segment>
<source>An empty file is not allowed.</source>
<target>An empty file is not allowed.</target>
</segment>
</unit>
<unit id="bcfVezI" name="The host could not be resolved.">
<segment>
<source>The host could not be resolved.</source>
<target>The host could not be resolved.</target>
</segment>
</unit>
<unit id="NtzKvgt" name="This value does not match the expected {{ charset }} charset.">
<segment>
<source>This value does not match the expected {{ charset }} charset.</source>
<target>This value does not match the expected {{ charset }} charset.</target>
</segment>
</unit>
<unit id="Wi2y9.N" name="This is not a valid Business Identifier Code (BIC).">
<segment>
<source>This is not a valid Business Identifier Code (BIC).</source>
<target>This is not a valid Business Identifier Code (BIC).</target>
</segment>
</unit>
<unit id="VKDowX6" name="Error">
<segment>
<source>Error</source>
<target>Error</target>
</segment>
</unit>
<unit id="8zqt0Ik" name="This is not a valid UUID.">
<segment>
<source>This is not a valid UUID.</source>
<target>This is not a valid UUID.</target>
</segment>
</unit>
<unit id="ru.4wkH" name="This value should be a multiple of {{ compared_value }}.">
<segment>
<source>This value should be a multiple of {{ compared_value }}.</source>
<target>This value should be a multiple of {{ compared_value }}.</target>
</segment>
</unit>
<unit id="M3vyK6s" name="This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.">
<segment>
<source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source>
<target>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</target>
</segment>
</unit>
<unit id="2v2xpAh" name="This value should be valid JSON.">
<segment>
<source>This value should be valid JSON.</source>
<target>This value should be valid JSON.</target>
</segment>
</unit>
<unit id="9CWVEGq" name="This collection should contain only unique elements.">
<segment>
<source>This collection should contain only unique elements.</source>
<target>This collection should contain only unique elements.</target>
</segment>
</unit>
<unit id="WdvZfq." name="This value should be positive.">
<segment>
<source>This value should be positive.</source>
<target>This value should be positive.</target>
</segment>
</unit>
<unit id="ubHMK2q" name="This value should be either positive or zero.">
<segment>
<source>This value should be either positive or zero.</source>
<target>This value should be either positive or zero.</target>
</segment>
</unit>
<unit id="IwNTzo_" name="This value should be negative.">
<segment>
<source>This value should be negative.</source>
<target>This value should be negative.</target>
</segment>
</unit>
<unit id="0GfwMfP" name="This value should be either negative or zero.">
<segment>
<source>This value should be either negative or zero.</source>
<target>This value should be either negative or zero.</target>
</segment>
</unit>
<unit id="fs3qQZR" name="This value is not a valid timezone.">
<segment>
<source>This value is not a valid timezone.</source>
<target>This value is not a valid timezone.</target>
</segment>
</unit>
<unit id="40dnsod" name="7e27e92">
<segment>
<source>This password has been leaked in a data breach, it must not be used. Please use another password.</source>
<target>This password has been leaked in a data breach, it must not be used. Please use another password.</target>
</segment>
</unit>
<unit id="VvxxWas" name="This value should be between {{ min }} and {{ max }}.">
<segment>
<source>This value should be between {{ min }} and {{ max }}.</source>
<target>This value should be between {{ min }} and {{ max }}.</target>
</segment>
</unit>
<unit id="7g313cV" name="This value is not a valid hostname.">
<segment>
<source>This value is not a valid hostname.</source>
<target>This value is not a valid hostname.</target>
</segment>
</unit>
<unit id="xwtBimR" name="d165c02">
<segment>
<source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source>
<target>The number of elements in this collection should be a multiple of {{ compared_value }}.</target>
</segment>
</unit>
<unit id="FDRZr.s" name="This value should satisfy at least one of the following constraints:">
<segment>
<source>This value should satisfy at least one of the following constraints:</source>
<target>This value should satisfy at least one of the following constraints:</target>
</segment>
</unit>
<unit id="WwY0IGI" name="Each element of this collection should satisfy its own set of constraints.">
<segment>
<source>Each element of this collection should satisfy its own set of constraints.</source>
<target>Each element of this collection should satisfy its own set of constraints.</target>
</segment>
</unit>
<unit id=".SEaaBa" name="This form should not contain extra fields.">
<segment>
<source>This form should not contain extra fields.</source>
<target>This form should not contain extra fields.</target>
</segment>
</unit>
<unit id="WPnLAh9" name="The uploaded file was too large. Please try to upload a smaller file.">
<segment>
<source>The uploaded file was too large. Please try to upload a smaller file.</source>
<target>The uploaded file was too large. Please try to upload a smaller file.</target>
</segment>
</unit>
<unit id="fvxWW3V" name="The CSRF token is invalid. Please try to resubmit the form.">
<segment>
<source>The CSRF token is invalid. Please try to resubmit the form.</source>
<target>The CSRF token is invalid. Please try to resubmit the form.</target>
</segment>
</unit>
</file>
</xliff>

@ -0,0 +1,595 @@
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="en" trgLang="fr">
<file id="validators.fr">
<unit id="zh5oKD9" name="This value should be false.">
<segment>
<source>This value should be false.</source>
<target>Cette valeur doit être fausse.</target>
</segment>
</unit>
<unit id="NN2_iru" name="This value should be true.">
<segment>
<source>This value should be true.</source>
<target>Cette valeur doit être vraie.</target>
</segment>
</unit>
<unit id="OjM_kpf" name="This value should be of type {{ type }}.">
<segment>
<source>This value should be of type {{ type }}.</source>
<target>Cette valeur doit être de type {{ type }}.</target>
</segment>
</unit>
<unit id="f0P5pBD" name="This value should be blank.">
<segment>
<source>This value should be blank.</source>
<target>Cette valeur doit être vide.</target>
</segment>
</unit>
<unit id="ih.4TRN" name="The value you selected is not a valid choice.">
<segment>
<source>The value you selected is not a valid choice.</source>
<target>Cette valeur doit être l'un des choix proposés.</target>
</segment>
</unit>
<unit id="u81CkP8" name="0d999f2">
<segment>
<source>You must select at least {{ limit }} choice.|You must select at least {{ limit }} choices.</source>
<target>Vous devez sélectionner au moins {{ limit }} choix.|Vous devez sélectionner au moins {{ limit }} choix.</target>
</segment>
</unit>
<unit id="nIvOQ_o" name="0824486">
<segment>
<source>You must select at most {{ limit }} choice.|You must select at most {{ limit }} choices.</source>
<target>Vous devez sélectionner au maximum {{ limit }} choix.|Vous devez sélectionner au maximum {{ limit }} choix.</target>
</segment>
</unit>
<unit id="87zjiHi" name="One or more of the given values is invalid.">
<segment>
<source>One or more of the given values is invalid.</source>
<target>Une ou plusieurs des valeurs soumises sont invalides.</target>
</segment>
</unit>
<unit id="3NeQftv" name="This field was not expected.">
<segment>
<source>This field was not expected.</source>
<target>Ce champ n'a pas été prévu.</target>
</segment>
</unit>
<unit id="SwMV4zp" name="This field is missing.">
<segment>
<source>This field is missing.</source>
<target>Ce champ est manquant.</target>
</segment>
</unit>
<unit id="LO2vFKN" name="This value is not a valid date.">
<segment>
<source>This value is not a valid date.</source>
<target>Cette valeur n'est pas une date valide.</target>
</segment>
</unit>
<unit id="86dU_nv" name="This value is not a valid datetime.">
<segment>
<source>This value is not a valid datetime.</source>
<target>Cette valeur n'est pas une date valide.</target>
</segment>
</unit>
<unit id="PSvNXdi" name="This value is not a valid email address.">
<segment>
<source>This value is not a valid email address.</source>
<target>Cette valeur n'est pas une adresse email valide.</target>
</segment>
</unit>
<unit id="3KeHbZy" name="The file could not be found.">
<segment>
<source>The file could not be found.</source>
<target>Le fichier n'a pas été trouvé.</target>
</segment>
</unit>
<unit id="KtJhQZo" name="The file is not readable.">
<segment>
<source>The file is not readable.</source>
<target>Le fichier n'est pas lisible.</target>
</segment>
</unit>
<unit id="JocOVM2" name="1ad411a">
<segment>
<source>The file is too large ({{ size }} {{ suffix }}). Allowed maximum size is {{ limit }} {{ suffix }}.</source>
<target>Le fichier est trop volumineux ({{ size }} {{ suffix }}). Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}.</target>
</segment>
</unit>
<unit id="YW21SPH" name="30a318d">
<segment>
<source>The mime type of the file is invalid ({{ type }}). Allowed mime types are {{ types }}.</source>
<target>Le type du fichier est invalide ({{ type }}). Les types autorisés sont {{ types }}.</target>
</segment>
</unit>
<unit id="NubOmrs" name="This value should be {{ limit }} or less.">
<segment>
<source>This value should be {{ limit }} or less.</source>
<target>Cette valeur doit être inférieure ou égale à {{ limit }}.</target>
</segment>
</unit>
<unit id="HX7TOFm" name="0e0c1e1">
<segment>
<source>This value is too long. It should have {{ limit }} character or less.|This value is too long. It should have {{ limit }} characters or less.</source>
<target>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.
</target>
</segment>
</unit>
<unit id="qgR8M_U" name="This value should be {{ limit }} or more.">
<segment>
<source>This value should be {{ limit }} or more.</source>
<target>Cette valeur doit être supérieure ou égale à {{ limit }}.</target>
</segment>
</unit>
<unit id="ekfrU.c" name="5188ff9">
<segment>
<source>This value is too short. It should have {{ limit }} character or more.|This value is too short. It should have {{ limit }} characters or more.</source>
<target>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.
</target>
</segment>
</unit>
<unit id="1KV4L.t" name="This value should not be blank.">
<segment>
<source>This value should not be blank.</source>
<target>Cette valeur ne doit pas être vide.</target>
</segment>
</unit>
<unit id="2G4Vepm" name="This value should not be null.">
<segment>
<source>This value should not be null.</source>
<target>Cette valeur ne doit pas être nulle.</target>
</segment>
</unit>
<unit id="yDc3m6E" name="This value should be null.">
<segment>
<source>This value should be null.</source>
<target>Cette valeur doit être nulle.</target>
</segment>
</unit>
<unit id="zKzWejA" name="This value is not valid.">
<segment>
<source>This value is not valid.</source>
<target>Cette valeur n'est pas valide.</target>
</segment>
</unit>
<unit id="HSuBZpQ" name="This value is not a valid time.">
<segment>
<source>This value is not a valid time.</source>
<target>Cette valeur n'est pas une heure valide.</target>
</segment>
</unit>
<unit id="snWc_QT" name="This value is not a valid URL.">
<segment>
<source>This value is not a valid URL.</source>
<target>Cette valeur n'est pas une URL valide.</target>
</segment>
</unit>
<unit id="jpaLsb2" name="The two values should be equal.">
<segment>
<source>The two values should be equal.</source>
<target>Les deux valeurs doivent être identiques.</target>
</segment>
</unit>
<unit id="fIlB1B_" name="The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.">
<segment>
<source>The file is too large. Allowed maximum size is {{ limit }} {{ suffix }}.</source>
<target>Le fichier est trop volumineux. Sa taille ne doit pas dépasser {{ limit }} {{ suffix }}.</target>
</segment>
</unit>
<unit id="tW7o0t9" name="The file is too large.">
<segment>
<source>The file is too large.</source>
<target>Le fichier est trop volumineux.</target>
</segment>
</unit>
<unit id=".exF5Ww" name="The file could not be uploaded.">
<segment>
<source>The file could not be uploaded.</source>
<target>Le téléchargement de ce fichier est impossible.</target>
</segment>
</unit>
<unit id="d7sS5yw" name="This value should be a valid number.">
<segment>
<source>This value should be a valid number.</source>
<target>Cette valeur doit être un nombre.</target>
</segment>
</unit>
<unit id="BS2Ez6i" name="This file is not a valid image.">
<segment>
<source>This file is not a valid image.</source>
<target>Ce fichier n'est pas une image valide.</target>
</segment>
</unit>
<unit id="ydcT9kU" name="This is not a valid IP address.">
<segment>
<source>This is not a valid IP address.</source>
<target>Cette adresse IP n'est pas valide.</target>
</segment>
</unit>
<unit id="lDOGNFX" name="This value is not a valid language.">
<segment>
<source>This value is not a valid language.</source>
<target>Cette langue n'est pas valide.</target>
</segment>
</unit>
<unit id="y9IdYkA" name="This value is not a valid locale.">
<segment>
<source>This value is not a valid locale.</source>
<target>Ce paramètre régional n'est pas valide.</target>
</segment>
</unit>
<unit id="1YC0pOd" name="This value is not a valid country.">
<segment>
<source>This value is not a valid country.</source>
<target>Ce pays n'est pas valide.</target>
</segment>
</unit>
<unit id="B5ebaMp" name="This value is already used.">
<segment>
<source>This value is already used.</source>
<target>Cette valeur est déjà utilisée.</target>
</segment>
</unit>
<unit id="L6097a6" name="The size of the image could not be detected.">
<segment>
<source>The size of the image could not be detected.</source>
<target>La taille de l'image n'a pas pu être détectée.</target>
</segment>
</unit>
<unit id="zVtJJEa" name="266051e">
<segment>
<source>The image width is too big ({{ width }}px). Allowed maximum width is {{ max_width }}px.</source>
<target>La largeur de l'image est trop grande ({{ width }}px). La largeur maximale autorisée est de {{ max_width }}px.</target>
</segment>
</unit>
<unit id="s8LFQGC" name="c1c23f9">
<segment>
<source>The image width is too small ({{ width }}px). Minimum width expected is {{ min_width }}px.</source>
<target>La largeur de l'image est trop petite ({{ width }}px). La largeur minimale attendue est de {{ min_width }}px.</target>
</segment>
</unit>
<unit id="Z.NgqFj" name="9a128f7">
<segment>
<source>The image height is too big ({{ height }}px). Allowed maximum height is {{ max_height }}px.</source>
<target>La hauteur de l'image est trop grande ({{ height }}px). La hauteur maximale autorisée est de {{ max_height }}px.</target>
</segment>
</unit>
<unit id="AW1lWVM" name="8a4cd70">
<segment>
<source>The image height is too small ({{ height }}px). Minimum height expected is {{ min_height }}px.</source>
<target>La hauteur de l'image est trop petite ({{ height }}px). La hauteur minimale attendue est de {{ min_height }}px.</target>
</segment>
</unit>
<unit id="PSdMNab" name="This value should be the user's current password.">
<segment>
<source>This value should be the user's current password.</source>
<target>Cette valeur doit être le mot de passe actuel de l'utilisateur.</target>
</segment>
</unit>
<unit id="gYImVyV" name="fd389d6">
<segment>
<source>This value should have exactly {{ limit }} character.|This value should have exactly {{ limit }} characters.</source>
<target>Cette chaîne doit avoir exactement {{ limit }} caractère.|Cette chaîne doit avoir exactement {{ limit }} caractères.</target>
</segment>
</unit>
<unit id="xJ2Bcr_" name="The file was only partially uploaded.">
<segment>
<source>The file was only partially uploaded.</source>
<target>Le fichier a été partiellement transféré.</target>
</segment>
</unit>
<unit id="HzkJDtF" name="No file was uploaded.">
<segment>
<source>No file was uploaded.</source>
<target>Aucun fichier n'a été transféré.</target>
</segment>
</unit>
<unit id="mHfEaB3" name="No temporary folder was configured in php.ini.">
<segment>
<source>No temporary folder was configured in php.ini.</source>
<target>Aucun répertoire temporaire n'a été configuré dans le php.ini.</target>
</segment>
</unit>
<unit id="y9K3BGb" name="Cannot write temporary file to disk.">
<segment>
<source>Cannot write temporary file to disk.</source>
<target>Impossible d'écrire le fichier temporaire sur le disque.</target>
</segment>
</unit>
<unit id="kx3yHIM" name="A PHP extension caused the upload to fail.">
<segment>
<source>A PHP extension caused the upload to fail.</source>
<target>Une extension PHP a empêché le transfert du fichier.</target>
</segment>
</unit>
<unit id="gTJYRl6" name="b54c218">
<segment>
<source>This collection should contain {{ limit }} element or more.|This collection should contain {{ limit }} elements or more.</source>
<target>Cette collection doit contenir {{ limit }} élément ou plus.|Cette collection doit contenir {{ limit }} éléments ou plus.</target>
</segment>
</unit>
<unit id="FFn3lVn" name="949632c">
<segment>
<source>This collection should contain {{ limit }} element or less.|This collection should contain {{ limit }} elements or less.</source>
<target>Cette collection doit contenir {{ limit }} élément ou moins.|Cette collection doit contenir {{ limit }} éléments ou moins.</target>
</segment>
</unit>
<unit id="bSdilZv" name="e0582dc">
<segment>
<source>This collection should contain exactly {{ limit }} element.|This collection should contain exactly {{ limit }} elements.</source>
<target>Cette collection doit contenir exactement {{ limit }} élément.|Cette collection doit contenir exactement {{ limit }} éléments.</target>
</segment>
</unit>
<unit id="MAzmID7" name="Invalid card number.">
<segment>
<source>Invalid card number.</source>
<target>Numéro de carte invalide.</target>
</segment>
</unit>
<unit id="c3REGK3" name="Unsupported card type or invalid card number.">
<segment>
<source>Unsupported card type or invalid card number.</source>
<target>Type de carte non supporté ou numéro invalide.</target>
</segment>
</unit>
<unit id="XSVzcbV" name="This is not a valid International Bank Account Number (IBAN).">
<segment>
<source>This is not a valid International Bank Account Number (IBAN).</source>
<target>Le numéro IBAN (International Bank Account Number) saisi n'est pas valide.</target>
</segment>
</unit>
<unit id="yHirwNr" name="This value is not a valid ISBN-10.">
<segment>
<source>This value is not a valid ISBN-10.</source>
<target>Cette valeur n'est pas un code ISBN-10 valide.</target>
</segment>
</unit>
<unit id="c_q0_ua" name="This value is not a valid ISBN-13.">
<segment>
<source>This value is not a valid ISBN-13.</source>
<target>Cette valeur n'est pas un code ISBN-13 valide.</target>
</segment>
</unit>
<unit id="M4FlD6n" name="This value is neither a valid ISBN-10 nor a valid ISBN-13.">
<segment>
<source>This value is neither a valid ISBN-10 nor a valid ISBN-13.</source>
<target>Cette valeur n'est ni un code ISBN-10, ni un code ISBN-13 valide.</target>
</segment>
</unit>
<unit id="cuct0Ow" name="This value is not a valid ISSN.">
<segment>
<source>This value is not a valid ISSN.</source>
<target>Cette valeur n'est pas un code ISSN valide.</target>
</segment>
</unit>
<unit id="JBLs1a1" name="This value is not a valid currency.">
<segment>
<source>This value is not a valid currency.</source>
<target>Cette valeur n'est pas une devise valide.</target>
</segment>
</unit>
<unit id="c.WxzFW" name="This value should be equal to {{ compared_value }}.">
<segment>
<source>This value should be equal to {{ compared_value }}.</source>
<target>Cette valeur doit être égale à {{ compared_value }}.</target>
</segment>
</unit>
<unit id="_jdjkwq" name="This value should be greater than {{ compared_value }}.">
<segment>
<source>This value should be greater than {{ compared_value }}.</source>
<target>Cette valeur doit être supérieure à {{ compared_value }}.</target>
</segment>
</unit>
<unit id="o8A8a0H" name="This value should be greater than or equal to {{ compared_value }}.">
<segment>
<source>This value should be greater than or equal to {{ compared_value }}.</source>
<target>Cette valeur doit être supérieure ou égale à {{ compared_value }}.</target>
</segment>
</unit>
<unit id="bOF1fpm" name="9670078">
<segment>
<source>This value should be identical to {{ compared_value_type }} {{ compared_value }}.</source>
<target>Cette valeur doit être identique à {{ compared_value_type }} {{ compared_value }}.</target>
</segment>
</unit>
<unit id="jG0QFKw" name="This value should be less than {{ compared_value }}.">
<segment>
<source>This value should be less than {{ compared_value }}.</source>
<target>Cette valeur doit être inférieure à {{ compared_value }}.</target>
</segment>
</unit>
<unit id="9lWrKmm" name="This value should be less than or equal to {{ compared_value }}.">
<segment>
<source>This value should be less than or equal to {{ compared_value }}.</source>
<target>Cette valeur doit être inférieure ou égale à {{ compared_value }}.</target>
</segment>
</unit>
<unit id="ftTwGs." name="This value should not be equal to {{ compared_value }}.">
<segment>
<source>This value should not be equal to {{ compared_value }}.</source>
<target>Cette valeur ne doit pas être égale à {{ compared_value }}.</target>
</segment>
</unit>
<unit id="Bi22JLt" name="0eedf91">
<segment>
<source>This value should not be identical to {{ compared_value_type }} {{ compared_value }}.</source>
<target>Cette valeur ne doit pas être identique à {{ compared_value_type }} {{ compared_value }}.</target>
</segment>
</unit>
<unit id="VczCWzQ" name="9c3ad0f">
<segment>
<source>The image ratio is too big ({{ ratio }}). Allowed maximum ratio is {{ max_ratio }}.</source>
<target>Le rapport largeur/hauteur de l'image est trop grand ({{ ratio }}). Le rapport maximal autorisé est {{ max_ratio }}.</target>
</segment>
</unit>
<unit id="v57PXhq" name="4376d45">
<segment>
<source>The image ratio is too small ({{ ratio }}). Minimum ratio expected is {{ min_ratio }}.</source>
<target>Le rapport largeur/hauteur de l'image est trop petit ({{ ratio }}). Le rapport minimal attendu est {{ min_ratio }}.</target>
</segment>
</unit>
<unit id="rpajj.a" name="The image is square ({{ width }}x{{ height }}px). Square images are not allowed.">
<segment>
<source>The image is square ({{ width }}x{{ height }}px). Square images are not allowed.</source>
<target>L'image est carrée ({{ width }}x{{ height }}px). Les images carrées ne sont pas autorisées.</target>
</segment>
</unit>
<unit id="G_lu2qW" name="1dc128a">
<segment>
<source>The image is landscape oriented ({{ width }}x{{ height }}px). Landscape oriented images are not allowed.</source>
<target>L'image est au format paysage ({{ width }}x{{ height }}px). Les images au format paysage ne sont pas autorisées.</target>
</segment>
</unit>
<unit id="sFyGx4B" name="9e27714">
<segment>
<source>The image is portrait oriented ({{ width }}x{{ height }}px). Portrait oriented images are not allowed.</source>
<target>L'image est au format portrait ({{ width }}x{{ height }}px). Les images au format portrait ne sont pas autorisées.</target>
</segment>
</unit>
<unit id="jZgqcpL" name="An empty file is not allowed.">
<segment>
<source>An empty file is not allowed.</source>
<target>Un fichier vide n'est pas autorisé.</target>
</segment>
</unit>
<unit id="bcfVezI" name="The host could not be resolved.">
<segment>
<source>The host could not be resolved.</source>
<target>Le nom de domaine n'a pas pu être résolu.</target>
</segment>
</unit>
<unit id="NtzKvgt" name="This value does not match the expected {{ charset }} charset.">
<segment>
<source>This value does not match the expected {{ charset }} charset.</source>
<target>Cette valeur ne correspond pas au jeu de caractères {{ charset }} attendu.</target>
</segment>
</unit>
<unit id="Wi2y9.N" name="This is not a valid Business Identifier Code (BIC).">
<segment>
<source>This is not a valid Business Identifier Code (BIC).</source>
<target>Ce n'est pas un code universel d'identification des banques (BIC) valide.</target>
</segment>
</unit>
<unit id="VKDowX6" name="Error">
<segment>
<source>Error</source>
<target>Erreur</target>
</segment>
</unit>
<unit id="8zqt0Ik" name="This is not a valid UUID.">
<segment>
<source>This is not a valid UUID.</source>
<target>Ceci n'est pas un UUID valide.</target>
</segment>
</unit>
<unit id="ru.4wkH" name="This value should be a multiple of {{ compared_value }}.">
<segment>
<source>This value should be a multiple of {{ compared_value }}.</source>
<target>Cette valeur doit être un multiple de {{ compared_value }}.</target>
</segment>
</unit>
<unit id="M3vyK6s" name="This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.">
<segment>
<source>This Business Identifier Code (BIC) is not associated with IBAN {{ iban }}.</source>
<target>Ce code d'identification d'entreprise (BIC) n'est pas associé à l'IBAN {{ iban }}.</target>
</segment>
</unit>
<unit id="2v2xpAh" name="This value should be valid JSON.">
<segment>
<source>This value should be valid JSON.</source>
<target>Cette valeur doit être un JSON valide.</target>
</segment>
</unit>
<unit id="9CWVEGq" name="This collection should contain only unique elements.">
<segment>
<source>This collection should contain only unique elements.</source>
<target>Cette collection ne doit pas comporter de doublons.</target>
</segment>
</unit>
<unit id="WdvZfq." name="This value should be positive.">
<segment>
<source>This value should be positive.</source>
<target>Cette valeur doit être strictement positive.</target>
</segment>
</unit>
<unit id="ubHMK2q" name="This value should be either positive or zero.">
<segment>
<source>This value should be either positive or zero.</source>
<target>Cette valeur doit être supérieure ou égale à zéro.</target>
</segment>
</unit>
<unit id="IwNTzo_" name="This value should be negative.">
<segment>
<source>This value should be negative.</source>
<target>Cette valeur doit être strictement négative.</target>
</segment>
</unit>
<unit id="0GfwMfP" name="This value should be either negative or zero.">
<segment>
<source>This value should be either negative or zero.</source>
<target>Cette valeur doit être inférieure ou égale à zéro.</target>
</segment>
</unit>
<unit id="fs3qQZR" name="This value is not a valid timezone.">
<segment>
<source>This value is not a valid timezone.</source>
<target>Cette valeur n'est pas un fuseau horaire valide.</target>
</segment>
</unit>
<unit id="40dnsod" name="7e27e92">
<segment>
<source>This password has been leaked in a data breach, it must not be used. Please use another password.</source>
<target>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.</target>
</segment>
</unit>
<unit id="VvxxWas" name="This value should be between {{ min }} and {{ max }}.">
<segment>
<source>This value should be between {{ min }} and {{ max }}.</source>
<target>Cette valeur doit être comprise entre {{ min }} et {{ max }}.</target>
</segment>
</unit>
<unit id="7g313cV" name="This value is not a valid hostname.">
<segment>
<source>This value is not a valid hostname.</source>
<target>Cette valeur n'est pas un nom d'hôte valide.</target>
</segment>
</unit>
<unit id="xwtBimR" name="d165c02">
<segment>
<source>The number of elements in this collection should be a multiple of {{ compared_value }}.</source>
<target>Le nombre d'éléments de cette collection doit être un multiple de {{ compared_value }}.</target>
</segment>
</unit>
<unit id="FDRZr.s" name="This value should satisfy at least one of the following constraints:">
<segment>
<source>This value should satisfy at least one of the following constraints:</source>
<target>Cette valeur doit satisfaire à au moins une des contraintes suivantes :</target>
</segment>
</unit>
<unit id="WwY0IGI" name="Each element of this collection should satisfy its own set of constraints.">
<segment>
<source>Each element of this collection should satisfy its own set of constraints.</source>
<target>Chaque élément de cette collection doit satisfaire à son propre jeu de contraintes.</target>
</segment>
</unit>
<unit id=".SEaaBa" name="This form should not contain extra fields.">
<segment>
<source>This form should not contain extra fields.</source>
<target>Ce formulaire ne doit pas contenir des champs supplémentaires.</target>
</segment>
</unit>
<unit id="WPnLAh9" name="The uploaded file was too large. Please try to upload a smaller file.">
<segment>
<source>The uploaded file was too large. Please try to upload a smaller file.</source>
<target>Le fichier téléchargé est trop volumineux. Merci d'essayer d'envoyer un fichier plus petit.</target>
</segment>
</unit>
<unit id="fvxWW3V" name="The CSRF token is invalid. Please try to resubmit the form.">
<segment>
<source>The CSRF token is invalid. Please try to resubmit the form.</source>
<target>Le jeton CSRF est invalide. Veuillez renvoyer le formulaire.</target>
</segment>
</unit>
</file>
</xliff>
Loading…
Cancel
Save