# German translation of src/library/tcltk/po/tcltk.pot
# Copyright (C) 2008-2014 The R Foundation
# This file is distributed under the same license as the R package.
# Detlef Steuer <steuer@hsu-hh.de>, 2008-2014.
msgid ""
msgstr ""
"Project-Id-Version: R-3.1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-01 10:28-0700\n"
"PO-Revision-Date: 2013-03-01 16:24+0100\n"
"Last-Translator: Detlef Steuer <steuer@hsu-hh.de>\n"
"Language-Team: R Core <r-core@r-project.org>\n"
"Language: de\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 ? 0 : 1;\n"

#: tcltk.c:67
msgid "parse error in R expression"
msgstr "Fehler beim Parsen des R-Ausdrucks"

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

#: tcltk.c:205 tcltk.c:750
msgid "invalid argument"
msgstr "unzulässiges 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 "ungültiges tclObj -- evtl. aus einer anderen Sitzung gespeichert?"

#: tcltk.c:625
msgid "argument list is too long in tcltk internal function 'callback_closure'"
msgstr ""
"Argumentliste ist für interne tcltk Funktion 'callback_closure' zu lang"

#: tcltk.c:658
msgid "argument is not of correct type"
msgstr "Argument hat nicht den korrekten Typ"

#: tcltk.c:709
msgid "no DISPLAY variable so Tk is not available"
msgstr "keine DISPLAY Variable, Tk deshalb nicht verfügbar"

#: tcltk_unix.c:94
msgid "Tcl is not loaded"
msgstr "Tcl ist nicht geladen"

#: tcltk_unix.c:98
msgid "Tcl is not last loaded handler"
msgstr "Tcl ist nicht der letzte geladene Handler"

#~ msgid "Tcl already loaded"
#~ msgstr "Tcl ist bereits geladen"
