#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

# Method Search Page
searchStringLabel_text=Texte (* = n'importe quelle cha\u00eene, ? = n'importe quel caract\u00e8re) :
caseSensitiveCheckbox_text=Respecter la casse
elementNameLabel_text=Nom d'\u00e9l\u00e9ment de m\u00e9thode ou pattern de nom de pr\u00e9sentation :
scopeGroup_text=Port\u00e9e
roleCheckbox_text=R\u00f4le
taskCheckbox_text=T\u00e2che
workProductCheckbox_text=Produit

# Method Search Query
searchQuery_text=Recherche de m\u00e9thode

# Method Search Progress Dialog
scanLibraryTask_name=Scannage de la biblioth\u00e8que de m\u00e9thodes...
scanElementTask_name=Scannage de l''\u00e9l\u00e9ment de m\u00e9thode ''{0}''...

# Method Search Error Dialog
searchError_title=Recherche de m\u00e9thode
searchError_msg=IUPS0100E : L'op\u00e9ration de recherche ne peut pas continuer.
searchError_reason=Aucune biblioth\u00e8que de m\u00e9thodes n'est actuellement ouverte.\n\nOuvrez une biblioth\u00e8que de m\u00e9thodes et r\u00e9-essayez.

# Method Search Result
searchResult_methodContent=Contenu de la m\u00e9thode
searchResult_contentPackages=Packages de contenu
searchResult_standardCategories=Cat\u00e9gories standard
searchResult_disciplines=Disciplines
searchResult_domains=Domaines
searchResult_workProductTypes=Types de produits
searchResult_roleSets=Ensembles de r\u00f4les
searchResult_tools=Outils
searchResult_customCategories=Cat\u00e9gories personnalis\u00e9es
searchResult_processes=Processus
searchResult_capabilityPatterns=Patterns de capacit\u00e9
searchResult_deliveryProcesses=Processus de livraison
searchResult_match=''{0}'' - 1 correspondance
searchResult_matches=''{0}'' - {1} correspondances
