#-------------------------------------------------------------------------------
# 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

# Error Messages
invalidNameError_msg=O nome ''{0}'' \u00e9 inv\u00e1lido. O nome do elemento de m\u00e9todo n\u00e3o pode conter os seguintes caracteres: \\ / : * ? " < > |
objNotFoundError_msg=N\u00e3o foi poss\u00edvel localizar o objeto com o id ''{0}''
loadLibraryError_msg=Erros encontrados durante o carregamento da biblioteca de m\u00e9todos:
loadLibraryError_details=\ \ linha: {0}, coluna: {1}, mensagem: {2}
restoreResourceError_msg=N\u00e3o foi poss\u00edvel restaurar o recurso ''{0}''
FileManager_fileReadOnly=O arquivo ''{0}'' \u00e9 de leitura
ErrMsg_CouldNotDelete=N\u00e3o foi poss\u00edvel excluir {0}. {1}
renameError_msg=N\u00e3o foi poss\u00edvel renomear ''{0}'' para ''{1}''
backupError_msg=N\u00e3o foi poss\u00edvel fazer o backup do recurso ''{0}''
marker_err_cannotResolveProxy=N\u00e3o foi poss\u00edvel resolver o proxy {0}
modifyFileError_msg=N\u00e3o foi poss\u00edvel modificar o arquivo ''{0}''
loadResourceError_msg=N\u00e3o foi poss\u00edvel carregar o recurso ''{0}''
loadResourceErrorWithReason_msg=N\u00e3o foi poss\u00edvel carregar o recurso ''{0}''. Motivo: {1}
invalidLibraryFileError_msg=Arquivo de biblioteca de m\u00e9todos inv\u00e1lido:
fileNotFoundError_msg=N\u00e3o foi poss\u00edvel localizar qualquer arquivo da biblioteca de m\u00e9todos no espa\u00e7o de trabalho ''{0}''
normalizeURIError_msg=N\u00e3o foi poss\u00edvel localizar o URI normalizado para ''{0}''
moveError_msg=N\u00e3o foi poss\u00edvel mover ''{0}'' para ''{1}''. O destino j\u00e1 existe.
modifyReadOnlyFileError_msg=N\u00e3o foi poss\u00edvel modificar o(s) arquivo(s) de leitura: {0}
moveResourceError_msg=O recurso ''{0}'' est\u00e1 envolvido em uma opera\u00e7\u00e3o persistente que n\u00e3o foi confirmada.
modifyFilesError_msg=N\u00e3o foi poss\u00edvel modificar um ou mais arquivos
resourceOutOfSynch_msg=O recurso est\u00e1 fora de sincroniza\u00e7\u00e3o e precisa ser recarregado: {0}

# Progress Messages
loadLibraryTask_name=Carregando biblioteca de m\u00e9todos...
moveDataTask_name=Movendo dados...
saveLibraryTask_name=Salvando biblioteca de m\u00e9todos...
loadResourcesTask_name=Carregando todos os recursos na mem\u00f3ria...
migrateContentDescriptionsTask_name=Migrando descri\u00e7\u00f5es de conte\u00fado de processos...
fixPresentationNameTask_name=Configurando o nome da apresenta\u00e7\u00e3o nula/vazia de todos os elementos de divis\u00e3o para seus nomes...
UnresolvedProxyMarkerManager_couldNotResolveProxy=N\u00e3o foi poss\u00edvel resolver o proxy ''{0}''
refreshLibraryFilesTask_name=Atualizando arquivos de biblioteca no espa\u00e7o de trabalho
versionMismatch_oldTool=Os arquivos selecionados n\u00e3o s\u00e3o suportados - fa\u00e7a upgrade para uma vers\u00e3o mais recente do {0}. 
