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

# Plug-in
pluginName=Documentaci\u00f3n de EPF
providerName=Eclipse.org


# Cheat Sheets
methodAuthoringCheatSheetsName=Hojas de orientaci\u00f3n de la creaci\u00f3n de m\u00e9todos
CheatsheetGetstartedCategoryText=C\u00f3mo empezar
CheatsheetReusableContentCategoryText=Crear contenido del m\u00e9todo reutilizable
CheatsheetWriteContentCategoryText=Escribir contenido del m\u00e9todo
CheatsheetProcessesCategoryText=Trabajar con procesos
CheatsheetNavigateMethodContent=Navegar por el contenido del m\u00e9todo
CheatsheetCreateMethodConfiguration=Crear una configuraci\u00f3n de m\u00e9todo propia
CheatsheetCreateMethodPlugin=Crear un plug-in de m\u00e9todo propio
CheatsheetAddMethodContent=A\u00f1adir contenido del m\u00e9todo nuevo, como roles, tareas, productos de trabajo o instruccioness
CheatsheetTailorMethodElements=Personalizar los elementos de m\u00e9todo existentes (Roles, Tareas, Productos de trabajo o Instrucciones) mediante la contribuci\u00f3n
CheatsheetReplaceMehtodElements=Reemplazar los elementos de m\u00e9todo existentes (Roles, Tareas, Productos de trabajo o Instrucciones)
CheatsheetAddMethodRefOrHyperlink=A\u00f1adir una referencia o hiperenlace al m\u00e9todo (URL)
CheatsheetApplyCapabilityPattern=Aplicar un patr\u00f3n de posibilidad
CheatsheetCreateProcess=Crear un proceso (Patr\u00f3n de posibilidad o Proceso de entrega)



               
