# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2008 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=EPF Composer RCP UI
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version: {0}\n\
\n\
(c) Copyright Eclipse contributors and others {1}, {2}. All rights reserved.\n

# Category
methodCategoryName=Metode

# Views
welcomeViewName=Velkommen

# Actions
globalActionSet=Globalt funktionss\u00e6t
newAction=&Ny
newActionTooltip=Ny
openAction=&\u00c5bn...
openActionTooltip=\u00c5bn
searchAction=&S\u00f8g...
searchActionTooltip=S\u00f8g
welcomeAction=&Velkommen
welcomeActionToolTip=Velkommen

# Tooltips
shortcut.overview.tooltip=Vend tilbage til siden Oversigt
shortcut.tutorials.tooltip=Vend tilbage til siden \u00d8veprogram
shortcut.firststeps.tooltip=Vend tilbage til siden De f\u00f8rste trin
shortcut.webresources.tooltip=Vend tilbage til siden Webressourcer       

#Action Set
actionSet.description = Hj\u00e6lp - v\u00e6rkt\u00f8jslinjefunktioner
actionSet.label = Hj\u00e6lp
searchAction.label = S&\u00f8g i hj\u00e6lp
searchAction.tooltip = S\u00f8g i hj\u00e6lp
dynamicHelpAction.label = &Dynamisk hj\u00e6lp 
dynamicHelpAction.tooltip = Dynamisk hj\u00e6lp

#Activities/Capabilities
activity.general=Import\u00e9r og eksport\u00e9r projekter og ressourcer
activity.general.desc=Brug standardfunktionerne i Eclipse til import\u00e9r/eksport\u00e9r projekt/ressourcer.
activity.team.cvs=CVS-underst\u00f8ttelse
activity.team.cvs.desc=Brug CVS (Concurrent Versions System) til at administrere ressourcer.
activity.team=Underst\u00f8ttelse af kerneteam
activity.team.desc=Del projekter vha. konfigurationsstyringssystemer

activity.cat.general=Generelt
activity.cat.general.desc=Brug standardfunktionerne i Eclipse.
activity.cat.team=Team
activity.cat.team.desc=Brug konfigurationsstyringssystemer til at administrere ressourcer.

PreferencePages.Capabilities = Muligheder
PreferencePages.Capabilities.activityName = &Muligheder
PreferencePages.Capabilities.categoryName = &Muligheder
PreferencePages.Capabilities.activityPromptButton = V&is meddelelse ved aktivering af muligheder
PreferencePages.Capabilities.activityPromptButtonTooltip = Vis meddelelse, n\u00e5r en funktion, der kr\u00e6ver aktivering af muligheder, anvendes f\u00f8rste gang.
PreferencePages.Capabilities.captionMessage = Med Muligheder kan du aktivere eller deaktivere forskellige produktkomponenter. Disse muligheder er grupperet i henhold til et s\u00e6t foruddefinerede kategorier.
