# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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 implementation.
#-------------------------------------------------------------------------------
# NLS_MESSAGEFORMAT_VAR

filePath=Chemin d'acc\u00e8s du fichier
cannotWriteToFiles=Impossible d'enregistrer dans le(s) fichier(s)
readOnlyFiles_title=Fichier(s) en lecture seulement
readOnlyFiles_msg=Les fichiers r\u00e9pertori\u00e9s dans D\u00e9tails sont en lecture seulement. Rendez-les inscriptibles et cliquez sur R\u00e9essayer pour continuer.
elementPath=Chemin d'acc\u00e8s de l'\u00e9l\u00e9ment
promptRemoveReferencesToMissingFiles_msg=Les fichiers suivants sont manquants. Cliquez sur OK si vous voulez supprimer chaque r\u00e9f\u00e9rence aux fichiers s\u00e9lectionn\u00e9s dans la biblioth\u00e8que
missingFiles_title=Fichier(s) manquant(s)
loadError=Erreur de chargement
promptRemoveReferencesToFilesWithLoadErrors_msg=Impossible de charger le(s) fichier(s) suivant(s). Cliquez sur OK si vous voulez supprimer chaque r\u00e9f\u00e9rence aux fichiers s\u00e9lectionn\u00e9s dans la biblioth\u00e8que
filesWithLoadErrors_title=Fichier(s) pr\u00e9sentant une erreur de chargement
migrateXMLLibrary_taskName=Migration de la biblioth\u00e8que XML import\u00e9e
convertToSynFree_taskName=Conversion en biblioth\u00e8que auto-synchronis\u00e9e

# Error Messages
libraryAlreadyExistsError_msg=Une biblioth\u00e8que de m\u00e9thodes existe d\u00e9j\u00e0 dans ''{0}''.
