#-------------------------------------------------------------------------------
# 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
#
# Message ID Range: IUPP0000E - IUPP0099E
#

# Progress Messages
Publishing.publishingConfigurationTask.name=Publishing configuration...
Publishing.initializingDirTask.name=Initializing destination directory...
Publishing.copyingFilesTask.name=Copying files...
Publishing.generatingBookmarksTask.name=Generating bookmarks...
Publishing.generatingBookmarkTask.name=Generating bookmark ''{0}''...
Publishing.generatingBookmarkIndexTask.name=Generating bookmark index...
Publishing.publishingLinkedElementTask.name=Publishing method elements: {0} published, {1} remaining
Publishing.publishingElementTask.name=Publishing method element: {0}:{1}
Publishing.generatingGlossaryTask.name=Generating glossary...
Publishing.generatingSearchIndexTask.name=Generating search index... 
Publishing.buildingProcessClosureTask.name=Building process closure...
Publishing.buildingElementClosureTask.name=Building element closure for ''{0}''...
Publishing.loadLibraryTask.name=Loading library contents...

# Error Messages logged in the Publishing Report
Publishing.publishElementError.msg=IUPP0000E: Error publishing element: {0} 
Publishing.serverError.msg=IUPP0001E: No data returned from server.
Publishing.invalidHttpResponseError.msg=IUPP0002E: Invalid response from http://{0}:{1}:{2}

# Warning Messages logged in the Publishing Report
Publishing.invalidElementWarning.msg=IUPP0003W: Element was not published because it is not a valid element in the configuration.
Publishing.invalidMethodElementWarning.msg=IUPP0004W: Element was not published because it is not a method element: {0} 
Publishing.copyFileWarning.msg=IUPP0005W: Unable to copy file from ''{0}'' to ''{1}''.
Publishing.missingIconFileWarning.msg=IUPP0006W: Node icon file ''{0}'' does not exists.
Publishing.missingIconNameWarning.msg=IUPP0007W: Unable to retrieve the name of the the node icon.
Publishing.externalUrl.msg=referencing external url: {0}

# Error Details
Publishing.createSearchIndexError.msg=IUPP0008E: The search index file was not created.

# Process Tree Nodes
Publishing.referenceWorkflowsNode.text=Reference Workflows
Publishing.taskNode.text=Tasks
Publishing.primarilyPerformsNode.text=Primarily Performs
Publishing.additionallyPerformsNode.text=Additionally Performs
Publishing.performingRolesNode.text=Performing Roles
Publishing.inputWorkProductsNode.text=Input Work Products
Publishing.outputWorkProductsNode.text=Output Work Products
Publishing.responsibleForNode.text=Responsible For
Publishing.modifiesNode.text=Modifies
Publishing.responsibleRoleNode.text=Responsible Role
Publishing.containingWorkProductNode.text=Containing Work Product
Publishing.containedWorkProductsNode.text=Contained Work Products
Publishing.guidanceNode.text=Guidance
Publishing.inputToNode.text=Input to
Publishing.outputFromNode.text=Output from

# HTML Title for Index Page
Publishing.indexLabel.text=Index
