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

# Export Microsoft Project Wizard
exportMSPWizard_title=Exportar Microsoft Project

# Select Export Options Wizard Page
selectExportOptionsWizardPage_title=Selecionar op\u00e7\u00f5es de exporta\u00e7\u00e3o
selectExportOptionsWizardPage_text=Selecione as op\u00e7\u00f5es de exporta\u00e7\u00e3o e de configura\u00e7\u00e3o de m\u00e9todo que ser\u00e3o utilizadas para exportar o processo selecionado.
selectedProcessLabel_text=Processo Selecionado:
configurationLabel_text=Configura\u00e7\u00e3o do m\u00e9todo:
publishWebSiteCheckBox_text=Publicar Web site de Processo
publishConfigButton_text=Publicar toda a configura\u00e7\u00e3o de m\u00e9todo
publishProcessButton_text=Publicar conte\u00fado relevante apenas para o processo selecionado
exportOnlyPlannedElementsCheckBox_text=Exportar somente elementos de interrup\u00e7\u00e3o planejados

# Select Publishing Options Wizard Page
selectPublishOptionsWizardPage_title=Selecionar op\u00e7\u00f5es de publica\u00e7\u00e3o
selectPublishOptionsWizardPage_text=Selecione as op\u00e7\u00f5es de publica\u00e7\u00e3o que ser\u00e3o utilizadas para publicar o Web site do processo exportado.

# Select Export Directory Wizard page
selectExportDirWizardPage_title=Especifique o nome do projeto e o diret\u00f3rio de exporta\u00e7\u00e3o
selectExportDirWizardPage_text=Especifique o nome e o diret\u00f3rio de exporta\u00e7\u00e3o do Microsoft Project.
projectNameLabel_text=Nome:
dirLabel_text=Diret\u00f3rio:
browseButton_text=Procurar...

# Progress Messages
exportMSPTask_name=Exportando o processo selecionado para o Microsoft Project...

# Warning Messages
overwriteText_msg=IUPM0100W: Um Microsoft Project ''{0}'' j\u00e1 existe em ''{1}''.\n\nDeseja sobrescrev\u00ea-lo?
missingProcessContentWarning_msg=IUPM0102W: O Web site de processos publicado n\u00e3o conter\u00e1 nenhum conte\u00fado relacionado ao processo exportado.\n\nDeseja continuar?

# Informational Messages
completedText_msg=IUPM0103I: O processo selecionado ''{0}'' foi exportado com \u00eaxito para o arquivo XML do Microsoft Project ''{1}''.

# Error Messages
exportMSPError_msg=IUPM0105E: Ocorreu um erro ao exportar o processo selecionado ''{0}'' para o Microsoft Project ''{1}''.
exportMSPError_reason=Clique em Detalhes para obter informa\u00e7\u00f5es adicionais.
exportMSPInternalError_msg=Ocorreu um erro interno.
illegalArgument_msg={0} retorna um valor nulo ou inv\u00e1lido.
