# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR The R Foundation
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
msgid ""
msgstr ""
"Project-Id-Version: R 3.0.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2021-02-01 13:59+0000\n"
"PO-Revision-Date: 2011-11-28 23:40+0200\n"
"Last-Translator: Joe <joedalton2@yahoo.dk>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Pootle 2.1.6\n"

#: tcltk.c:70
msgid "parse error in R expression"
msgstr "fortolkningsfejl i R-udtryk"

#: tcltk.c:179 tcltk.c:257
msgid "tcl error.\n"
msgstr "tcl-fejl.\n"

#: tcltk.c:208 tcltk.c:283 tcltk.c:300 tcltk.c:320 tcltk.c:340 tcltk.c:415
#: tcltk.c:480 tcltk.c:534 tcltk.c:773
msgid "invalid argument"
msgstr "ugyldigt argument"

#: tcltk.c:290
msgid "no such variable"
msgstr ""

#: tcltk.c:322 tcltk.c:342 tcltk.c:417 tcltk.c:482 tcltk.c:536
msgid "invalid tclObj -- perhaps saved from another session?"
msgstr "ugyldigt tclObj - måske gemt fra en anden session?"

#: tcltk.c:646
msgid "argument list is too long in tcltk internal function 'callback_closure'"
msgstr "argumentliste er for lang i tcltk-intern funktion 'callback_closure'"

#: tcltk.c:679
msgid "argument is not of correct type"
msgstr "argument er ikke af korrekt type"

#: tcltk.c:731
msgid "no DISPLAY variable so Tk is not available"
msgstr "ingen DISPLAY-variabel så Tk er ikke tilgængelig"

#: tcltk_unix.c:94
msgid "Tcl is not loaded"
msgstr "Tcl er ikke indlæst"

#: tcltk_unix.c:98
msgid "Tcl is not last loaded handler"
msgstr "Tcl er ikke sidst indlæst håndtering"

#~ msgid "Tcl already loaded"
#~ msgstr "Tcl allerede indlæst"
