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

# 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
mergeRadioButton2_text=Flet importeret indhold ind i eksisterende metodebibliotek (flet p\u00e5 elementniveau)

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

