###############################################################################
# Copyright (c) 2003, 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
###############################################################################
Warning__Could_not_write_b_WARN_=IWAE0008W Avertissement : impossible de r\u00e9\u00e9crire {0}.
Stack_trace_of_nested_exce_ERROR_=IWAE0009E Trace de pile de l'exception imbriqu\u00e9e :
Enumeration_UI_=Enum\u00e9ration
Double_UI_=Variable double
Float_UI_=Variable flottante
Long_UI_=Variable longue
Short_UI_=Variable courte
Boolean_UI_=Bool\u00e9en
Integer_UI_=Entier
Character_UI_=Caract\u00e8re
Byte_UI_=Octet
Failed_to_convert_{0}_to_{_ERROR_=IWAE0014E Echec de la conversion de {0} en {1}.
DANGLING_HREF_ERROR_=IWAE0001E Impossible de r\u00e9soudre HREF {0}. V\u00e9rifiez les fichiers du descripteur et assurez-vous que les ID sont valides.

ResourceDependencyRegister_ERROR_0=IWAE0002E La classe ResourceSet ne peut pas \u00eatre NULL.
