# NLS_ENCODING=UNICODE
#-------------------------------------------------------------------------------
# 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
ImportNoSynLib_ConvertMsg=Vil du konvertere det importerede bibliotek til et automatisk synkroniseret bibliotek?
ImportSynLibToNoSynLib_Error=Import af biblioteksdata fra et automatisk synkroniseret bibliotek til et synkroniseringskr\u00e6vende bibliotek er ikke underst\u00f8ttet
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.\n\ L\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
