#-------------------------------------------------------------------------------
# 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=EPF Composer RCP - brugergr\u00e6nseflade
productName=EPF Composer
providerName=Eclipse.org

# About text
aboutText=Eclipse Process Framework Composer\n\
\n\
Version: {1}\n\
Byggeetiket: {0}\n\
\n\
(c) Copyright Eclipse contributors and others 2000, 2007. 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.
