#
# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

parser.parse.1=Caract\u00E8re incorrect.
parser.parse.2=Num\u00E9ro de r\u00E9f\u00E9rence non valide.
parser.next.1=Un caract\u00E8re est obligatoire apr\u00E8s \\.
parser.next.2='?' n'est pas attendu. '(?:' ou '(?=' ou '(?!' ou '(?<' ou '(?#' ou '(?>'?
parser.next.3='(?<=' ou '(?<!' est attendu.
parser.next.4=Un commentaire n'est pas termin\u00E9.
parser.factor.1=')' est attendu.
parser.factor.2=Fin de mod\u00E8le inattendue dans un groupe de modificateur.
parser.factor.3=':' est attendu.
parser.factor.4=Fin de mod\u00E8le inattendue dans un groupe conditionnel
parser.factor.5=Une r\u00E9f\u00E9rence auxiliaire (back reference), un ancrage, une recherche vers l'avant ou une recherche vers l'arri\u00E8re est attendu dans un mod\u00E8le conditionnel.
parser.factor.6=Il existe plus de trois choix dans un groupe conditionnel.
parser.atom.1=Un caract\u00E8re compris entre U+0040-U+005f doit suivre \\c.
parser.atom.2=Une accolade ('{') est obligatoire avant une cat\u00E9gorie de caract\u00E8res.
parser.atom.3=Un nom de propri\u00E9t\u00E9 n'est pas ferm\u00E9 par une accolade ('}').
parser.atom.4=M\u00E9tacaract\u00E8re inattendu
parser.atom.5=Propri\u00E9t\u00E9 inconnue.
parser.cc.1=Une classe de caract\u00E8res POSIX doit \u00EAtre ferm\u00E9e par ':]'.
parser.cc.2=Fin de mod\u00E8le inattendue dans une classe de caract\u00E8res.
parser.cc.3=Nom inconnu pour une classe de caract\u00E8res POSIX.
parser.cc.4='-' n'est pas valide ici.
parser.cc.5=']' est attendu.
parser.cc.6='[' n'est pas valide dans une classe de caract\u00E8res. Ecrivez '\\['.
parser.cc.7=']' n'est pas valide dans une classe de caract\u00E8res. Ecrivez '\\]'.
parser.cc.8='-' est une plage de caract\u00E8res non valide. Ecrivez '\\-'.
parser.ope.1='[' est attendu.
parser.ope.2=')' ou '-[' ou '+[' ou '&[' est attendu.
parser.ope.3=Le point code de fin de la plage est inf\u00E9rieur au point code de d\u00E9but.
parser.descape.1=Notation hexad\u00E9cimale Unicode non valide.
parser.descape.2=D\u00E9bordement de capacit\u00E9 d'une notation hexad\u00E9cimale.
parser.descape.3='\\x{' doit \u00EAtre ferm\u00E9 par '}'.
parser.descape.4=Point code Unicode non valide.
parser.descape.5=Aucun point d'ancrage ne doit se trouver ici.
parser.process.1=Cette expression n'est pas prise en charge dans le param\u00E8tre d'option en cours.
parser.quantifier.1=Quantificateur non valide. Un chiffre est attendu.
parser.quantifier.2=Quantificateur non valide. Quantit\u00E9 non valide ou accolade ('}') manquante.
parser.quantifier.3=Quantificateur non valide. Un chiffre ou une accolade ('}') est attendu.
parser.quantifier.4=Quantificateur non valide. Une quantit\u00E9 minimale doit \u00EAtre <= une quantit\u00E9 maximale.
parser.quantifier.5=Quantificateur non valide. D\u00E9bordement de la valeur de quantit\u00E9.
null
null
