#-------------------------------------------------------------------------------
# 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=EPF Publishing UI
providerName=Eclipse.org

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

# Publish Configuration Action
publishConfigAction=&Publish...
publishConfigActionTooltip=Publish a web site for a configuration

# Preference Page
rootPageName=Publishing/Browsing
roleDiagramPageName=Role Diagram
activityDiagramPageName=Activity Diagrams
supportingPluginPageName=Supporting Plugins
publishingOptions=Publishing Options

# Publishing Actions
configActionSet=Configuration
configMenu=C&onfiguration

# Print Configuration Action
printConfigAction=Print

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

