#-------------------------------------------------------------------------------
# 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

# Error Messages
invalidNameError_msg=O nome ''{0}'' \u00e9 inv\u00e1lido. Um nome de elemento de m\u00e9todo n\u00e3o pode conter estes 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}''
filePathNameTooLong_msg=N\u00e3o \u00e9 poss\u00edvel salvar o recurso. O nome do caminho do arquivo \u00e9 muito longo (excedeu 255) ''{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}
resourceAutoRefreshJob_name=Atualiza\u00e7\u00e3o Autom\u00e1tica de Recursos
loadConfiguration_couldNotLoad_logMsg=N\u00e3o foi poss\u00edvel carregar o arquivo: {0}. A configura\u00e7\u00e3o de m\u00e9todo neste arquivo possui GUID duplicado.
loadConfiguration_notConfigFile_logMsg=N\u00e3o \u00e9 um arquivo de configura\u00e7\u00e3o de m\u00e9todo: {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...
migratingDiagram_name=Migrando diagramas...
migrateContentDescriptionsTask_name=Migrando descri\u00e7\u00f5es de conte\u00fado de processos...
fixPresentationNameTask_name=Corrigindo nomes de apresenta\u00e7\u00e3o vazios
UnresolvedProxyMarkerManager_couldNotResolveProxy=N\u00e3o foi poss\u00edvel resolver o proxy ''{0}''
refreshLibraryFilesTask_name=Atualizando arquivos de biblioteca no espa\u00e7o de trabalho
cannot_create_dir_msg=N\u00e3o \u00e9 poss\u00edvel criar o diret\u00f3rio ''{0}''.
unresolvedProxyLoggerJob_name=Criador de Logs do Proxy N\u00e3o Resolvido
