# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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=UI de montaje de UI
providerName=Eclipse.org

# Category
methodCategoryName=M\u00e9todo

# Perspective
authoringPerspectiveName=Creaci\u00f3n
browsingPerspectiveName=Examen

# Views
libraryViewName=Biblioteca
configurationViewName=Configuraci\u00f3n
contentViewName=Contenido
configurationErrorLogViewName=Registro de errores de configuraci\u00f3n

# Editors
methodElementEditorName=Editor de elementos de m\u00e9todo
configurationEditorName=Editor de configuraci\u00f3n
processEditorName=Editor de procesos
activityDiagramEditorName=Editor del diagrama de la actividad
activityDetailDiagramEditorName=Editor del diagrama de detalles de la actividad
workProductDepedencyDiagramEditorName=Editor del diagrama de dependencia del producto de trabajo

# Wizards
newMethodLibraryWizardName=Biblioteca de m\u00e9todos
newMethodLibraryWizardDescription=Crear una nueva biblioteca de m\u00e9todos.
newMethodPluginWizardName=Plug-in de m\u00e9todo
newMethodPluginWizardDescription=Crear un nuevo plug-in de m\u00e9todo.
newConfigurationWizardName=Configuraci\u00f3n de m\u00e9todo
newConfigurationWizardDescription=Crear una nueva configuraci\u00f3n de m\u00e9todo.

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

# Action Set
authoringActionSet=Creaci\u00f3n
cheatSheetsActionSet=Hojas de orientaci\u00f3n

# Global Actions
newLibraryAction=&Biblioteca de m\u00e9todos
newLibraryActionTooltip=Crear una nueva biblioteca de m\u00e9todos
newPluginAction=&Plug-in de m\u00e9todo
newPluginActionTooltip=Crear un plug-in de m\u00e9todo nuevo
newConfigAction=&Configuraci\u00f3n de m\u00e9todo
newConfigActionTooltip=Crear una nueva configuraci\u00f3n de m\u00e9todo
openLibraryAction=&Biblioteca de m\u00e9todos
openLibraryActionTooltip=Abrir una biblioteca de m\u00e9todos existente
openConfigAction=&Configuraci\u00f3n de m\u00e9todo
openConfigActionTooltip=Abrir una configuraci\u00f3n de m\u00e9todo existente
openCheatSheets=&Hojas de orientaci\u00f3n...

# Library View Actions
linkWithEditor=Enlazar con el editor
linkWithEditorTooltip=Enlazar con el editor
showPresentationNames=Mostrar nombres de presentaci\u00f3n
showPresentationNamesTooltip=Mostrar nombres de presentaci\u00f3n

# Configuration View Actions
refreshConfig=Renovar
refreshConfigTooltip=Renovar la configuraci\u00f3n

# Preference Page
authoringPreferencePage=Creaci\u00f3n
processEditor=Editor de procesos
libraryOptions=Opciones de la biblioteca
startupAndShutdown=Inicio y conclusi\u00f3n
debug=Depurar
modelingOptions=Opciones de modelado
diagramAppearance=Aspecto del diagrama
breakdownElementAttributes=Atributos del elemento de desglose
libraryViewOptions=Opciones de vista de la biblioteca
activityDiagram=Diagrama de la actividad
validation=Validaci\u00f3n

# Command Handler
selectAll=Seleccionar todo

# Properties View
_UI_ProcessEditor_menu=Proceso
_UI_CreateChild_menu_item=&Nuevo hijo
_UI_CreateSibling_menu_item=Nu&evo igual
_UI_ShowPropertiesView_menu_item=Mostrar propiedades &Vista
_UI_RefreshViewer_menu_item=Re&novar
_UI_Properties_General=General
_UI_Properties_Documentation=Documentaci\u00f3n
_UI_Properties_Guidance=Instrucciones
_UI_Properties_Work_Rollup=Trabajar con elementos contra\u00eddos
_UI_Properties_Team_Rollup=Elementos contra\u00eddos de Equipo
_UI_Properties_WP_Rollup=Contracci\u00f3n de producto de trabajo
_UI_Properties_Roles=Roles
_UI_Properties_WorkProducts=Productos de trabajo
_UI_Properties_Steps=Pasos
_UI_Properties_Teams=Equipos

RichTextMarkerTypeName=Problemas de HTML
ConfigurationMarkerTypeName=Problemas de configuraci\u00f3n
ExplanationText=Explicaci\u00f3n

ClearAllValidationItems=Borrar todos los elementos de validaci\u00f3n
