Imported Upstream version 4.4
[platform/upstream/make.git] / po / ru.po
index 9472683..73cbac4 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
 # Alexey Mahotkin <alexm@hsys.msk.ru>, 2001.
 # Denis Perchine <dyp@perchine.com>, 2001, 2002.
 # Pavel Maryanov <acid_jack@ukr.net>, 2009.
-# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010, 2013, 2014, 2016.
+# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010, 2013, 2014, 2016, 2019, 2020.
 msgid ""
 msgstr ""
-"Project-Id-Version: make 4.1.90\n"
+"Project-Id-Version: make 4.2.93\n"
 "Report-Msgid-Bugs-To: bug-make@gnu.org\n"
-"POT-Creation-Date: 2016-05-22 09:27-0400\n"
-"PO-Revision-Date: 2016-04-25 19:04+0300\n"
+"POT-Creation-Date: 2022-10-31 02:23-0400\n"
+"PO-Revision-Date: 2020-01-03 22:09+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
 "Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.5\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Lokalize 2.0\n"
 "Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
-#: ar.c:46
+#: src/ar.c:47
 #, c-format
 msgid "attempt to use unsupported feature: '%s'"
 msgstr "попытка использования неподдерживаемого средства: «%s»"
 
-#: ar.c:123
+#: src/ar.c:127
+#, c-format
 msgid "touch archive member is not available on VMS"
 msgstr "обновление времени изменения члена архива невозможно в системе VMS"
 
-#: ar.c:147
+#: src/ar.c:151
 #, c-format
 msgid "touch: Archive '%s' does not exist"
 msgstr "обновление времени изменения: Архив «%s» не существует"
 
-#: ar.c:150
+#: src/ar.c:154
 #, c-format
 msgid "touch: '%s' is not a valid archive"
 msgstr "обновление времени изменения: Неверный архив: «%s»"
 
-#: ar.c:157
+#: src/ar.c:161
 #, c-format
 msgid "touch: Member '%s' does not exist in '%s'"
 msgstr "обновление времени изменения: Элемент «%s» не содержится в «%s»"
 
-#: ar.c:164
+#: src/ar.c:168
 #, c-format
 msgid "touch: Bad return code from ar_member_touch on '%s'"
 msgstr ""
 "обновление времени изменения: Функция ar_member_touch вернула\n"
 "ошибочное значение для «%s»"
 
-#: arscan.c:130
+#: src/arscan.c:130
 #, c-format
 msgid "lbr$set_module() failed to extract module info, status = %d"
 msgstr "lbr$set_module() не смогла извлечь информацию о модуле, статус = %d"
 
-#: arscan.c:236
+#: src/arscan.c:236
 #, c-format
 msgid "lbr$ini_control() failed with status = %d"
 msgstr "lbr$init_control() вернула код ошибки %d"
 
-#: arscan.c:261
+#: src/arscan.c:261
 #, c-format
 msgid "unable to open library '%s' to lookup member status %d"
 msgstr ""
 "невозможно открыть библиотеку «%s» для определения состояния элемента %d"
 
-#: arscan.c:965
+#: src/arscan.c:402 src/arscan.c:406
+#, c-format
+msgid "Invalid %s for archive %s member %s"
+msgstr ""
+
+#: src/arscan.c:995
 #, c-format
 msgid "Member '%s'%s: %ld bytes at %ld (%ld).\n"
 msgstr "Элемент «%s»%s: %ld байт по адресу %ld (%ld).\n"
 
-#: arscan.c:966
+#: src/arscan.c:996
 msgid " (name might be truncated)"
 msgstr " (имя может быть усечено)"
 
-#: arscan.c:968
+#: src/arscan.c:999
 #, c-format
 msgid "  Date %s"
 msgstr "  Дата %s"
 
-#: arscan.c:969
+#: src/arscan.c:1000
 #, c-format
 msgid "  uid = %d, gid = %d, mode = 0%o.\n"
 msgstr "  uid = %d, gid = %d, mode = 0%o.\n"
 
-#: commands.c:402
-#, c-format
-msgid "Recipe has too many lines (%ud)"
+#: src/commands.c:379
+#, fuzzy, c-format
+msgid "Recipe has too many lines (limit %hu)"
 msgstr "В способе слишком много строк (%ud)"
 
-#: commands.c:503
+#: src/commands.c:501
 msgid "*** Break.\n"
 msgstr "*** Останов.\n"
 
-#: commands.c:627
+#: src/commands.c:629
 #, c-format
 msgid "*** [%s] Archive member '%s' may be bogus; not deleted"
 msgstr "*** [%s] Элемент архива «%s», кажется, недействителен; не удалён"
 
-#: commands.c:631
+#: src/commands.c:633
 #, c-format
 msgid "*** Archive member '%s' may be bogus; not deleted"
 msgstr "*** Элемент архива «%s», кажется, недействителен; не удалён"
 
-#: commands.c:645
+#: src/commands.c:647
 #, c-format
 msgid "*** [%s] Deleting file '%s'"
 msgstr "*** [%s] Удаляется файл «%s»"
 
-#: commands.c:647
+#: src/commands.c:649
 #, c-format
 msgid "*** Deleting file '%s'"
 msgstr "*** Удаляется файл «%s»"
 
-#: commands.c:683
+#: src/commands.c:685
 msgid "#  recipe to execute"
 msgstr "#  способ, который следует применить"
 
-#: commands.c:686
+#: src/commands.c:688
 msgid " (built-in):"
 msgstr " (встроенные):"
 
-#: commands.c:688
+#: src/commands.c:690
 #, c-format
 msgid " (from '%s', line %lu):\n"
 msgstr "  (из «%s», строка %lu):\n"
 
-#: dir.c:1069
+#: src/dir.c:1107
 msgid ""
 "\n"
 "# Directories\n"
@@ -139,222 +146,254 @@ msgstr ""
 "\n"
 "# Каталоги\n"
 
-#: dir.c:1081
+#: src/dir.c:1119
 #, c-format
 msgid "# %s: could not be stat'd.\n"
 msgstr "# %s: невозможно получить сведения вызовом stat.\n"
 
-#: dir.c:1085
+#: src/dir.c:1122
 #, fuzzy, c-format
-msgid "# %s (key %s, mtime %ull): could not be opened.\n"
-msgstr "# %s (ключ %s, время модификации %d): невозможно открыть.\n"
+msgid "# %s (key %s, mtime %s): could not be opened.\n"
+msgstr "# %s (ключ %s, mtime %l64u): невозможно открыть.\n"
 
-#: dir.c:1090
+#: src/dir.c:1126
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): could not be opened.\n"
 msgstr "# %s (устройство %d, inode [%d,%d,%d]): невозможно открыть.\n"
 
-#: dir.c:1095
+#: src/dir.c:1131
 #, c-format
 msgid "# %s (device %ld, inode %ld): could not be opened.\n"
 msgstr "# %s (устройство %ld, inode %ld): невозможно открыть.\n"
 
-#: dir.c:1122
+#: src/dir.c:1155
 #, fuzzy, c-format
-msgid "# %s (key %s, mtime %ull): "
-msgstr "# %s (ключ %s, время модификации %d): "
+msgid "# %s (key %s, mtime %s): "
+msgstr "# %s (ключ %s, mtime %l64u): "
 
-#: dir.c:1127
+#: src/dir.c:1159
 #, c-format
 msgid "# %s (device %d, inode [%d,%d,%d]): "
 msgstr "# %s (устройство %d, inode [%d,%d,%d]): "
 
-#: dir.c:1132
+#: src/dir.c:1164
 #, c-format
 msgid "# %s (device %ld, inode %ld): "
 msgstr "# %s (устройство %ld, inode %ld): "
 
-#: dir.c:1138 dir.c:1159
+#: src/dir.c:1168 src/dir.c:1189
 msgid "No"
 msgstr "Нет"
 
-#: dir.c:1141 dir.c:1162
+#: src/dir.c:1171 src/dir.c:1192
 msgid " files, "
 msgstr " файлов,"
 
-#: dir.c:1143 dir.c:1164
+#: src/dir.c:1173 src/dir.c:1194
 msgid "no"
 msgstr "нет"
 
-#: dir.c:1146
+#: src/dir.c:1176
 msgid " impossibilities"
 msgstr " недостижимых целей"
 
-#: dir.c:1150
+#: src/dir.c:1180
 msgid " so far."
 msgstr " на текущий момент."
 
-#: dir.c:1167
+#: src/dir.c:1197
 #, c-format
 msgid " impossibilities in %lu directories.\n"
 msgstr " недостижимых целей в %lu каталогах.\n"
 
-#: expand.c:125
+#: src/expand.c:113
+#, c-format
+msgid "%s:%lu: not recursively expanding %s to export to shell function\n"
+msgstr ""
+
+#: src/expand.c:149
 #, c-format
 msgid "Recursive variable '%s' references itself (eventually)"
 msgstr "Рекурсивная переменная «%s» ссылается сама на себя (в результате)"
 
-#: expand.c:271
+#: src/expand.c:295
+#, c-format
 msgid "unterminated variable reference"
 msgstr "незавершённая ссылка на переменную"
 
-#: file.c:278
+#: src/file.c:272
 #, c-format
 msgid "Recipe was specified for file '%s' at %s:%lu,"
 msgstr "Способ для файла «%s» был задан в %s:%lu,"
 
-#: file.c:283
+#: src/file.c:277
 #, c-format
 msgid "Recipe for file '%s' was found by implicit rule search,"
 msgstr "Способ для файла «%s» был найден из неявного правила,"
 
-#: file.c:287
+#: src/file.c:281
 #, c-format
 msgid "but '%s' is now considered the same file as '%s'."
 msgstr "но «%s» и «%s» теперь считаются одним и тем же файлом."
 
-#: file.c:290
+#: src/file.c:284
 #, c-format
 msgid "Recipe for '%s' will be ignored in favor of the one for '%s'."
 msgstr ""
 "Способ для «%s» игнорируется, вместо него будет использован способ для «%s»."
 
-#: file.c:310
+#: src/file.c:304
 #, c-format
 msgid "can't rename single-colon '%s' to double-colon '%s'"
 msgstr ""
 "невозможно переименовать «%s» с одним двоеточием в «%s» с двумя двоеточиями"
 
-#: file.c:316
+#: src/file.c:310
 #, c-format
 msgid "can't rename double-colon '%s' to single-colon '%s'"
 msgstr ""
 "невозможно переименовать «%s» с двумя двоеточиями в «%s» с одним двоеточием"
 
-#: file.c:408
+#: src/file.c:407
 #, c-format
 msgid "*** Deleting intermediate file '%s'"
 msgstr "*** Удаление промежуточного файла «%s»"
 
-#: file.c:412
+#: src/file.c:411
+#, c-format
 msgid "Removing intermediate files...\n"
 msgstr "Удаление промежуточных файлов...\n"
 
-#: file.c:818
+#: src/file.c:825
+#, c-format
+msgid "%s cannot be both .NOTINTERMEDIATE and .INTERMEDIATE"
+msgstr ""
+
+#: src/file.c:840
+#, c-format
+msgid "%s cannot be both .NOTINTERMEDIATE and .SECONDARY"
+msgstr ""
+
+#: src/file.c:850
+#, c-format
+msgid ".NOTINTERMEDIATE and .SECONDARY are mutually exclusive"
+msgstr ""
+
+#: src/file.c:942
 msgid "Current time"
 msgstr "Текущее время"
 
-#: file.c:822
+#: src/file.c:946
 #, c-format
 msgid "%s: Timestamp out of range; substituting %s"
 msgstr "%s: Временной штамп выходит за пределы диапазона; подставляем %s"
 
-#: file.c:962
+#: src/file.c:1089
 msgid "# Not a target:"
 msgstr "# Не является целью:"
 
-#: file.c:967
+#: src/file.c:1094
 msgid "#  Precious file (prerequisite of .PRECIOUS)."
 msgstr "#  Ценный файл (зависимость .PRECIOUS)."
 
-#: file.c:969
+#: src/file.c:1096
 msgid "#  Phony target (prerequisite of .PHONY)."
 msgstr "#  Псевдоцель (зависимость от .PHONY)."
 
-#: file.c:971
+#: src/file.c:1098
 msgid "#  Command line target."
 msgstr "#  Цель, вызываемая из командной строки."
 
-#: file.c:973
+#: src/file.c:1100
 msgid "#  A default, MAKEFILES, or -include/sinclude makefile."
 msgstr "#  По умолчанию, MAKEFILES, или -include/sinclude makefile."
 
-#: file.c:975
+#: src/file.c:1102
 msgid "#  Builtin rule"
 msgstr "# Встроенное правило"
 
-#: file.c:977
+#: src/file.c:1104
 msgid "#  Implicit rule search has been done."
 msgstr "#  Производился поиск неявных правил."
 
-#: file.c:978
+#: src/file.c:1105
 msgid "#  Implicit rule search has not been done."
 msgstr "#  Поиск неявных правил не производился."
 
