#-------------------------------------------------------------------------------
# Copyright (c) 2005, 2006 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

unknown_text=Ukendt

# Error Reasons
emptyLibraryPathError_reason=Stien til metodebibliotek er tom.
missingLibraryFileError_reason=Modelfilen til metodebibliotek mangler.
unresolvedProxyError_reason=Det valgte metodebibliotek indeholde ul\u00f8ste elementreferencer. Det skyldes normalt manglende eller forkert placerede XMI-filer i biblioteksfolderen.\n\nLuk denne dialog, og \u00e5bn oversigten Problemer for at finde de ul\u00f8ste referencer. Du b\u00f8r l\u00f8se disse referencer, f\u00f8r du foretager flere \u00e6ndringer i biblioteket, for at undg\u00e5 at beskadige biblioteket.

# Warning Messages
configClosureWarning_msg1=IUPL0007W: En eller flere underordnede elementer indeholder manglende referencer
configClosureWarning_msg2=IUPL0008W: V\u00e6lg elementet for at l\u00f8se en eller flere manglende referencer
configClosureWarning_msg3=IUPL0009W: Elementet refererer til en eller flere elementer i en ikke valgt pakke

# Error Messages
loadResourcesError_msg=IUPL0000E: Metodebiblioteket er indl\u00f8st, men der er registreret fejl.
unsupportedGuidanceTypeError_msg=IUPL0001E: Vejledningen kan ikke konverteres til en anden type.
convertGuidanceError_msg=IUPL0002E: Vejledningen kan ikke konverteres til m\u00e5ltypen.
saveConvertedGuidanceError_msg=IUPL0003E: Den konverterede vejledning ''{0}'' kan ikke gemmes.

# Convert activity
convertActivityError_title=Fejl i konvertering af aktivitetstype
convertActivityError_msg=IUPL0006E: Aktiviteten kan ikke konverteres til m\u00e5ltypen.
saveConvertedActivityError_msg=IUPL0007E: Den konverterede aktivitet ''{0}'' kan ikke gemmes.

# Error Reasons
error_reason=IUPL0004E: Der er opst\u00e5et en fejl. Klik p\u00e5 OK for at f\u00e5 flere oplysninger.
unsupportedGuidanceTypeError_reason=Der er ingen kompatibel vejledningstype for {0}.
invalidLibraryPathError_reason=Ugyldig bibliotekssti. Filen .project kan ikke oprettes.
couldNotLockLibrary_reason=Kan ikke l\u00e5se bibliotek.

# Progress Messages
copyingAttachmentsTask_name=Kopierer vedh\u00e6ftninger...

# Convert Guidance Dialog
convertGuidanceDialog_title=Konvert\u00e9r vejledningstype
convertGuidanceDialog_text=V\u00e6lg m\u00e5lvejledningstypen.

# Guidance type names for Convert Guidance Dialog - should be refactored into library.ui
checklist_text=Tjekliste
concept_text=Begreb
example_text=Eksempel
guideline_text=Retningslinje
estimate_text=Estimat
estimatingMetric_text=Estimeringsm\u00e5lesystem
estimationConsiderations_text=Estimeringsovervejelser
report_text=Rapport
template_text=Skabelon
supportingMaterial_text=St\u00f8ttemateriale
toolMentor_text=V\u00e6rkt\u00f8jsmentor
whitepaper_text=Hvidbog
termDefinition_text=Termdefinition
practice_text=\u00d8velse
reusableAsset_text=Genanvendeligt aktiv

#activity breakdown info strings
ActivityLayout_primaryTasks_text=Udf\u00f8rer som ejer
ActivityLayout_additionalTasks_text=Udf\u00f8rer som yderligere


# Convert Guidance Error Messages
convertGuidanceError_title=Fejl i konvertering af vejledning

# Load Resources Error Dialog
loadResourcesError_title=Fejl i \u00e5bning af metodebibliotek
loadResourcesError_reason=Nogle biblioteksressourcer kan ikke indl\u00e6ses.\n\nKlik p\u00e5 Oplysninger for at gennemse fejlene, og ret dem, f\u00f8r du foretager flere \u00e6ndringer i biblioteket.

# Role Diagrams
roleDiagramPerforms_text=udf\u00f8rer
roleDiagramResponsibleFor_text=ansvarlig for

DefaultContentValidator_MSG0=Refereret element: {0}
DefaultContentValidator_MSG1=Info: {0}
DefaultContentValidator_MSG4=Advarsel: {0}
DefaultContentValidator_MSG7=Fejl: {0}
DefaultContentValidator_MSG10=Mangler refereret element {0}
DefaultContentValidator_MSG11=Kan ikke finde element for GUID {0}
DefaultContentValidator_MSG12=Filen ''{0}'' refererer til den manglede ressource ''{1}''
DefaultContentValidator_MSG15=mangler ressourcefilen ''{0}''
DefaultContentValidator_MSG17=Kan ikke oprette forbindelse til URL''en ''{0}''
DefaultContentValidator_MSG19=Kan ikke oprette forbindelse til URL''en ''{0}'': {1}
ImportExportUtil_MSG8=Kan ikke finde filen ''{0}''.
ImportExportUtil_MSG9=Kan ikke oprette det midlertidige bibliotek ''{0}''.
unknownGuidance_text=Ukendt

CopyAttachmentsToNewLocation_log_noContentPath=CopyAttachmentsToNewLocation.HandleAttachmentsPlugin: ingen contentPath til {0}
LibraryModificationHelper_cannotUpdate=IUPL0006W: Kan ikke opdatere {0} {1}
warningDlg_title=Advarsel
errorDlg_title=Fejl
errorDlg_saveError=IUPL0005E: Fejl under lagring af \u00e6ndringer til filen ''{0}''

# activity diagram names
activityDiagramName=Aktivitetsdiagram: {0}
activityDetailDiagramName=Aktivitetsoplysningsdiagram: {0}
wpDependencyDiagramName=Diagram for arbejdsproduktafh\u00e6ngighed: {0}

################################################################################
# THE FOLLOWING PROPERTIES SHOULD NOT BE TRANSLATED!!!
################################################################################

# Role diagram fonts and layout
roleDiagramFont_name=Arial
roleDiagramFont_name_win32=Arial
roleDiagramFont_size=10
roleDiagramFont_size_win32=10
roleDiagram_xMargin=200
roleDiagram_xSpacing=70
roleDiagram_ySpacing=30

# localize the value based on locale.  for example, 
# for English, the value is ". "
#colon_with_space=: 
# for french, the value is " . ", you need to use a \ to preserve the leading space
#colon_with_space=\ : 
# for chinese, the colon should be double bytes
# Dont trim the spaces after the colon.
colon_with_space=: 
