# 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=Caminho do arquivo
cannotWriteToFiles=Imposs\u00edvel gravar no(s) arquivo(s)
readOnlyFiles_title=Arquivo(s) de somente leitura
readOnlyFiles_msg=Os arquivos listados em Detalhes s\u00e3o de somente leitura. Mude-os para grav\u00e1veis e clique em Tentar Novamente para continuar.
elementPath=Caminho do elemento
promptRemoveReferencesToMissingFiles_msg=Os seguintes arquivos est\u00e3o ausentes. Clique em OK para remover todas as refer\u00eancias aos arquivos selecionados na biblioteca
missingFiles_title=Arquivo(s) ausente(s)
loadError=Erro de carregamento
promptRemoveReferencesToFilesWithLoadErrors_msg=Os seguintes arquivos n\u00e3o podem ser carregados. Clique em OK para remover todas as refer\u00eancias aos arquivos selecionados na biblioteca
filesWithLoadErrors_title=Arquivo(s) com erro de carregamento
migrateXMLLibrary_taskName=Migrando biblioteca importada XML
convertToSynFree_taskName=Convertendo em biblioteca sincronizada automaticamente

# Error Messages
libraryAlreadyExistsError_msg=J\u00e1 existe uma biblioteca de m\u00e9todos em ''{0}''.
