# Korean translation for R parallel package
# Copyright (C) 1995-2018 The R Core Team
#
# This file is distributed under the same license as the R parallel package.
# Maintained by Chel Hee Lee <gnustats@gmail.com>, 2008-2018.
#
msgid ""
msgstr ""
"Project-Id-Version: R-3.5.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-24 10:53-0700\n"
"PO-Revision-Date: 2018-04-09 12:09-0600\n"
"Last-Translator: Chel Hee Lee <gnustats@gmail.com>\n"
"Language-Team: \n"
"Language: ko\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: fork.c:215
#, c-format
msgid "unable to terminate child process: %s"
msgstr "자식 프로세스를 종료할 수 없습니다: %s"

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

#: fork.c:321 fork.c:602
msgid "memory allocation error"
msgstr "메모리 할당 에러입니다"

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

#: fork.c:437
msgid ""
"Error while shutting down parallel: unable to terminate some child "
"processes\n"
msgstr ""

#: fork.c:526 fork.c:529
msgid "unable to create a pipe"
msgstr "파이프(pipe)를 생성할 수 없습니다."

#: fork.c:551
#, c-format
msgid "unable to fork, possible reason: %s"
msgstr "포크할 수 없습니다. 아마도 다음과 같은 이유때문입니다: %s"

#: fork.c:743
msgid "only children can send data to the master process"
msgstr "오로지 자식 프로세스들만이 데이터를 마스터 프로세스에 보낼 수 있습니다"

#: fork.c:745
msgid "there is no pipe to the master process"
msgstr "마스터 프로세스에 연결된 파이프가 없습니다."

#: fork.c:747
msgid "content to send must be RAW, use serialize() if needed"
msgstr ""
"보내야할 컨텐츠는 반드시 RAW이어야 하며, 필요하다면 serialize()를 이용하세요"

#: fork.c:756 fork.c:764 fork.c:1174
msgid "write error, closing pipe to the master"
msgstr "쓰기 에러입니다.  마스터에 연결된 파이프를 닫습니다"

#: fork.c:774
msgid "only the master process can send data to a child process"
msgstr "오로지 마스터 프로세스만이 데이터를 자식프로세스에 보낼 수 있습니다"

#: fork.c:782
#, c-format
msgid "child %d does not exist"
msgstr "child %d는 존재하지 않습니다"

#: fork.c:788
msgid "write error"
msgstr "쓰기 에러가 발생했습니다."

#: fork.c:874
#, c-format
msgid "cannot wait for child %d as it does not exist"
msgstr ""

#: fork.c:933 fork.c:1053
#, c-format
msgid "error '%s' in select"
msgstr "select 에서 에러 '%s'가 발생했습니다"

#: fork.c:1143
msgid "'mckill' failed"
msgstr "'mckill' 실패했습니다"

#: fork.c:1156
msgid "'mcexit' can only be used in a child process"
msgstr "'mcexit'는 오로지 자식 프로세스에서만 사용됩니다"

#: fork.c:1188
msgid "'mcexit' failed"
msgstr "'mcexit' 실패했습니다"

#: fork.c:1217 fork.c:1226
msgid "invalid CPU affinity specification"
msgstr "유효하지 않은 CPU affinity 지정입니다"

#: fork.c:1237
msgid "requested CPU set is too large for this system"
msgstr "요청된 CPU 셋은 이 시스템에 너무 큽니다"

#: fork.c:1260
msgid "retrieving CPU affinity set failed"
msgstr "CPU affiniy 셋을 검색하는데 실패했습니다"