-#: file.c:980
+#: src/file.c:1107
 #, c-format
 msgid "#  Implicit/static pattern stem: '%s'\n"
 msgstr "#  Основа неявного или статического образца: «%s»\n"
 
-#: file.c:982
+#: src/file.c:1109
 msgid "#  File is an intermediate prerequisite."
 msgstr "#  Файл — промежуточная зависимость."
 
-#: file.c:986
+#: src/file.c:1111
+#, fuzzy
+msgid "#  File is a prerequisite of .NOTINTERMEDIATE."
+msgstr "#  Ценный файл (зависимость .PRECIOUS)."
+
+#: src/file.c:1113
+#, fuzzy
+msgid "#  File is secondary (prerequisite of .SECONDARY)."
+msgstr "#  Псевдоцель (зависимость от .PHONY)."
+
+#: src/file.c:1117
 msgid "#  Also makes:"
 msgstr "#  Собирает также:"
 
-#: file.c:992
+#: src/file.c:1123
 msgid "#  Modification time never checked."
 msgstr "#  Время изменения ни разу не проверялось."
 
-#: file.c:994
+#: src/file.c:1125
 msgid "#  File does not exist."
 msgstr "#  Файл не существует."
 
-#: file.c:996
+#: src/file.c:1127
 msgid "#  File is very old."
 msgstr "#  Файл очень старый."
 
-#: file.c:1001
+#: src/file.c:1132
 #, c-format
 msgid "#  Last modified %s\n"
 msgstr "#  Время последнего изменения %s\n"
 
-#: file.c:1004
+#: src/file.c:1135
 msgid "#  File has been updated."
 msgstr "#  Файл был обновлён."
 
-#: file.c:1004
+#: src/file.c:1135
 msgid "#  File has not been updated."
 msgstr "#  Файл не был обновлён."
 
-#: file.c:1008
+#: src/file.c:1139
 msgid "#  Recipe currently running (THIS IS A BUG)."
 msgstr "#  В данный момент уже применяется некий способ (ЭТО ОШИБКА)."
 
-#: file.c:1011
+#: src/file.c:1142
 msgid "#  Dependencies recipe running (THIS IS A BUG)."
 msgstr ""
 "#  В данный момент уже применяется некий способ по зависимостям (ЭТО ОШИБКА)."
 
-#: file.c:1020
+#: src/file.c:1151
 msgid "#  Successfully updated."
 msgstr "#  Успешно обновлено."
 
-#: file.c:1024
+#: src/file.c:1155
 msgid "#  Needs to be updated (-q is set)."
 msgstr "#  Должно быть обновлено (задан ключ -q)."
 
-#: file.c:1027
+#: src/file.c:1158
 msgid "#  Failed to be updated."
 msgstr "#  Попытка обновления безуспешна."
 
-#: file.c:1032
+#: src/file.c:1163
 msgid "#  Invalid value in 'command_state' member!"
 msgstr "#  Неверное значение члена «command_state»!"
 
-#: file.c:1051
+#: src/file.c:1182
 msgid ""
 "\n"
 "# Files"
@@ -362,7 +401,7 @@ msgstr ""
 "\n"
 "# Файлы"
 
-#: file.c:1055
+#: src/file.c:1186
 msgid ""
 "\n"
 "# files hash-table stats:\n"
@@ -372,334 +411,426 @@ msgstr ""
 "# состояние файлов хеш-таблицы:\n"
 "# "
 
-#: file.c:1065
+#: src/file.c:1196
 #, c-format
 msgid "%s: Field '%s' not cached: %s"
 msgstr "%s: Поле «%s» не кешировано: %s"
 
-#: function.c:790
-msgid "non-numeric first argument to 'word' function"
+#: src/function.c:779 src/function.c:1284
+#, c-format
+msgid "%s: empty value"
+msgstr ""
+
+#: src/function.c:784
+#, c-format
+msgid "%s: '%s' out of range"
+msgstr ""
+
+#: src/function.c:800
+#, fuzzy
+msgid "invalid first argument to 'word' function"
 msgstr "нечисловой первый аргумент функции «word»"
 
-#: function.c:795
+#: src/function.c:803
+#, c-format
 msgid "first argument to 'word' function must be greater than 0"
 msgstr "первый аргумент функции «word» должен быть больше нуля"
 
-#: function.c:815
-msgid "non-numeric first argument to 'wordlist' function"
+#: src/function.c:821
+#, fuzzy
+msgid "invalid first argument to 'wordlist' function"
 msgstr "нечисловой первый аргумент функции «wordlist»"
 
-#: function.c:817
-msgid "non-numeric second argument to 'wordlist' function"
+#: src/function.c:822
+#, fuzzy
+msgid "invalid second argument to 'wordlist' function"
 msgstr "нечисловой второй аргумент функции «wordlist»"
 
-#: function.c:1525
-#, c-format
-msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%ld)\n"
+#: src/function.c:1328
+#, fuzzy
+msgid "non-numeric first argument to 'intcmp' function"
+msgstr "нечисловой первый аргумент функции «wordlist»"
+
+#: src/function.c:1329
+#, fuzzy
+msgid "non-numeric second argument to 'intcmp' function"
+msgstr "нечисловой второй аргумент функции «wordlist»"
+
+#: src/function.c:1684
+#, fuzzy, c-format
+msgid "windows32_openpipe: DuplicateHandle(In) failed (e=%lu)\n"
 msgstr "windows32_openpipe: DuplicateHandle(In) вернула код ошибки (e=%ld)\n"
 
-#: function.c:1549
-#, c-format
-msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%ld)\n"
+#: src/function.c:1708
+#, fuzzy, c-format
+msgid "windows32_openpipe: DuplicateHandle(Err) failed (e=%lu)\n"
 msgstr "windows32_openpipe: DuplicateHandle(Err) вернула код ошибки (e=%ld)\n"
 
-#: function.c:1556
-#, c-format
-msgid "CreatePipe() failed (e=%ld)\n"
+#: src/function.c:1715
+#, fuzzy, c-format
+msgid "CreatePipe() failed (e=%lu)\n"
 msgstr "CreatePipe() вернула код ошибки (e=%ld)\n"
 
-#: function.c:1564
+#: src/function.c:1723
+#, c-format
 msgid "windows32_openpipe(): process_init_fd() failed\n"
 msgstr "windows32_openpipe(): process_init_fd() завершилась неудачно\n"
 
-#: function.c:1858
+#: src/function.c:1983
 #, c-format
 msgid "Cleaning up temporary batch file %s\n"
 msgstr "Очищаю временный пакетный файл %s\n"
 
-#: function.c:2215 function.c:2240
+#: src/function.c:2343 src/function.c:2373
+#, c-format
 msgid "file: missing filename"
 msgstr "файл: отсутствует имя файла"
 
-#: function.c:2219 function.c:2250
+#: src/function.c:2347 src/function.c:2383
 #, c-format
 msgid "open: %s: %s"
 msgstr "открытие: %s: %s"
 
-#: function.c:2227
+#: src/function.c:2360
 #, c-format
 msgid "write: %s: %s"
 msgstr "запись: %s: %s"
 
-#: function.c:2230 function.c:2267
+#: src/function.c:2363 src/function.c:2402
 #, c-format
 msgid "close: %s: %s"
 msgstr "закрытие: %s: %s"
 
-#: function.c:2243
+#: src/function.c:2376
+#, c-format
 msgid "file: too many arguments"
 msgstr "файл: слишком много аргументов"
 
-#: function.c:2262
+#: src/function.c:2397
 #, c-format
 msgid "read: %s: %s"
 msgstr "чтение: %s: %s"
 
-#: function.c:2275
+#: src/function.c:2409
 #, c-format
 msgid "file: invalid file operation: %s"
 msgstr "файл: некорректная операция с файлом: %s"
 
-#: function.c:2390
-#, c-format
-msgid "insufficient number of arguments (%d) to function '%s'"
+#: src/function.c:2527
+#, fuzzy, c-format
+msgid "insufficient number of arguments (%u) to function '%s'"
 msgstr "недостаточно аргументов (всего %d) функции «%s»"
 
-#: function.c:2402
+#: src/function.c:2539
 #, c-format
 msgid "unimplemented on this platform: function '%s'"
 msgstr "не реализовано на этой платформе: функция «%s»"
 
-#: function.c:2466
+#: src/function.c:2608
 #, c-format
 msgid "unterminated call to function '%s': missing '%c'"
 msgstr "незавершённый вызов функции «%s»: пропущено «%c»"
 
-#: function.c:2650
+#: src/function.c:2791
+#, c-format
 msgid "Empty function name"
 msgstr "Пустое имя функции"
 
-#: function.c:2652
+#: src/function.c:2793
 #, c-format
 msgid "Invalid function name: %s"
 msgstr "Некорректное имя функции: %s"
 
-#: function.c:2654
+#: src/function.c:2795
 #, c-format
 msgid "Function name too long: %s"
 msgstr "Слишком длинное имя функции: %s"
 
-#: function.c:2657
-#, fuzzy, c-format
+#: src/function.c:2798
+#, c-format
 msgid "Invalid minimum argument count (%u) for function %s"
-msgstr "Некорректное минимальное число аргументов (всего %d) функции %s"
+msgstr "Некорректное минимальное число аргументов (всего %u) функции %s"
 
-#: function.c:2660
-#, fuzzy, c-format
+#: src/function.c:2801
+#, c-format
 msgid "Invalid maximum argument count (%u) for function %s"
-msgstr "Некорректное максимальное число аргументов (всего %d) функции %s"
+msgstr "Некорректное максимальное число аргументов (всего %u) функции %s"
 
 # Сообщения getopt исключены, т.к. они относятся к уже
 # устаревшей версии этой библиотеки, и исчезнут в следующей версии make
-#: getopt.c:659
+#: src/getopt.c:659
 #, c-format
 msgid "%s: option '%s' is ambiguous\n"
 msgstr "%s: ключ «%s» не однозначен\n"
 
-#: getopt.c:683
+#: src/getopt.c:683
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: ключ «--%s» должен использоваться без аргумента\n"
 
-#: getopt.c:688
+#: src/getopt.c:688
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: ключ «%c%s» должен использоваться без аргумента\n"
 
-#: getopt.c:705 getopt.c:878
+#: src/getopt.c:705 src/getopt.c:878
 #, c-format
 msgid "%s: option '%s' requires an argument\n"
 msgstr "%s: ключу «%s» требуется аргумент\n"
 
-#: getopt.c:734
+#: src/getopt.c:734
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: неизвестный ключ «--%s»\n"
 
-#: getopt.c:738
+#: src/getopt.c:738
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: неизвестный ключ «%c%s»\n"
 
-#: getopt.c:764
+#: src/getopt.c:764
 #, c-format
 msgid "%s: illegal option -- %c\n"
 msgstr "%s: недопустимый ключ -- %c\n"
 
-#: getopt.c:767
+#: src/getopt.c:767
 #, c-format
 msgid "%s: invalid option -- %c\n"
 msgstr "%s: неверный ключ -- %c\n"
 
-#: getopt.c:797 getopt.c:927
+#: src/getopt.c:797 src/getopt.c:927
 #, c-format
 msgid "%s: option requires an argument -- %c\n"
 msgstr "%s: ключ требует аргумент -- %c\n"
 
-#: getopt.c:844
+#: src/getopt.c:844
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: ключ «-W %s» неоднозначен\n"
 
-#: getopt.c:862
+#: src/getopt.c:862
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: ключ «-W %s» должен использоваться без аргумента\n"
 
-#: guile.c:58
+#: src/guile.c:58
 #, c-format
 msgid "guile: Expanding '%s'\n"
 msgstr "guile: расширяется «%s»\n"
 
-#: guile.c:74
+#: src/guile.c:74
 #, c-format
 msgid "guile: Evaluating '%s'\n"
 msgstr "guile: вычисляется «%s»\n"
 
-#: hash.c:49
+#: src/hash.c:50
 #, c-format
 msgid "can't allocate %lu bytes for hash table: memory exhausted"
 msgstr "не удалось выделить %lu байт для хеш-таблицы: закончилась память"
 
-#: hash.c:280
+#: src/hash.c:280
 #, c-format
-msgid "Load=%ld/%ld=%.0f%%, "
-msgstr "Загружено=%ld/%ld=%.0f%%, "
+msgid "Load=%lu/%lu=%.0f%%, "
+msgstr "Загружено=%lu/%lu=%.0f%%, "
 
-#: hash.c:282
+#: src/hash.c:282
 #, c-format
-msgid "Rehash=%d, "
-msgstr "Переформулировано=%d, "
+msgid "Rehash=%u, "
+msgstr "Переформулировано=%u, "
 
-#: hash.c:283
+#: src/hash.c:283
 #, c-format
