# 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: 2018-03-30 07:34-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:181
#, c-format
msgid "unable to terminate child process: %s"
msgstr "kann Kindprozess nicht beenden: %s"

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

#: fork.c:287 fork.c:556
msgid "memory allocation error"
msgstr "Speicherallozierungsfehler"

#: fork.c:337 fork.c:341 fork.c:345
#, c-format
msgid "invalid '%s' argument"
msgstr "unzulässiges '%s' Argument"

#: fork.c:401
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:490 fork.c:493
msgid "unable to create a pipe"
msgstr "kann keine pipe erzeugen"

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

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

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

#: fork.c:687
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:696 fork.c:704 fork.c:1080
msgid "write error, closing pipe to the master"
msgstr "Schreibfehler, schließe pipe zum Elternprozess"

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

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

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

#: fork.c:781
#, 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:848 fork.c:971
#, c-format
msgid "error '%s' in select"
msgstr "Fehler '%s' in select"

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

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

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

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

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

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