# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# standard messages (Spec. 2.5.2.4)

# components
javax.faces.component.UIInput.CONVERSION = {0}: Erreur de conversion
javax.faces.component.UIInput.CONVERSION_detail = {0}: Erreur durant la mise \u00e0 jour des donn\u00e9es.
javax.faces.component.UIInput.REQUIRED = {0}: Erreur de validation
javax.faces.component.UIInput.REQUIRED_detail = {0}: Une donn\u00e9e est requise.
javax.faces.component.UIInput.UPDATE =  {0}: Une erreur s'est produite lors du traitement de vos informations pr\u00e9sent\u00e9es.

javax.faces.component.UISelectOne.INVALID        = Erreur de Validation: La valeur n'est pas valide
javax.faces.component.UISelectOne.INVALID_detail = {0}: La donn\u00e9e n''est pas une option valide.
javax.faces.component.UISelectMany.INVALID = {0}:  Erreur de Validation: La valeur n'est pas valide

# converters
javax.faces.converter.BigDecimalConverter.DECIMAL = Erreur de conversion
javax.faces.converter.BigDecimalConverter.DECIMAL_detail = {2}: La donn\u00e9e n''est pas un nombre valide.
 
javax.faces.converter.BigIntegerConverter.BIGINTEGER = Erreur de conversion
javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail = {2}: La donn\u00e9e n''est pas un nombre valide.
 
javax.faces.converter.BooleanConverter.BOOLEAN        = Erreur de conversion
javax.faces.converter.BooleanConverter.BOOLEAN_detail = {1}: Conversion de "{0}" en Boolean impossible.

javax.faces.converter.ByteConverter.BYTE        = Erreur de conversion
javax.faces.converter.ByteConverter.BYTE_detail = {2}: Conversion de "{0}" en Octet impossible.
 
javax.faces.converter.CharacterConverter.CHARACTER        = Erreur de conversion
javax.faces.converter.CharacterConverter.CHARACTER_detail = {1}: Conversion de "{0}" en Caract\u00e8re impossible.

javax.faces.converter.DateTimeConverter.DATE = {2}:''{0}'' ne pouvait pas \u00eatre comprise comme une date.
javax.faces.converter.DateTimeConverter.DATE_detail = {2}:''{0}'' ne pouvait pas \u00eatre comprise comme une date. Exemple: {1}
javax.faces.converter.DateTimeConverter.TIME = {2}:''{0}'' ne pouvait pas \u00eatre comprise comme un moment.
javax.faces.converter.DateTimeConverter.TIME_detail = {2}:''{0}'' ne pouvait pas \u00eatre comprise comme un moment. Exemple: {1}
javax.faces.converter.DateTimeConverter.DATETIME = {2}:''{0}'' ne pouvait pas \u00eatre comprise comme une date et l'heure.
javax.faces.converter.DateTimeConverter.DATETIME_detail = {2}:''{0}'' ne pouvait pas \u00eatre comprise comme une date et l'heure. Exemple: {1}
javax.faces.converter.DateTimeConverter.PATTERN_TYPE = {1}: Un 'pattern' ou 'type' attribut doit \u00eatre sp\u00e9cifi\u00e9 pour convertir la valeur ''{0}''.

javax.faces.converter.DoubleConverter.DOUBLE        = Erreur de conversion
javax.faces.converter.DoubleConverter.DOUBLE_detail = {2}: La donn\u00e9e n''est pas un nombre valide.

javax.faces.converter.EnumConverter.ENUM = {2}: ''{0}'' doit \u00eatre convertible en une \u00e9num\u00e9ration.
javax.faces.converter.EnumConverter.ENUM_detail = {2}: ''{0}'' doit \u00eatre convertible en une \u00e9num\u00e9ration de l'enum qui contient la constante''{1}''.
javax.faces.converter.EnumConverter.ENUM_NO_CLASS = {1}: ''{0}'' doit \u00eatre convertible en une \u00e9num\u00e9ration de l'\u00e9num\u00e9ration, mais aucune classe d'\u00e9num\u00e9ration pr\u00e9vue.
javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail = {1}: ''{0}'' doit \u00eatre convertible en une \u00e9num\u00e9ration de l'\u00e9num\u00e9ration, mais aucune classe d'\u00e9num\u00e9ration pr\u00e9vue.

javax.faces.converter.FloatConverter.FLOAT        = Erreur de conversion
javax.faces.converter.FloatConverter.FLOAT_detail = {2}: La donn\u00e9e n''est pas un nombre valide.

javax.faces.converter.IntegerConverter.INTEGER        = Erreur de conversion
javax.faces.converter.IntegerConverter.INTEGER_detail = {2}: La donn\u00e9e n''est pas un nombre valide.

javax.faces.converter.LongConverter.LONG        = Erreur de conversion
javax.faces.converter.LongConverter.LONG_detail = {2}: La donn\u00e9e n''est pas un nombre valide.