-msgid "Collisions=%ld/%ld=%.0f%%"
-msgstr "Противоречий=%ld/%ld=%.0f%%"
+msgid "Collisions=%lu/%lu=%.0f%%"
+msgstr "Противоречий=%lu/%lu=%.0f%%"
 
-#: implicit.c:38
+#: src/implicit.c:41
 #, c-format
 msgid "Looking for an implicit rule for '%s'.\n"
 msgstr "Поиск неявного правила для «%s».\n"
 
-#: implicit.c:54
+#: src/implicit.c:57
 #, c-format
 msgid "Looking for archive-member implicit rule for '%s'.\n"
 msgstr "Поиск неявного правила для элемента архива «%s».\n"
 
-#: implicit.c:311
-msgid "Avoiding implicit rule recursion.\n"
+#: src/implicit.c:61
+#, fuzzy, c-format
+msgid "No archive-member implicit rule found for '%s'.\n"
+msgstr "Поиск неявного правила для элемента архива «%s».\n"
+
+#: src/implicit.c:326
+#, fuzzy, c-format
+msgid "Avoiding implicit rule recursion for rule '%s'.\n"
 msgstr "Избежание рекурсивного вызова неявного правила.\n"
 
-#: implicit.c:486
+#: src/implicit.c:451
 #, c-format
-msgid "Stem too long: '%.*s'.\n"
-msgstr "Слишком длинный образец: «%.*s».\n"
+msgid "Trying harder.\n"
+msgstr ""
 
-#: implicit.c:491
-#, c-format
-msgid "Trying pattern rule with stem '%.*s'.\n"
+#: src/implicit.c:501
+#, fuzzy, c-format
+msgid "Trying pattern rule '%s' with stem '%.*s'.\n"
 msgstr "Попытка применения правила с образцом «%.*s».\n"
 
-#: implicit.c:697
+#: src/implicit.c:506
 #, c-format
-msgid "Rejecting impossible rule prerequisite '%s'.\n"
+msgid "Stem too long: '%s%.*s'.\n"
+msgstr "Слишком длинный образец: «%s%.*s».\n"
+
+#: src/implicit.c:768
+#, fuzzy, c-format
+msgid "Rejecting rule '%s' due to impossible rule prerequisite '%s'.\n"
 msgstr "Отвержение невозможной зависимости правила «%s».\n"
 
-#: implicit.c:698
-#, c-format
-msgid "Rejecting impossible implicit prerequisite '%s'.\n"
+#: src/implicit.c:770
+#, fuzzy, c-format
+msgid "Rejecting rule '%s' due to impossible implicit prerequisite '%s'.\n"
 msgstr "Отвержение невозможной неявной зависимости «%s».\n"
 
-#: implicit.c:711
+#: src/implicit.c:787
 #, c-format
 msgid "Trying rule prerequisite '%s'.\n"
 msgstr "Попытка применения правила зависимости «%s».\n"
 
-#: implicit.c:712
+#: src/implicit.c:788
 #, c-format
 msgid "Trying implicit prerequisite '%s'.\n"
 msgstr "Попытка применения неявной зависимости «%s».\n"
 
-#: implicit.c:751
+#: src/implicit.c:827
+#, fuzzy, c-format
+msgid "'%s' ought to exist.\n"
+msgstr "Файл «%s» не существует.\n"
+
+#: src/implicit.c:834
 #, c-format
-msgid "Found prerequisite '%s' as VPATH '%s'\n"
+msgid "Found '%s'.\n"
+msgstr ""
+
+#: src/implicit.c:842
+#, fuzzy, c-format
+msgid "Using compatibility rule '%s' due to '%s'.\n"
+msgstr "%s: обновление цели «%s» из-за: %s"
+
+#: src/implicit.c:856
+#, fuzzy, c-format
+msgid "Prerequisite '%s' of rule '%s' does not qualify as ought to exist.\n"
+msgstr "Зависимость «%s» цели «%s» не существует.\n"
+
+#: src/implicit.c:870
+#, fuzzy, c-format
+msgid "Found prerequisite '%s' as VPATH '%s'.\n"
 msgstr "Обнаружена зависимость «%s» в виде VPATH «%s»\n"
 
-#: implicit.c:765
+#: src/implicit.c:885
+#, fuzzy, c-format
+msgid "Looking for a rule with explicit file '%s'.\n"
+msgstr "Поиск правила с промежуточным файлом «%s».\n"
+
+#: src/implicit.c:886
 #, c-format
 msgid "Looking for a rule with intermediate file '%s'.\n"
 msgstr "Поиск правила с промежуточным файлом «%s».\n"
 
-#: job.c:363
-msgid "Cannot create a temporary file\n"
+#: src/implicit.c:927
+#, fuzzy, c-format
+msgid "Rejecting rule '%s' due to impossible prerequisite '%s'.\n"
+msgstr "Отвержение невозможной зависимости правила «%s».\n"
+
+#: src/implicit.c:931
+#, fuzzy, c-format
+msgid "Not found '%s'.\n"
+msgstr "Не найдено неявного правила для «%s».\n"
+
+#: src/implicit.c:1144
+#, fuzzy, c-format
+msgid "Found implicit rule '%s' for '%s'.\n"
+msgstr "Найдено неявное правило для «%s».\n"
+
+#: src/implicit.c:1151
+#, fuzzy, c-format
+msgid "Searching for a compatibility rule for '%s'.\n"
+msgstr "Поиск неявного правила для «%s».\n"
+
+#: src/implicit.c:1157
+#, c-format
+msgid "No implicit rule found for '%s'.\n"
+msgstr "Не найдено неявного правила для «%s».\n"
+
+#: src/job.c:380
+#, fuzzy
+msgid "Cannot create a temporary file"
 msgstr "Не удалось создать временный файл\n"
 
-#: job.c:485
+#: src/job.c:552
 msgid " (core dumped)"
 msgstr " (сделан дамп памяти)"
 
-#: job.c:490
+#: src/job.c:557
 msgid " (ignored)"
 msgstr " (игнорирование)"
 
-#: job.c:494 job.c:1828
+#: src/job.c:561 src/job.c:1900
 msgid "<builtin>"
 msgstr "<встроенное>"
 
-#: job.c:510
-#, c-format
-msgid "%s[%s: %s] Error %d%s"
+#: src/job.c:587
+#, fuzzy, c-format
+msgid "%s[%s: %s] Error %d%s%s"
 msgstr "%s[%s: %s] Ошибка %d%s"
 
-#: job.c:599
+#: src/job.c:677
+#, c-format
 msgid "*** Waiting for unfinished jobs...."
 msgstr "*** Ожидание завершения заданий…"
 
-#: job.c:629
+#: src/job.c:719
 #, c-format
 msgid "Live child %p (%s) PID %s %s\n"
 msgstr "Незавершённый потомок %p (%s) PID %s %s\n"
 
-#: job.c:631 job.c:833 job.c:952 job.c:1583
+#: src/job.c:721 src/job.c:916 src/job.c:1084 src/job.c:1652
+#, c-format
 msgid " (remote)"
 msgstr " (удалённый)"
 
-#: job.c:831
-#, c-format
-msgid "Reaping losing child %p PID %s %s\n"
-msgstr "Подбирается неудачно завершившийся  потомок %p PID %s %s\n"
-
-#: job.c:832
+#: src/job.c:914
 #, c-format
 msgid "Reaping winning child %p PID %s %s\n"
 msgstr "Подбирается удачно завершившийся потомок %p PID %s %s\n"
 
-#: job.c:839
+#: src/job.c:915
+#, c-format
+msgid "Reaping losing child %p PID %s %s\n"
+msgstr "Подбирается неудачно завершившийся  потомок %p PID %s %s\n"
+
+#: src/job.c:966
 #, c-format
 msgid "Cleaning up temp batch file %s\n"
 msgstr "Подчищаю временный пакетный файл %s\n"
 
-#: job.c:845
+#: src/job.c:972
 #, c-format
 msgid "Cleaning up temp batch file %s failed (%d)\n"
 msgstr "Очистка временного пакетного файла %s завершилась с ошибкой (%d)\n"
 
-#: job.c:951
+#: src/job.c:1083
 #, c-format
 msgid "Removing child %p PID %s%s from chain.\n"
 msgstr "Удаляется потомок %p PID %s%s из цепочки.\n"
 
-#: job.c:1006
+#: src/job.c:1146
 #, c-format
 msgid "Released token for child %p (%s).\n"
 msgstr "Освобождён токен для потомка %p (%s).\n"
 
-#: job.c:1508 job.c:2201
+#: src/job.c:1583 src/job.c:2497
 #, c-format
 msgid "process_easy() failed to launch process (e=%ld)\n"
 msgstr "process_easy() не смогла запустить процесс (e=%ld)\n"
 
-#: job.c:1512 job.c:2205
+#: src/job.c:1587 src/job.c:2501
 #, c-format
 msgid ""
 "\n"
@@ -708,93 +839,87 @@ msgstr ""
 "\n"
 "При неудачном запуске сосчитано %d аргументов\n"
 
-#: job.c:1581
+#: src/job.c:1650
 #, c-format
 msgid "Putting child %p (%s) PID %s%s on the chain.\n"
 msgstr "Помещение потомка %p (%s) PID %s%s в цепочку потомков.\n"
 
-#: job.c:1811
+#: src/job.c:1883
 #, c-format
 msgid "Obtained token for child %p (%s).\n"
 msgstr "Получен токен для потомка %p (%s).\n"
 
-#: job.c:1838
-#, c-format
-msgid "%s: target '%s' does not exist"
-msgstr "%s: цель «%s» не существует"
-
-#: job.c:1841
+#: src/job.c:1909
 #, c-format
 msgid "%s: update target '%s' due to: %s"
 msgstr "%s: обновление цели «%s» из-за: %s"
 
-#: job.c:1956
+#: src/job.c:1910
+#, fuzzy
+msgid "target does not exist"
+msgstr "%s: цель «%s» не существует"
+
+#: src/job.c:2104
+#, c-format
 msgid "cannot enforce load limits on this operating system"
 msgstr "эта операционная система не позволяет устанавливать пределы загрузки"
 
-#: job.c:1958
+#: src/job.c:2106
 msgid "cannot enforce load limit: "
 msgstr "невозможно установить пределы загрузки: "
 
-#: job.c:2048
-msgid "no more file handles: could not duplicate stdin\n"
+#: src/job.c:2195
+#, fuzzy, c-format
+msgid "no more file handles: could not duplicate stdin"
 msgstr "закончились файловые дескрипторы: не удалось сделать копию stdin\n"
 
-#: job.c:2060
-msgid "no more file handles: could not duplicate stdout\n"
+#: src/job.c:2207
+#, fuzzy, c-format
+msgid "no more file handles: could not duplicate stdout"
 msgstr "закончились файловые дескрипторы: не удалось сделать копию stdout\n"
 
-#: job.c:2074
-msgid "no more file handles: could not duplicate stderr\n"
+#: src/job.c:2221
+#, fuzzy, c-format
+msgid "no more file handles: could not duplicate stderr"
 msgstr "закончились файловые дескрипторы: не удалось сделать копию stderr\n"
 
-#: job.c:2089
-msgid "Could not restore stdin\n"
+#: src/job.c:2236
+#, fuzzy, c-format
+msgid "Could not restore stdin"
 msgstr "Не удалось восстановить stdin\n"
 
-#: job.c:2097
-msgid "Could not restore stdout\n"
+#: src/job.c:2244
+#, fuzzy, c-format
+msgid "Could not restore stdout"
 msgstr "Не удалось восстановить stdout\n"
 
-#: job.c:2105
-msgid "Could not restore stderr\n"
+#: src/job.c:2252
+#, fuzzy, c-format
+msgid "Could not restore stderr"
 msgstr "Не удалось восстановить stderr\n"
 
-#: job.c:2234
+#: src/job.c:2530
 #, c-format
 msgid "make reaped child pid %s, still waiting for pid %s\n"
 msgstr "make нашла завершившегося потомка pid %s, всё ещё ожидает pid %s\n"
 
-#: job.c:2275
+#: src/job.c:2630
 #, c-format
-msgid "%s: %s: Command not found\n"
-msgstr "%s: %s: Команда не найдена\n"
-
-#: job.c:2277
-#, c-format
-msgid "%s[%u]: %s: Command not found\n"
-msgstr "%s[%u]: %s: Команда не найдена\n"
-
-#: job.c:2337
-#, c-format
-msgid "%s: Shell program not found"
-msgstr "%s: Командный процессор не найден"
-
-#: job.c:2346
 msgid "spawnvpe: environment space might be exhausted"
 msgstr "spawnvpe: вероятно, закончилось место под окружение"
 
-#: job.c:2584
+#: src/job.c:2869
 #, c-format
 msgid "$SHELL changed (was '%s', now '%s')\n"
 msgstr "Переменная $SHELL изменилась (было «%s», теперь «%s»)\n"
 
-#: job.c:3022 job.c:3207
+#: src/job.c:3306 src/job.c:3510
 #, c-format
 msgid "Creating temporary batch file %s\n"
 msgstr "Создаётся временный пакетный файл %s\n"
 
