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

# Export XML Wizard
exportXMLWizard_title=Eksport\u00e9r XML

# Select Export Type Wizard Page
selectExportTypePage_desc=V\u00e6lg den type metodebiblioteksindhold, der skal eksporteres.
exportLibraryRadioButton_text=Eksport\u00e9r hele metodebiblioteket
exportPluginsRadioButton_text=Eksport\u00e9r en eller flere metode-plugins
exportConfigsRadioButton_text=Eksport\u00e9r en metodekonfiguration

# Select Destination XML File Wizard Page
selectXMLFilePage_title=Angiv eksportfil
selectXMLFilePage_desc=Angiv en XML-destinationsfil, hvor det eksporterede metodebiblioteksindhold skal gemmes.
fileLabel_text=XML-fil:
browseButton_text=Gennemse...

# Overwrite Confirmation Dialog
overwriteText_msg=''{0}'' findes allerede.\nVil du overskrive?
overwriteText_msg1=''{0}'' findes allerede.\nVil du overskrive den og dens folder ''{1}''?

# Progress Messages
exportingXML_text=Eksporterer metodebiblioteksindhold til XML-fil...

# Error Messages
invalidXMLFile_error=Den angivne XML-fil er ikke gyldig.
exportXMLWizard_error=IUPM0000E: Eksport er ikke udf\u00f8rt: {0}
exportXMLWizard_reviewLog=Eksport er udf\u00f8rt. Gennemse logfilerne i eksportbiblioteket.
exportXMLService_error=Fejl under eksport af bibliotek: {0}
exportXMLService_feature_error=Fejl under angivelse af funktionsv\u00e6rdi: Element={0}, funktion={1}
xmlLibrary_error_load_xml=Kan ikke indl\u00e6se XML-kilden ''{0}''
xmlLibrary_no_plugin=Ingen metode-plugin for id''en {0}
xmlLibrary_no_feature=Kan ikke hente XML-funktion for {0}_{1}
xmlLibrary_no_class=Kan ikke hente EClass for {0}
xmlLibrary_error_create_element=Fejl under oprettelse af element. Det vides ikke, hvordan v\u00e6rdi for funktionen {0} skal angives.
xmlLibrary_error_set_value=Fejl under oprettelse af element. Kan ikke angive v\u00e6rdien {0} for opbevaringsstedet {1}
xmlLibrary_invalid_feature_value=Ugyldig attributfunktionsv\u00e6rdi for funktionen {0} med v\u00e6rdien {1}
xmlLibrary_error_set_value_2=Fejl under angivelse af attribut. Kan ikke angive v\u00e6rdi for funktion={0}, objekt={1}, v\u00e6rdi={2}
xmlLibrary_error_set_value_3=Det vides ikke, hvordan v\u00e6rdi for funktion={0}, objekt={1}, v\u00e6rdi={2} skal angives.
xmlLibrary_error_set_reference=Fejl under angivelse af reference. Kan ikke angive v\u00e6rdi for funktion={0}, objekt={1}, v\u00e6rdi={2}
xmlLibrary_error_process_wrong_container=Processen ''{0}'' har ikke et gyldigt opbevaringssted. Opbevaringsstedet er af typen ''{1}'', som ikke er en procespakke.
xmlLibrary_new_id=Elementet {0} er tildelt med en ny id, {1}, fordi det ikke har en gyldig.
xmlLibrary_id_not_unique=Element-id''en ''{0}'' bruges af mere end et element.

export_config_to_temp_location=Eksport\u00e9r konfiguration til en midlertidig placering
open_lib_from_temp_exported_location=\u00c5bn bibliotek fra den midlertidige eksportplacering


