#-------------------------------------------------------------------------------
# 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
#
# Message ID Range: IUPE0000E - IUPE0099E
#

# Export Library Configuration Wizard
exportConfigWizard_title=Eksport\u00e9r bibliotekskonfiguration
selectExportTypePage_title=V\u00e6lg eksporttype
selectExportTypePage_desc=V\u00e6lg den type bibliotekskonfiguration, der skal eksporteres.
selectExportTypePage_configLabel_text=Eksport\u00e9r en metodekonfiguration og alle dens metode-plugins
selectExportTypePage_configSpecsLabel_text=Eksport\u00e9r en eller flere metodekonfigurationsspecifikationer
selectConfigPage_title=V\u00e6lg metodekonfiguration
selectConfigPage_desc=V\u00e6lg en metodekonfiguration, der skal eksporteres. Alle refererede metode-plugins i den valgte konfiguration bliver inkluderet i eksporten.
selectConfigPage_configsLabel_text=Metodekonfigurationer:
selectConfigSpecsPage_title=V\u00e6lg konfigurationsspecifikationer
selectConfigSpecsPage_desc=V\u00e6lg en eller flere metodekonfigurationsspecifikationer, der skal eksporteres.
selectConfigSpecsPage_configsLabel_text=Metodekonfigurationer:
checkConfigPage_title=Gennemse konfigurationsfejl
checkConfigPage_desc=Der er udf\u00f8rt integritetskontrol af den valgte metodekonfiguration. Gennemse fejlrapporten, og foretag de n\u00f8dvendige rettelser.
selectDestinationPage_title=Angiv eksportbibliotek
selectDestinationPage_desc=Angiv et destinationsbibliotek til lagring af den eksporterede konfiguration.

# Export Method Plug-ins Wizard
exportPluginsWizard_title=Eksport\u00e9r metode-plugins
selectPluginsPage_title=V\u00e6lg metode-plugins
selectPluginsPage_desc=V\u00e6lg en eller flere metode-plugins, der skal eksporteres.
selectPluginsPage_pluginsLabel_text=Metode-plugins:
reviewPluginsPage_title=Gennemse afh\u00e6ngigheder
reviewPluginsPage_desc=V\u00e6lg hver metode-plugin for at gennemse dens afh\u00e6ngigheder. Klik p\u00e5 Tilbage for at v\u00e6lge de afh\u00e6ngige plugins, hvis de skal inkluderes i eksporten.
reviewPluginsPage_pluginsLabel_text=Metode-plugins:
reviewPluginsPage_dependentPluginsLabel_text=Afh\u00e6ngige metode-plugins:
reviewPluginsPage_associatedConfigsLabel_text=Tilknyttede metodekonfigurationer:
exportPluginSummaryPage_title=Bekr\u00e6ft eksport
exportPluginSummaryPage_desc=Bekr\u00e6ft de metode-plugins, der vil blive eksporteret.
exportPluginSummaryPage_noPlugin_text=Der er ikke valgt en metode-plugin.
specifyPathPage_title=Angiv eksportbibliotek
specifyPathPage_desc=Angiv et destinationsbibliotek til lagring af de eksporterede metode-plugins.
SavePluginPage_desc=Eksport\u00e9r de valgte plugins og konfigurationer til det angivne destinationsbibliotek.
ExportPluginWizard_title=Fejl i guiden Eksport\u00e9r metode-plugin
ExportPluginError_msg=IUPE0000E: Der er opst\u00e5et fejl under eksport

# Export Library Configuration Error Dialog
exportConfigErrorDialog_title=Eksport\u00e9r bibliotekskonfiguration
exportConfigErrorDialog_msg=IUPE0001E: Eksporten kan ikke forts\u00e6tte.

# Progress Messages
analyzingConfigTask_name=Analyserer bibliotekskonfiguration...

# The following messages have not been reviewed.
ConfigurationSpecsExportService_MSG0=Eksporterer konfiguration...
ConfigurationSpecsExportService_MSG1=Eksport er udf\u00f8rt.
ExportConfigCheckingPage_summary_1=Kontrollerer den valgte konfigurations integritet...\n
ExportConfigCheckingPage_summary_2=Der er ikke valgt en konfiguration.\n
ExportConfigCheckingPage_summary_3=Der er ingen problemer i den valgte konfiguration.\n
ExportConfigCheckingPage_summary_4=Der er {0} problemer ({1} fejl, {2} advarsler, {3} infoer) i den valgte konfiguration. \nDu kan \u00e5bne konfigurationseditoren og rette fejlene. \nDu kan ogs\u00e5 v\u00e6lge at ignorere problemerne og forts\u00e6tte.
ExportConfigCheckingPage_checking=Kontrollerer konfiguration. Vent...
ExportConfigSelectConfigPage_title=V\u00e6lg metodekonfiguration
DestinationCommonPage_label_browse=Gennemse...
DestinationCommonPage_label_default_dir=Brug standardbibliotek
ConfigurationExportService_MSG0=Eksporterer konfiguration...
ConfigurationExportService_MSG2=IUPE0002E: Eksport er ikke udf\u00f8rt. Fejl under indl\u00e6sning af bibliotek.
ConfigurationExportService_MSG4=IUPE0003E: Eksport er ikke udf\u00f8rt. Fejl under kopiering af bibliotek.
ConfigurationExportService_MSG1=IUPE0004E: Eksport er ikke udf\u00f8rt. Fejl under lukning af bibliotekskonfiguration.
ConfigurationExportService_MSG9=IUPE0005E: Eksport er ikke udf\u00f8rt. Fejl under lagring af bibliotek.
DestinationCommonPage_label_name=Navn:
DestinationCommonPage_label_dir=Bibliotek:
ExportPluginWizard_error=Fejl
DestinationCommonPage_title=Standardtitel
DestinationCommonPage_desc=Standardbeskrivelse:
PluginExportService_MSG0=Eksporterer plugins...
PluginExportService_MSG1=Opretter eksportbibliotek...
PluginExportService_MSG2=Kopierer filer...
PluginExportService_MSG3=Opretter bibliotek og ressourcefil...
PluginExportService_MSG4=Eksport er udf\u00f8rt.
SaveLibraryPage_title=Eksport\u00e9r metode-plugin
SavePluginPage_label_name=Eksportnavn:
SaveLibraryPage_desc=Eksport\u00e9r de valgte metode-plugins og tilknyttede konfigurationer
ExportPluginWizard_MSG1=Analyserer bibliotekskonfiguration...