-#: job.c:3030
+#: src/job.c:3314
+#, c-format
 msgid ""
 "Batch file contents:\n"
 "\t@echo off\n"
@@ -802,7 +927,7 @@ msgstr ""
 "Содержимое файла пакетных заданий:\n"
 "\t@echo off\n"
 
-#: job.c:3219
+#: src/job.c:3522
 #, c-format
 msgid ""
 "Batch file contents:%s\n"
@@ -811,59 +936,66 @@ msgstr ""
 "Содержимое файла пакетных заданий:%s\n"
 "\t%s\n"
 
-#: job.c:3327
+#: src/job.c:3630
 #, c-format
 msgid "%s (line %d) Bad shell context (!unixy && !batch_mode_shell)\n"
 msgstr ""
 "%s (строка %d) Плохой контекст командного процессора (!unixy && !"
 "batch_mode_shell)\n"
 
-#: job.h:43
-msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
-msgstr "-O[ТИП] (--output-sync[=ТИП]) не настроен в данной сборке."
-
-#: load.c:60
+#: src/load.c:60
 #, c-format
 msgid "Failed to open global symbol table: %s"
 msgstr "Не удалось открыть глобальную таблицу символов: %s"
 
-#: load.c:97
+#: src/load.c:93
+#, c-format
+msgid "Loaded shared object %s\n"
+msgstr ""
+
+#: src/load.c:99
 #, c-format
 msgid "Loaded object %s is not declared to be GPL compatible"
 msgstr "Загруженный объект %s не объявлено как совместимый с GPL"
 
-#: load.c:104
+#: src/load.c:106
 #, c-format
 msgid "Failed to load symbol %s from %s: %s"
 msgstr "Не удалось загрузить символ %s из %s: %s"
 
-#: load.c:149
+#: src/load.c:151
 #, c-format
 msgid "Empty symbol name for load: %s"
 msgstr "Пустое имя символа для загрузки: %s"
 
-#: load.c:204
+#: src/load.c:206
 #, c-format
 msgid "Loading symbol %s from %s\n"
 msgstr "Загружается символ %s из %s\n"
 
-#: load.c:256
-msgid "The 'load' operation is not supported on this platform."
+#: src/load.c:232
+#, c-format
+msgid "Unloading shared object %s\n"
+msgstr ""
+
+#: src/load.c:251
+#, fuzzy, c-format
+msgid "The 'load' operation is not supported on this platform"
 msgstr "Операция «load» не поддерживается на этой платформе."
 
-#: main.c:338
+#: src/main.c:317
 msgid "Options:\n"
 msgstr "Ключи:\n"
 
-#: main.c:339
+#: src/main.c:318
 msgid "  -b, -m                      Ignored for compatibility.\n"
 msgstr "  -b, -m                      Игнорируется для совместимости.\n"
 
-#: main.c:341
+#: src/main.c:320
 msgid "  -B, --always-make           Unconditionally make all targets.\n"
 msgstr "  -B, --always-make           Без условий отрабатывать все цели.\n"
 
-#: main.c:343
+#: src/main.c:322
 msgid ""
 "  -C DIRECTORY, --directory=DIRECTORY\n"
 "                              Change to DIRECTORY before doing anything.\n"
@@ -871,18 +1003,18 @@ msgstr ""
 "  -C КАТАЛОГ, --directory=КАТАЛОГ\n"
 "                              Перейти в КАТАЛОГ перед выполнением действий.\n"
 
-#: main.c:346
+#: src/main.c:325
 msgid "  -d                          Print lots of debugging information.\n"
 msgstr "  -d                          Выводить массу отладочных сообщений.\n"
 
-#: main.c:348
+#: src/main.c:327
 msgid ""
 "  --debug[=FLAGS]             Print various types of debugging information.\n"
 msgstr ""
 "  --debug[=ФЛАГИ]             Выводить различные типы отладочной "
 "информации.\n"
 
-#: main.c:350
+#: src/main.c:329
 msgid ""
 "  -e, --environment-overrides\n"
 "                              Environment variables override makefiles.\n"
@@ -891,13 +1023,13 @@ msgstr ""
 "                              Переменные окружения заменяют значения "
 "makefile.\n"
 
-#: main.c:353
+#: src/main.c:332
 msgid ""
-"  --eval=STRING               Evaluate STRING as a makefile statement.\n"
+"  -E STRING, --eval=STRING    Evaluate STRING as a makefile statement.\n"
 msgstr ""
-"  --eval=СТРОКА               Вычислить СТРОКУ как предложение makefile.\n"
+"  -E СТРОКА, --eval=СТРОКА    Вычислить СТРОКУ как предложение makefile.\n"
 
-#: main.c:355
+#: src/main.c:334
 msgid ""
 "  -f FILE, --file=FILE, --makefile=FILE\n"
 "                              Read FILE as a makefile.\n"
@@ -905,15 +1037,15 @@ msgstr ""
 "  -f ФАЙЛ, --file=ФАЙЛ, --makefile=ФАЙЛ\n"
 "                              Использовать ФАЙЛ в качестве makefile.\n"
 
-#: main.c:358
+#: src/main.c:337
 msgid "  -h, --help                  Print this message and exit.\n"
 msgstr "  -h, --help                  Показать эту справку и выйти.\n"
 
-#: main.c:360
+#: src/main.c:339
 msgid "  -i, --ignore-errors         Ignore errors from recipes.\n"
 msgstr "  -i, --ignore-errors         Игнорировать ошибки способов.\n"
 
-#: main.c:362
+#: src/main.c:341
 msgid ""
 "  -I DIRECTORY, --include-dir=DIRECTORY\n"
 "                              Search DIRECTORY for included makefiles.\n"
@@ -921,7 +1053,7 @@ msgstr ""
 "  -I КАТАЛОГ, --include-dir=КАТАЛОГ\n"
 "                              Искать включаемые make-файлы в КАТАЛОГЕ.\n"
 
-#: main.c:365
+#: src/main.c:344
 msgid ""
 "  -j [N], --jobs[=N]          Allow N jobs at once; infinite jobs with no "
 "arg.\n"
@@ -930,14 +1062,18 @@ msgstr ""
 "                              если N не указано, число заданий "
 "неограничено.\n"
 
-#: main.c:367
+#: src/main.c:346
+msgid "  --jobserver-style=STYLE     Select the style of jobserver to use.\n"
+msgstr ""
+
+#: src/main.c:348
 msgid ""
 "  -k, --keep-going            Keep going when some targets can't be made.\n"
 msgstr ""
 "  -k, --keep-going            Продолжать работу, даже если некоторые цели\n"
 "                              не могут быть достигнуты.\n"
 
-#: main.c:369
+#: src/main.c:350
 msgid ""
 "  -l [N], --load-average[=N], --max-load[=N]\n"
 "                              Don't start multiple jobs unless load is below "
@@ -946,7 +1082,7 @@ msgstr ""
 "  -l [N], --load-average[=N], --max-load[=N]         Не запускать\n"
 "                               несколько заданий, если загрузка больше N.\n"
 
-#: main.c:372
+#: src/main.c:353
 msgid ""
 "  -L, --check-symlink-times   Use the latest mtime between symlinks and "
 "target.\n"
@@ -954,7 +1090,7 @@ msgstr ""
 "  -L, --check-symlink-times   Использовать последнее mtime при выборе между\n"
 "                              символическими ссылками и целью.\n"
 
-#: main.c:374
+#: src/main.c:355
 msgid ""
 "  -n, --just-print, --dry-run, --recon\n"
 "                              Don't actually run any recipe; just print "
@@ -964,7 +1100,7 @@ msgstr ""
 "                              Не применять способ на самом деле; просто\n"
 "                              напечатать его.\n"
 
-#: main.c:377
+#: src/main.c:358
 msgid ""
 "  -o FILE, --old-file=FILE, --assume-old=FILE\n"
 "                              Consider FILE to be very old and don't remake "
@@ -974,7 +1110,7 @@ msgstr ""
 "                              Считать ФАЙЛ очень старым и не переделывать "
 "его.\n"
 
-#: main.c:380
+#: src/main.c:361
 msgid ""
 "  -O[TYPE], --output-sync[=TYPE]\n"
 "                              Synchronize output of parallel jobs by TYPE.\n"
@@ -983,12 +1119,12 @@ msgstr ""
 "                              Синхронизировать вывод параллельных\n"
 "                              заданий с типом ТИП.\n"
 
-#: main.c:383
+#: src/main.c:364
 msgid "  -p, --print-data-base       Print make's internal database.\n"
 msgstr ""
 "  -p, --print-data-base       Напечатать внутреннюю базу данных make.\n"
 
-#: main.c:385
+#: src/main.c:366
 msgid ""
 "  -q, --question              Run no recipe; exit status says if up to "
 "date.\n"
@@ -997,23 +1133,35 @@ msgstr ""
 "                              код завершения показывает, всё ли уже "
 "сделано.\n"
 
-#: main.c:387
+#: src/main.c:368
 msgid "  -r, --no-builtin-rules      Disable the built-in implicit rules.\n"
 msgstr ""
 "  -r, --no-builtin-rules      Не использовать встроенные неявные правила.\n"
 
 # Что такое "variable settings"?
-#: main.c:389
+#: src/main.c:370
 msgid "  -R, --no-builtin-variables  Disable the built-in variable settings.\n"
 msgstr ""
 "  -R, --no-builtin-variables   Выключить установку встроенных\n"
 "                              значений переменных.\n"
 
-#: main.c:391
+#: src/main.c:372
+msgid ""
+"  --shuffle[={SEED|random|reverse|none}]\n"
+"                              Perform shuffle of prerequisites and goals.\n"
+msgstr ""
+
+#: src/main.c:375
 msgid "  -s, --silent, --quiet       Don't echo recipes.\n"
 msgstr "  -s, --silent, --quiet        Не показывать сами способы.\n"
 
-#: main.c:393
+#: src/main.c:377
+msgid "  --no-silent                 Echo recipes (disable --silent mode).\n"
+msgstr ""
+"  --no-silent                 Показывать способы (отключает режим --"
+"silent).\n"
+
+#: src/main.c:379
 msgid ""
 "  -S, --no-keep-going, --stop\n"
 "                              Turns off -k.\n"
@@ -1021,26 +1169,26 @@ msgstr ""
 "  -S, --no-keep-going, --stop\n"
 "                              Отменить ключ -k.\n"
 
-#: main.c:396
+#: src/main.c:382
 msgid "  -t, --touch                 Touch targets instead of remaking them.\n"
 msgstr ""
 "  -t, --touch                 Установить время доступа целей в текущее,\n"
 "                              а не пересобирать их.\n"
 
-#: main.c:398
+#: src/main.c:384
 msgid "  --trace                     Print tracing information.\n"
 msgstr "  --trace                     Выводить трассировочную информацию.\n"
 
-#: main.c:400
+#: src/main.c:386
 msgid ""
 "  -v, --version               Print the version number of make and exit.\n"
 msgstr "  -v, --version               Показать информацию о версии и выйти.\n"
 
-#: main.c:402
+#: src/main.c:388
 msgid "  -w, --print-directory       Print the current directory.\n"
 msgstr "  -w, --print-directory       Напечатать текущий каталог.\n"
 
-#: main.c:404
+#: src/main.c:390
 msgid ""
 "  --no-print-directory        Turn off -w, even if it was turned on "
 "implicitly.\n"
@@ -1048,7 +1196,7 @@ msgstr ""
 "  --no-print-directory        Отменить ключ -w, даже если он был явно "
 "указан.\n"
 
-#: main.c:406
+#: src/main.c:392
 msgid ""
 "  -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE\n"
 "                              Consider FILE to be infinitely new.\n"
@@ -1056,7 +1204,7 @@ msgstr ""
 "  -W ФАЙЛ, --what-if=ФАЙЛ, --new-file=ФАЙЛ, --assume-new=ФАЙЛ\n"
 "                              Считать ФАЙЛ всегда новым.\n"
 
-#: main.c:409
+#: src/main.c:395
 msgid ""
 "  --warn-undefined-variables  Warn when an undefined variable is "
 "referenced.\n"
@@ -1064,26 +1212,60 @@ msgstr ""
 "  --warn-undefined-variables  Выдавать предупреждение при ссылке\n"
 "                              на неопределённую переменную.\n"
 
-#: main.c:683
+#: src/main.c:728 src/main.c:730
+#, c-format
+msgid "write error: stdout"
+msgstr "ошибка записи: stdout"
+
+#: src/main.c:742
+#, c-format
 msgid "empty string invalid as file name"
 msgstr "пустая строка недопустима в качестве имени файла"
 
-#: main.c:766
+#: src/main.c:834
 #, c-format
 msgid "unknown debug level specification '%s'"
 msgstr "задан неизвестный уровень отладки «%s»"
 
