#-------------------------------------------------------------------------------
# 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=Edici\u00f3n de biblioteca de EPF
providerName=Eclipse.org

_UI_Content_group=Contenido del m\u00e9todo

_UI_Disciplines_group=Disciplinas
_UI_Domains_group=Dominios
_UI_WorkProductTypes_group=Clases de producto de trabajo
_UI_Role_Sets_group=Conjuntos de roles
_UI_Tools_group=Herramientas
_UI_Standard_Categories_group=Categor\u00edas est\u00e1ndar
_UI_Custom_Categories_group=Categor\u00edas personalizadas
_UI_MethodContent_group=Paquetes de contenido

_UI_Processes_group=Procesos
_UI_PlanningTemplates_group=Plantillas de planificaci\u00f3n

_UI_CapabilityPatterns_text=Patrones de posibilidad
_UI_DeliveryProcesses_text=Procesos de entrega
_UI_ProcessContributions_text=Procesos diferenciales
_UI_PlanningTemplates_text=Plantillas de planificaci\u00f3n

_UI_CapabilityPattern_text=Patr\u00f3n de posibilidad
_UI_DeliveryProcess_text=Proceso de entrega
_UI_ProcessContribution_text=Proceso diferencial

_UI_Configurations_text=Configuraciones

_UI_ProcessFamilies_text=Familias del proceso

_UI_Uncategorized_text=Sin categorizar
_UI_Uncategorized_Tasks_text=Tareas sin categorizar
_UI_Uncategorized_Roles_text=Roles sin categorizar

_UI_Guidances_group=Instrucciones
_UI_Guidances_Checklists=Listas de comprobaci\u00f3n
_UI_Guidances_Concepts=Conceptos
_UI_Guidances_Examples=Ejemplos
_UI_Guidances_EstimationConsiderations=Consideraciones sobre el c\u00e1lculo
_UI_Guidances_Practices=Pr\u00e1cticas
_UI_Guidances_Reports=Informes
_UI_Guidances_ReusableAssets=Activos reutilizables
_UI_Guidances_Roadmap=Mapa
_UI_Guidances_SupportingMaterials=Materiales de soporte
_UI_Guidances_Techniques=T\u00e9cnicas
_UI_Guidances_Templates=Plantillas
_UI_Guidances_TermDefinitions=Definiciones del t\u00e9rmino
_UI_Guidances_ToolMentors=Gu\u00edas de la herramienta
_UI_Guidances_Whitepapers=Documentaci\u00f3n
_UI_Guidances_WorkProductGuidelines=Directrices
_UI_Key_Concepts=Conceptos clave


_UI_Roles_group=Roles
_UI_Tasks_group=Tareas
_UI_WorkProducts_group=Productos de trabajo
_UI_Activities_group=Actividades

# Breakdown structure column display names
BS_Column_name=Nombre
BS_Column_prefix=Prefijo
BS_Column_id=\u00cdndice
BS_Column_predecessors=Predecesores
BS_Column_is_repeatable=Se puede repetir
BS_Column_is_ongoing=Continuo
BS_Column_is_event_driven=Condicionado por sucesos
BS_Column_entry_state=Estado de entrada
BS_Column_exit_state=Estado de salida
BS_Column_teams=Equipo
BS_Column_type=Tipo
BS_Column_model_info=Informaci\u00f3n del modelo
BS_Column_presentation_name=Nombre de presentaci\u00f3n
BS_Column_deliverable=entregable
BS_Column_is_optional=Opcional
BS_Column_is_planned=Planeado
BS_Column_has_multiple_occurrences=Varias apariciones

