#-------------------------------------------------------------------------------
# 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: 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 plug-in 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?
ImportPluginWizard_warn_circular_plugins=Der er fundet cirkul\u00e6re referencer mellem f\u00f8lgende plugins

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 {0} er skrevebeskyttet\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.
ConfigurationImportService_handleToolVersion_error=IUPE0208E: Kan ikke opgradere en eller flere plugins.
optionGroup_text=Importvalg
checkBaseRadioButton_text=Kontroll\u00e9r basis-plugins
ignoreRemoveRadioButton_text=Ignor\u00e9r og fjern ul\u00f8ste referencer