-#: main.c:806
+#: src/main.c:874
 #, c-format
 msgid "unknown output-sync type '%s'"
 msgstr "неизвестный тип output-sync «%s»"
 
-#: main.c:861
+#: src/main.c:898
+#, c-format
+msgid "Usage: %s [options] [target] ...\n"
+msgstr "Использование: %s [КЛЮЧ]... [ЦЕЛЬ]...\n"
+
+#: src/main.c:904
+#, c-format
+msgid ""
+"\n"
+"This program built for %s\n"
+msgstr ""
+"\n"
+"Эта программа собрана для %s\n"
+
+#: src/main.c:906
+#, c-format
+msgid ""
+"\n"
+"This program built for %s (%s)\n"
+msgstr ""
+"\n"
+"Эта программа собрана для %s (%s)\n"
+
+#: src/main.c:909
+#, c-format
+msgid "Report bugs to <bug-make@gnu.org>\n"
+msgstr "Сообщайте об ошибках по адресу <bug-make@gnu.org>\n"
+
+#: src/main.c:940
 #, c-format
 msgid "%s: Interrupt/Exception caught (code = 0x%lx, addr = 0x%p)\n"
 msgstr "%s: поймано прерывание или исключение (код = 0x%lx, адрес = 0x%p)\n"
 
-#: main.c:868
+#: src/main.c:947
 #, c-format
 msgid ""
 "\n"
@@ -1098,182 +1280,186 @@ msgstr ""
 "Флаги исключения = %lx\n"
 "Адрес исключения = 0x%p\n"
 
-#: main.c:876
+#: src/main.c:955
 #, c-format
 msgid "Access violation: write operation at address 0x%p\n"
 msgstr "Нарушение доступа: операция записи по адресу 0x%p\n"
 
-#: main.c:877
+#: src/main.c:956
 #, c-format
 msgid "Access violation: read operation at address 0x%p\n"
 msgstr "Нарушение доступа: операция чтения адреса 0x%p\n"
 
-#: main.c:953 main.c:968
+#: src/main.c:1028 src/main.c:1042
 #, c-format
 msgid "find_and_set_shell() setting default_shell = %s\n"
 msgstr "find_and_set_shell() устанавливает default_shell = %s\n"
 
-#: main.c:1021
+#: src/main.c:1098
 #, c-format
 msgid "find_and_set_shell() path search set default_shell = %s\n"
 msgstr "find_and_set_shell(): поиск в путях устанавливает default_shell = %s\n"
 
-#: main.c:1538
-#, c-format
-msgid "%s is suspending for 30 seconds..."
-msgstr "%s приостанавливается на 30 секунд..."
+#: src/main.c:1151
+msgid "unlink (temporary file): "
+msgstr "unlink (временный файл)"
 
-#: main.c:1540
+#: src/main.c:1833
 #, c-format
-msgid "done sleep(30). Continuing.\n"
-msgstr "sleep(30) завершён. Продолжаем.\n"
-
-#: main.c:1627
 msgid ""
 "warning: jobserver unavailable: using -j1.  Add '+' to parent make rule."
 msgstr ""
 "предупреждение: сервер заданий недоступен: используется -j1. Добавьте «+» к "
 "правилу в родительском make."
 
-#: main.c:1635
-msgid "warning: -jN forced in submake: disabling jobserver mode."
+#: src/main.c:1841
+#, c-format
+msgid "warning: -j%d forced in submake: resetting jobserver mode."
 msgstr ""
-"предупреждение: в суб-Makefile принудительно задан -jN; режим сервера "
-"заданий запрещён"
+"предупреждение: в суб-Makefile принудительно задан -j%d; сброс режима "
+"сервера заданий"
 
-#: main.c:1805
-msgid "Makefile from standard input specified twice."
+#: src/main.c:1930
+#, fuzzy, c-format
+msgid "Makefile from standard input specified twice"
 msgstr "Makefile из стандартного ввода указан дважды."
 
-#: main.c:1843 vmsjobs.c:1252
-msgid "fopen (temporary file)"
-msgstr "fopen (временный файл)"
-
-#: main.c:1849
-msgid "fwrite (temporary file)"
+#: src/main.c:1940
+#, fuzzy, c-format
+msgid "fwrite: temporary file %s: %s"
 msgstr "fwrite (временный файл)"
 
-#: main.c:2048
+#: src/main.c:2095
+#, c-format
+msgid "warning: -j%d forced in makefile: resetting jobserver mode."
+msgstr ""
+"предупреждение: в makefile принудительно задан -j%d; сброс режима сервера "
+"заданий"
+
+#: src/main.c:2191
+#, c-format
 msgid "Parallel jobs (-j) are not supported on this platform."
 msgstr "Параллельные задания (-j) не поддерживаются на этой платформе."
 
-#: main.c:2049
+#: src/main.c:2192
+#, c-format
 msgid "Resetting to single job (-j1) mode."
 msgstr "Возвращается режим одиночного задания (-j1)."
 
-#: main.c:2088
+#: src/main.c:2248
+#, c-format
+msgid "Using jobserver controller %s\n"
+msgstr ""
+
+#: src/main.c:2250
+#, fuzzy, c-format
+msgid "Using output-sync mutex %s\n"
+msgstr "неизвестный тип output-sync «%s»"
+
+#: src/main.c:2255
+#, c-format
 msgid "Symbolic links not supported: disabling -L."
 msgstr "Символические ссылки не поддерживаются: отменяется ключ -L."
 
-#: main.c:2170
+#: src/main.c:2327
+#, c-format
+msgid "Enabled shuffle mode: %s\n"
+msgstr ""
+
+#: src/main.c:2339
+#, c-format
 msgid "Updating makefiles....\n"
 msgstr "Обновление make-файлов....\n"
 
-#: main.c:2195
+#: src/main.c:2397
 #, c-format
 msgid "Makefile '%s' might loop; not remaking it.\n"
 msgstr "Make-файл «%s», возможно, зациклен, он не будет пересобираться.\n"
 
-#: main.c:2283
+#: src/main.c:2443 src/main.c:2499 src/output.c:519
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/main.c:2476 src/read.c:970
+#, c-format
+msgid "%s: failed to load"
+msgstr "%s: не удалось загрузить"
+
+#: src/main.c:2528
 #, c-format
 msgid "Failed to remake makefile '%s'."
 msgstr "Попытка пересобрать make-файл «%s» завершилась неудачно."
 
-#: main.c:2303
+#: src/main.c:2548
 #, c-format
 msgid "Included makefile '%s' was not found."
 msgstr "Включаемый make-файл «%s» не найден."
 
-#: main.c:2308
+#: src/main.c:2552
 #, c-format
 msgid "Makefile '%s' was not found"
 msgstr "Make-файл «%s» не найден"
 
-#: main.c:2376
-msgid "Couldn't change back to original directory."
+#: src/main.c:2700
+#, fuzzy, c-format
+msgid "Couldn't change back to original directory"
 msgstr "Невозможно перейти в первоначальный каталог."
 
-#: main.c:2384
+#: src/main.c:2708
 #, c-format
 msgid "Re-executing[%u]:"
 msgstr "Повторное выполнение[%u]:"
 
-#: main.c:2491
-msgid "unlink (temporary file): "
-msgstr "unlink (временный файл)"
-
-#: main.c:2524
+#: src/main.c:2863
+#, c-format
 msgid ".DEFAULT_GOAL contains more than one target"
 msgstr ".DEFAULT_GOAL содержит более одной цели"
 
-#: main.c:2547
-msgid "No targets specified and no makefile found"
-msgstr "Не заданы цели и не найден make-файл"
-
-#: main.c:2549
+#: src/main.c:2887
+#, c-format
 msgid "No targets"
 msgstr "Нет целей"
 
-#: main.c:2554
-msgid "Updating goal targets....\n"
-msgstr "Обновление целей результата...\n"
-
-#: main.c:2578
-msgid "warning:  Clock skew detected.  Your build may be incomplete."
-msgstr "предупреждение: Неправильный ход часов.  Сборка может быть неполной."
-
-#: main.c:2772
+#: src/main.c:2889
 #, c-format
-msgid "Usage: %s [options] [target] ...\n"
-msgstr "Использование: %s [КЛЮЧ]... [ЦЕЛЬ]...\n"
-
-#: main.c:2778
-#, c-format
-msgid ""
-"\n"
-"This program built for %s\n"
-msgstr ""
-"\n"
-"Эта программа собрана для %s\n"
+msgid "No targets specified and no makefile found"
+msgstr "Не заданы цели и не найден make-файл"
 
-#: main.c:2780
+#: src/main.c:2898
 #, c-format
-msgid ""
-"\n"
-"This program built for %s (%s)\n"
-msgstr ""
-"\n"
-"Эта программа собрана для %s (%s)\n"
+msgid "Updating goal targets....\n"
+msgstr "Обновление целей результата...\n"
 
-#: main.c:2783
+#: src/main.c:2922
 #, c-format
-msgid "Report bugs to <bug-make@gnu.org>\n"
-msgstr "СообÑ\89айÑ\82е Ð¾Ð± Ð¾Ñ\88ибкаÑ\85 Ð¿Ð¾ Ð°Ð´Ñ\80еÑ\81Ñ\83 <bug-make@gnu.org>\n"
+msgid "warning:  Clock skew detected.  Your build may be incomplete."
+msgstr "пÑ\80едÑ\83пÑ\80еждение: Ð\9dепÑ\80авилÑ\8cнÑ\8bй Ñ\85од Ñ\87аÑ\81ов.  Ð¡Ð±Ð¾Ñ\80ка Ð¼Ð¾Ð¶ÐµÑ\82 Ð±Ñ\8bÑ\82Ñ\8c Ð½ÐµÐ¿Ð¾Ð»Ð½Ð¾Ð¹."
 
-#: main.c:2869
+#: src/main.c:3186
 #, c-format
 msgid "the '%s%s' option requires a non-empty string argument"
 msgstr "для ключа «%s%s» нужно указать аргументом непустую строку"
 
-#: main.c:2933
+#: src/main.c:3267
 #, c-format
 msgid "the '-%c' option requires a positive integer argument"
 msgstr "ключ «-%c» должен использоваться с целым положительным аргументом"
 
-#: main.c:3331
+#: src/main.c:3652
 #, c-format
 msgid "%sBuilt for %s\n"
 msgstr "%sЭта программа собрана для %s\n"
 
-#: main.c:3333
+#: src/main.c:3654
 #, c-format
 msgid "%sBuilt for %s (%s)\n"
 msgstr "%sЭта программа собрана для %s (%s)\n"
 
-#: main.c:3344
-#, c-format
+#: src/main.c:3665
+#, fuzzy, c-format
 msgid ""
-"%sLicense GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"%sLicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl."
 "html>\n"
 "%sThis is free software: you are free to change and redistribute it.\n"
 "%sThere is NO WARRANTY, to the extent permitted by law.\n"
@@ -1283,7 +1469,7 @@ msgstr ""
 "%sЭто свободное программное обеспечение: вы можете свободно изменять его и\n"
 "%sраспространять. НЕТ НИКАКИХ ГАРАНТИЙ вне пределов, допустимых законом.\n"
 
-#: main.c:3365
+#: src/main.c:3682
 #, c-format
 msgid ""
 "\n"
@@ -1292,7 +1478,7 @@ msgstr ""
 "\n"
 "# База данных Make, напечатана %s"
 
-#: main.c:3375
+#: src/main.c:3692
 #, c-format
 msgid ""
 "\n"
@@ -1301,346 +1487,410 @@ msgstr ""
 "\n"
 "# Печать базы данных Make завершена %s\n"
 
-#: misc.c:202
-#, c-format
-msgid "Unknown error %d"
-msgstr "Неизвестная ошибка %d"
+#: src/misc.c:602
+#, fuzzy, c-format
+msgid "%s value %s: %s"
+msgstr "%s%s: %s"
 
-#: misc.c:508
+#: src/misc.c:605
 #, c-format
-msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+msgid "%s value %s: not a directory"
 msgstr ""
-"%s: пользователь %lu (действительный %lu),\n"
-"группа %lu (действительная %lu)\n"
 
-#: misc.c:529
-msgid "Initialized access"
-msgstr "Доступ инициализации"
+#: src/misc.c:613
+#, fuzzy, c-format
+msgid "using default temporary directory '%s'"
+msgstr "Использование способа по умолчанию для «%s».\n"
+
+#: src/misc.c:698
+#, fuzzy, c-format
+msgid "create temporary file %s: %s"
+msgstr "Создаётся временный пакетный файл %s\n"
 
-#: misc.c:608
-msgid "User access"
-msgstr "Доступ пользователя"
+#: src/misc.c:708
+#, fuzzy, c-format
+msgid "unlink temporary file %s: %s"
+msgstr "unlink (временный файл)"
 
-#: misc.c:656
-msgid "Make access"
-msgstr "Доступ make"
+#: src/misc.c:733
+#, fuzzy, c-format
+msgid "fdopen: temporary file %s: %s"
+msgstr "fopen (временный файл)"
 
