# Translation of src/library/compiler/R-compiler.pot to German
# Copyright (C) 2011-2014 The R Foundation
# This file is distributed under the same license as the R package.
# Detlef Steuer <detlef.steuer@hsu-hh.de>, 2011-2014.
#
msgid ""
msgstr ""
"Project-Id-Version: R 3.5.0\n"
"Report-Msgid-Bugs-To: bugs.r-project.org\n"
"POT-Creation-Date: 2018-03-30 07:33\n"
"PO-Revision-Date: 2018-04-16 10:28+0200\n"
"Last-Translator: Detlef Steuer <steuer@hsuhh.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"

msgid "namespace found within local environments"
msgstr "Namensraum in lokalen Umgebungen gefunden"

msgid "not a proper evaluation environment"
msgstr "keine geeignete Evaluationsumgebung"

msgid "non-namespace found within namespace environments"
msgstr "ein Nicht-Namensraum innerhalb einer Namensraumumgebung gefunden"

msgid "namespace found within global environments"
msgstr "Namensraum in globalen Umgebungen gefunden"

msgid "bad assignment: %s"
msgstr "unzulässige Zuweisung: %s"

msgid "cannot constant fold literal promises"
msgstr "kann literale Promises nicht konstant falten"

msgid "cannot constant fold literal bytecode objects"
msgstr "kann literale Bytecode-Objekte nicht konstant falten"

msgid "no offset recorded for label \"%s\""
msgstr "kein Offset aufgezeichnet für Label \"%s\""

msgid "cannot compile byte code literals in code"
msgstr "kann Bytecode Literale im Code nicht kompilieren"

msgid "cannot compile promise literals in code"
msgstr "kann literale promises nicht in Programm kompilieren"

msgid "possible error in '%s': %s"
msgstr "möglicher Fehler in '%s': %s"

msgid "bad namespace import frame"
msgstr "unzulässiger Rahmen für Namensraumimport"

msgid "bad assignment 1"
msgstr "unzulässige Zuweisung 1"

msgid "bad assignment 2"
msgstr "unzulässige Zuweisung 2"

msgid "invalid function in complex assignment"
msgstr "unzulässige Funktion in komplexer Zuweisung"

msgid "missing arguments are not allowed"
msgstr "fehlende Argumente sind nicht zugelassen"

msgid "empty alternative in numeric switch"
msgstr "leere Alternative in numerischen switch"

msgid "no visible global function definition for '%s'"
msgstr "keine sichtbare globale Funktionsdefinition für '%s'"

msgid "no visible binding for global variable '%s'"
msgstr "keine sichtbare Bindung für globale Variable '%s'"

msgid "no visible binding for '<<-' assignment to '%s'"
msgstr "keine sichtbare Bindung für '<<-' Zuweisung zu '%s'"

msgid "wrong number of arguments to '%s'"
msgstr "falsche Anzahl von Argumenten für '%s'"

msgid "more than one default provided in switch() call"
msgstr "mehr als ein Default im Aufruf von switch()"

msgid "'switch' with no alternatives"
msgstr "'switch' ohne Alternativen"

msgid "Error: compilation failed -"
msgstr "Fehler: Kompilierung fehlgeschlagen -"

msgid "cannot compile a non-function"
msgstr "kann keine Nicht-Funktion kompilieren"

msgid "compiling '%s'"
msgstr "kompiliere '%s'"

msgid "saving to file \"%s\" ..."
msgstr "sichere in Datei \"%s\" ..."

msgid "done"
msgstr "fertig"

msgid "'env' must be a top level environment"
msgstr "'env' muss eine Toplevel-Umgebung sein"

msgid "input and output file names are the same"
msgstr "Eingabe- und Ausgabedateinamen sind identisch"

msgid "empty input file; no output written"
msgstr "leere Eingabedatei; keine Ausgabe geschrieben"

msgid "file '%s' does not exist"
msgstr "Datei '%s' existiert nicht"

msgid "'%s' is not a valid compiler option"
msgstr "'%s' ist keine zulässige Compiler-Option"

msgid "invalid environment variable value: %s==%s"
msgstr "unzulässiger Wert in Umgebungsvariable: %s==%s"

msgid "invalid compiler options: optimize(==%d)<2 and jitEnabled(==%d)>2"
msgstr "unzulässige Kompileroptionen: optimize(==%d)<2 und jitEnabled(==%d)>2"

msgid "function is not compiled"
msgstr "Funktion ist nicht kompiliert"

msgid "cannot compile this expression"
msgstr "kann diesen Ausdruck nicht kompilieren"

msgid "local assignment to syntactic function: "
msgid_plural "local assignments to syntactic functions: "
msgstr[0] "lokale Zuweisung an syntaktische Funktion:"
msgstr[1] "lokale Zuweisungen an syntaktische Funktionen:"

#~ msgid "%s is not a registered math1 function"
#~ msgstr "%S ist keine registrierte math1 Funktion"

#~ msgid "expected a single logical value for the S4 state flag"
#~ msgstr "erwartete einen einzelnen logischen Wert für das S4 Status-Flag"
