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

# Import XML Wizard
importXMLWizard_title=Import\u00e9r XML

# Select Import XML File Wizard Page
selectXMLFilePage_title=Angiv importfil
selectXMLFilePage_desc=Angiv den XML-fil, som indeholder det metodebiblioteksindhold, du vil importere, og v\u00e6lg den relevante importfunktion, der skal udf\u00f8res.
fileLabel_text=XML-fil:
browseButton_text=Gennemse...
optionGroup_text=Flet indstilling
optionGroup1_text=Kontroll\u00e9r basis-plugin
overwriteRadioButton_text=Tilsides\u00e6t eksisterende metodebiblioteksindhold med importeret indhold
mergeRadioButton_text=Flet importeret indhold ind i eksisterende metodebibliotek

# Progress Messages
importingXML_text=Importerer XML-biblioteksindhold til det aktuelle metodebibliotek...

# Import XML Error Dialog
review_log_files=Importen er udf\u00f8rt. Gennemse logfilerne i \nfolderen ''{0}'' for at finde eventuelle fejl.
importXMLError_msg=IUPM0000E: Importen kan ikke forts\u00e6tte.
importXMLError_reason=IUPM0009E: Det aktuelle metodebibliotek er skrivebeskyttet.\n\nKontroll\u00e9r, at ''{0}'' kan redigeres, eller opret et nyt metodebibliotek, og pr\u00f8v igen.

# Error Messages
invalidXMLFile_error=Den angivne XML-fil er ikke gyldig.
versionMismatch_oldData=IUPM0010E: Den angivne XML-fil er eksporteret med en tidligere version ({0}) af {1}. Filerne skal eksporteres med den aktuelle version af {1}.
versionMismatch_oldData_unknown=IUPM0011E: Den angivne XML-fil er eksporteret med en tidligere version af {0}. Filerne skal eksporteres med den aktuelle version af {0}.
versionMismatch_oldTool=IUPM0012E: Den angivne XML-fil er eksporteret med en nyere version ({0}) af {1}. Du skal opgradere {1} for at kunne importere filen.  
versionMismatch_oldTool_unknown=IUPM0013E: Den angivne XML-fil kan ikke \u00e5bnes. Du skal opgradere {0} for at kunne importere filen.  

importXMLService_element_not_handled=Element ikke h\u00e5ndteret: {0}
importXMLService_element_without_id=Element uden id: {0}
importXMLService_import_failed=Import er ikke udf\u00f8rt: {0}
importXMLService_missing_plugin=Mangler p\u00e5kr\u00e6vet plug-in: {0}
importXMLService_error_missing_plugins=Mangler en eller flere p\u00e5kr\u00e6vede plugins. Der er flere oplysninger i logfilen.

library_error_no_eclass=Fejl under oprettelse af indholdskategori. Kan ikke hente EClass for {0}
library_no_package=Kan ikke finde ejerpakke for objektet {0}
library_error_create_element=Fejl under oprettelse af element: {0}
library_object_string=objekt {0}, funktion {1}
library_error_set_attribute_2=Fejl under angivelse af attribut: Ugyldig attributfunktionsv\u00e6rdi: {0}
library_error_set_attribute=Fejl under angivelse af attribut for objekt {0}, funktion {1} og v\u00e6rdi {2}
library_error_set_attribute_3=Ved ikke, hvordan attribut for objekt {0}, funktion {1} og v\u00e6rdi {2} skal angives
library_error_set_reference=Fejl under angivelse af reference for funktion {0}: Ingen element med id''en {1}
library_error_set_reference_2=Fejl under angivelse af reference for objekt {0}, funktion {1} og v\u00e6rdi {2}