-#: misc.c:690
-msgid "Child access"
-msgstr "Доступ потомка"
+#: src/misc.c:747
+#, fuzzy, c-format
+msgid "fopen: temporary file %s: %s"
+msgstr "fopen (временный файл)"
 
-#: output.c:104
+#: src/output.c:95
 #, c-format
 msgid "%s: Entering an unknown directory\n"
 msgstr "%s: Вход в неизвестный каталог\n"
 
-#: output.c:106
+#: src/output.c:97
 #, c-format
 msgid "%s: Leaving an unknown directory\n"
 msgstr "%s: Выход из неизвестного каталога\n"
 
-#: output.c:109
+#: src/output.c:100
 #, c-format
 msgid "%s: Entering directory '%s'\n"
 msgstr "%s: вход в каталог «%s»\n"
 
-#: output.c:111
+#: src/output.c:102
 #, c-format
 msgid "%s: Leaving directory '%s'\n"
 msgstr "%s: выход из каталога «%s»\n"
 
-#: output.c:115
+#: src/output.c:106
 #, c-format
 msgid "%s[%u]: Entering an unknown directory\n"
 msgstr "%s[%u]: вход в неизвестный каталог\n"
 
-#: output.c:117
+#: src/output.c:108
 #, c-format
 msgid "%s[%u]: Leaving an unknown directory\n"
 msgstr "%s[%u]: выход из неизвестного каталога\n"
 
-#: output.c:120
+#: src/output.c:111
 #, c-format
 msgid "%s[%u]: Entering directory '%s'\n"
 msgstr "%s[%u]: вход в каталог «%s»\n"
 
-#: output.c:122
+#: src/output.c:113
 #, c-format
 msgid "%s[%u]: Leaving directory '%s'\n"
 msgstr "%s[%u]: выход из каталога «%s»\n"
 
-#: output.c:495 output.c:497
-msgid "write error: stdout"
-msgstr "ошибка записи: stdout"
+#: src/output.c:280
+#, c-format
+msgid "warning: Cannot acquire output lock, disabling output sync."
+msgstr ""
 
-#: output.c:677
+#: src/output.c:475
 msgid ".  Stop.\n"
 msgstr ".  Останов.\n"
 
-#: output.c:711
+#: src/output.c:510
 #, c-format
 msgid "%s%s: %s"
 msgstr "%s%s: %s"
 
-#: output.c:720
+#: src/posixos.c:170 src/posixos.c:175 src/posixos.c:233 src/posixos.c:238
 #, c-format
-msgid "%s: %s"
-msgstr "%s: %s"
+msgid "Cannot open jobserver %s: %s"
+msgstr ""
 
-#: posixos.c:69
+#: src/posixos.c:186 src/w32/w32os.c:219
+#, fuzzy, c-format
+msgid "Unknown jobserver auth style '%s'"
+msgstr "неизвестный тип output-sync «%s»"
+
+#: src/posixos.c:190
 msgid "creating jobs pipe"
 msgstr "создаётся канал заданий"
 
-#: posixos.c:72 posixos.c:227
+#: src/posixos.c:201 src/posixos.c:434
 msgid "duping jobs pipe"
 msgstr "делается копия канала заданий"
 
-#: posixos.c:78
+#: src/posixos.c:207
 msgid "init jobserver pipe"
 msgstr "инициализация канала сервера заданий"
 
-#: posixos.c:90
-#, c-format
-msgid "internal error: invalid --jobserver-auth string '%s'"
+#: src/posixos.c:261
+#, fuzzy, c-format
+msgid "invalid --jobserver-auth string '%s'"
 msgstr "внутренняя ошибка: неправильная строка --jobserver-auth «%s»"
 
-#: posixos.c:93
-#, c-format
-msgid "Jobserver client (fds %d,%d)\n"
-msgstr "Клиент сервера заданий (fds %d,%d)\n"
-
-#: posixos.c:109
-msgid "jobserver pipeline"
-msgstr "конвейер сервера заданий"
-
-#: posixos.c:154
+#: src/posixos.c:363
 msgid "write jobserver"
 msgstr "запись сервера заданий"
 
-#: posixos.c:268
+#: src/posixos.c:483
+#, c-format
+msgid "job server shut down"
+msgstr "сервер заданий выключен"
+
+#: src/posixos.c:486
 msgid "pselect jobs pipe"
 msgstr "pselect из канала заданий"
 
-#: posixos.c:279 posixos.c:391
+#: src/posixos.c:502 src/posixos.c:616
 msgid "read jobs pipe"
 msgstr "чтение канала заданий"
 
-#: read.c:178
+#: src/posixos.c:672
+#, fuzzy, c-format
+msgid "invalid --sync-mutex string '%s'"
+msgstr "внутренняя ошибка: неправильная строка --jobserver-auth «%s»"
+
+#: src/posixos.c:681
+#, fuzzy, c-format
+msgid "cannot open output sync mutex %s: %s"
+msgstr "неизвестный тип output-sync «%s»"
+
+#: src/posixos.c:855
+#, c-format
+msgid "Cannot open '%s' with O_TMPFILE: %s.\n"
+msgstr ""
+
+#: src/read.c:184
+#, c-format
 msgid "Reading makefiles...\n"
 msgstr "Чтение make-файлов...\n"
 
-#: read.c:329
+#: src/read.c:330
 #, c-format
 msgid "Reading makefile '%s'"
 msgstr "Чтение make-файла «%s»"
 
-#: read.c:331
+#: src/read.c:332
 #, c-format
 msgid " (no default goal)"
 msgstr " (нет цели по умолчанию)"
 
-#: read.c:333
+#: src/read.c:334
 #, c-format
 msgid " (search path)"
 msgstr " (путь поиска)"
 
-#: read.c:335
+#: src/read.c:336
 #, c-format
 msgid " (don't care)"
 msgstr " (игнорировать ошибки)"
 
-#: read.c:337
+#: src/read.c:338
 #, c-format
 msgid " (no ~ expansion)"
 msgstr " (не раскрывать символ `~') "
 
-#: read.c:651
+#: src/read.c:663
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile '%s'\n"
 msgstr "Пропуск UTF-8 BOM в make-файле «%s»\n"
 
-#: read.c:654
+#: src/read.c:666
 #, c-format
 msgid "Skipping UTF-8 BOM in makefile buffer\n"
 msgstr "Пропуск UTF-8 BOM в буфере make-файла\n"
 
-#: read.c:783
+#: src/read.c:795
+#, c-format
 msgid "invalid syntax in conditional"
 msgstr "неверный синтаксис в условном выражении"
 
-#: read.c:959
+#: src/read.c:1002
 #, c-format
-msgid "%s: failed to load"
-msgstr "%s: не удалось загрузить"
-
-#: read.c:985
 msgid "recipe commences before first target"
 msgstr "обнаружен способ до первого определения цели"
 
-#: read.c:1034
+#: src/read.c:1053
+#, c-format
 msgid "missing rule before recipe"
 msgstr "перед способом отсутствует правило"
 
-#: read.c:1124
+#: src/read.c:1154
+#, c-format
 msgid "missing separator (did you mean TAB instead of 8 spaces?)"
 msgstr "пропущен разделитель (возможно нужен TAB вместо восьми пробелов?)"
 
-#: read.c:1126
+#: src/read.c:1156
+#, c-format
 msgid "missing separator"
 msgstr "пропущен разделитель"
 
-#: read.c:1262
+#: src/read.c:1300
+#, c-format
 msgid "missing target pattern"
 msgstr "пропущен образец цели"
 
-#: read.c:1264
+#: src/read.c:1302
+#, c-format
 msgid "multiple target patterns"
 msgstr "несколько образцов цели"
 
-#: read.c:1268
+#: src/read.c:1306
 #, c-format
 msgid "target pattern contains no '%%'"
 msgstr "образец цели не содержит «%%»"
 
-#: read.c:1390
+#: src/read.c:1349
+#, c-format
 msgid "missing 'endif'"
 msgstr "отсутствует «endif»"
 
-#: read.c:1428 read.c:1473 variable.c:1576
+#: src/read.c:1388 src/read.c:1433 src/variable.c:1733
+#, c-format
 msgid "empty variable name"
 msgstr "пустое имя переменной"
 
-#: read.c:1463
+#: src/read.c:1423
+#, c-format
 msgid "extraneous text after 'define' directive"
 msgstr "излишний текст после директивы «define»"
 
-#: read.c:1488
+#: src/read.c:1448
+#, c-format
 msgid "missing 'endef', unterminated 'define'"
 msgstr "отсутствует «endif», незавершённая «define»"
 
-#: read.c:1516
+#: src/read.c:1476
+#, c-format
 msgid "extraneous text after 'endef' directive"
 msgstr "излишний текст после директивы «endef»"
 
-#: read.c:1588
+#: src/read.c:1548
 #, c-format
 msgid "extraneous text after '%s' directive"
 msgstr "Излишний текст после директивы «%s»"
 
-#: read.c:1589
+#: src/read.c:1549
 #, c-format
 msgid "extraneous '%s'"
 msgstr "излишняя «%s»"
 
-#: read.c:1617
+#: src/read.c:1577
+#, c-format
 msgid "only one 'else' per conditional"
 msgstr "в условном выражении возможна только одна «else»"
 
-#: read.c:1892
+#: src/read.c:1853
+#, c-format
 msgid "Malformed target-specific variable definition"
 msgstr "Неправильный формат задания переменной цели"
 
-#: read.c:1950
+#: src/read.c:1995
+#, c-format
+msgid ".WAIT should not have prerequisites"
+msgstr ""
+
+#: src/read.c:2001
+#, c-format
+msgid ".WAIT should not have commands"
+msgstr ""
+
+#: src/read.c:2039
+#, c-format
 msgid "prerequisites cannot be defined in recipes"
 msgstr "в способах не могут задаваться зависимости"
 
-#: read.c:2009
+#: src/read.c:2057
+#, c-format
+msgid "grouped targets must provide a recipe"
+msgstr "для групповых целей должен предоставляться способ"
+
+#: src/read.c:2100
+#, c-format
 msgid "mixed implicit and static pattern rules"
 msgstr "смешаны неявные правила и правила со статическими образцами"
 
-#: read.c:2032
+#: src/read.c:2123
+#, c-format
 msgid "mixed implicit and normal rules"
 msgstr "смешаны неявные и обычные правила"
 
-#: read.c:2085
+#: src/read.c:2155
 #, c-format
 msgid "target '%s' doesn't match the target pattern"
 msgstr "цель «%s» не соответствует образцу целей"
 
-#: read.c:2100 read.c:2146
+#: src/read.c:2170 src/read.c:2221
 #, c-format
 msgid "target file '%s' has both : and :: entries"
 msgstr "целевой файл «%s» имеет вхождения и с :, и с ::"
 
-#: read.c:2106
+#: src/read.c:2176
 #, c-format
 msgid "target '%s' given more than once in the same rule"
 msgstr "цель «%s» указана несколько раз в одном правиле"
 
-#: read.c:2116
+#: src/read.c:2186
 #, c-format
 msgid "warning: overriding recipe for target '%s'"
 msgstr "предупреждение: переопределение способа для цели «%s»"
 
-#: read.c:2119
+#: src/read.c:2189
 #, c-format
 msgid "warning: ignoring old recipe for target '%s'"
 msgstr "предупреждение: старый способ для цели «%s» игнорируются"
 
-#: read.c:2223
+#: src/read.c:2308
+#, c-format
 msgid "*** mixed implicit and normal rules: deprecated syntax"
 msgstr "*** смешаны неявные и обычные правила: устаревший синтаксис"
 
-#: read.c:2542
+#: src/read.c:2325
+#, c-format
+msgid "warning: overriding group membership for target '%s'"
+msgstr "предупреждение: переопределение членства группы для цели «%s»"
+
+#: src/read.c:2683
+#, c-format
 msgid "warning: NUL character seen; rest of line ignored"
 msgstr "предупреждение: встречен символ NUL; игнорируется до конца строки"
 
-#: remake.c:225
+#: src/remake.c:97
+#, fuzzy, c-format
+msgid "warning: pattern recipe did not update peer target '%s'."
+msgstr "предупреждение: переопределение способа для цели «%s»"
+
+#: src/remake.c:254
 #, c-format
 msgid "Nothing to be done for '%s'."
 msgstr "Цель «%s» не требует выполнения команд."
 
-#: remake.c:226
+#: src/remake.c:255
 #, c-format
 msgid "'%s' is up to date."
 msgstr "«%s» не требует обновления."
 
-#: remake.c:322
+#: src/remake.c:350
 #, c-format
 msgid "Pruning file '%s'.\n"
 msgstr "Обрезается файл «%s».\n"
 
-#: remake.c:405
+#: src/remake.c:416
 #, c-format
 msgid "%sNo rule to make target '%s', needed by '%s'%s"
 msgstr "%sНет правила для сборки цели «%s», требуемой для «%s»%s"
 
