# Translation of src/library/parallel/po/parallel.pot to German
# Copyright (C) 2011-2014 The R Foundation
# This file is distributed under the same license as the R package.
# Detlef Steuer <steuer@hsu-hh.de>, 2011-2014.
msgid ""
msgstr ""
"Project-Id-Version: R 3.4.4\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-24 10:53-0700\n"
"PO-Revision-Date: 2018-04-06 09:33+0200\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"

#: fork.c:215
#, c-format
msgid "unable to terminate child process: %s"
msgstr "kann Kindprozess nicht beenden: %s"

#: fork.c:242
#, c-format
msgid "unable to terminate child: %s"
msgstr "kann Kindprozess nicht beenden: %s"

#: fork.c:321 fork.c:602
msgid "memory allocation error"
msgstr "Speicherallozierungsfehler"

#: fork.c:373 fork.c:377 fork.c:381
#, c-format
msgid "invalid '%s' argument"
msgstr "unzulässiges '%s' Argument"

#: fork.c:437
msgid ""
"Error while shutting down parallel: unable to terminate some child "
"processes\n"
msgstr ""
"Fehler beim Beenden von parallel: nicht alle Kindprozesse konnten beendet\n"
"werden\n"

#: fork.c:526 fork.c:529
msgid "unable to create a pipe"
msgstr "kann keine pipe erzeugen"

#: fork.c:551
#, c-format
msgid "unable to fork, possible reason: %s"
msgstr "kann nicht forken, möglicher Grund: %s"

#: fork.c:743
msgid "only children can send data to the master process"
msgstr "nur Kindprozesse können Daten zum Elternprozess schicken"

#: fork.c:745
msgid "there is no pipe to the master process"
msgstr "es gibt keine pipe zum Elternprozess"

#: fork.c:747
msgid "content to send must be RAW, use serialize() if needed"
msgstr "zu schickender Inhalt muss RAW sein, nutze serialize() wenn nötig"

#: fork.c:756 fork.c:764 fork.c:1174
msgid "write error, closing pipe to the master"
msgstr "Schreibfehler, schließe pipe zum Elternprozess"

#: fork.c:774
msgid "only the master process can send data to a child process"
msgstr "nur der Elternprozess kann Daten zum Kindprozess schicken"

#: fork.c:782
#, c-format
msgid "child %d does not exist"
msgstr "Kindprozess %d existiert nicht"

#: fork.c:788
msgid "write error"
msgstr "Schreibfehler"

#: fork.c:874
#, c-format
msgid "cannot wait for child %d as it does not exist"
msgstr "kann nicht auf Kindprozess %d warten, da dieser nicht exisitiert"

#: fork.c:933 fork.c:1053
#, c-format
msgid "error '%s' in select"
msgstr "Fehler '%s' in select"

#: fork.c:1143
msgid "'mckill' failed"
msgstr "'mckill' fehlgeschlagen"

#: fork.c:1156
msgid "'mcexit' can only be used in a child process"
msgstr "'mcexit' kann nur von Kindprozessen genutzt werden"

#: fork.c:1188
msgid "'mcexit' failed"
msgstr "'mcexit' fehlgeschlagen"

#: fork.c:1217 fork.c:1226
msgid "invalid CPU affinity specification"
msgstr "unzulässige CPU-Affinitätsspezifikation "

#: fork.c:1237
msgid "requested CPU set is too large for this system"
msgstr "angeforderte CPU Menge ist für dieses System zu groß"

#: fork.c:1260
msgid "retrieving CPU affinity set failed"
msgstr "anfordern einer CPU-Affinitätsmenge fehlgeschlagen"