javax.faces.converter.NumberConverter.CURRENCY = {2}: ''{0}'' ne pouvait pas \u00eatre comprise comme une valeur mon\u00e9taire.
javax.faces.converter.NumberConverter.CURRENCY_detail = {2}: ''{0}'' ne pouvait pas \u00eatre comprise comme une valeur mon\u00e9taire. Exemple: {1}
javax.faces.converter.NumberConverter.PERCENT = {2}: ''{0}'' ne pouvait pas \u00eatre comprise comme un pourcentage.
javax.faces.converter.NumberConverter.PERCENT_detail = {2}: ''{0}'' ne pouvait pas \u00eatre comprise comme un pourcentage. Exemple: {1}
javax.faces.converter.NumberConverter.NUMBER = {2}: ''{0}'' n'est pas un nombre.
javax.faces.converter.NumberConverter.NUMBER_detail = {2}: ''{0}'' n'est pas un nombre. Exemple: {1}
javax.faces.converter.NumberConverter.PATTERN = {2}: ''{0}'' n'est pas un mod\u00e8le de num\u00e9ro.
javax.faces.converter.NumberConverter.PATTERN_detail = {2}: ''{0}'' n'est pas un mod\u00e8le de num\u00e9ro. Exemple: {1}

javax.faces.converter.ShortConverter.SHORT        = Erreur de conversion
javax.faces.converter.ShortConverter.SHORT_detail = {2}: La donn\u00e9e n''est pas un nombre valide.

javax.faces.converter.STRING = {1}: Impossible de convertir ''{0}'' pour une cha\u00eene.

# validators
javax.faces.validator.NOT_IN_RANGE        = Erreur de Validation
javax.faces.validator.NOT_IN_RANGE_detail = {2}: La donn\u00e9e n''est pas comprise entre {0} et {1}.

javax.faces.validator.DoubleRangeValidator.MAXIMUM        = Erreur de Validation
javax.faces.validator.DoubleRangeValidator.MAXIMUM_detail = {1}: La donn\u00e9e est sup\u00e9rieur au maximum authoris\u00e9 de ''{0}''.
javax.faces.validator.DoubleRangeValidator.MINIMUM        = Erreur de Validation
javax.faces.validator.DoubleRangeValidator.MINIMUM_detail = {1}: La donn\u00e9e est inf\u00e9rieur au maximum authoris\u00e9 de ''{0}''.
javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE        = Erreur de Validation
javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE_detail = {2}: La donn\u00e9e ne peut \u00e9tre convertie dans le bon type.
javax.faces.validator.DoubleRangeValidator.TYPE        = Erreur de Validation
javax.faces.validator.DoubleRangeValidator.TYPE_detail = {0}: La donn\u00e9e n''est pas du bon type.

javax.faces.validator.LengthValidator.MAXIMUM        = Erreur de Validation
javax.faces.validator.LengthValidator.MAXIMUM_detail = {1}: La donn\u00e9e a plus que les {0} caract\u00e9res maximum authoris\u00e9s.
javax.faces.validator.LengthValidator.MINIMUM        = Erreur de Validation
javax.faces.validator.LengthValidator.MINIMUM_detail = {1}: La donn\u00e9e doit comporter au moins {0} caract\u00e9res.

javax.faces.validator.LongRangeValidator.MAXIMUM        = Erreur de Validation
javax.faces.validator.LongRangeValidator.MAXIMUM_detail = {1}: La donn\u00e9e est sup\u00e9rieur au maximum authoris\u00e9 de ''{0}''.
javax.faces.validator.LongRangeValidator.MINIMUM        = Erreur de Validation
javax.faces.validator.LongRangeValidator.MINIMUM_detail = {1}: La donn\u00e9e est inf\u00e9rieur au minimum authoris\u00e9 de ''{0}''.
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE        = Erreur de Validation
javax.faces.validator.LongRangeValidator.NOT_IN_RANGE_detail = {2}: La donn\u00e9e ne peut \u00e9tre convertie dans le bon type.
javax.faces.validator.LongRangeValidator.TYPE        = Erreur de Validation
javax.faces.validator.LongRangeValidator.TYPE_detail = {0}: La donn\u00e9e n''est pas du bon type.

javax.faces.validator.RegexValidator.NOT_MATCHED = {1}: Erreur de validation: La valeur n'est pas fonction de mod\u00e8le''{0}''


# myfaces specific messages
org.apache.myfaces.Email.INVALID = Erreur de Validation
org.apache.myfaces.Email.INVALID_detail = La valeur saisie ({0}) n''est pas une adresse de couriel correcte.

org.apache.myfaces.Equal.INVALID = Erreur de Validation
org.apache.myfaces.Equal.INVALID_detail = La valeur saisie ({0}) n''est pas \u00e9gale \u00e0 celle de "{1}".

org.apache.myfaces.Creditcard.INVALID = Erreur de Validation
org.apache.myfaces.Creditcard.INVALID_detail = La valeur saisie ({0}) n''est pas un num\u00e9ro de carte de cr\u00e9dit correct.

org.apache.myfaces.Regexpr.INVALID= Erreur de Validation
org.apache.myfaces.Regexpr.INVALID_detail= La valeur saisie ({0}) n''est pas une expression r\u00e9guli\u00e8re valide.

org.apache.myfaces.Date.INVALID = Erreur de Validation
org.apache.myfaces.Date.INVALID_detail = La valeur saisie ({0}) n''est pas une date correcte.

org.apache.myfaces.ticker.NOCONNECTION = Pas de connexion : 
org.apache.myfaces.ticker.NOCONNECTION_detail = Peut-\u00eatre \u00eates-vous derri\u00e8re un firewall 

org.apache.myfaces.ISBN.INVALID = Erreur de Validation
org.apache.myfaces.ISBN.INVALID_detail = La valeur saisie ({0}) n''est pas une code ISBN correct.