-#: remake.c:415
+#: src/remake.c:426
 #, c-format
 msgid "%sNo rule to make target '%s'%s"
 msgstr "%sНет правила для сборки цели «%s»%s"
 
-#: remake.c:441
+#: src/remake.c:452
 #, c-format
 msgid "Considering target file '%s'.\n"
 msgstr "Обработка целевого файла «%s».\n"
 
-#: remake.c:448
+#: src/remake.c:459
 #, c-format
 msgid "Recently tried and failed to update file '%s'.\n"
 msgstr "Предыдущая попытка обновить файл «%s» завершилась неудачно.\n"
 
-#: remake.c:460
+#: src/remake.c:471
 #, c-format
 msgid "File '%s' was considered already.\n"
 msgstr "Файл «%s» уже был обработан.\n"
 
-#: remake.c:470
+#: src/remake.c:481
 #, c-format
 msgid "Still updating file '%s'.\n"
 msgstr "Файл «%s» обновляется в данный момент.\n"
 
-#: remake.c:473
+#: src/remake.c:484
 #, c-format
 msgid "Finished updating file '%s'.\n"
 msgstr "Обновление файла «%s» завершено.\n"
 
-#: remake.c:502
+#: src/remake.c:513
 #, c-format
 msgid "File '%s' does not exist.\n"
 msgstr "Файл «%s» не существует.\n"
 
-#: remake.c:510
+#: src/remake.c:520
 #, c-format
 msgid ""
 "*** Warning: .LOW_RESOLUTION_TIME file '%s' has a high resolution time stamp"
@@ -1648,147 +1898,141 @@ msgstr ""
 "*** Предупреждение: у файла «%s» параметр LOW_RESOLUTION_TIME содержит метку "
 "времени с высокой точностью"
 
-#: remake.c:523 remake.c:1055
-#, c-format
-msgid "Found an implicit rule for '%s'.\n"
-msgstr "Найдено неявное правило для «%s».\n"
-
-#: remake.c:525 remake.c:1057
-#, c-format
-msgid "No implicit rule found for '%s'.\n"
-msgstr "Не найдено неявного правила для «%s».\n"
+#: src/remake.c:538
+#, fuzzy, c-format
+msgid "Grouped target peer '%s' of file '%s' does not exist.\n"
+msgstr "Зависимость «%s» цели «%s» не существует.\n"
 
-#: remake.c:531
+#: src/remake.c:558
 #, c-format
 msgid "Using default recipe for '%s'.\n"
 msgstr "Использование способа по умолчанию для «%s».\n"
 
-#: remake.c:565 remake.c:1104
+#: src/remake.c:603 src/remake.c:1165
 #, c-format
 msgid "Circular %s <- %s dependency dropped."
 msgstr "Циклическая зависимость %s <- %s пропущена."
 
-#: remake.c:690
+#: src/remake.c:737
 #, c-format
 msgid "Finished prerequisites of target file '%s'.\n"
 msgstr "Обновление целей, от которых зависит целевой файл «%s», завершено.\n"
 
-#: remake.c:696
+#: src/remake.c:743
 #, c-format
 msgid "The prerequisites of '%s' are being made.\n"
 msgstr "Цели, от которых зависит «%s», в настоящий момент собираются.\n"
 
-#: remake.c:710
+#: src/remake.c:757
 #, c-format
 msgid "Giving up on target file '%s'.\n"
 msgstr "Аварийный останов на целевом файле «%s».\n"
 
-#: remake.c:715
+#: src/remake.c:762
 #, c-format
 msgid "Target '%s' not remade because of errors."
 msgstr "Цель «%s» не была пересобрана из-за ошибок."
 
-#: remake.c:767
+#: src/remake.c:814
 #, c-format
 msgid "Prerequisite '%s' is order-only for target '%s'.\n"
 msgstr "Зависимость «%s» для цели «%s» зависит от порядка.\n"
 
-#: remake.c:772
+#: src/remake.c:819
 #, c-format
 msgid "Prerequisite '%s' of target '%s' does not exist.\n"
 msgstr "Зависимость «%s» цели «%s» не существует.\n"
 
-#: remake.c:777
+#: src/remake.c:824
 #, c-format
 msgid "Prerequisite '%s' is newer than target '%s'.\n"
 msgstr "Зависимость «%s» новее, чем цель «%s».\n"
 
-#: remake.c:780
+#: src/remake.c:827
 #, c-format
 msgid "Prerequisite '%s' is older than target '%s'.\n"
 msgstr "Зависимость «%s» старее, чем цель «%s».\n"
 
-#: remake.c:798
+#: src/remake.c:845
 #, c-format
 msgid "Target '%s' is double-colon and has no prerequisites.\n"
 msgstr "Цель «%s» объявлена с двумя двоеточиями и не имеет зависимостей.\n"
 
-#: remake.c:805
+#: src/remake.c:852
 #, c-format
 msgid "No recipe for '%s' and no prerequisites actually changed.\n"
 msgstr "Способ для «%s» не задан, и начальные условия не изменены.\n"
 
-#: remake.c:810
+#: src/remake.c:857
 #, c-format
 msgid "Making '%s' due to always-make flag.\n"
 msgstr "Пересборка «%s» из-за установленного флага always-make.\n"
 
-#: remake.c:818
+#: src/remake.c:865
 #, c-format
 msgid "No need to remake target '%s'"
 msgstr "Нет необходимости пересобирать цель «%s»"
 
-#: remake.c:820
+#: src/remake.c:867
 #, c-format
 msgid "; using VPATH name '%s'"
 msgstr "; используется VPATH-имя «%s»"
 
-#: remake.c:840
+#: src/remake.c:891
 #, c-format
 msgid "Must remake target '%s'.\n"
 msgstr "Необходимо пересобрать цель «%s».\n"
 
-#: remake.c:846
+#: src/remake.c:897
 #, c-format
 msgid "  Ignoring VPATH name '%s'.\n"
 msgstr "  Игнорируется VPATH-имя «%s».\n"
 
-#: remake.c:855
+#: src/remake.c:906
 #, c-format
 msgid "Recipe of '%s' is being run.\n"
 msgstr "В настоящее время применяется способ «%s».\n"
 
-#: remake.c:862
+#: src/remake.c:913
 #, c-format
 msgid "Failed to remake target file '%s'.\n"
 msgstr "Не удалось пересоздать файл цели «%s».\n"
 
-#: remake.c:865
+#: src/remake.c:916
 #, c-format
 msgid "Successfully remade target file '%s'.\n"
 msgstr "Целевой файл «%s» успешно пересоздан.\n"
 
-#: remake.c:868
+#: src/remake.c:919
 #, c-format
 msgid "Target file '%s' needs to be remade under -q.\n"
 msgstr "Целевой файл «%s» требует пересоздания с ключом -q.\n"
 
-#: remake.c:1063
+#: src/remake.c:1118
 #, c-format
 msgid "Using default commands for '%s'.\n"
 msgstr "Использование команд по умолчанию для «%s».\n"
 
-#: remake.c:1429
-#, c-format
-msgid "Warning: File '%s' has modification time in the future"
-msgstr "Предупреждение: время изменения файла «%s» находится в будущем"
-
-#: remake.c:1443
+#: src/remake.c:1499
 #, c-format
 msgid "Warning: File '%s' has modification time %s s in the future"
 msgstr "Предупреждение: время изменения файла «%s» находится в будущем (%s)"
 
-#: remake.c:1646
+#: src/remake.c:1747
 #, c-format
 msgid ".LIBPATTERNS element '%s' is not a pattern"
 msgstr "Элемент .LIBPATTERNS «%s» не является образцом"
 
-#: remote-cstms.c:122
+#: src/remote-cstms.c:118
 #, c-format
 msgid "Customs won't export: %s\n"
 msgstr "Не экспортируемые настройки: %s\n"
 
-#: rule.c:496
+#: src/rule.c:357
+msgid "warning: ignoring prerequisites on suffix rule definition"
+msgstr ""
+
+#: src/rule.c:592
 msgid ""
 "\n"
 "# Implicit Rules"
@@ -1796,7 +2040,7 @@ msgstr ""
 "\n"
 "# Неявные правила"
 
-#: rule.c:511
+#: src/rule.c:607
 msgid ""
 "\n"
 "# No implicit rules."
@@ -1804,181 +2048,182 @@ msgstr ""
 "\n"
 "# Неявных правил нет."
 
-#: rule.c:514
+#: src/rule.c:610
 #, c-format
 msgid ""
 "\n"
-"# %u implicit rules, %u"
+"# %u implicit rules, %u (%.1f%%) terminal."
 msgstr ""
 "\n"
-"# Неявных правил: %u, терминальных: %u"
+"# Неявных правил: %u, терминальных: %u (%.1f%%)"
 
-#: rule.c:523
-msgid " terminal."
-msgstr " терминал."
-
-#: rule.c:531
+#: src/rule.c:619
 #, c-format
 msgid "BUG: num_pattern_rules is wrong!  %u != %u"
 msgstr "ОШИБКА: неверное значение num_pattern_rules! %u != %u"
 
-#: signame.c:84
+#: src/shuffle.c:93
+#, c-format
+msgid "invalid shuffle mode: %s: '%s'"
+msgstr ""
+
+#: src/signame.c:84
 msgid "unknown signal"
 msgstr "неизвестный сигнал"
 
-#: signame.c:92
+#: src/signame.c:92
 msgid "Hangup"
 msgstr "Обрыв терминальной линии"
 
-#: signame.c:95
+#: src/signame.c:95
 msgid "Interrupt"
 msgstr "Прерывание"
 
-#: signame.c:98
+#: src/signame.c:98
 msgid "Quit"
 msgstr "Аварийное прерывание"
 
-#: signame.c:101
+#: src/signame.c:101
 msgid "Illegal Instruction"
 msgstr "Недопустимая инструкция"
 
-#: signame.c:104
+#: src/signame.c:104
 msgid "Trace/breakpoint trap"
 msgstr "Прерывание на контрольной точке"
 
-#: signame.c:109
+#: src/signame.c:109
 msgid "Aborted"
 msgstr "Прервано"
 
-#: signame.c:112
+#: src/signame.c:112
 msgid "IOT trap"
 msgstr "Ошибка IOT"
 
-#: signame.c:115
+#: src/signame.c:115
 msgid "EMT trap"
 msgstr "Ошибка эмуляции"
 
-#: signame.c:118
+#: src/signame.c:118
 msgid "Floating point exception"
 msgstr "Ошибка операции с плавающей точкой"
 
-#: signame.c:121
+#: src/signame.c:121
 msgid "Killed"
 msgstr "Уничтожение"
 
-#: signame.c:124
+#: src/signame.c:124
 msgid "Bus error"
 msgstr "Неверное обращение к памяти"
 
-#: signame.c:127
+#: src/signame.c:127
 msgid "Segmentation fault"
 msgstr "Нарушение прав доступа к памяти"
 
-#: signame.c:130
+#: src/signame.c:130
 msgid "Bad system call"
 msgstr "Неправильный системный вызов"
 
-#: signame.c:133
+#: src/signame.c:133
 msgid "Broken pipe"
 msgstr "Обрыв канала"
 
-#: signame.c:136
+#: src/signame.c:136
 msgid "Alarm clock"
 msgstr "Сигнал по таймеру"
 
-#: signame.c:139
+#: src/signame.c:139
 msgid "Terminated"
 msgstr "Завершение"
 
-#: signame.c:142
+#: src/signame.c:142
 msgid "User defined signal 1"
 msgstr "Определяемый пользователем сигнал 1"
 
-#: signame.c:145
+#: src/signame.c:145
 msgid "User defined signal 2"
 msgstr "Определяемый пользователем сигнал 2"
 
-#: signame.c:150 signame.c:153
+#: src/signame.c:150 src/signame.c:153
 msgid "Child exited"
 msgstr "Потомок завершил работу"
 
-#: signame.c:156
+#: src/signame.c:156
 msgid "Power failure"
 msgstr "Отказ питания"
 
-#: signame.c:159
+#: src/signame.c:159
 msgid "Stopped"
 msgstr "Останов"
 
-#: signame.c:162
+#: src/signame.c:162
 msgid "Stopped (tty input)"
 msgstr "Останов (ввод с терминала) "
 
-#: signame.c:165
+#: src/signame.c:165
 msgid "Stopped (tty output)"
 msgstr "Останов (вывод на терминал)"
 
-#: signame.c:168
+#: src/signame.c:168
 msgid "Stopped (signal)"
 msgstr "Останов (сигнал)"
 
-#: signame.c:171
+#: src/signame.c:171
 msgid "CPU time limit exceeded"
 msgstr "Превышен предел процессорного времени"
 
-#: signame.c:174
+#: src/signame.c:174
 msgid "File size limit exceeded"
 msgstr "Превышен предел размера файла"
 
