#-------------------------------------------------------------------------------
# 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
#
# Message ID Range: IUPE0200E - IUPE0299E
#

# Import Library Configuration Wizard
importConfigWizard_title=Import\u00e9r bibliotekskonfiguration
selectConfigDirWizardPage_title=Angiv importbibliotek
selectConfigDirWizardPage_text=Angiv biblioteket med den bibliotekskonfiguration, der skal importeres.
reviewChangesWizardPage_title=Gennemse biblioteks\u00e6ndringer
reviewChangesWizardPage_text=Gennemse de \u00e6ndringer, der vil blive foretaget i det aktuelle metodebibliotek.
selectConfigSpecsWizardPage_title=V\u00e6lg konfigurationsspecifikationer
selectConfigSpecsWizardPage_text=V\u00e6lg en eller flere konfigurationsspecifikationer, der skal importeres.

# Import Method Plug-ins Wizard
importPluginsWizard_title=Import\u00e9r metode-plugins
selectPluginsDirWizardPage_title=Angiv importbibliotek
selectPluginsDirWizardPage_text=Angiv biblioteket med de metode-plugins, der skal importeres.
selectPluginsWizardPage_title=V\u00e6lg metode-plugins
selectPluginsWizardPage_text=V\u00e6lg en eller flere metode-plugins, der skal importeres. Hvis en valgt plugin allerede findes i det aktuelle metodebibliotek, skal du kontrollere versionsforskellene.
importPluginsWizard_ERR_Import_plugin=Import af plugin ikke udf\u00f8rt

ConfigurationImportService_MSG0=Validerer valgt bibliotekskonfiguration...
ConfigurationImportService_MSG1=Det angivne bibliotek indeholder ikke en gyldig konfiguration.
ConfigurationImportService_MSG3=Importerer metodekonfiguration...
ConfigurationImportService_MSG2=Kan ikke importere det aktuelt \u00e5bne bibliotek til sig selv.
ImportConfigurationWizard_MSG1=Importerer metodekonfiguration...
ImportConfigurationWizard_ERR_Import_configuration=Import af konfiguration ikke udf\u00f8rt

FileModifyChecker_Checkout_failed_title=Fejl i udtjekning
FileModifyChecker_Checkout_failed_msg=Nogle af filerne er ikke tjekket ud. Vil du pr\u00f8ve igen?

ImportConfigReportPage_title=Importerer konfigurationsrapport
ImportPluginWizard_readonly=IUPE0201E: Bibliotek er skrivebeskyttet.
ImportPluginWizard_MSG1=Importerer metode-plugin...
ImportPluginWizard_error=Fejl
ImportPluginWizard_warn_existing_plugins=IUPE0200E: F\u00f8lgende valgte plugins findes allerede. Hvis du importerer de samme plugins igen, overskrives de eksisterende:\n\n {0} \n\nEr du sikker p\u00e5, at du vil forts\u00e6tte?
ImportPluginWizard_confirm_continue=\n\n Er du sikker p\u00e5, at du vil forts\u00e6tte?

SelectConfigsToImport_label1=F\u00f8lgende elementer bliver importeret:
ImportConfigurationWizard_error=Fejl
SelectImportConfigurationSource_MSG1=Analyserer
SelectConfigSpecsToImportPage_title2=V\u00e6lg konfigurationsspecifikationer, der skal importeres
SelectImportPluginSource_not_used=ikke_benyttet
SelectImportPluginSource_no_path=Det angivne bibliotek findes ikke.
SelectImportPluginSource_no_dir=Der er ikke angivet et bibliotek
SelectPluginsToImport_label_plugins=Tilg\u00e6ngelige plugins i importbiblioteket:
SelectPluginsToImport_label_author=Forfatter:
SelectPluginsToImport_label_version=Version:
SelectPluginsToImport_label_desc=Kort beskrivelse:
ImportConfigurationWizard_readonly=IUPE0201E: Bibliotek er skrivebeskyttet.
PluginImportingService_MSG0=Validerer valgte plugins...
PluginImportingService_MSG1=Den angivne sti indeholder ikke en gyldig plugin-metode.
PluginImportingService_MSG3=Importerer metode-plugin...
PluginImportingService_MSG5=Den valgte metode-plugin kan ikke importeres. Dens afh\u00e6ngige plugin ''{0}'' findes ikke i det aktuelle metodebibliotek.
PluginImportingService_MSG6=Den valgte metode-plugin kan ikke importeres. En afh\u00e6ngig plugin findes ikke i det aktuelle metodebibliotek.
DiffReportViewer_content=Indhold
DiffReportViewer_in_import=I import
SelectPluginsToImport_MSG1=Analyserer filer...
DiffReportLabelProvider_yes=Ja
SelectPluginsToImport_error=Fejl
DiffReportViewer_in_lib=I bibliotek
DiffReportViewer_status=Status
SelectPluginsToImport_libraryPluginExists=Valgt plugin findes i det aktuelle bibliotek
SelectPluginsToImport_libraryPluginNotExists=Valgt plugin findes ikke i det aktuelle bibliotek
SelectConfigSpecsToImportPage_libraryConfigSpecExists=Konfiguration findes i det aktuelle bibliotek
SelectConfigSpecsToImportPage_configSpecNoSelection=Der er ikke valgt en konfigurationsspecifikation.
SelectConfigSpecsToImportPage_configSpecDataLabel=Valgt konfiguration i importbiblioteket
SelectConfigSpecsToImportPage_label_configs=Tilg\u00e6ngelige konfigurationsspecifikationer i importbiblioteket:
SelectImportConfigurationSource_not_used=ikke_benyttet
SelectConfigSpecsToImportPage_label_desc=Kort beskrivelse:
SelectImportConfigurationSource_no_path=Den angivne sti findes ikke.
SelectPluginsToImport_pluginNoSelection=Der er ikke valgt en plugin.
SelectImportConfigurationSource_no_dir=Der er ikke angivet et bibliotek
SelectImportConfigurationSource_plugin_readonly=Plugin''en {0} er skrivebeskyttet\n
SelectImportConfigurationSource_plugin_locked=IUPE0203E: Plugin''en {0} er l\u00e5st\n
SelectImportConfigurationSource_error_not_updatable=Nogle plugins i biblioteket er l\u00e5st eller skrivebeskyttet.\nL\u00e5s de relevante plugins op, og kontroll\u00e9r, at filerne kan opdateres.
SelectPluginsToImport_pluginDataLabel=Valgt plugin i importbiblioteket
DiffReportViewer_type=Indholdstype
SelectConfigSpecsToImportPage_libraryConfigSpecNotExists=Valgt konfiguration findes ikke i det aktuelle bibliotek.
versionMismatch_oldData=IUPE0204E: De angivne filer er eksporteret med en tidligere version ({0}) af {1}. Filerne skal eksporteres med den aktuelle version af {1}.
versionMismatch_oldData_unknown=IUPE0205E: De angivne filer er eksporteret med en tidligere version af {0}. Filerne skal eksporteres med den aktuelle version af {0}.
versionMismatch_oldTool=IUPE0206E: De angivne filer er eksporteret med en nyere version ({0}) af {1}. Du skal opgradere {1} for at kunne importere filerne. 
versionMismatch_oldTool_unknown=IUPE0207E: De angivne filer kan ikke \u00e5bnes. Du skal opgradere {0} for at kunne importere filerne. 
