#-------------------------------------------------------------------------------
# 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

# Export Microsoft Project Wizard
exportMSPWizard_title=Eksport\u00e9r Microsoft Project

# Select Export Options Wizard Page
selectExportOptionsWizardPage_title=V\u00e6lg eksportindstillinger
selectExportOptionsWizardPage_text=V\u00e6lg den metodekonfiguration og de eksportindstillinger, der skal bruges til at eksportere den valgte proces.
selectedProcessLabel_text=Valgt proces:
configurationLabel_text=Metodekonfiguration:
publishWebSiteCheckBox_text=Public\u00e9r proceswebstedet
publishConfigButton_text=Public\u00e9r hele metodekonfigurationen
publishProcessButton_text=Public\u00e9r indhold, som kun er relevant for den valgte proces
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 webstedet for den eksporterede proces.

# 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...

# Warning Messages
overwriteText_msg=IUPM0100W: Microsoft Project-projektet ''{0}'' findes allerede i ''{1}''.\n\nVil du overskrive?
missingProcessContentWarning_msg=IUPM0102W: Webstedet for den publicerede proces indeholder intet, som er relateret til den eksporterede proces.\n\nVil du forts\u00e6tte?

# Informational Messages
completedText_msg=IUPM0103I: Den valgte proces, ''{0}'', er eksporteret til Microsoft Project XML-filen ''{1}''.

# Error Messages
exportMSPError_msg=IUPM0105E: 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.
exportMSPInternalError_msg=Der er opst\u00e5et en intern fejl.
illegalArgument_msg={0} returnerer en tom eller ugyldig v\u00e6rdi.
