#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

# Export Microsoft Project Wizard
exportMSPWizard_title=Eksport\u00e9r Microsoft Project

# Select Process Wizard Page
selectProcessWizardPage_title=V\u00e6lg proces og eksportindstillinger
selectProcessWizardPage_text=V\u00e6lg en proces, der skal eksporteres, og angiv eksportvalgene.
processGroup_text=Proces
capabilityPatternRadioButton_text=Funktionsm\u00f8nster
deliveryProcessRadioButton_text=Leveringsproces
optionsGroup_text=Eksportvalg
processNameLabel_text=Navn:
contextNameLabel_text=Konfiguration:
publishConfigurationCheckBox_text=Public\u00e9r den valgte konfiguration
exportOnlyPlannedElementsCheckBox_text=Eksport\u00e9r kun planlagte nedbrydningselementer

# Select Publishing Options Wizard Page
selectPublishOptionsWizardPage_title=V\u00e6lg publiceringsindstillinger
selectPublishOptionsWizardPage_text=V\u00e6lg de publiceringsindstillinger, der skal bruges til at publicere den angivne konfiguration.

# Select Export Directory Wizard page
selectExportDirWizardPage_title=Angiv projektnavn og eksportbibliotek
selectExportDirWizardPage_text=Angiv Microsoft Project-navnet og eksportbiblioteket.
projectNameLabel_text=Navn:
dirLabel_text=Bibliotek:
browseButton_text=Gennemse...

# Progress Messages
exportMSPTask_name=Eksporterer den valgte proces til Microsoft Project...

# Confirmation Messages
overwriteText_msg=Microsoft Project-projektet ''{0}'' findes allerede i ''{1}''.\nVil du overskrive?
completedText_msg=Den valgte proces, ''{0}'', er eksporteret til Microsoft Project XML-filen ''{1}''.

# Error Messages
exportMSPError_msg=Der er opst\u00e5et en fejl under eksport af processen ''{0}'' til Microsoft Project ''{1}''.
exportMSPError_reason=Klik p\u00e5 Oplysninger for at f\u00e5 flere oplysninger.
