From 4023ab3f286107bd4bb281625fc42b108054ffd6 Mon Sep 17 00:00:00 2001
From: Alex Kaul Потоки остановлены из-за отсутствующих типов узлов. Потоки остановлены в безопасном режиме. Вы можете изменить свои потоки и развернуть изменения для перезапуска. Потоки остановлены, поскольку учетные данные не могут быть расшифрованы. Файл учетных данных потока зашифрован, но ключ шифрования проекта отсутствует или недействителен. Учетные данные не могут быть расшифрованы Файл учетных данных потока зашифрован, но ключ шифрования проекта отсутствует или недействителен. Файл учетных данных потока будет сброшен при следующем развертывании. Любые существующие учетные данные потока будут удалены. Файл потока проекта не найден. Проект не настроен с файлом потока. Файл пакета проекта не найден. В проекте отсутствует файл package.json. Проект пуст. Вы хотите создать набор файлов проекта по умолчанию? Проект '__project__' не найден. Автоматическое слияние изменений не удалось. Исправьте неразрешенные конфликты, и закоммитьте результаты. Используется неподдерживаемая версия Node.js Вы должны обновить Node.js до последней версии LTS релиза Не удалось загрузить '__module__' __error__ Импортированы узлы без действительного id потока Они были добавлены в новый поток под названием '__flowName__'. \"__file__\" уже существует. Вы хотите его заменить? Этот модуль не может быть установлен, поскольку он Конфликты с Не удалось загрузить каталог узлов. Проверьте консоль браузера для получения дополнительной информации Не удалось установить: __module__ __message__ Проверьте журнал для получения дополнительной информации Не удалось удалить: __module__ __message__ Проверьте журнал для получения дополнительной информации Не удалось обновить: __module__ __message__ Проверьте журнал для получения дополнительной информации Не удалось включить: __module__ __message__ Проверьте журнал для получения дополнительной информации Не удалось отключить: __module__ __message__ Проверьте журнал для получения дополнительной информации Установка '__module__' Перед установкой ознакомьтесь с документацией по узлу. Некоторые узлы имеют зависимости, которые не могут быть автоматически разрешены и могут потребовать перезапуска Node-RED. Удаление '__module__' После удаления узла из Node-RED он может продолжать использовать ресурсы, пока Node-RED не будет перезапущен. Обновление '__module__' Обновление узла потребует перезапуска Node-RED для завершения обновления. Это должно быть сделано вручную. Не удалось получить удаленные изменения; Ваши непроиндексированные локальные изменения будут перезаписаны. Закоммитьте Ваши изменения и попробуйте еще раз. Удаленный репозиторий содержит историю коммитов, не имеющих отношения к локальному. Вы уверены, что хотите получить изменения в Ваш локальный репозиторий? Похоже, что текущее выражение все еще ссылается на Когда поддержка JSONata была впервые добавлена в Node-RED, требовалось, чтобы выражение ссылалось на объект В этом больше нет необходимости, поскольку выражение будет исполняться непосредственно для сообщения. Чтобы получить доступ к payload, выражение должно быть просто Тип Буфер хранится в виде массива байтовых значений в формате JSON. Редактор попытается проанализировать введенное значение как массив JSON. Если это недопустимый JSON, он будет считаться строкой UTF-8 и преобразовываться в массив кодов отдельных символов. Например, значение
В противном случае вам придется вручную добавлять файлы в проект за пределами редактора.
включает тип узла, который уже был установлен__module__
Пожалуйста, обратитесь к документации, чтобы узнать как обновить этот узел."
+ },
+ "button": {
+ "review": "Подробнее об узле",
+ "install": "Установить",
+ "remove": "Удалить",
+ "update": "Обновить"
+ }
+ }
+ }
+ },
+ "sidebar": {
+ "info": {
+ "name": "Информация",
+ "tabName": "Имя",
+ "label": "сведения",
+ "node": "Узел",
+ "type": "Тип",
+ "group": "Группа",
+ "module": "Модуль",
+ "id": "ID",
+ "status": "Статус",
+ "enabled": "Включено",
+ "disabled": "Отключено",
+ "subflow": "Подпоток",
+ "instances": "Экземпляры",
+ "properties": "Свойства",
+ "info": "Информация",
+ "desc": "Описание",
+ "blank": "пусто",
+ "null": "null",
+ "showMore": "показать больше",
+ "showLess": "показать меньше",
+ "flow": "Поток",
+ "selection":"Выбор",
+ "nodes":"__count__ узел",
+ "nodes_plural_2":"__count__ узла",
+ "nodes_plural_5":"__count__ узлов",
+ "flowDesc": "Описание потока",
+ "subflowDesc": "Описание подпотока",
+ "nodeHelp": "Помощь по узлу",
+ "none":"Нет",
+ "arrayItems": "__count__ элемент",
+ "arrayItems_plural_2": "__count__ элемента",
+ "arrayItems_plural_5": "__count__ элементов",
+ "showTips":"Вы можете открыть советы из панели настроек",
+ "outline": "Структура",
+ "empty": "пусто",
+ "globalConfig": "Узлы глобальной конфигурации",
+ "triggerAction": "Запустить действие",
+ "find": "Найти в рабочей области",
+ "search": {
+ "configNodes": "Узлы конфигурации",
+ "unusedConfigNodes": "Неиспользуемые узлы конфигурации",
+ "invalidNodes": "Недействительные узлы",
+ "uknownNodes": "Неизвестные узлы",
+ "unusedSubflows": "Неиспользуемые подпотоки"
+ }
+ },
+ "help": {
+ "name": "Справка",
+ "label": "справка",
+ "search": "Поиск справки",
+ "nodeHelp": "Справка по узлам",
+ "showHelp": "Показать справку",
+ "showInOutline": "Показать в структуризаторе",
+ "showTopics": "Показать темы",
+ "noHelp": "Тема справки не выбрана"
+ },
+ "config": {
+ "name": "Узлы конфигураций",
+ "label": "конфигурация",
+ "global": "На всех потока",
+ "none": "нет",
+ "subflows": "подпотоки",
+ "flows": "потоки",
+ "filterAll": "все",
+ "showAllConfigNodes": "Показать все узлы конфигурации",
+ "filterUnused": "неиспользуемые",
+ "showAllUnusedConfigNodes": "Показать все неиспользуемые узлы конфигурации",
+ "filtered": "__count__ скрыт",
+ "filtered_plural_2": "__count__ скрыто",
+ "filtered_plural_5": "__count__ скрыто"
+ },
+ "context": {
+ "name":"Контекстные данные",
+ "label":"контекст",
+ "none": "ничего не выбрано",
+ "refresh": "обновите, чтобы загрузить",
+ "empty": "пусто",
+ "node": "Узел",
+ "flow": "Поток",
+ "global": "Глобальный",
+ "deleteConfirm": "Вы уверены, что хотите удалить этот элемент?",
+ "autoRefresh": "Обновить при изменении выбора",
+ "refrsh": "Обновить",
+ "delete": "Удалить"
+ },
+ "palette": {
+ "name": "Управление палитрой",
+ "label": "палитра"
+ },
+ "project": {
+ "label": "проект",
+ "name": "Проект",
+ "description": "Описание",
+ "dependencies": "Зависимости",
+ "settings": "Настройки",
+ "noSummaryAvailable": "Нет резюме",
+ "editDescription": "Изменить описание проекта",
+ "editDependencies": "Изменить зависимости проекта",
+ "noDescriptionAvailable": "Нет описания",
+ "editReadme": "Изменить README.md",
+ "showProjectSettings": "Показать настройки проекта",
+ "projectSettings": {
+ "title": "Настройки проекта",
+ "edit": "изменить",
+ "none": "Нет",
+ "install": "установить",
+ "removeFromProject": "удалить из проекта",
+ "addToProject": "добавить в проект",
+ "files": "Файлы",
+ "flow": "Поток",
+ "credentials": "Учетные данные",
+ "package":"Пакет",
+ "packageCreate":"Файл будет создан при сохранении изменений",
+ "fileNotExist":"Файл не существует",
+ "selectFile": "Выберите файл",
+ "invalidEncryptionKey": "Неверный ключ шифрования",
+ "encryptionEnabled": "Шифрование включено",
+ "encryptionDisabled": "Шифрование отключено",
+ "setTheEncryptionKey": "Установите ключ шифрования",
+ "resetTheEncryptionKey": "Сбросить ключ шифрования",
+ "changeTheEncryptionKey": "Изменить ключ шифрования",
+ "currentKey": "Текущий ключ",
+ "newKey": "Новый ключ",
+ "credentialsAlert": "Это удалит все существующие учетные данные",
+ "versionControl": "Управление версиями",
+ "branches": "Ветви",
+ "noBranches": "Нет ветвей",
+ "deleteConfirm": "Вы уверены, что хотите удалить локальную ветвь '__name__'? Это не может быть отменено.",
+ "unmergedConfirm": "Локальная ветвь '__name__' содержит неслитые изменения, которые будут потеряны. Вы уверены, что хотите ее удалить?",
+ "deleteUnmergedBranch": "Удалить неслитую ветвь",
+ "gitRemotes": "Git remotes",
+ "addRemote": "добавить удаленный",
+ "addRemote2": "Добавить удаленный",
+ "remoteName": "Имя удаленного",
+ "nameRule": "Должен содержать только A-Z 0-9 _ -",
+ "url": "URL",
+ "urlRule": "https://, ssh:// или file://",
+ "urlRule2": "Не включайте имя пользователя / пароль в URL-адрес",
+ "noRemotes": "Нет удаленных",
+ "deleteRemoteConfrim": "Вы уверены, что хотите удалить удаленный '__name__'?",
+ "deleteRemote": "Удалить удаленный"
+ },
+ "userSettings": {
+ "committerDetail": "Детали коммиттера",
+ "committerTip": "Оставьте пустым, чтобы использовать систему по умолчанию",
+ "userName": "Имя пользователя",
+ "email": "Email",
+ "workflow": "Рабочий процесс",
+ "workfowTip": "Выберите предпочтительный рабочий процесс git",
+ "workflowManual": "Ручной",
+ "workflowManualTip": "Все изменения должны быть вручную закоммичены на боковой панели 'История'",
+ "workflowAuto": "Автоматический",
+ "workflowAutoTip": "Изменения коммитятся автоматически при каждом развертывании",
+ "sshKeys": "SSH ключи",
+ "sshKeysTip": "Позволяет создавать безопасные соединения с удаленными git репозиториями.",
+ "add": "добавить ключ",
+ "addSshKey": "Добавить SSH ключ",
+ "addSshKeyTip": "Создать новую пару открытый/закрытый ключ",
+ "name": "Имя",
+ "nameRule": "Должно содержать только A-Z 0-9 _ -",
+ "passphrase": "Пароль",
+ "passphraseShort": "Пароль слишком короткий",
+ "optional": "Опционально",
+ "cancel": "Отмена",
+ "generate": "Сгенерировать ключ",
+ "noSshKeys": "Нет SSH ключей",
+ "copyPublicKey": "Скопировать открытый ключ в буфер обмена",
+ "delete": "Удалить ключ",
+ "gitConfig": "Настройки Git",
+ "deleteConfirm": "Вы уверены, что хотите удалить ключ SSH __name__? Это не может быть отменено."
+ },
+ "versionControl": {
+ "unstagedChanges": "Непроиндексированные изменения",
+ "stagedChanges": "Проиндексированные изменения",
+ "unstageChange": "Отменить проиндексированные изменения",
+ "stageChange": "Проиндексировать изменения",
+ "unstageAllChange": "Отменить все проиндексированные изменения",
+ "stageAllChange": "Проиндексировать все изменения",
+ "commitChanges": "Закоммитить изменения",
+ "resolveConflicts": "Разрешить конфликты",
+ "head": "HEAD",
+ "staged": "Проиндексировано",
+ "unstaged": "Непроиндексировано",
+ "local": "Локальный",
+ "remote": "Удаленный",
+ "revert": "Вы уверены, что хотите откатить изменения в '__file__'? Это не может быть отменено.",
+ "revertChanges": "Откатить изменения",
+ "localChanges": "Локальные изменения",
+ "none": "Нет",
+ "conflictResolve": "Все конфликты разрешены. Закоммитьте изменения, чтобы завершить слияние.",
+ "localFiles": "Локальные файлы",
+ "all": "все",
+ "unmergedChanges": "Неслитые изменения",
+ "abortMerge": "прервать слияние",
+ "commit": "закоммитить",
+ "changeToCommit": "Изменения для коммита",
+ "commitPlaceholder": "Введите сообщение для Вашего коммита",
+ "cancelCapital": "Отмена",
+ "commitCapital": "Коммит",
+ "commitHistory": "История коммитов",
+ "branch": "Ветвь:",
+ "moreCommits": " больше коммитов",
+ "changeLocalBranch": "Сменить локальную ветвь",
+ "createBranchPlaceholder": "Найти или создать ветвь",
+ "upstream": "upstream",
+ "localOverwrite": "У вас есть локальные изменения, которые будут перезаписаны при смене ветки. Вы должны сперва либо закоммитить, либо отменить эти изменения.",
+ "manageRemoteBranch": "Управление удаленной ветвью",
+ "unableToAccess": "Невозможно получить доступ к удаленному репозиторию",
+ "retry": "Повторить",
+ "setUpstreamBranch": "Установить как upstream-ветвь",
+ "createRemoteBranchPlaceholder": "Найти или создать удаленную ветвь",
+ "trackedUpstreamBranch": "Созданная ветвь будет установлена как отслеживаемая upstream-ветвь.",
+ "selectUpstreamBranch": "Ветвь будет создана. Выберите ниже, чтобы установить ее как отслеживаемую upstream-ветвь.",
+ "pushFailed": "Отправка изменений не удалась, т.к. на удаленном репозитории есть более свежие коммиты. Сначала примите изменения и сделайте слияние, затем отправьте снова.",
+ "push": "отправить",
+ "pull": "получить",
+ "unablePull": " Режим совместимости JSONata
msg
, поэтому будет выполняться в режиме совместимости. Обновите выражение, чтобы не использовать msg
, так как этот режим будет удален в будущем.msg
. Например, msg.payload
будет использоваться для доступа к свойству payload. payload
.Редактор буфера
Hello World
будет преобразовано в массив JSON:[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
У вас есть неразвернутые изменения, которые будут потеряны.
Вы хотите продолжить?
" + }, + "send-req": { + "auth-req": "Требуется аутентификация для хранилища", + "username": "Имя пользователя", + "password": "Пароль", + "passphrase": "Пароль", + "retry": "Повторить", + "update-failed": "Не удалось обновить аутентификацию", + "unhandled": "Необработанный ответ об ошибке", + "host-key-verify-failed": "Проверка ключа хоста не удалась.
Ключ хоста хранилища не может быть проверен. Пожалуйста, обновите файл known_hosts
и попробуйте снова."
+ },
+ "create-branch-list": {
+ "invalid": "Неверная ветвь",
+ "create": "Создать ветвь",
+ "current": "текущая"
+ },
+ "create-default-file-set": {
+ "no-active": "Невозможно создать набор файлов по умолчанию без активного проекта",
+ "no-empty": "Невозможно создать набор файлов по умолчанию для непустого проекта",
+ "git-error": "ошибка git"
+ },
+ "errors" : {
+ "no-username-email": "Ваш Git-клиент не настроен с именем пользователя / электронной почтой.",
+ "unexpected": "Произошла непредвиденная ошибка",
+ "code": "код"
+ }
+ },
+ "editor-tab": {
+ "properties": "Свойства",
+ "envProperties": "Переменные среды",
+ "description": "Описание",
+ "appearance": "Внешний вид",
+ "preview": "Предпросмотр редактора",
+ "defaultValue": "Значение по умолчанию"
+ },
+ "languages" : {
+ "de": "Немецкий",
+ "en-US": "Английский",
+ "ja": "Японский",
+ "ko": "Корейский",
+ "ru": "Русский",
+ "zh-CN": "Китайский (упрощенный)",
+ "zh-TW": "Китайский (традиционный)"
+ }
+}
diff --git a/packages/node_modules/@node-red/editor-client/locales/ru/infotips.json b/packages/node_modules/@node-red/editor-client/locales/ru/infotips.json
new file mode 100755
index 000000000..d65d88545
--- /dev/null
+++ b/packages/node_modules/@node-red/editor-client/locales/ru/infotips.json
@@ -0,0 +1,23 @@
+{
+ "info": {
+ "tip0" : "Вы можете удалить выбранные узлы или провода с {{core:delete-selection}}",
+ "tip1" : "Ищите узлы с {{core:search}}",
+ "tip2" : "{{core:toggle-sidebar}} показывает/скрывает эту боковою панель",
+ "tip3" : "Вы можете управлять палитрой узлов с помощью {{core:manage-palette}}",
+ "tip4" : "Узлы конфигурации потока перечисляются на боковой панели. Доступ к списку можно получить из меню или с помощью {{core:show-config-tab}}",
+ "tip5" : "Эти советы можно включить/выключить через настройки",
+ "tip6" : "Перемещайте выбранные узлы клавишами [влево] [вверх] [вниз] и [вправо]. Удерживайте [Shift], чтобы увеличить шаг",
+ "tip7" : "Перетаскивание узла на провод соединит его с обеих сторон",
+ "tip8" : "Экспортируйте выбранные узлы или текущую вкладку с {{core:show-export-dialog}}",
+ "tip9" : "Импортируйте поток, перетаскивая его JSON в редактор или с помощью {{core:show-import-dialog}}",
+ "tip10" : "Нажмите [Shift], [кликните] по порту узла и перетаскивайте подключенные провода на другой узел",
+ "tip11" : "Открывайте вкладку Информация с {{core:show-info-tab}} или вкладку Отладка с {{core:show-debug-tab}}",
+ "tip12" : "Нажмите [ctrl] и [кликните] в рабочей области, чтобы открыть диалог быстрого добавления",
+ "tip13" : "Нажмите [ctrl] и [кликните] по порту узла, чтобы начать быстрое подключение",
+ "tip14" : "Нажмите [Shift] и [кликните] по узлу, чтобы выбрать все соединенные узлы",
+ "tip15" : "Нажмите [ctrl] и [кликните] по узлу, чтобы добавить или убрать его из текущего выбора",
+ "tip16" : "Переключайте вкладки потока с помощью {{core:show-previous-tab}} и {{core:show-next-tab}}",
+ "tip17" : "Вы можете подтвердить изменения в редакторе узла с {{core:confirm-edit-tray}} или отменить их с {{core:cancel-edit-tray}}",
+ "tip18" : "Нажатие {{core:edit-selected-node}} откроет редактор первого узла в текущем выборе"
+ }
+}
diff --git a/packages/node_modules/@node-red/editor-client/locales/ru/jsonata.json b/packages/node_modules/@node-red/editor-client/locales/ru/jsonata.json
new file mode 100755
index 000000000..fd0ecf24c
--- /dev/null
+++ b/packages/node_modules/@node-red/editor-client/locales/ru/jsonata.json
@@ -0,0 +1,274 @@
+{
+ "$string": {
+ "args": "arg[, prettify]",
+ "desc": "Преобразует параметр `arg` в строку, используя следующие правила приведения:\n\n - Строки возвращаются как есть\n - Функции преобразуются в пустую строку\n - Числовая бесконечность и NaN выдают ошибку, поскольку они не могут быть представлены числом в JSON\n - Все остальные значения преобразуются в строку JSON с помощью функции `JSON.stringify`. Если значение `prettify` равно true, тогда будет сгенерирован \"отформатированный\" JSON. То есть каждое поле будет в отдельной строке, а строки будут иметь отступ в зависимости от глубины поля."
+ },
+ "$length": {
+ "args": "str",
+ "desc": "Возвращает количество символов в строке `str`. Выдается ошибка, если `str` не является строкой."
+ },
+ "$substring": {
+ "args": "str, start[, length]",
+ "desc": "Возвращает строку, содержащую символы из первого параметра `str`, начиная с позиции `start` (отсчет с нуля). Если указан `length`, то подстрока будет содержать максимум `length` символов. Если `start` отрицателен, то это означает количество символов с конца `str`."
+ },
+ "$substringBefore": {
+ "args": "str, chars",
+ "desc": "Возвращает подстроку перед первым вхождением последовательности символов `chars` в строке `str`. Если `str` не содержит `chars`, то он возвращает `str`."
+ },
+ "$substringAfter": {
+ "args": "str, chars",
+ "desc": "Возвращает подстроку после первого вхождения последовательности символов `chars` в строке `str`. Если `str` не содержит `chars`, то он возвращает `str`."
+ },
+ "$uppercase": {
+ "args": "str",
+ "desc": "Возвращает строку со всеми символами `str`, преобразованными в верхний регистр."
+ },
+ "$lowercase": {
+ "args": "str",
+ "desc": "Возвращает строку со всеми символами `str`, преобразованными в нижний регистр."
+ },
+ "$trim": {
+ "args": "str",
+ "desc": "Нормализует и обрезает все пробельные символы в строке `str`, выполняя следующие шаги:\n\n - Все символы табуляции, возврата каретки и перевода строки заменяются пробелами.\n- Последовательности пробелов сокращаются до одного пробела.\n- Пробелы в начале и конце `str` удаляются.\n\n Если `str` не указан (то есть эта функция вызывается без аргументов), тогда значение контекста используется в качестве значения `str`. Выдается ошибка, если `str` не является строкой."
+ },
+ "$contains": {
+ "args": "str, pattern",
+ "desc": "Возвращает `true`, если строка `str` соответствует шаблону `pattern`, в противном случае возвращает `false`. Если `str` не указан (то есть эта функция вызывается с одним аргументом), то значение контекста используется как значение `str`. Параметр `pattern` может быть либо строкой, либо регулярным выражением."
+ },
+ "$split": {
+ "args": "str[, separator][, limit]",
+ "desc": "Разбивает строку `str` на массив подстрок. Выдает ошибку, если `str` не является строкой. Необязательный параметр `separator` (строка или регулярное выражение) указывает символы внутри строки `str`, относительно которых она должна быть разделена. Если `separator` не указан, то предполагается пустая строка, и `str` будет разбит на массив из отдельных символов. Выдает ошибку, если `separator` не является строкой. Необязательный параметр `limit` - это число, указывающее максимальное количество подстрок для включения в результирующий массив. Любые дополнительные подстроки отбрасываются. Если `limit` не указан, то весь `str` разделяется без ограничения размера результирующего массива. Выдает ошибку, если `limit` не является положительным числом."
+ },
+ "$join": {
+ "args": "array[, separator]",
+ "desc": "Объединяет массив подстрок в одну объединенную строку, в которой каждая подстрока отделена необязательным параметром `separator`. Выдает ошибку, если входной массив содержит элемент, который не является строкой. Если `separator` не указан, то предполагается, что это пустая строка, то есть нет `separator` между подстроками. Выдает ошибку, если `separator` не является строкой."
+ },
+ "$match": {
+ "args": "str, pattern [, limit]",
+ "desc": "Применяет строку `str` к регулярному выражению `pattern` и возвращает массив объектов, каждый из которых содержит информацию о каждом совпадении внутри `str`."
+ },
+ "$replace": {
+ "args": "str, pattern, replacement [, limit]",
+ "desc": "Находит вхождения шаблона `pattern` в строке `str` и заменяет их на строку `replacement`.\n\nНеобязательный параметр `limit` - это максимальное количество замен."
+ },
+ "$now": {
+ "args":"",
+ "desc":"Создает отметку времени в формате, совместимом с ISO 8601, и возвращает ее как строку."
+ },
+ "$base64encode": {
+ "args":"string",
+ "desc":"Преобразует ASCII-строку в base-64 кодировку. Каждый символ в строке обрабатывается как байт двоичных данных. Для этого необходимо, чтобы все символы в строке находились в диапазоне от 0x00 до 0xFF, который включает все символы строк в URI-кодировке. Символы Юникода за пределами этого диапазона не поддерживаются."
+ },
+ "$base64decode": {
+ "args":"string",
+ "desc":"Преобразует байты в кодировке base-64 в строку, используя кодовую страницу Юникод UTF-8."
+ },
+ "$number": {
+ "args": "arg",
+ "desc": "Преобразует параметр `arg` в число с использованием следующих правил приведения:\n\n - Числа возвращаются как есть\n - Строки, которые содержат последовательность символов, представляющих допустимое в JSON число, преобразуются в это число\n - Все остальные значения вызывают ошибку."
+ },
+ "$abs": {
+ "args":"number",
+ "desc":"Возвращает абсолютное значение числа `number`."
+ },
+ "$floor": {
+ "args":"number",
+ "desc":"Возвращает значение числа `number`, округленное до ближайшего целого числа, которое меньше или равно `number`."
+ },
+ "$ceil": {
+ "args":"number",
+ "desc":"Возвращает значение числа `number`, округленное до ближайшего целого числа, которое больше или равно `number`."
+ },
+ "$round": {
+ "args":"number [, precision]",
+ "desc":"Возвращает значение числа `number`, округленное до количества десятичных знаков, указанных необязательным параметром `precision`."
+ },
+ "$power": {
+ "args":"base, exponent",
+ "desc":"Возвращает значение числа `base`, возведенное в степень `exponent`."
+ },
+ "$sqrt": {
+ "args":"number",
+ "desc":"Возвращает квадратный корень из значения числа `number`."
+ },
+ "$random": {
+ "args":"",
+ "desc":"Возвращает псевдослучайное число, которе больше или равно нулю и меньше единицы."
+ },
+ "$millis": {
+ "args":"",
+ "desc":"Возвращает число миллисекунд с начала Unix-эпохи (1 января 1970 года по Гринвичу) в виде числа. Все вызовы `$millis()` в пределах выполнения выражения будут возвращать одно и то же значение."
+ },
+ "$sum": {
+ "args": "array",
+ "desc": "Возвращает арифметическую сумму массива чисел `array`. Вызывает ошибку, если входной массив `array` содержит элемент, который не является числом."
+ },
+ "$max": {
+ "args": "array",
+ "desc": "Возвращает максимальное число в массиве чисел `array`. Вызывает ошибку, если входной массив `array` содержит элемент, который не является числом."
+ },
+ "$min": {
+ "args": "array",
+ "desc": "Возвращает минимальное число в массиве чисел `array`. Вызывает ошибку, если входной массив `array` содержит элемент, который не является числом."
+ },
+ "$average": {
+ "args": "array",
+ "desc": "Возвращает среднее значение массива чисел `array`. Вызывает ошибку, если входной массив `array` содержит элемент, который не является числом."
+ },
+ "$boolean": {
+ "args": "arg",
+ "desc": "Приводит аргумент к логическому значению, используя следующие правила: \n\n - Логические значения возвращаются как есть\n - пустая строка: `false`\n - непустая строка: `true`\n - число равное `0`: `false`\n - ненулевое число: `true`\n - `null` : `false`\n - пустой массив: `false`\n - массив, который содержит хотя бы один элемент, приводимый к `true`: `true`\n - массив, все элементы которого приводятся к `false`: `false`\n - пустой объект: `false`\n - непустой объект: `true`\n - функция: `false`"
+ },
+ "$not": {
+ "args": "arg",
+ "desc": "Возвращает логическое НЕ для аргумента. `arg` сначала приводится к логическому значению"
+ },
+ "$exists": {
+ "args": "arg",
+ "desc": "Возвращает логическое `true`, если выполнение выражения `arg` возвращает значение, или `false`, если выражение ничему не соответствует (например, путь к несуществующему полю)."
+ },
+ "$count": {
+ "args": "array",
+ "desc": "Возвращает количество элементов в массиве"
+ },
+ "$append": {
+ "args": "array, array",
+ "desc": "Присоединяет один массив к другому"
+ },
+ "$sort": {
+ "args":"array [, function]",
+ "desc":"Возвращает массив, содержащий все значения параметра `array`, но отсортированные по порядку.\n\nЕсли указан компаратор `function`, то это должна быть функция, которая принимает два параметра:\n\n`function(val1, val2)`\n\nЭту функцию вызывает алгоритм сортировки для сравнения двух значений: val1 и val2. Если значение val1 следует поместить после значения val2 в желаемом порядке сортировки, то функция должна возвращать логическое значение `true`, чтобы обозначить замену. В противном случае она должна вернуть `false`."
+ },
+ "$reverse": {
+ "args":"array",
+ "desc":"Возвращает массив, содержащий все значения из параметра `array`, но в обратном порядке."
+ },
+ "$shuffle": {
+ "args":"array",
+ "desc":"Возвращает массив, содержащий все значения из параметра `array`, но перемешанный в случайном порядке."
+ },
+ "$zip": {
+ "args":"array, ...",
+ "desc":"Возвращает свернутый (сжатый) массив, содержащий сгруппированные массивы значений из аргументов `array1` … `arrayN` по индексам 0, 1, 2...."
+ },
+ "$keys": {
+ "args": "object",
+ "desc": "Возвращает массив, содержащий ключи объекта. Если аргумент является массивом объектов, то возвращаемый массив содержит недублированный список всех ключей из всех объектов."
+ },
+ "$lookup": {
+ "args": "object, key",
+ "desc": "Возвращает значение, связанное с ключом в объекте. Если первый аргумент является массивом объектов, то просходит поиск по всем объектам в массиве, и возвращаются значения, связанные со всеми вхождениями ключа."
+ },
+ "$spread": {
+ "args": "object",
+ "desc": "Разбивает объект, содержащий пары ключ / значение, на массив объектов, каждый из которых имеет одну пару ключ / значение из входного объекта. Если параметр является массивом объектов, то результирующий массив содержит объект для каждой пары ключ / значение из каждого объекта предоставленного массива."
+ },
+ "$merge": {
+ "args": "array<object>",
+ "desc": "Объединяет массив объектов в один объект, содержащий все пары ключ / значение каждого из объектов входного массива. Если какой-либо из входных объектов содержит один и тот же ключ, возвращаемый объект будет содержать значение последнего в массиве. Вызывает ошибку, если входной массив содержит элемент, который не является объектом."
+ },
+ "$sift": {
+ "args":"object, function",
+ "desc":"Возвращает объект, который содержит только пары ключ / значение из параметра `object`, которые удовлетворяют предикату `function`, переданному в качестве второго параметра.\n\n`function`, которая передается в качестве второго параметра, должна иметь следующую сигнатуру:\n\n`function(value [, key [, object]])`"
+ },
+ "$each": {
+ "args":"object, function",
+ "desc":"Возвращает массив, который содержит значения, возвращаемые функцией `function` при применении к каждой паре ключ/значение из объекта `object`."
+ },
+ "$map": {
+ "args":"array, function",
+ "desc":"Возвращает массив, содержащий результаты применения функции `function` к каждому значению массива `array`.\n\nФункция `function`, указанная в качестве второго параметра, должна иметь следующую сигнатуру:\n\n`function(value [, index [, array]])`"
+ },
+ "$filter": {
+ "args":"array, function",
+ "desc":"Возвращает массив, содержащий только те значения из массива `array`, которые удовлетворяют предикату `function`.\n\nФункция `function`, указанная в качестве второго параметра, должна иметь следующую сигнатуру:\n\n`function(value [, index [, array]])`"
+ },
+ "$reduce": {
+ "args":"array, function [, init]",
+ "desc":"Возвращает агрегированное значение, полученное в результате последовательного применения функции `function` к каждому значению в массиве в сочетании с результатом от предыдущего применения функции.\n\nФункция должна принимать два аргумента и вести себя как инфиксный оператор между каждым значением в массиве `array`. Сигнатура `function` должна иметь форму: `myfunc($accumulator, $value[, $index[, $array]])`\n\nНеобязательный параметр `init` используется в качестве начального значения в агрегации."
+ },
+ "$flowContext": {
+ "args": "string[, string]",
+ "desc": "Извлекает свойство контекста потока.\n\nЭто функция от Node-RED."
+ },
+ "$globalContext": {
+ "args": "string[, string]",
+ "desc": "Извлекает свойство глобального контекста.\n\nЭто функция от Node-RED."
+ },
+ "$pad": {
+ "args": "string, width [, char]",
+ "desc": "Возвращает копию строки `string` с дополнительным заполнением, если необходимо, чтобы общее количество символов как минимум соответствовало абсолютному значению параметра `width`.\n\nЕсли `width` является положительным числом, то строка дополняется справа; если отрицательным, то дополняется слева.\n\nНеобязательный аргумент `char` указывает символ(ы) для заполнения. Если не указано, по умолчанию используется пробел."
+ },
+ "$fromMillis": {
+ "args": "number",
+ "desc": "Преобразует число, представляющее миллисекунды с начала Unix-эпохи (1 января 1970 года по Гринвичу), в строку отметки времени в формате ISO 8601."
+ },
+ "$formatNumber": {
+ "args": "number, picture [, options]",
+ "desc": "Преобразует число `number` в строку и форматирует ее в десятичное представление, как указано в строке `picture`.\n\nПоведение этой функции соответствует XPath/XQuery-функции fn:format-number, как определено в спецификация XPath F&O 3.1. Строка `picture` определяет, как форматируется число и имеет тот же синтаксис, что и fn:format-number.\n\nНеобязательный третий аргумент `options` используется для переопределения символов форматирования, специфичных для локали по умолчанию, таких как десятичный разделитель. Если аргумент указан, то это должен быть объект, содержащий пары имя/значение, указанные в разделе десятичного формата спецификации XPath F&O 3.1."
+ },
+ "$formatBase": {
+ "args": "number [, radix]",
+ "desc": "Преобразует число `number` в строку и форматирует ее в целое число, представленное в системе счисления, указанной аргументом `radix`. Если `radix` не указан, то по умолчанию используется десятичная. Значение 'radix` может быть от 2 до 36, в противном случае выдается ошибка."
+ },
+ "$toMillis": {
+ "args": "timestamp",
+ "desc": "Преобразует строку `timestamp` в формате ISO 8601 в число миллисекунд с начала Unix-эпохи (1 января 1970 года по Гринвичу). Вызывает ошибку, если строка в неправильном формате."
+ },
+ "$env": {
+ "args": "arg",
+ "desc": "Возвращает значение переменной среды.\n\nЭто функция от Node-RED."
+ },
+ "$eval": {
+ "args": "expr [, context]",
+ "desc": "Анализирует и исполняет строку `expr`, которая содержит JSON или выражение JSONata, используя текущий контекст в качестве контекста для исполнения."
+ },
+ "$formatInteger": {
+ "args": "number, picture",
+ "desc": "Преобразует число `number` в строку и форматирует ее в целочисленное представление, как указано в строке `picture`. Строка `picture` определяет, как форматируется число и имеет тот же синтаксис, что и `fn:format-integer` из спецификации XPath F&O 3.1."
+ },
+ "$parseInteger": {
+ "args": "string, picture",
+ "desc": "Разбирает содержимое строки `string` в целое число (как число JSON), используя формат, указанный в строке `picture`. Строковый параметр `picture` имеет тот же формат, что и `$formatInteger`."
+ },
+ "$error": {
+ "args": "[str]",
+ "desc": "Вызывает ошибку с сообщением. Необязательная строка `str` заменяет сообщение по умолчанию $error() function evaluated`"
+ },
+ "$assert": {
+ "args": "arg, str",
+ "desc": "Если значение `arg` равно true, функция возвращает значение undefined. Если значение `arg` равно false, генерируется исключение с `str` в качестве сообщения об исключении."
+ },
+ "$single": {
+ "args": "array, function",
+ "desc": "Возвращает одно-единственное значение из массива `array`, которое удовлетворяет предикату `function` (то есть когда `function` возвращает логическое `true` при передаче значения). Выдает исключение, если число подходящих значений не одно.\n\nФункция должна соответствовать следующей сигнатуре: `function(value [, index [, array]])` где value - элемент массива, index - позиция этого значения, а весь массив передается в качестве третьего аргумента"
+ },
+ "$encodeUrl": {
+ "args": "str",
+ "desc": "Кодирует компонент Uniform Resource Locator (URL), заменяя каждый экземпляр определенных символов одной, двумя, тремя или четырьмя escape-последовательностями, представляющими кодировку UTF-8 символа.\n\nПример: `$encodeUrlComponent(\"?x=test\")` => `\"%3Fx%3Dtest\"`"
+ },
+ "$encodeUrlComponent": {
+ "args": "str",
+ "desc": "Кодирует Uniform Resource Locator (URL), заменяя каждый экземпляр определенных символов одной, двумя, тремя или четырьмя escape-последовательностями, представляющими кодировку UTF-8 символа.\n\nПример: `$encodeUrl(\"https://mozilla.org/?x=шеллы\")` => `\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\"`"
+ },
+ "$decodeUrl": {
+ "args": "str",
+ "desc": "Декодирует компонент Uniform Resource Locator (URL), ранее созданный с помощью encodeUrlComponent.\n\nПример: `$decodeUrlComponent(\"%3Fx%3Dtest\")` => `\"?x=test\"`"
+ },
+ "$decodeUrlComponent": {
+ "args": "str",
+ "desc": "Декодирует компонент Uniform Resource Locator (URL), ранее созданный с помощью encodeUrl. \n\nПример: `$decodeUrl(\"https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B\")` => `\"https://mozilla.org/?x=шеллы\"`"
+ },
+ "$distinct": {
+ "args": "array",
+ "desc": "Возвращает массив содержащий все элементы из массива `array`, с удаленными дупликатами"
+ },
+ "$type": {
+ "args": "value",
+ "desc": "Возвращает тип значения `value` в виде строки. Если `value` не определено, то будет возвращено `undefined`"
+ },
+ "$moment": {
+ "args": "[str]",
+ "desc": "Получает date объект, используя библиотеку Moment."
+ }
+}
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/20-inject.html b/packages/node_modules/@node-red/nodes/locales/ru/common/20-inject.html
new file mode 100644
index 000000000..e265fccc6
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/20-inject.html
@@ -0,0 +1,54 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/21-debug.html b/packages/node_modules/@node-red/nodes/locales/ru/common/21-debug.html
new file mode 100644
index 000000000..66edb72cc
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/21-debug.html
@@ -0,0 +1,39 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/24-complete.html b/packages/node_modules/@node-red/nodes/locales/ru/common/24-complete.html
new file mode 100644
index 000000000..3709f82dc
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/24-complete.html
@@ -0,0 +1,35 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/25-catch.html b/packages/node_modules/@node-red/nodes/locales/ru/common/25-catch.html
new file mode 100644
index 000000000..867e9b203
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/25-catch.html
@@ -0,0 +1,50 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/25-status.html b/packages/node_modules/@node-red/nodes/locales/ru/common/25-status.html
new file mode 100644
index 000000000..2ae478dc9
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/25-status.html
@@ -0,0 +1,41 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/60-link.html b/packages/node_modules/@node-red/nodes/locales/ru/common/60-link.html
new file mode 100644
index 000000000..1ef3079af
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/60-link.html
@@ -0,0 +1,49 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/90-comment.html b/packages/node_modules/@node-red/nodes/locales/ru/common/90-comment.html
new file mode 100644
index 000000000..f8cb254bd
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/90-comment.html
@@ -0,0 +1,26 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/common/98-unknown.html b/packages/node_modules/@node-red/nodes/locales/ru/common/98-unknown.html
new file mode 100644
index 000000000..6ffb5a03a
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/common/98-unknown.html
@@ -0,0 +1,37 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/10-function.html b/packages/node_modules/@node-red/nodes/locales/ru/function/10-function.html
new file mode 100644
index 000000000..f99408605
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/10-function.html
@@ -0,0 +1,90 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/10-switch.html b/packages/node_modules/@node-red/nodes/locales/ru/function/10-switch.html
new file mode 100644
index 000000000..ba1432056
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/10-switch.html
@@ -0,0 +1,59 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/15-change.html b/packages/node_modules/@node-red/nodes/locales/ru/function/15-change.html
new file mode 100644
index 000000000..aa3e8a233
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/15-change.html
@@ -0,0 +1,42 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/16-range.html b/packages/node_modules/@node-red/nodes/locales/ru/function/16-range.html
new file mode 100644
index 000000000..00deacb23
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/16-range.html
@@ -0,0 +1,59 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/80-template.html b/packages/node_modules/@node-red/nodes/locales/ru/function/80-template.html
new file mode 100644
index 000000000..bc8618cd6
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/80-template.html
@@ -0,0 +1,63 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/89-delay.html b/packages/node_modules/@node-red/nodes/locales/ru/function/89-delay.html
new file mode 100644
index 000000000..2a86fd64c
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/89-delay.html
@@ -0,0 +1,40 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/89-trigger.html b/packages/node_modules/@node-red/nodes/locales/ru/function/89-trigger.html
new file mode 100644
index 000000000..c53058235
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/89-trigger.html
@@ -0,0 +1,55 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/function/90-exec.html b/packages/node_modules/@node-red/nodes/locales/ru/function/90-exec.html
new file mode 100644
index 000000000..b654673fe
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/function/90-exec.html
@@ -0,0 +1,106 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/messages.json b/packages/node_modules/@node-red/nodes/locales/ru/messages.json
new file mode 100755
index 000000000..63e597526
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/messages.json
@@ -0,0 +1,969 @@
+{
+ "common": {
+ "label": {
+ "payload": "Данные",
+ "topic": "Тема",
+ "name": "Имя",
+ "username": "Имя польз.",
+ "password": "Пароль",
+ "property": "Свойство",
+ "selectNodes": "Выберите узлы...",
+ "expand": "Развернуть"
+ },
+ "status": {
+ "connected": "подключен",
+ "not-connected": "не подключен",
+ "disconnected": "соединение разорвано",
+ "connecting": "идет подключение",
+ "error": "ошибка",
+ "ok": "OK"
+ },
+ "notification": {
+ "error": "Ошибка: __message__",
+ "errors": {
+ "not-deployed": "узел не развернут",
+ "no-response": "нет ответа от сервера",
+ "unexpected": "непредвиденная ошибка (__status__) __message__"
+ }
+ },
+ "errors": {
+ "nooverride": "Предупреждение: свойства msg больше не могут переопределять установленные свойства узла. Смотрите bit.ly/nr-override-msg-props"
+ }
+ },
+ "inject": {
+ "inject": "запустить",
+ "repeat": "повторы = __repeat__",
+ "crontab": "crontab = __crontab__",
+ "stopped": "остановлено",
+ "failed": "Не удалось запустить: __error__",
+ "label": {
+ "properties": "Свойства",
+ "repeat": "Повторять",
+ "flow": "контекст потока",
+ "global": "глобальный контекст",
+ "str": "строка",
+ "num": "число",
+ "bool": "логический тип",
+ "json": "объект",
+ "bin": "буфер",
+ "date": "отметка времени",
+ "env": "переменная среды",
+ "object": "объект",
+ "string": "строка",
+ "boolean": "логический тип",
+ "number": "число",
+ "Array": "массив",
+ "invalid": "Неверный объект JSON"
+ },
+ "timestamp": "отметка времени",
+ "none": "нет",
+ "interval": "с интервалом",
+ "interval-time": "с интервалом в промежутке",
+ "time": "в определенное время",
+ "seconds": "сек",
+ "minutes": "мин",
+ "hours": "час",
+ "between": "между",
+ "previous": "предыдущее значение",
+ "at": "в",
+ "and": "и",
+ "every": "каждые",
+ "days": [
+ "пн",
+ "вт",
+ "ср",
+ "чт",
+ "пт",
+ "сб",
+ "вс"
+ ],
+ "on": "по",
+ "onstart": "Отправить через",
+ "onceDelay": "сек, затем",
+ "success": "Успешно отправлено: __label__",
+ "errors": {
+ "failed": "запуск не удался, смотрите подробности в журнале",
+ "toolong": "Интервал слишком большой",
+ "invalid-expr": "Неверное выражение JSONata: __error__"
+ }
+ },
+ "catch": {
+ "catch": "ловить: все",
+ "catchNodes": "ловить: __number__",
+ "catchUncaught": "ловить: непойманные",
+ "label": {
+ "source": "Ловить ошибки",
+ "selectAll": "выбрать все",
+ "uncaught": "Игнорировать ошибки, пойманные другими узлами Catch"
+ },
+ "scope": {
+ "all": "всех узлов",
+ "selected": "выбранных узлов"
+ }
+ },
+ "status": {
+ "status": "статус: все",
+ "statusNodes": "статус: __number__",
+ "label": {
+ "source": "Получать статус",
+ "sortByType": "сортировать по типу"
+ },
+ "scope": {
+ "all": "всех узлов",
+ "selected": "выбранных узлов"
+ }
+ },
+ "complete": {
+ "completeNodes": "завершение: __number__"
+ },
+ "debug": {
+ "output": "Выводить",
+ "status": "статус",
+ "none": "Нет",
+ "invalid-exp": "Неверное выражение JSONata: __error__",
+ "msgprop": "свойство сообщения",
+ "msgobj": "весь msg объект сообщения",
+ "autostatus": "то, что выводит этот узел",
+ "to": "В",
+ "debtab": "вкладка отладки",
+ "tabcon": "вкладка отладки и консоль",
+ "toSidebar": "окно отладки",
+ "toConsole": "системную консоль",
+ "toStatus": "статус узла (32 символа)",
+ "severity": "Уровень",
+ "notification": {
+ "activated": "Успешно активирован: __label__",
+ "deactivated": "Успешно деактивирован: __label__"
+ },
+ "sidebar": {
+ "label": "отладка",
+ "name": "Отладочные сообщения",
+ "filterAll": "все узлы",
+ "filterSelected": "выбранные узлы",
+ "filterCurrent": "текущий поток",
+ "debugNodes": "Отладочные узлы",
+ "clearLog": "Очистить журнал",
+ "filterLog": "Фильтровать журнал",
+ "openWindow": "Открыть в новом окне",
+ "copyPath": "Копировать путь",
+ "copyPayload": "Копировать значение",
+ "pinPath": "Закрепить видимость"
+ },
+ "messageMenu": {
+ "collapseAll": "Свернуть все пути",
+ "clearPinned": "Очистить закреп. пути",
+ "filterNode": "Фильтровать этот узел",
+ "clearFilter": "Очистить фильтр"
+ }
+ },
+ "link": {
+ "linkIn": "связь (вход)",
+ "linkOut": "связь (выход)"
+ },
+ "tls": {
+ "tls": "Конфигурация TLS",
+ "label": {
+ "use-local-files": "Использовать ключ и сертификаты из локальных файлов",
+ "upload": "Загрузить",
+ "cert": "Сертификат",
+ "key": "Закрытый ключ",
+ "passphrase": "Пароль",
+ "ca": "CA сертификат",
+ "verify-server-cert":"Проверить сертификат сервера",
+ "servername": "Имя сервера"
+ },
+ "placeholder": {
+ "cert":"путь к сертификату (формат PEM)",
+ "key":"путь к закрытому ключу (формат PEM)",
+ "ca":"путь к сертификату CA (формат PEM)",
+ "passphrase":"пароль закрытого ключа (необязательно)",
+ "servername":"для использования с SNI"
+ },
+ "error": {
+ "missing-file": "Файл сертификата/ключа не предоставлен"
+ }
+ },
+ "exec": {
+ "exec": "выполнить",
+ "spawn": "выполнить в новом процессе",
+ "label": {
+ "command": "Команда",
+ "append": "Добавить",
+ "timeout": "Тайм-аут",
+ "timeoutplace": "необяз",
+ "return": "Вывод",
+ "seconds": "сек",
+ "stdout": "стандартный вывод",
+ "stderr": "стандартный вывод ошибок",
+ "retcode": "код возврата"
+ },
+ "placeholder": {
+ "extraparams": "дополнительные параметры"
+ },
+ "opt": {
+ "exec": "когда команда завершена - exec режим",
+ "spawn": "пока команда работает - spawn режим"
+ },
+ "oldrc": "Использовать вывод в старом стиле (режим совместимости)"
+ },
+ "function": {
+ "function": "",
+ "label": {
+ "function": "Функция",
+ "initialize": "Настройка",
+ "finalize": "Закрытие",
+ "outputs": "Выходы"
+ },
+ "text": {
+ "initialize": "// Добавленный здесь код будет исполняться\n// однократно при развертывании узла.\n",
+ "finalize": "// Добавленный здесь код будет исполняться при\n// остановке узла или повторном развертывании.\n"
+ },
+ "error": {
+ "inputListener":"Невозможно добавить слушателя к событию 'input' в функции",
+ "non-message-returned":"Функция пыталась отправить сообщение типа __type__"
+ }
+ },
+ "template": {
+ "template": "шаблон",
+ "label": {
+ "template": "Шаблон",
+ "property": "Свойство",
+ "format": "Подсветка синтаксиса",
+ "syntax": "Формат",
+ "output": "Вывести как",
+ "mustache": "Mustache шаблон",
+ "plain": "Простой текст",
+ "json": "JSON",
+ "yaml": "YAML",
+ "none": "нет"
+ },
+ "templatevalue": "А вот и данные: {{payload}} !"
+ },
+ "delay": {
+ "action": "Действие",
+ "for": "На",
+ "delaymsg": "Задержка каждого сообщения",
+ "delayfixed": "Фиксированная задержка",
+ "delayvarmsg": "Переопределять задержку с msg.delay",
+ "randomdelay": "Случайная задержка",
+ "limitrate": "Ограничение скорости",
+ "limitall": "Все сообщения",
+ "limittopic": "Для каждого msg.topic",
+ "fairqueue": "Отправлять темы по очереди",
+ "timedqueue": "Отправлять все темы",
+ "milisecs": "мсек",
+ "secs": "сек",
+ "sec": "сек",
+ "mins": "мин",
+ "min": "мин",
+ "hours": "час",
+ "hour": "час",
+ "days": "сут",
+ "day": "сут",
+ "between": "Между",
+ "and": "и",
+ "rate": "Скорость",
+ "msgper": "сообщений в",
+ "dropmsg": "без промежуточных сообщений",
+ "label": {
+ "delay": "задержка",
+ "variable": "переменная",
+ "limit": "ограничение",
+ "limitTopic": "ограничение темы",
+ "random": "случайный",
+ "units" : {
+ "second": {
+ "plural" : "сек",
+ "singular": "сек"
+ },
+ "minute": {
+ "plural" : "мин",
+ "singular": "мин"
+ },
+ "hour": {
+ "plural" : "час",
+ "singular": "час"
+ },
+ "day": {
+ "plural" : "сут",
+ "singular": "сут"
+ }
+ }
+ },
+ "error": {
+ "buffer": "буфер превысил 1000 сообщений",
+ "buffer1": "буфер превысил 10000 сообщений"
+ }
+ },
+ "trigger": {
+ "send": "Отправить",
+ "then": "затем",
+ "then-send": "затем отправить",
+ "output": {
+ "string": "строку",
+ "number": "число",
+ "existing": "существующий объект сообщения",
+ "original": "оригинальный объект сообщения",
+ "latest": "последний объект сообщения",
+ "nothing": "ничего"
+ },
+ "wait-reset": "ждать сброс",
+ "wait-for": "ждать",
+ "wait-loop": "переотправлять его каждые",
+ "for": "Обрабатывать",
+ "bytopics": "каждый",
+ "alltopics": "все сообщения",
+ "duration": {
+ "ms": "мсек",
+ "s": "сек",
+ "m": "мин",
+ "h": "час"
+ },
+ "extend": " продлить при поступлении нового сообщения",
+ "override": "заменить задержку через msg.delay",
+ "second": " отправить второе сообщение на отдельный выход",
+ "label": {
+ "trigger": "триггер",
+ "trigger-block": "триггер & блок",
+ "trigger-loop": "переотправлять каждые",
+ "reset": "Сбрасывать триггер, если:",
+ "resetMessage":"установлен msg.reset",
+ "resetPayload":"msg.payload равен",
+ "resetprompt": "необязательно"
+ }
+ },
+ "comment": {
+ "comment": "комментарий"
+ },
+ "unknown": {
+ "label": {
+ "unknown": "неизвестный"
+ },
+ "tip": "
Тип этого узла неизвестен Вашей установке Node-RED.
Если Вы развернете узел в этом состоянии, его конфигурация будет сохранена, но поток не будет запущен, пока отсутствующий тип не будет установлен.
Дополнительную справку смотрите в информационной вкладке на боковой панели
" + }, + "mqtt": { + "label": { + "broker": "Сервер", + "example": "например, localhost", + "output": "Выход", + "qos": "QoS", + "retain": "Хранить", + "clientid": "ID клиента", + "port": "Порт", + "keepalive": "Keep-alive время (сек)", + "cleansession": "Использовать чистую сессию", + "use-tls": "Включить безопасное (SSL/TLS) соединение", + "tls-config":"Конфигурация TLS", + "verify-server-cert":"Проверить сертификат сервера", + "compatmode": "Использовать устаревшую поддержку MQTT 3.1" + }, + "sections-label":{ + "birth-message": "Сообщение отправляемое при подключении (birth сообщение)", + "will-message":"Сообщение отправляемое при неожиданном отключении (will message)", + "close-message":"Сообщение отправляемое перед отключением (close сообщение)" + }, + "tabs-label": { + "connection": "Соединение", + "security": "Безопасность", + "messages": "Сообщения" + }, + "placeholder": { + "clientid": "Оставьте пустым для автоматически сгенерированного", + "clientid-nonclean":"Должен быть установлен для не чистых сессий", + "will-topic": "Оставьте пустым, чтобы отключить will сообщение", + "birth-topic": "Оставьте пустым, чтобы отключить birth сообщение", + "close-topic": "Оставьте пустым, чтобы отключить close сообщение" + }, + "state": { + "connected": "Подключен к брокеру: __broker__", + "disconnected": "Отключен от брокера: __broker__", + "connect-failed": "Не удалось подключиться к брокеру: __broker__" + }, + "retain": "Хранить", + "output": { + "buffer": "буфер", + "string": "строка", + "base64": "строка в кодировке Base64", + "auto": "автоопределение (строка или буфер)", + "json": "объект JSON" + }, + "true": "да", + "false": "нет", + "tip": "Совет: Оставьте тему, qos или хранение пустыми, если Вы хотите устанавливать их через свойства msg.", + "errors": { + "not-defined": "тема не определена", + "missing-config": "отсутствует конфигурация брокера", + "invalid-topic": "Указана неверная тема", + "nonclean-missingclientid": "ID клиента не установлен, используется чистая сессия", + "invalid-json-string": "Неверная строка JSON", + "invalid-json-parse": "Не удалось проанализировать строку JSON" + } + }, + "httpin": { + "label": { + "method": "Метод", + "url": "URL", + "doc": "Docs", + "return": "Возврат", + "upload": "Принимать загрузки файлов?", + "status": "Код состояния", + "headers": "Заголовки", + "other": "другое", + "paytoqs": { + "ignore": "Игнорировать", + "query": "Добавлять к параметрам строки запроса", + "body": "Отправлять как тело запроса" + }, + "utf8String": "Строка UTF8", + "binaryBuffer": "двоичный буфер", + "jsonObject": "объект JSON", + "authType": "Тип", + "bearerToken": "Токен" + }, + "setby": "- устанавливается через msg.method -", + "basicauth": "Использовать аутентификацию", + "use-tls": "Включить безопасное (SSL/TLS) соединение", + "tls-config":"Конфигурация TLS", + "basic": "basic аутентификация", + "digest": "digest аутентификация", + "bearer": "bearer authentication", + "use-proxy": "Использовать прокси", + "persist": "Включить keep-alive соединение", + "proxy-config": "Конфигурация прокси", + "use-proxyauth": "Использовать прокси-аутентификацию", + "noproxy-hosts": "Игнор. хосты", + "utf8": "строка UTF-8", + "binary": "двоичный буфер", + "json": "объект JSON", + "tip": { + "in": "URL будет относительно ", + "res": "Сообщения, отправляемые на этот узел должны отправляться с узла http input", + "req": "Совет: Если анализ JSON не удается, полученная строка возвращается как есть." + }, + "httpreq": "http запрос", + "errors": { + "not-created": "Невозможно создать узел http-in, когда httpNodeRoot установлено в false", + "missing-path": "пропущен путь", + "no-response": "Нет объекта ответа", + "json-error": "Ошибка анализа JSON", + "no-url": "URL не указан", + "deprecated-call":"Устаревший вызов __method__", + "invalid-transport":"запрошен не-http транспорт", + "timeout-isnan": "Значение тайм-аута не является действительным числом, проигнорировано", + "timeout-isnegative": "Значение тайм-аута отрицательно, проигнорировано", + "invalid-payload": "Неверные данные" + }, + "status": { + "requesting": "запрос" + } + }, + "websocket": { + "label": { + "type": "Тип", + "path": "Путь", + "url": "URL" + }, + "listenon": "Слушать на ...", + "connectto": "Присоединиться к ...", + "sendrec": "Отправить/Получить", + "payload": "msg.payload данные", + "message": "весь msg объект сообщение", + "tip": { + "path1": "По умолчаниюpayload
будет содержать данные, которые будут отправлены или получены из websocket. Слушатель может быть настроен на отправку или получение всего объекта сообщения в виде строки в формате JSON.",
+ "path2": "Путь будет относительно __path__
.",
+ "url1": "URL должен использовать схему ws:// или wss:// и указывать на существующего слушателя websocket.",
+ "url2": "По умолчанию payload
будет содержать данные, которые будут отправлены или получены из websocket. Клиент может быть настроен на отправку или получение всего объекта сообщения в виде строки в формате JSON."
+ },
+ "status": {
+ "connected": "подключен __count__",
+ "connected_plural_2": "подключено __count__",
+ "connected_plural_5": "подключено __count__"
+ },
+ "errors": {
+ "connect-error": "Произошла ошибка в соединении ws: ",
+ "send-error": "Произошла ошибка при отправке: ",
+ "missing-conf": "Отсутствует конфигурация сервера",
+ "duplicate-path": "Не может быть двух слушателей WebSocket по одному пути: __path__"
+ }
+ },
+ "watch": {
+ "watch": "наблюдение",
+ "label": {
+ "files": "Файл(ы)",
+ "recursive": "Наблюдать за подкаталогами рекурсивно"
+ },
+ "placeholder": {
+ "files": "Разделенный запятыми список файлов и/или каталогов"
+ },
+ "tip": "В Windows Вы должны использовать двойную обратную косую черту \\\\ в любых именах каталогов."
+ },
+ "tcpin": {
+ "label": {
+ "type": "Тип",
+ "output": "Вывод",
+ "port": "порт",
+ "host": "к хосту",
+ "payload": "данные",
+ "delimited": "разделены с",
+ "close-connection": "Закрывать соединение после отправки каждого сообщения?",
+ "decode-base64": "Расшифровать сообщение Base64?",
+ "server": "Сервер",
+ "return": "Возврат",
+ "ms": "мсек",
+ "chars": "симв."
+ },
+ "type": {
+ "listen": "Слушать",
+ "connect": "Подключиться",
+ "reply": "Ответить на TCP"
+ },
+ "output": {
+ "stream": "поток",
+ "single": "одиночный",
+ "buffer": "буфер",
+ "string": "строка",
+ "base64": "строка Base64"
+ },
+ "return": {
+ "timeout": "по истечении времени ожидания",
+ "character": "когда получен символ",
+ "number": "по получении N символов",
+ "never": "никогда - держать соединение открытым",
+ "immed": "немедленно - не ждать ответа"
+ },
+ "status": {
+ "connecting": "подключение к __host__:__port__",
+ "connected": "подключен к __host__:__port__",
+ "listening-port": "прослушивание порта __port__",
+ "stopped-listening": "прослушивание порта остановлено",
+ "connection-from": "соединение от __host__:__port__",
+ "connection-closed": "закрыто соединение от __host__:__port__",
+ "connections": "__count__ соединение",
+ "connections_plural_2": "__count__ соединения",
+ "connections_plural_5": "__count__ соединений"
+ },
+ "errors": {
+ "connection-lost": "потеряно соединение с __host__:__port__",
+ "timeout": "сокет на порту __port__ закрыт из-за превышения времени ожидания",
+ "cannot-listen": "невозможно прослушивать порт __port__, ошибка: __error__",
+ "error": "ошибка: __error__",
+
+ "socket-error": "ошибка сокета от __host__:__port__",
+ "no-host": "Хост и/или порт не установлены",
+ "connect-timeout": "превышено время ожидания подключения",
+ "connect-fail": "подключение не удалось"
+ }
+ },
+ "udp": {
+ "label": {
+ "listen": "Слушать",
+ "onport": "на порте",
+ "using": "используя",
+ "output": "Выход",
+ "group": "Группа",
+ "interface": "Локал. IF",
+ "send": "Отправлять",
+ "toport": "на порт",
+ "address": "Адрес",
+ "decode-base64": "Декодировать данные кодированные в Base64?"
+ },
+ "placeholder": {
+ "interface": "(необяз) локальный интерфейс или адрес для привязки",
+ "interfaceprompt": "(необяз) локальный интерфейс или адрес для привязки",
+ "address": "IP-адрес назначения"
+ },
+ "udpmsgs": "UDP сообщения",
+ "mcmsgs": "многоадресные сообщения",
+ "udpmsg": "UDP сообщение",
+ "bcmsg": "широковещательное сообщение",
+ "mcmsg": "многоадресное сообщение",
+ "output": {
+ "buffer": "буфер",
+ "string": "строка",
+ "base64": "строка Base64"
+ },
+ "bind": {
+ "random": "привязать к случайному локальному порту",
+ "local": "привязать к локальному порту",
+ "target": "привязать к целевому порту"
+ },
+ "tip": {
+ "in": "Совет: убедитесь, что Ваш брандмауэр разрешит вхождение данных.",
+ "out": "Совет: оставьте адрес и порт пустыми, если вы хотите установить их, используя msg.ip
и msg.port
.",
+ "port": "Уже используемые порты: "
+ },
+ "status": {
+ "listener-at": "слушатель udp на __host__:__port__",
+ "mc-group": "группа многоадресной рассылки udp __group__",
+ "listener-stopped": "слушатель udp остановлен",
+ "output-stopped": "выход udp остановлен",
+ "mc-ready": "многоадресная рассылка udp готова: __iface__:__outport__ -> __host__:__port__",
+ "bc-ready": "широковещательная рассылка udp готова: __outport__ -> __host__:__port__",
+ "ready": "udp готов: __outport__ -> __host__:__port__",
+ "ready-nolocal": "udp готов: __host__:__port__",
+ "re-use": "сокет повторного использования udp: __outport__ -> __host__:__port__"
+ },
+ "errors": {
+ "access-error": "Ошибка доступа UDP, Вам может потребоваться доступ с правами root для портов ниже 1024",
+ "error": "ошибка: __error__",
+ "bad-mcaddress": "Неверный адрес многоадресной рассылки",
+ "interface": "Должен быть IP-адрес требуемого интерфейса",
+ "ip-notset": "UDP: IP-адрес не установлен",
+ "port-notset": "UDP: порт не установлен",
+ "port-invalid": "UDP: номер порта недействителен",
+ "alreadyused": "UDP: порт __port__ уже используется",
+ "ifnotfound": "UDP: интерфейс __iface__ не найден"
+ }
+ },
+ "switch": {
+ "switch": "направить",
+ "label": {
+ "property": "Свойство",
+ "rule": "правило",
+ "repair": "воссоздать последовательность сообщений"
+ },
+ "previous": "предыдущее значение",
+ "and": "и",
+ "checkall": "проверка всех правил",
+ "stopfirst": "остановка после первого совпадения",
+ "ignorecase": "игнорировать регистр",
+ "rules": {
+ "btwn": "между",
+ "cont": "содержит",
+ "regex": "подходит под регул. выраж.",
+ "true": "равно true",
+ "false": "равно false",
+ "null": "равно null",
+ "nnull": "не равно null",
+ "istype": "является типом",
+ "empty": "пустое",
+ "nempty": "не пустое",
+ "head": "первые N",
+ "tail": "последние N",
+ "index": "индекс между",
+ "exp": "выраж. JSONata",
+ "else": "иначе",
+ "hask": "имеет ключ"
+ },
+ "errors": {
+ "invalid-expr": "Неверное выражение JSONata: __error__",
+ "too-many": "слишком много ожидающих сообщений в узле switch"
+ }
+ },
+ "change": {
+ "label": {
+ "rules": "Правила",
+ "rule": "правило",
+ "set": "установить __property__",
+ "change": "изменить __property__",
+ "delete": "удалить __property__",
+ "move": "переместить __property__",
+ "changeCount": "изменить: __count__ правило",
+ "changeCount_plural_2": "изменить: __count__ правила",
+ "changeCount_plural_5": "изменить: __count__ правил",
+ "regex": "Использовать регул. выражение"
+ },
+ "action": {
+ "set": "Установить",
+ "change": "Изменить",
+ "delete": "Удалить",
+ "move": "Переместить",
+ "to": "в",
+ "search": "Искать",
+ "replace": "Заменить на"
+ },
+ "errors": {
+ "invalid-from": "Неверное свойство 'from': __error__",
+ "invalid-json": "Неверное свойство JSON 'to'",
+ "invalid-expr": "Неверное выражение JSONata: __error__",
+ "no-override": "Невозможно установить свойство необъектного типа: __property__"
+ }
+ },
+ "range": {
+ "range": "Диапазон",
+ "label": {
+ "action": "Действие",
+ "inputrange": "Сопоставить входной диапазон",
+ "resultrange": "с целевым диапазоном",
+ "from": "от",
+ "to": "до",
+ "roundresult": "Округлять результат до ближайшего целого числа?"
+ },
+ "placeholder": {
+ "min": "напр. 0",
+ "maxin": "напр. 99",
+ "maxout": "напр. 255"
+ },
+ "scale": {
+ "payload": "Масштабировать msg-свойство",
+ "limit": "Масштабировать и ограничить целевым диапазоном",
+ "wrap": "Масштабировать и обернуть в целевой диапазон"
+ },
+ "tip": "Совет: этот узел работает ТОЛЬКО с числами.",
+ "errors": {
+ "notnumber": "Не число"
+ }
+ },
+ "csv": {
+ "label": {
+ "columns": "Столбцы",
+ "separator": "Разделитель",
+ "c2o": "Опции CSV -> Объект",
+ "o2c": "Опции Объект -> CSV",
+ "input": "Вход",
+ "skip-s": "Пропускать первые",
+ "skip-e": "строк(и)",
+ "firstrow": "первый ряд содержит имена столбцов",
+ "output": "Выход",
+ "includerow": "включать ряд с именами столбцов",
+ "newline": "Новая строка",
+ "usestrings": "разбирать числовые значения",
+ "include_empty_strings": "включать пустые строковые значения",
+ "include_null_values": "включать null-значения"
+ },
+ "placeholder": {
+ "columns": "имена столбцов через запятую"
+ },
+ "separator": {
+ "comma": "запятая",
+ "tab": "табуляция",
+ "space": "пробел",
+ "semicolon": "точка с запятой",
+ "colon": "двоеточие",
+ "hashtag": "хэштег",
+ "other": "другой..."
+ },
+ "output": {
+ "row": "сообщение для каждой строки",
+ "array": "одно сообщение [массив]"
+ },
+ "newline": {
+ "linux": "Linux (\\n)",
+ "mac": "Mac (\\r)",
+ "windows": "Windows (\\r\\n)"
+ },
+ "hdrout": {
+ "none": "никогда не отправлять заголовки столбцов",
+ "all": "всегда отправлять заголовки столбцов",
+ "once": "отправлять заголовки один раз, до msg.reset"
+ },
+ "errors": {
+ "csv_js": "Этот узел обрабатывает только CSV-строки или объекты js.",
+ "obj_csv": "Не указан шаблон столбцов для Объект -> CSV.",
+ "bad_csv": "Неверно сформированный CSV-файл - возможно, выход поврежден."
+ }
+ },
+ "html": {
+ "label": {
+ "select": "Селектор",
+ "output": "Выход",
+ "in": "в"
+ },
+ "output": {
+ "html": "html-контент элементов",
+ "text": "только текстовый контент элементов",
+ "attr": "объект любых атрибутов элементов"
+ },
+ "format": {
+ "single": "одним сообщением [массив]",
+ "multi": "по сообщению для каждого элемента"
+ }
+ },
+ "json": {
+ "errors": {
+ "dropped-object": "Данные не-объектного типа проигнорированы",
+ "dropped": "Данные неподдерживаемого типа проигнорированы",
+ "dropped-error": "Не удалось преобразовать данные",
+ "schema-error": "Ошибка схемы JSON",
+ "schema-error-compile": "Ошибка схемы JSON: не удалось скомпилировать схему"
+ },
+ "label": {
+ "o2j": "Опции Объект -> JSON",
+ "pretty": "Форматировать строку JSON",
+ "action": "Действие",
+ "property": "Свойство",
+ "actions": {
+ "toggle": "Преобразовывать в любую сторону",
+ "str":"Всегда преобразовывать в строку JSON",
+ "obj":"Всегда преобразовывать в объект JavaScript"
+ }
+ }
+ },
+ "yaml": {
+ "errors": {
+ "dropped-object": "Данные не-объектного типа проигнорированы",
+ "dropped": "Данные неподдерживаемого типа проигнорированы",
+ "dropped-error": "Не удалось преобразовать данные"
+ }
+ },
+ "xml": {
+ "label": {
+ "represent": "Имя свойства для атрибутов XML-тега",
+ "prefix": "Имя свойства для текстового содержимого тега",
+ "advanced": "Расширенные опции",
+ "x2o": "Опции XML -> Объект"
+ },
+ "errors": {
+ "xml_js": "Этот узел обрабатывает только строки XML или объекты JS."
+ }
+ },
+ "file": {
+ "label": {
+ "filename": "Имя файла",
+ "action": "Действие",
+ "addnewline": "Добавлять новую строку (\\n) к данным?",
+ "createdir": "Создать каталог, если он не существует?",
+ "outputas": "Выход",
+ "breakchunks": "Разбить файл на части",
+ "breaklines": "Разбить на строки",
+ "filelabel": "файл",
+ "sendError": "Отправлять сообщение при ошибке (устаревший режим)",
+ "encoding": "Кодировка",
+ "deletelabel": "удалить __file__",
+ "utf8String": "строка UTF8",
+ "binaryBuffer": "двоичный буфер"
+ },
+ "action": {
+ "append": "добавить в файл",
+ "overwrite": "перезаписать файл",
+ "delete": "удалить файл"
+ },
+ "output": {
+ "utf8": "одна ut8-строка",
+ "buffer": "один объект буфера",
+ "lines": "сообщение для каждой строчки",
+ "stream": "поток буферов"
+ },
+ "status": {
+ "wrotefile": "записано в файл: __file__",
+ "deletedfile": "удален файл: __file__",
+ "appendedfile": "добавлено в файл: __file__"
+ },
+ "encoding": {
+ "none": "по умолчанию",
+ "native": "Нативная",
+ "unicode": "Юникод",
+ "japanese": "Японская",
+ "chinese": "Китайская",
+ "korean": "Корейская",
+ "taiwan": "Тайвань/Гонконг",
+ "windows": "Кодовые страницы Windows",
+ "iso": "Кодовые страницы ISO",
+ "ibm": "Кодовые страницы IBM",
+ "mac": "Кодовые страницы Mac",
+ "koi8": "Кодовые страницы KOI8",
+ "misc": "Разные"
+ },
+ "errors": {
+ "nofilename": "Не указано имя файла",
+ "invaliddelete": "Предупреждение: неверное удаление. Пожалуйста, используйте конкретную опцию удаления в диалоге конфигурации.",
+ "deletefail": "не удалось удалить файл: __error__",
+ "writefail": "не удалось записать в файл: __error__",
+ "appendfail": "не удалось добавить в файл: __error__",
+ "createfail": "не удалось создать файл: __error__"
+ },
+ "tip": "Подсказка: имя файла должно быть абсолютным путем, иначе он будет относительно рабочего каталога процесса Node-RED."
+ },
+ "split": {
+ "split": "разделить",
+ "intro":"Разделить msg.payload
в зависимости от типа:",
+ "object":"Объект",
+ "objectSend":"Отправлять сообщение для каждой пары ключ/значение",
+ "strBuff":"Строка / Буфер",
+ "array":"Массив",
+ "splitUsing":"С помощью",
+ "splitLength":"Фикс. длина",
+ "stream":"Обрабатывать как поток сообщений",
+ "addname":" Копировать ключ в "
+ },
+ "join": {
+ "join": "соединить",
+ "mode": {
+ "mode": "Режим",
+ "auto": "автоматический",
+ "merge": "объединение последовательности",
+ "reduce": "агрегация последовательности",
+ "custom": "ручной"
+ },
+ "combine": "Объединить каждый",
+ "completeMessage": "полное сообщение",
+ "create": "чтобы создать",
+ "type": {
+ "string": "строку",
+ "array": "массив",
+ "buffer": "буфер",
+ "object": "объект ключей/значений",
+ "merged": "объединенный объект"
+ },
+ "using": "используя значение",
+ "key": "как ключ",
+ "joinedUsing": "соединяя с помощью",
+ "send": "Отправить сообщение:",
+ "afterCount": "после ряда частей сообщения",
+ "count": "кол-во",
+ "subsequent": "и каждое последующее сообщение.",
+ "afterTimeout": "по истечении времени с 1го сообщения",
+ "seconds": "сек",
+ "complete": "после сообщения с установленным свойством msg.complete
",
+ "tip": "В этом режиме предполагается, что этот узел либо связан с узлом split, либо полученные сообщения будут иметь правильно настроенное свойство msg.parts
.",
+ "too-many": "слишком много ожидающих сообщений в узле join",
+ "merge": {
+ "topics-label": "Объединенные темы",
+ "topics": "темы",
+ "topic": "тема",
+ "on-change": "Отправлять объединенное сообщение по прибытии новой темы"
+ },
+ "reduce": {
+ "exp": "Агрегирующее выражение",
+ "exp-value": "выражение",
+ "init": "Начальное значение",
+ "right": "Выполнять в обратном порядке (от последнего к первому)",
+ "fixup": "Исправляющее выражение"
+ },
+ "errors": {
+ "invalid-expr": "Неверное выражение JSONata: __error__",
+ "invalid-type": "Невозможно присоединить __error__ к буферу"
+ }
+ },
+ "sort" : {
+ "sort": "сортировать",
+ "target" : "Сортировать",
+ "seq" : "последовательность сообщений",
+ "key" : "Ключ",
+ "elem" : "значение элемента",
+ "order" : "Порядок",
+ "ascending" : "восходящий",
+ "descending" : "нисходящий",
+ "as-number" : "как число",
+ "invalid-exp" : "Неверное выражение JSONata в узле sort: __message__",
+ "too-many" : "Слишком много ожидающих сообщений в узле sort",
+ "clear" : "очистить ожидающее сообщение в узле sort"
+ },
+ "batch" : {
+ "batch": "группировать",
+ "mode": {
+ "label" : "Режим",
+ "num-msgs" : "Группировать по количеству сообщений",
+ "interval" : "Группировать по интервалу времени",
+ "concat" : "Объединять последовательности"
+ },
+ "count": {
+ "label" : "Количество сообщений",
+ "overlap" : "Совпадения",
+ "count" : "кол-во",
+ "invalid" : "Неверные количество и совпадения"
+ },
+ "interval": {
+ "label" : "Интервал",
+ "seconds" : "сек",
+ "empty" : "отправить пустое сообщение, когда сообщение не приходит"
+ },
+ "concat": {
+ "topics-label": "Темы",
+ "topic" : "тема"
+ },
+ "too-many" : "Слишком много ожидающих сообщений в узле batch",
+ "unexpected" : "неожиданный режим",
+ "no-parts" : "в сообщении нет свойства parts"
+ }
+}
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/05-tls.html b/packages/node_modules/@node-red/nodes/locales/ru/network/05-tls.html
new file mode 100644
index 000000000..33c790ed0
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/05-tls.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/06-httpproxy.html b/packages/node_modules/@node-red/nodes/locales/ru/network/06-httpproxy.html
new file mode 100644
index 000000000..85fe4eb81
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/06-httpproxy.html
@@ -0,0 +1,26 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/ru/network/10-mqtt.html
new file mode 100644
index 000000000..ce10a9515
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/10-mqtt.html
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/ru/network/21-httpin.html
new file mode 100644
index 000000000..2527c1599
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/21-httpin.html
@@ -0,0 +1,107 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/ru/network/21-httprequest.html
new file mode 100644
index 000000000..12662aacf
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/21-httprequest.html
@@ -0,0 +1,106 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/22-websocket.html b/packages/node_modules/@node-red/nodes/locales/ru/network/22-websocket.html
new file mode 100644
index 000000000..243f71107
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/22-websocket.html
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/31-tcpin.html b/packages/node_modules/@node-red/nodes/locales/ru/network/31-tcpin.html
new file mode 100644
index 000000000..f23bd974a
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/31-tcpin.html
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/network/32-udp.html b/packages/node_modules/@node-red/nodes/locales/ru/network/32-udp.html
new file mode 100644
index 000000000..2a1026e8b
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/network/32-udp.html
@@ -0,0 +1,42 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-CSV.html
new file mode 100644
index 000000000..aa616110f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-CSV.html
@@ -0,0 +1,72 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-HTML.html b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-HTML.html
new file mode 100644
index 000000000..30a5a2366
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-HTML.html
@@ -0,0 +1,40 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-JSON.html b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-JSON.html
new file mode 100644
index 000000000..0b663ed05
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-JSON.html
@@ -0,0 +1,56 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-XML.html b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-XML.html
new file mode 100644
index 000000000..ed6fe6c44
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-XML.html
@@ -0,0 +1,60 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-YAML.html b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-YAML.html
new file mode 100644
index 000000000..b0049330b
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/parsers/70-YAML.html
@@ -0,0 +1,38 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/sequence/17-split.html b/packages/node_modules/@node-red/nodes/locales/ru/sequence/17-split.html
new file mode 100644
index 000000000..cf7397157
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/sequence/17-split.html
@@ -0,0 +1,175 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/sequence/18-sort.html b/packages/node_modules/@node-red/nodes/locales/ru/sequence/18-sort.html
new file mode 100644
index 000000000..efd183854
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/sequence/18-sort.html
@@ -0,0 +1,56 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/locales/ru/sequence/19-batch.html
new file mode 100644
index 000000000..ecda13154
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/sequence/19-batch.html
@@ -0,0 +1,45 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/storage/10-file.html b/packages/node_modules/@node-red/nodes/locales/ru/storage/10-file.html
new file mode 100644
index 000000000..e1c8bf456
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/storage/10-file.html
@@ -0,0 +1,86 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/ru/storage/23-watch.html b/packages/node_modules/@node-red/nodes/locales/ru/storage/23-watch.html
new file mode 100644
index 000000000..7960f3113
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/ru/storage/23-watch.html
@@ -0,0 +1,39 @@
+
+
+
diff --git a/packages/node_modules/@node-red/runtime/locales/ru/runtime.json b/packages/node_modules/@node-red/runtime/locales/ru/runtime.json
new file mode 100644
index 000000000..75a62b89e
--- /dev/null
+++ b/packages/node_modules/@node-red/runtime/locales/ru/runtime.json
@@ -0,0 +1,186 @@
+{
+ "runtime": {
+ "welcome": "Добро пожаловать в Node-RED",
+ "version": "Версия __component__: __version__",
+ "unsupported_version": "Неподдерживаемая версия __component__. Требуется: __requires__ Найдено: __version__",
+ "paths": {
+ "settings": "Файл настроек : __path__",
+ "httpStatic": "HTTP статика : __path__"
+ }
+ },
+
+ "server": {
+ "loading": "Загрузка узлов палитры",
+ "palette-editor": {
+ "disabled": "Редактор палитры отключен : пользовательские настройки",
+ "npm-not-found": "Редактор палитры отключен : команда npm не найдена",
+ "npm-too-old": "Редактор палитры отключен : устаревшая версия npm. Требуется npm >= 3.x"
+ },
+ "errors": "Не удалось зарегистрировать __count__ тип узла",
+ "errors_plural_2": "Не удалось зарегистрировать __count__ типа узла",
+ "errors_plural_5": "Не удалось зарегистрировать __count__ типов узла",
+ "errors-help": "Запустите с -v для деталей",
+ "missing-modules": "Недостающие модули узлов:",
+ "node-version-mismatch": "Модуль узла не может быть загружен в этой версии. Требуется: __version__ ",
+ "type-already-registered": "'__type__' уже зарегистрирован модулем __module__",
+ "removing-modules": "Удаление модулей из конфига",
+ "added-types": "Добавлены типы узлов:",
+ "removed-types": "Удалены типы узлов:",
+ "install": {
+ "invalid": "Неверное имя модуля",
+ "installing": "Установка модуля: __name__, версия: __version__",
+ "installed": "Установлен модуль: __name__",
+ "install-failed": "Установка не удалась",
+ "install-failed-long": "Установка модуля __name__ не удалась:",
+ "install-failed-not-found": "Модуль $t(server.install.install-failed-long) не найден",
+ "install-failed-name": "$t(server.install.install-failed-long) неверное имя модуля: __name__",
+ "install-failed-url": "$t(server.install.install-failed-long) неверный url: __url__",
+ "upgrading": "Обновление модуля: __name__ до версии: __version__",
+ "upgraded": "Обновлен модуль: __name__. Перезапустите Node-RED, чтобы использовать новую версию",
+ "upgrade-failed-not-found": "Версия $t(server.install.install-failed-long) не найдена",
+ "uninstalling": "Удаление модуля: __name__",
+ "uninstall-failed": "Удаление не удалось",
+ "uninstall-failed-long": "Удаление модуля __name__ не удалось:",
+ "uninstalled": "Удален модуль: __name__"
+ },
+ "unable-to-listen": "Невозможно прослушивать __listenpath__",
+ "port-in-use": "Ошибка: порт используется",
+ "uncaught-exception": "Непойманное исключение:",
+ "admin-ui-disabled": "Пользовательский интерфейс администратора отключен",
+ "now-running": "Сервер теперь работает на __listenpath__",
+ "failed-to-start": "Не удалось запустить сервер:",
+ "headless-mode": "Работает в безголовом (headless) режиме",
+ "httpadminauth-deprecated": "использование httpAdminAuth устарело. Используйте adminAuth вместо этого",
+ "https": {
+ "refresh-interval": "Обновление настроек https каждые __interval__ часов",
+ "settings-refreshed": "Настройки сервера https обновлены",
+ "refresh-failed": "Не удалось обновить настройки https: __message__",
+ "nodejs-version": "httpsRefreshInterval требует Node.js 11 или выше",
+ "function-required": "httpsRefreshInterval требует, чтобы свойство https было функцией"
+ }
+ },
+
+ "api": {
+ "flows": {
+ "error-save": "Ошибка сохранения потоков: __message__",
+ "error-reload": "Ошибка перезагрузки потоков: __message__"
+ },
+ "library": {
+ "error-load-entry": "Ошибка загрузки записи библиотеки '__path__': __message__",
+ "error-save-entry": "Ошибка сохранения записи библиотеки '__path__': __message__",
+ "error-load-flow": "Ошибка загрузки потока '__path__': __message__",
+ "error-save-flow": "Ошибка сохранения потока '__path__': __message__"
+ },
+ "nodes": {
+ "enabled": "Включены типы узлов:",
+ "disabled": "Отлючены типы узлов:",
+ "error-enable": "Не удалось включить узел:"
+ }
+ },
+
+ "comms": {
+ "error": "Ошибка канала связи: __message__",
+ "error-server": "Ошибка сервера связи: __message__",
+ "error-send": "Ошибка связи при отправке: __message__"
+ },
+
+ "settings": {
+ "user-not-available": "Не удается сохранить настройки пользователя: __message__",
+ "not-available": "Настройки недоступны",
+ "property-read-only": "Свойство '__prop__' доступно только для чтения"
+ },
+
+ "nodes": {
+ "credentials": {
+ "error":"Ошибка при загрузке учетных данных: __message__",
+ "error-saving":"Ошибка при сохранении учетных данных: __message__",
+ "not-registered": "Тип учетных данных '__type__' не зарегистрирован",
+ "system-key-warning": "\n\n---------------------------------------------------------------------\nВаш файл учетных данных потока зашифрован с использованием\nсгенерированного системой ключа.\n\nЕсли сгенерированный системой ключ по какой-либо причине утерян, файл\nс Вашими учетными данными не подлежит восстановлению. Вам придется\nудалить его и повторно ввести свои учетные данные.\n\nВы должны установить свой собственный ключ, используя опцию\n'credentialSecret' в Вашем файле настроек. После этого Node-RED\nповторно зашифрует Ваш файл учетных данных, используя выбранный Вами\nключ, при следующем развертывании изменений.\n---------------------------------------------------------------------\n"
+ },
+ "flows": {
+ "safe-mode": "Потоки остановлены в безопасном режиме. Разверните, чтобы запустить.",
+ "registered-missing": "Отсутствует зарегистрированный тип: __type__",
+ "error": "Ошибка загрузки потоков: __message__",
+ "starting-modified-nodes": "Запуск измененных узлов",
+ "starting-modified-flows": "Запуск измененных потоков",
+ "starting-flows": "Запуск потоков",
+ "started-modified-nodes": "Запущены измененные узлы",
+ "started-modified-flows": "Запущены измененные потоки",
+ "started-flows": "Запущены потоки",
+ "stopping-modified-nodes": "Остановка измененных узлов",
+ "stopping-modified-flows": "Остановка измененных потоков",
+ "stopping-flows": "Остановка потоков",
+ "stopped-modified-nodes": "Остановлены измененные узлы",
+ "stopped-modified-flows": "Остановлены измененные потоки",
+ "stopped-flows": "Остановлены потоки",
+ "stopped": "Остановлен",
+ "stopping-error": "Ошибка остановки узла: __message__",
+ "added-flow": "Добавление потока: __label__",
+ "updated-flow": "Обновлен поток: __label__",
+ "removed-flow": "Удален поток: __label__",
+ "missing-types": "Ожидание регистрации отсутствующих типов:",
+ "missing-type-provided": " - __type__ (предоставлен npm-модулем __module__)",
+ "missing-type-install-1": "Чтобы установить любой из этих отсутствующих модулей, запустите:",
+ "missing-type-install-2": "в каталоге:"
+ },
+ "flow": {
+ "unknown-type": "Неизвестный тип: __type__",
+ "missing-types": "недостающие типы",
+ "error-loop": "Сообщение превысило максимальное количество уловов"
+ },
+ "index": {
+ "unrecognised-id": "Нераспознанный идентификатор: __id__",
+ "type-in-use": "Тип используется: __msg__",
+ "unrecognised-module": "Нераспознанный модуль: __module__"
+ },
+ "registry": {
+ "localfilesystem": {
+ "module-not-found": "Не удается найти модуль '__module__'"
+ }
+ }
+ },
+
+ "storage": {
+ "index": {
+ "forbidden-flow-name": "запрещенное имя потока"
+ },
+ "localfilesystem": {
+ "user-dir": "Каталог пользователя : __path__",
+ "flows-file": "Файл потоков : __path__",
+ "create": "Создание нового файла __type__",
+ "empty": "Существующий файл __type__ пуст",
+ "invalid": "Существующий файл __type__ не является допустимым json",
+ "restore": "Восстановление резервной копии файла __type__ : __path__",
+ "restore-fail": "Восстановление резервной копии файла __type__ не удалось : __message__",
+ "fsync-fail": "Запись данных файла __path__ на диск не удалась : __message__",
+ "projects": {
+ "changing-project": "Установка активного проекта : __project__",
+ "active-project": "Активный проект : __project__",
+ "project-not-found": "Проект не найден : __project__",
+ "no-active-project": "Нет активного проекта : используется файл потоков по умолчанию",
+ "disabled": "Проекты отключены : editorTheme.projects.enabled=false",
+ "disabledNoFlag": "Проекты отключены : установите editorTheme.projects.enabled=true , чтобы включить",
+ "git-not-found": "Проекты отключены : команда git не найдена",
+ "git-version-old": "Проекты отключены : git __version__ не поддерживается. Требуется 2.x",
+ "summary": "Node-RED проект",
+ "readme": "### О проекте\n\nЭто README.md файл Вашего проекта. Он помогает пользователям понять, что\nделает Ваш проект, как его использовать и все остальное, что им может\nпонадобиться знать."
+ }
+ }
+ },
+
+ "context": {
+ "log-store-init": "Хранилище контекста : '__name__' [__info__]",
+ "error-loading-module": "Ошибка загрузки хранилища контекста: __message__",
+ "error-loading-module2": "Ошибка загрузки хранилища контекста '__module__': __message__",
+ "error-module-not-defined": "У хранилища контекста '__storage__' отсутствует опция 'module'",
+ "error-invalid-module-name": "Неверное имя хранилища контекста: '__name__'",
+ "error-invalid-default-module": "Хранилище контекста по умолчанию неизвестно: '__storage__'",
+ "unknown-store": "Задано неизвестное хранилище контекста '__name__'. Используется хранилище по умолчанию.",
+ "localfilesystem": {
+ "invalid-json": "Неверный JSON в файле контекста '__file__'",
+ "error-circular": "Контекст __scope__ содержит циклическую ссылку, которая не может быть сохранена",
+ "error-write": "Ошибка записи контекста: __message__"
+ }
+ }
+
+}