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

_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_Categories_group=Categor\u00edas

_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=Instrucciones 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
_UI_UdtElements_group=UDT (tipos definidos por el usuario)

# 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

