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

################################################################################
# BEGIN NO TRANSLATION
################################################################################
# Default Publish Path
# !! DO NOT TRANSLATE THE FOLLOWING LINE !!
publishPath=<user.home>/<app.name>/Publish
################################################################################
# END NO TRANSLATION
################################################################################

# Plug-in
pluginName=UI de Publica\u00e7\u00e3o EPF
providerName=Eclipse.org

# Default Feedback URL
feedbackURL=http://www.published_website.com/feedback

# Publish Configuration Action
publishConfigAction=&Publicar...
publishConfigActionTooltip=Publicar um Web site para uma configura\u00e7\u00e3o

# Preference Page
rootPageName=Publica\u00e7\u00e3o/Navega\u00e7\u00e3o
roleDiagramPageName=Diagrama de Fun\u00e7\u00f5es
activityDiagramPageName=Diagramas de Atividades
supportingPluginPageName=Plug-ins de Suporte
publishingOptions=Op\u00e7\u00f5es de Publica\u00e7\u00e3o

# Publishing Actions
configActionSet=Configura\u00e7\u00e3o
configMenu=C&onfigura\u00e7\u00e3o

# Print Configuration Action
printConfigAction=Imprimir

# the title for the published site
#don't define here, let user specify it.
#title=OpenUP/Basic