-#: signame.c:177
+#: src/signame.c:177
 msgid "Virtual timer expired"
 msgstr "Виртуальное время истекло"
 
-#: signame.c:180
+#: src/signame.c:180
 msgid "Profiling timer expired"
 msgstr "Время профилирования истекло"
 
-#: signame.c:186
+#: src/signame.c:186
 msgid "Window changed"
 msgstr "Окно изменено"
 
-#: signame.c:189
+#: src/signame.c:189
 msgid "Continued"
 msgstr "Возобновление"
 
-#: signame.c:192
+#: src/signame.c:192
 msgid "Urgent I/O condition"
 msgstr "Условия экстренного ввода/вывода"
 
-#: signame.c:199 signame.c:208
+#: src/signame.c:199 src/signame.c:208
 msgid "I/O possible"
 msgstr "Возможен ввод/вывод"
 
-#: signame.c:202
+#: src/signame.c:202
 msgid "SIGWIND"
 msgstr "SIGWIND"
 
-#: signame.c:205
+#: src/signame.c:205
 msgid "SIGPHONE"
 msgstr "SIGPHONE"
 
-#: signame.c:211
+#: src/signame.c:211
 msgid "Resource lost"
 msgstr "Ресурс потерян"
 
-#: signame.c:214
+#: src/signame.c:214
 msgid "Danger signal"
 msgstr "Сигнал опасности"
 
-#: signame.c:217
+#: src/signame.c:217
 msgid "Information request"
 msgstr "Запрос информации"
 
-#: signame.c:220
+#: src/signame.c:220
 msgid "Floating point co-processor not available"
 msgstr "Сопроцессор с плавающей точкой недоступен"
 
-#: strcache.c:274
+#: src/strcache.c:274
 #, c-format
 msgid ""
 "\n"
@@ -1987,7 +2232,7 @@ msgstr ""
 "\n"
 "%s без буферов strcache\n"
 
-#: strcache.c:304
+#: src/strcache.c:304
 #, c-format
 msgid ""
 "\n"
@@ -1998,21 +2243,21 @@ msgstr ""
 "%s буферы strcache: %lu (%lu) / строк = %lu / хранилище = %lu Б / сред = %lu "
 "Б\n"
 
-#: strcache.c:308
+#: src/strcache.c:308
 #, c-format
 msgid ""
-"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %hu B\n"
+"%s current buf: size = %hu B / used = %hu B / count = %hu / avg = %u B\n"
 msgstr ""
 "%s текущий buf: размер = %hu Б / используется = %hu Б / кол-во = %hu / сред "
-"= %hu Б\n"
+"= %u Б\n"
 
-#: strcache.c:319
+#: src/strcache.c:319
 #, c-format
 msgid "%s other used: total = %lu B / count = %lu / avg = %lu B\n"
 msgstr ""
 "%s для другого используется: всего = %lu Б / кол-во = %lu / сред = %lu Б\n"
 
-#: strcache.c:322
+#: src/strcache.c:322
 #, c-format
 msgid ""
 "%s other free: total = %lu B / max = %lu B / min = %lu B / avg = %hu B\n"
@@ -2020,7 +2265,7 @@ msgstr ""
 "%s для другого свободно: всего = %lu Б / макс. = %lu Б / мин. = %lu Б / "
 "сред. = %hu Б\n"
 
-#: strcache.c:326
+#: src/strcache.c:326
 #, c-format
 msgid ""
 "\n"
@@ -2029,7 +2274,7 @@ msgstr ""
 "\n"
 "%s производительность strcache: поисков = %lu / найдено = %lu%%\n"
 
-#: strcache.c:328
+#: src/strcache.c:328
 msgid ""
 "# hash-table stats:\n"
 "# "
@@ -2037,44 +2282,44 @@ msgstr ""
 "# состояние хеш-таблицы:\n"
 "# "
 
-#: variable.c:1629
+#: src/variable.c:1786
 msgid "automatic"
 msgstr "автоматическая"
 
-#: variable.c:1632
+#: src/variable.c:1789
 msgid "default"
 msgstr "по умолчанию"
 
-#: variable.c:1635
+#: src/variable.c:1792
 msgid "environment"
 msgstr "определена в среде"
 
-#: variable.c:1638
+#: src/variable.c:1795
 msgid "makefile"
 msgstr "make-файл"
 
-#: variable.c:1641
+#: src/variable.c:1798
 msgid "environment under -e"
 msgstr "окружение с -e"
 
-#: variable.c:1644
+#: src/variable.c:1801
 msgid "command line"
 msgstr "определена в командной строке"
 
-#: variable.c:1647
+#: src/variable.c:1804
 msgid "'override' directive"
 msgstr "Директива «override»"
 
-#: variable.c:1658
+#: src/variable.c:1814
 #, c-format
 msgid " (from '%s', line %lu)"
 msgstr " (из «%s», строка %lu)"
 
-#: variable.c:1721
+#: src/variable.c:1877
 msgid "# variable set hash-table stats:\n"
 msgstr "# состояние переменных в хеш-таблице:\n"
 
-#: variable.c:1732
+#: src/variable.c:1888
 msgid ""
 "\n"
 "# Variables\n"
@@ -2082,7 +2327,7 @@ msgstr ""
 "\n"
 "# Переменные\n"
 
-#: variable.c:1736
+#: src/variable.c:1892
 msgid ""
 "\n"
 "# Pattern-specific Variable Values"
@@ -2090,7 +2335,7 @@ msgstr ""
 "\n"
 "# Значения переменных особенные для маски"
 
-#: variable.c:1750
+#: src/variable.c:1906
 msgid ""
 "\n"
 "# No pattern-specific variable values."
@@ -2098,7 +2343,7 @@ msgstr ""
 "\n"
 "# Нет значений переменных особенных для маски."
 
-#: variable.c:1752
+#: src/variable.c:1908
 #, c-format
 msgid ""
 "\n"
@@ -2107,49 +2352,49 @@ msgstr ""
 "\n"
 "# %u значений переменных особенных для маски"
 
-#: variable.h:224
+#: src/variable.h:237
 #, c-format
 msgid "warning: undefined variable '%.*s'"
 msgstr "предупреждение: неопределённая переменная «%.*s»"
 
-#: vmsfunctions.c:91
+#: src/vmsfunctions.c:91
 #, c-format
 msgid "sys$search() failed with %d\n"
 msgstr "sys$search() вернула код ошибки %d\n"
 
-#: vmsjobs.c:242
+#: src/vmsjobs.c:244
 #, c-format
 msgid "-warning, you may have to re-enable CTRL-Y handling from DCL.\n"
 msgstr ""
 "-предупреждение, возможно вам потребуется повторно разрешить\n"
 "обработку CTRL-Y из DCL.\n"
 
-#: vmsjobs.c:679
+#: src/vmsjobs.c:681
 #, c-format
 msgid "BUILTIN CD %s\n"
 msgstr "ВСТРОЕННЫЙ CD %s\n"
 
-#: vmsjobs.c:1228
+#: src/vmsjobs.c:1224
 #, c-format
 msgid "DCL: %s\n"
 msgstr "DCL: %s\n"
 
-#: vmsjobs.c:1288
+#: src/vmsjobs.c:1281
 #, c-format
 msgid "Append output to %s\n"
 msgstr "Стандартный вывод добавлен в %s\n"
 
-#: vmsjobs.c:1313
+#: src/vmsjobs.c:1306
 #, c-format
 msgid "Append %.*s and cleanup\n"
 msgstr "Добавить %.*s и очистить\n"
 
-#: vmsjobs.c:1326
+#: src/vmsjobs.c:1319
 #, c-format
 msgid "Executing %s instead\n"
 msgstr "Вместо заданного выполняется %s\n"
 
-#: vpath.c:603
+#: src/vpath.c:600
 msgid ""
 "\n"
 "# VPATH Search Paths\n"
@@ -2157,11 +2402,11 @@ msgstr ""
 "\n"
 "# Пути поиска VPATH\n"
 
-#: vpath.c:620
+#: src/vpath.c:617
 msgid "# No 'vpath' search paths."
 msgstr "# Не определён путь поиска «vpath»."
 
-#: vpath.c:622
+#: src/vpath.c:619
 #, c-format
 msgid ""
 "\n"
@@ -2170,7 +2415,7 @@ msgstr ""
 "\n"
 "# %u путей поиска по «vpath»\n"
 
-#: vpath.c:625
+#: src/vpath.c:622
 msgid ""
 "\n"
 "# No general ('VPATH' variable) search path."
@@ -2178,7 +2423,7 @@ msgstr ""
 "\n"
 "# Не определён общий (переменная «VPATH») путь поиска."
 
-#: vpath.c:631
+#: src/vpath.c:628
 msgid ""
 "\n"
 "# General ('VPATH' variable) search path:\n"
@@ -2188,17 +2433,17 @@ msgstr ""
 "# Общий (переменная «VPATH») путь поиска:\n"
 "# "
 
-#: w32/w32os.c:46
+#: src/w32/w32os.c:224
 #, c-format
 msgid "Jobserver slots limited to %d\n"
 msgstr "Количество слотов сервера заданий ограничено %d\n"
 
-#: w32/w32os.c:62
+#: src/w32/w32os.c:240
 #, c-format
 msgid "creating jobserver semaphore: (Error %ld: %s)"
 msgstr "создание семафора сервера заданий: (ошибка %ld: %s)"
 
-#: w32/w32os.c:81
+#: src/w32/w32os.c:259
 #, c-format
 msgid ""
 "internal error: unable to open jobserver semaphore '%s': (Error %ld: %s)"
@@ -2206,21 +2451,81 @@ msgstr ""
 "внутренняя ошибка: не удалось открыть семафор сервера заданий «%s»: (ошибка "
 "%ld: %s)"
 
-#: w32/w32os.c:84
+#: src/w32/w32os.c:262
 #, c-format
 msgid "Jobserver client (semaphore %s)\n"
 msgstr "Клиент сервера заданий (семафор %s)\n"
 
-#: w32/w32os.c:125
+#: src/w32/w32os.c:310
 #, c-format
 msgid "release jobserver semaphore: (Error %ld: %s)"
 msgstr "освобождение семафора сервера заданий: (ошибка %ld: %s)"
 
-#: w32/w32os.c:192
+#: src/w32/w32os.c:381
 #, c-format
 msgid "semaphore or child process wait: (Error %ld: %s)"
 msgstr "ожидание семафора или процесса-потомка: (ошибка %ld: %s)"
 
+#: src/w32/w32os.c:449
+#, fuzzy, c-format
+msgid "cannot parse output sync mutex %s: %s"
+msgstr "неизвестный тип output-sync «%s»"
+
+#: src/w32/w32os.c:452
+#, fuzzy, c-format
+msgid "invalid output sync mutex: %s"
+msgstr "Некорректное имя функции: %s"
+
+#~ msgid "%s: user %lu (real %lu), group %lu (real %lu)\n"
+#~ msgstr ""
+#~ "%s: пользователь %lu (действительный %lu),\n"
+#~ "группа %lu (действительная %lu)\n"
+
+#~ msgid "Initialized access"
+#~ msgstr "Доступ инициализации"
+
+#~ msgid "User access"
+#~ msgstr "Доступ пользователя"
+
+#~ msgid "Make access"
+#~ msgstr "Доступ make"
+
+#~ msgid "Child access"
+#~ msgstr "Доступ потомка"
+
+#~ msgid "-O[TYPE] (--output-sync[=TYPE]) is not configured for this build."
+#~ msgstr "-O[ТИП] (--output-sync[=ТИП]) не настроен в данной сборке."
+
+#~ msgid "Jobserver client (fds %d,%d)\n"
+#~ msgstr "Клиент сервера заданий (fds %d,%d)\n"
+
+#~ msgid "jobserver pipeline"
+#~ msgstr "конвейер сервера заданий"
+
+#~ msgid "%s: %s: Command not found\n"
+#~ msgstr "%s: %s: Команда не найдена\n"
+
+#~ msgid "%s[%u]: %s: Command not found\n"
+#~ msgstr "%s[%u]: %s: Команда не найдена\n"
+
+#~ msgid "%s: Shell program not found"
+#~ msgstr "%s: Командный процессор не найден"
+
+#~ msgid "%s is suspending for 30 seconds..."
+#~ msgstr "%s приостанавливается на 30 секунд..."
+
+#~ msgid "done sleep(30). Continuing.\n"
+#~ msgstr "sleep(30) завершён. Продолжаем.\n"
+
+#~ msgid "Unknown error %d"
+#~ msgstr "Неизвестная ошибка %d"
+
+#~ msgid "Warning: File '%s' has modification time in the future"
+#~ msgstr "Предупреждение: время изменения файла «%s» находится в будущем"
+
+#~ msgid " terminal."
+#~ msgstr " терминал."
+
 #~ msgid "%s: recipe for target '%s' failed"
 #~ msgstr "%s: ошибка выполнения рецепта для цели «%s»"