# 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: \n"
"POT-Creation-Date: 2016-04-01 10:28-0700\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:67
msgid "parse error in R expression"
msgstr "fortolkningsfejl i R-udtryk"

#: tcltk.c:176 tcltk.c:253
msgid "tcl error.\n"
msgstr "tcl-fejl.\n"

#: tcltk.c:205 tcltk.c:750
msgid "invalid argument"
msgstr "ugyldigt argument"

#: tcltk.c:309 tcltk.c:327 tcltk.c:400 tcltk.c:463 tcltk.c:515
msgid "invalid tclObj -- perhaps saved from another session?"
msgstr "ugyldigt tclObj - måske gemt fra en anden session?"

#: tcltk.c:625
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:658
msgid "argument is not of correct type"
msgstr "argument er ikke af korrekt type"

#: tcltk.c:709
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"
