###############################################################################
# Copyright (c) 2001, 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################
Stack_trace_of_nested_exce=Trace de pile de l'exception imbriqu\u00e9e :
ERROR=Erreur :
WARNING=Avertissement :
INFO=Information :
DEFAULT_COMPLETED_STATUS_MSG=Migration termin\u00e9e pour {0}.
DEFAULT_NOT_NEEDED_STATUS_MSG=Migration non requise pour {0}.
DEFAULT_NOT_POSSIBLE_STATUS_MSG=Migration impossible pour {0}.
DEFAULT_ERROR_STATUS_MSG=IWAE0100E Erreur lors de la migration de {0}.
REMOVED_LOCAL_CLIENT_MSG=Vue du client local supprim\u00e9e pour l''EJB {0}.
REMOVED_ACCESS_INTENTS_MSG=Tentatives d''acc\u00e8s \u00e0 la m\u00e9thode 1.1 {0} supprim\u00e9es du bean CMP {1}.
REMOVED_ISOLATION_LEVELS_MSG=Niveaux d''isolement \u00e0 la m\u00e9thode 1.1 {0} supprim\u00e9s du bean CMP {1}.
CONVERTED_FINDER_MSG=Descripteur de m\u00e9thode finder de {0} converti dans le bean CMP {1}.  Utilisez l''\u00e9diteur d''EJB pour mettre \u00e0 jour la requ\u00eate EJB QL.
UNNAMED_EJB=<bean CMP sans nom>
CONVERTED_QUERY_DESCRIPTION=Convertie \u00e0 partir des extensions d'IBM version 1.1.
MIGRATED_DEFAULT_DATASOURCE_JAR_MSG=Liaison de source de donn\u00e9es par d\u00e9faut migr\u00e9e vers une liaison de fabrique de connexions CMP par d\u00e9faut pour EJB JAR \"{0}\".
MIGRATED_DEFAULT_DATASOURCE_MSG=Liaison de source de donn\u00e9es par d\u00e9faut migr\u00e9e vers une liaison de fabrique de connexions CMP par d\u00e9faut pour EJB JAR.
J2EE_VERSION_NULL_ERROR=Impossible d'obtenir la version J2EE de l'objet car elle ne figure pas dans un document.
J2EE_VERSION_PROXY_ERROR=Impossible d''obtenir la version J2EE de l''objet r\u00e9f\u00e9renc\u00e9 car le proxy ne peut pas \u00eatre converti.  V\u00e9rifiez les ID dans les fichiers de descripteur de d\u00e9ploiement.  HREF = {0}.
