#-------------------------------------------------------------------------------
# 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

# Method Search Page
searchStringLabel_text=Texto (* = qualquer cadeia, ? = qualquer caractere):
caseSensitiveCheckbox_text=Sens\u00edvel a mai\u00fasculas e min\u00fasculas
elementNameLabel_text=Nome do elemento de m\u00e9todo ou padr\u00e3o do nome de apresenta\u00e7\u00e3o:
scopeGroup_text=Escopo
roleCheckbox_text=Fun\u00e7\u00e3o
taskCheckbox_text=Tarefa
workProductCheckbox_text=Produto de Trabalho
# Method Search Query
searchQuery_text=Procura de M\u00e9todo

# Method Search Progress Dialog
scanLibraryTask_name=Varrendo biblioteca de m\u00e9todos...
scanElementTask_name=Varrendo elemento de m\u00e9todo ''{0}''...

# Method Search Error Dialog
searchError_title=Procura de M\u00e9todo
searchError_msg=IUPS0100E: A opera\u00e7\u00e3o de procura n\u00e3o pode continuar.
searchError_reason=Nenhuma biblioteca de m\u00e9todos est\u00e1 aberta no momento.\n\nAbra uma biblioteca de m\u00e9todos e tente novamente.

# Method Search Result
searchResult_methodContent=Conte\u00fado do M\u00e9todo
searchResult_contentPackages=Pacotes de Conte\u00fado
searchResult_standardCategories=Categorias Padr\u00e3o
searchResult_disciplines=Disciplinas
searchResult_domains=Dom\u00ednios
searchResult_workProductTypes=Tipos de Produto de Trabalho
searchResult_roleSets=Conjuntos de Fun\u00e7\u00f5es
searchResult_tools=Ferramentas
searchResult_customCategories=Categorias Customizadas
searchResult_processes=Processos
searchResult_capabilityPatterns=Padr\u00f5es de Recurso
searchResult_deliveryProcesses=Processos de Entrega
searchResult_match=''{0}'' - 1 correspond\u00eancia
searchResult_matches=''{0}'' - {1} correspond\u00eancias
