#-------------------------------------------------------------------------------
# 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

# Publish Method Configuration Wizard
publishConfigWizard_title=Configura\u00e7\u00e3o de M\u00e9todo de Publica\u00e7\u00e3o
publishConfigWizard_selectConfigPage_title=Selecionar Configura\u00e7\u00e3o de M\u00e9todo
publishConfigWizard_selectConfigPage_text=Selecione a configura\u00e7\u00e3o de m\u00e9todo que deseja publicar.
publishConfigWizard_selectOptionsPage_title=Especificar Op\u00e7\u00f5es de Publica\u00e7\u00e3o
publishConfigWizard_selectOptionsPage_text=Especifique o diret\u00f3rio de destino e as op\u00e7\u00f5es de publica\u00e7\u00e3o.
publishConfigWizard_methodConfig_text=Configura\u00e7\u00e3o do m\u00e9todo:
publishConfigWizard_destinationGroup_text=Diret\u00f3rio de destino
publishConfigWizard_directory_text=Caminho:
publishConfigWizard_useDefaultPath_text=Utilizar caminho padr\u00e3o
publishConfigWizard_webSite_text=Web site publicado
publishConfigWizard_title_text=Cargo:
publishConfigWizard_bannerImage_text=Imagem de banner:
publishConfigWizard_aboutHTML_text=Sobre o conte\u00fado:
publishConfigWizard_feedbackURL_text=URL de feedback:
publishConfigWizard_includeIndex_text=Publicar p\u00e1gina de \u00edndice
publishConfigWizard_includeGlossary_text=Publicar p\u00e1gina de gloss\u00e1rio
publishConfigWizard_includeSearch_text=Incluir recurso de procura (exige suporte a applet Java no navegador)
publishConfigWizard_useApplet_text=Suportar customiza\u00e7\u00e3o de visualiza\u00e7\u00e3o (exige suporte a applet Java no navegador)
publishConfigWizard_validationGroup_text=Valida\u00e7\u00e3o
publishConfigWizard_checkHyperlinks_text=Verificar hyperlinks externos
publishConfigWizard_diagramGroup_text=Diagramas
publishConfigWizard_publish_unopen_activity_dd_text=Publicar diagramas de detalhes de atividade que n\u00e3o tenham sido criados no editor de processo
publishConfigWizard_publish_extend_activity_diagram=Publicar diagramas de atividades para extens\u00f5es de atividade n\u00e3o modificadas
publishConfigWizard_convertBrokenLinks_text=Converter links desfeitos em texto simples
publishConfigWizard_layout_text=Layout
publishConfigWizard_extraDescriptorInfo_text=Publicar descritores com o conte\u00fado completo do elemento de conte\u00fado do m\u00e9todo relacionado
publishConfigWizard_lightWeightTree_text=Gerar estrutura de sub\u00e1rvore para tarefa, fun\u00e7\u00e3o, produto de trabalho e disciplinar elementos sem utilizar pastas
publishConfigWizard_includeEmptyCategories_text=Publicar categorias sem elementos categorizados

# publish process wizard page
PublishConfigSelectProcessPage_title=Selecionar tipo de publica\u00e7\u00e3o
PublishConfigSelectProcessPage_text=Voc\u00ea pode publicar a configura\u00e7\u00e3o selecionada ou os processos especificados na configura\u00e7\u00e3o
PublishConfigSelectProcessPage_label_capability_pattern=Padr\u00f5es de Recurso
PublishConfigSelectProcessPage_label_delivery_process=Processos de Entrega
PublishConfigSelectProcessPage_label_selectType=Selecionar tipo de publica\u00e7\u00e3o
PublishConfigSelectProcessPage_label_type_processes=Publicar os processos selecionados a seguir:
PublishConfigSelectProcessPage_label_type_config=Publicar a configura\u00e7\u00e3o selecionada
PublishConfigSelectProcessPage_label_publish_base_processes=Publicar Processos de Base Referidos

# Publishing Preference Page
preferencePage_defaultPath_text=Caminho padr\u00e3o:

# Confirmation Dialogs
publishConfigDialog_title=Configura\u00e7\u00e3o de M\u00e9todo de Publica\u00e7\u00e3o
confirmPathDialog_text=O caminho de destino foi resolvido para ''{0}''. Deseja continuar?
overwriteDialog_text=O caminho de destino ''{0}'' j\u00e1 existe. Todos os arquivos na pasta ser\u00e3o exclu\u00eddos. Deseja continuar?
cancelPublishConfig_msg=A opera\u00e7\u00e3o de publica\u00e7\u00e3o foi cancelada.
# Error Dialogs
previewConfigError_title=Visualiza\u00e7\u00e3o de Configura\u00e7\u00e3o de M\u00e9todo Publicado
viewReportError_title=Visualizar Relat\u00f3rio de Publica\u00e7\u00e3o

# Error Messages
missingViewError_msg=IUPP0100W: A configura\u00e7\u00e3o selecionada n\u00e3o cont\u00e9m uma visualiza\u00e7\u00e3o v\u00e1lida. Edite a configura\u00e7\u00e3o e inclua uma visualiza\u00e7\u00e3o, ou selecione outra configura\u00e7\u00e3o.
cannotPublishError_msg=IUPP0101E: N\u00e3o \u00e9 poss\u00edvel publicar a configura\u00e7\u00e3o selecionada.
invalidPathError_msg=IUPP0102E: O caminho de destino est\u00e1 em branco ou \u00e9 inv\u00e1lido.
invalidPathCharsError_msg=IUPP0103E: O caminho de destino n\u00e3o pode conter estes caracteres: \\ # * ? " < > | ! % /
publishConfigError_msg=IUPP0104E: A configura\u00e7\u00e3o selecionada n\u00e3o foi publicada com \u00eaxito.
previewConfigError_msg=IUPP0105E: Imposs\u00edvel abrir um navegador de HTML para visualizar a configura\u00e7\u00e3o publicada.
viewReportError_msg=IUPP0106E: Imposs\u00edvel abrir um navegador de HTML para visualizar o relat\u00f3rio de publica\u00e7\u00e3o.

# Error Reasons & Recommended Actions
publishConfigError_reason=IUPP0107E: Ocorreu um erro. Selecione o bot\u00e3o Detalhes para obter informa\u00e7\u00f5es adicionais.
deleteFilesError_reason=O caminho de destino ''{0}'' cont\u00e9m arquivos que n\u00e3o podem ser exclu\u00eddos.\n\nFeche este di\u00e1logo e especifique outro caminho.
createDirError_reason=N\u00e3o \u00e9 poss\u00edvel criar o caminho de destino ''{0}''.\n\nFeche este di\u00e1logo e especifique outro caminho.
openBrowserError_reason=N\u00e3o foi poss\u00edvel detectar ou localizar o navegador de HTML padr\u00e3o neste sistema.\n\nFeche este di\u00e1logo e abra o arquivo ''{0}'' manualmente com um navegador de HTML.
