# 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.

parser.parse.1=Caract\u00e8re invalide.
parser.parse.2=Num\u00e9ro de r\u00e9f\u00e9rence invalide.
parser.next.1=Un \\ doit \u00eatre suivi d'un caract\u00e8re.
parser.next.2='?' n'est pas possible ici.  '(?:' ou '(?=' ou '(?!' ou '(?<' ou '(?#' ou '(?>'?
parser.next.3='(?<=' ou '(?<!' sont attendus.
parser.next.4=Un commentaire n'est pas ferm\u00e9.
parser.factor.1=')' manquant.
parser.factor.2=Fin pr\u00e9matur\u00e9e de motif dans un groupe modifiant.
parser.factor.3=':' manquant.
parser.factor.4=Fin pr\u00e9matur\u00e9e de motif dans un groupe conditionel.
parser.factor.5=Une r\u00e9f\u00e9rence arri\u00e8re ou une ancre ou un lookahead ou un lookbehind est attendu dans un groupe conditionel.
parser.factor.6=Il y a plus de trois choix dans un groupe conditionel.
parser.atom.1=\\c doit \u00eatre suivi d'un caract\u00e8re dans l'intervalle U+0040-U+005f .
parser.atom.2=Un caract\u00e8re de cat\u00e9gorie ou '{' est requis.
parser.atom.3=Un nom de propri\u00e9t\u00e9 ne se termine pas par '}'.
parser.atom.4=M\u00e9tacaract\u00e8re interdit.
parser.atom.5=Propri\u00e9t\u00e9 inconnue.
parser.cc.1=Une classe de caract\u00e8re POSIX doit \u00eatre termin\u00e9e par ':]'.
parser.cc.2=Fin pr\u00e9matur\u00e9e de motif dans une classe de caract\u00e8re.
parser.cc.3=Nom inconnu pour une classe de caract\u00e8re POSIX.
parser.cc.4='-' est invalide, dans ce cas.
parser.cc.5=']' manquant.
parser.cc.6='[' est invalide dans une classe de caract\u00e8re. Ecrivez '\\['.
parser.cc.7=']' est invalide dans une classe de caract\u00e8re. Ecrivez '\\]'.
parser.ope.1='[' est attendu.
parser.ope.2=')' ou '-[' ou '+[' ou '&[' sont attendus.
parser.descape.1=Notation hexad\u00e9cimale Unicode invalide.
parser.descape.2=D\u00e9passement de capacit\u00e9 dans une expression hexad\u00e9cimale.
parser.descape.3='\\x{' doit se terminer par un '}'.
parser.descape.4=Point de code Unicode invalide.
parser.descape.5=Ancre interdite ici.
parser.process.1=Cette expression n'est pas autoris\u00e9e compte tenu des options en cours.
